Of course, it'd be better in the long run to stay up to date and eliminate that extra work, but sometimes it helps to build it first to see if it'll even get to the refinement phase.
A hell of a lot of people are doing really good work with Java. I use Linux, Eclipse and Java at work and I know a lot of other people that do too.
Absolutely true.
And a hell of lot of people that brag about Haskell, LISP et al, don't produce anything useful to the masses with them. Where are all those LISP/Haskell/whatever killer apps? I mean, even Erlang has CouchDB, Riak and RabbitMQ.
I don't mean to troll, I actually think that 99% of those languages are used for personal/hobby projects, or for stuff in some company where the rules are lax and the programmer can choose whatever he likes --and those could be great or shit, but not really relevant to anybody else.
I don't see many widely used tools made with them, Open or closed source.
Re: the people mentioning HN runs on Arc. I know that. It's a service. Doesn't count as "widely used tools" (I gave CouchDB, Riak etc as examples).
It's more of the "stuff in some company where the rules are lax and the programmer can choose whatever he likes" variety of uses. As was ViaWeb.
Not to mention that HN is filled with bugs and a broken caching system, and Arc itself is half-complete and mostly abandoned IIRC.
C, C++ and Java are the standard tools of the industry, so it's unusual and noteworthy when an alternative language or technology is used for a product. You can use a wide variety of languages for web development backends because it tends to be less sensitive to performance(the majority of hits should be hitting caches), it has simple IO requirements, and user sessions usually don't have much state so parallelism is easier. I'd argue that web development is much more about the product than technical programming challenges, so having the ability to iterate quickly is especially important and leads to favoring scripting languages over the traditional languages which are more suitable for complex and high performance software.
For example, at Chartboost our backend runs on a LAMP stack, but our new implementation of the smart ad targeting algorithm involves using Clojure (another Lisp dialect). Chartboost is definitely not "Made in Clojure," but I think it's fair to say that that doesn't mean that the language isn't being used to build a useful product.
Sources http://www.janestreet.com/technology/ Interviewing there Knowing people whir work there
At the same time I used compile-time code generation in Java to rewrite some handcrafted class hierarchy into something that was short, correct and implemented the right interfaces consistently. It was also a non-trivial problem to solve and the result was very useful.
The difference is that I'll never describe the second one as something positive. It was time wasted working around inflexible constraints in Java in the only reasonably available way to make the code suck less. Sure, it required creativity and a clever solution, but I'd never want to do it again. Ask me about something interesting related to coding and I could mention the first example in a couple of contexts. The other one would be only mentioned with "Ah, you can't do that in a simple way, but I know a hack that will work - you'll just have to explain it twice to everyone looking at it."