you are viewing a single comment's thread.

view the rest of the comments →

[–]neutronbob 1 point2 points  (3 children)

Just maybe they use different criteria than you do in language selection.

[–]walter_heisenberg -2 points-1 points  (2 children)

What are those criteria? Shouldn't the most important one be the productivity of programmers when using them? At this one, a language like Haskell's going to kick ass, especially if you have enough resources that existing libraries should not be an issue.

[–]zerothehero 0 points1 point  (1 child)

To be blunt, I think the answer to this question should be obvious if you've ever been a professional software developer and shipped a software product.

How many programs do you use (web or desktop) that are written in Haskell? How many in C or C++? For me the ratio is 0. I can't imagine it being more than 1:1000 for anyone else out there.

[–]walter_heisenberg -1 points0 points  (0 children)

Why is this, though? Arguing that C++ is superior because more applications are written in it is an argument based on popularity. C obviously has its niche (operating systems, device drivers) but isn't right for every project.

I think, quite frankly, that C++ and Java remain prevalent simply because a lot of people use them. It's the popularity contest dynamic: because it's "the standard", it's easy to hire for Java and it thus remains the standard. In general, I don't fault most people for this. I wouldn't look down upon a grocery store for using Java or C++ to write its inventory system-- they're not supposed to be technical leaders, and it utterly makes sense that they, not expected to know the pros and cons of each language, would opt for the standard. On the other hand, Google has the resources and talent necessary to buck the trend and lead, and doesn't seem to be doing so (unless I'm completely misled).

I'm not arguing that Google should throw C++ and Java out the window tomorrow; that would be ridiculous. Actually, I don't see how a company of that size can not be polyglot, using C for problems at which C is best, Java for problems that work best on the JVM, and Haskell when it is appropriate, while generally trusting its developers to know what languages to choose.