> Alright, I give up - why do fun languages like Python or more fun > languages like Squeak get passed over in the market compared to > rather annoying languages like Java? How come they haven't been as > competitive as say Linux as a server OS platform? Why is C++ vs. > Java still our fate in 2006? Is there no God? Have we been bad?
OK -- this is a huge topic, but, for what it's worth, here's my theory. Short answer: marketing. Long answer: Most language choices in the programming world come down to programmers selling stuff to management. Selling is a people skill and programmers often lack it. Every so often a programmer manages to use some obscure language they prefer, and the results are impressive -- Yahoo! Stores was originally written in Lisp, there were virtually zero Ruby Web programmers before one Ruby Web programmer created Ruby on Rails, Seaside is written in Smalltalk and has productivity that makes even Rails look sluggish, etc. -- but generally that's not because somebody discovered a language's heretofore-overlooked power, it's because somebody who was already aware of that power managed to convince some business person that the power actually existed, or learned enough business skills that these decisions became their own to make. More frequently, what happens is that the language choice actually comes down to a management decision, and most people who manage programmers are in the business of making decisions they do not understand. So they follow the dictates of fashion. This is why the industry is so prone to buzzwords and trends -- the people making the decisions do not actually have any other metric at their disposal besides popularity. Anyway, apologies Owen, but I have to disagree with the "languages are hard" thing. Languages are easy, at least, for me personally, I've never found syntax or even idioms difficult to get the hang of. As arrogant as I might sound, I don't think I'm actually unique in this. The sheer number of languages, and the fact that most programmers know several, demonstrates that they aren't **that** difficult. But the points about interoperability and deployability seem much more valid. I think programmers who enjoy obscure languages tend to be better programmers, but the causality works the other way around: enjoying obscure languages doesn't make you a better programmer, being a good programmer gives you an increased appreciation for obscure languages. That being said, there's a lot of interest in learning new languages these days, and I think it's gotten out of hand. A lot of the big surprise success stories in the last decade or so have come out of left field in terms of the languages they were written in, but this is almost tautological -- they wouldn't have been surprises if they had been written in the languages everyone else was using at the time. It does seem, though, that if you study languages strictly to learn more languages, you'll find a lot of totally careerist programmers doing the same thing. About a year and a half ago I was going to Python users' group meetings at Google, and the slickness, desperation, and indifference which marks a room full of careerist programmers was so thick in the air that I could hardly breathe. Maybe a year or so before that, it had become common knowledge that Google preferred to see Python on resumes when hiring for Java positions, and so a lot of people had started learning Python purely to get better Java jobs, in much the same way that a guy who has no interest in actually managing a project might still seek to be officially named the project's manager. I hope I don't sound like a bitter Silicon Valley refugee... ;-) -- Giles Bowkett http://www.gilesgoatboy.org ============================================================ FRIAM Applied Complexity Group listserv Meets Fridays 9a-11:30 at cafe at St. John's College lectures, archives, unsubscribe, maps at http://www.friam.org
