Language Wars
There has been a conflagration of Python vs. Ruby flames of late — you don’t need me to add more links to all that stuff. Actually, I’m glad it’s happening. Guido, for instance, has recently added anonymous blocks to Python, citing Ruby’s influence directly. Sensible guy, Guido.
I’m not a hardcore language design wonk by any stretch of the imagination, I’m just a workaday hacker. But I know a fair amount about natural languages, and I think there’s an interesting comparison to be made here…
A lot of people will tell you that they don’t have a “knack” for learning languages. Usually what they mean is that they took high school Spanish or French and hated it. A question I think is too rarely asked is which languages do you not have a knack for learning?
I have learned a bunch of languages — Spanish, Portuguese, a fair amount of Japanese, some Thai, some Welsh, some Bengali, and a tiny bit of Dutch and Finnish. It’s just something I like doing. But I don’t think that I have a knack for learning “languages,” I think I found languages that suited me. I have tried and failed to like German. I have also tried and failed to like Russian, Irish, and Hindi.
I have no idea why I like Dutch but not German. There is no rational explanation, really. At least, none that I can articulate: the languages are very similar, just so with Irish and Welsh, Bengali and Hindi.
When someone says they are a good swimmer, no one assumes as a consequence that they are a good runner. No one claims to have a knack for “sports.” When someone tells me they don’t have a knack for language, I tell them they should try another one. My sister never really got past the basics of Spanish or Hebrew, but for some reason she seems to be making considerable progress with Arabic. Why that language but not the others? No idea.
And I suspect that programming languages are just the same. There are too many parameters to evaluate and say “this language is best.” Programming languages are not as complicated as natural languages, but they are complicated enough to warrant recognizing that we don’t really know what makes our knacks click.
Python and Perl fill the same niche, it is true. But Python likes me, and Perl doesn’t. I like Perl people just fine, and I think Larry Wall & Co. are cool folks, I have a giant stack of Perl books that I read on a regular basis. But Perl feels like a foreign language to me, and I suspect it always will.
Thank goodness there are a lot of languages out there.