2006-09-05

JoS comment bandwagon: going with a "safe" language

Joel on Software's (JoS) Language Wars post is starting to do the rounds on the Python blogs. I decided to give it a read and he made the point about "safe" languages and that Python was about to kick over to that classification. But the more interesting thing was the mentioning of the "gigantic ecosystem you need" in order to develop a large application.


Specifically, Joel mentions C#, Java, PHP, and kind-of Python as languages that have the proper ecosystem around them to develop a large app. All of these languages have a good amount of people out in the world who know the pros and cons of developing for those languages. They have the needed library and community support as well.

And I think this is a very valid point. I have learned a lot of esoteric languages (how many out there can claim they have learned Joy?) and they all have the same issue; lack of an ecosystem behind it. Usually it is a lack of documentation provided by the community. The official documentation can be nice and all, but not everyone thinks the same.

A good example is tutorials. Usually a language has a blessed tutorial to teach you the language. This might be nice and all, but it is usually written by people who know the language intimately and have been using it for quite some time. They no longer remember what it was like to learn the language. But when more and more people start to come to the language, some write their own tutorials. This leads to various approaches to teaching the language that might make more sense to other people. This then leads to more people trying the language.

Look at a Google Trends search for Python, Ruby, and Lisp tutorials. The graph roughly follows userbase over the past couple years. Lisp is low for the entire graph, Python is high, and Ruby shows up in 2005 and starts to grow just like it has in the real world.

Garnering and growing a community is key for a programming language. You need that to get people interested, to have people teach others, and have it lead to a snowball effect of garnering more and more users. The Python community has done a very good job staying friendly and helpful for teaching newcomers to the language. It isn't quite as small (and thus has some more jerks than it did when I joined the community), but as a whole Pythonistas are nice folk. I would say Python users are less likely to burn someone at the stake for using another language like some other language evanglists are (although I must admit I am a loud-mouthed language bigot most of the time =). The whole practicality thing is a rather nice thing to have ground into the persona of the community.