Quote:
Originally Posted by muttiah
lol Haskell. Talk about a language that everyone talks about being awesome but nobody really uses it to build serious stuff.
Actually, I'm going to take this a step further.
Handing a bad programmer Haskell, Clojure, GoLang, or some of these other amazing languages is like handing an Uzi to a 6 year old. You did it because you like the kid and you really want him to have fun, but you didn't think through the consequences very well.
I've often mentioned here how I'd never do a project in Clojure if I expected to have a team of developers working on it. If you read blogs from companies that use Clojure, Haskell, etc, they talk about a long training and build-up to bring developers up to speed. In smart hands, these languages are awesome, and those are the people who are talking it up.
You really can't learn these in a weekend. In the early stages, you get a glimpse of what is possible, but it takes considerable thought and failure to really get it and see how incredibly simple they are. One can argue that the learning curve makes it less awesome, but each their own.
Few companies are using these languages because you really can't depend on every programmer to get it right, and so it's much easier to find a common language people learned to code in while in college and run with it. Plus, you have RoR, Django, and a ton of other libs that are well-baked for many neat things. I'm not sure, but the working idea seems to be to mitigate mistakes, and if Java, Python, C++, etc. all do well to prevent mistakes, that's pretty okay.
Let's not kid ourselves that the best always wins. PostgreSQL is probably better than MySQL; Ruby is probably better than Python; Apple is probably better than Windows; etc. No one would say with a straight face the Budweiser is a great tasting beer, but you know, it's popular and everyone gets it. Programmers are human, and not above having unfounded biases or taking short-cuts to decisions.