I've just returned from Krakow JDD conference. It was fantastic, I enjoyed the town, weather and everything. The speakers were treated like kings. At the end I was sad the conference is over - I guess that speaks for itself.
However I want to concentrate on a linguistic aspect of my visit to Poland. During one dinner we got into a discussion whether complicated natural language makes better programmers or not. We have not reached a conclusion, but the discussion revealed something about shared heritage of Slavic languages.
Everyone knows that context sensitive parsing is harder than pure lexical one. I am not 100% sure, but English seems to me like a lexically parsable language. Things are of course complicated by the fact that there is allmost no correlation between spoken and written form (think of door, school, blood), but that is nothing compared to Czech language! When you want to say that somebody "went" the actual written form depends on the sex:
- Ženy šly - women went
- Muži šli - men went
The difference is the i/y at the end of the verb. Depending on the sex one is supposed to use the appropriate form. This has some benefits - for example it prevents extreme feminism as Slavic languages in general honor women by having such special forms to express the "she" form. However there is a dark side: both "šli" and "šly" have the same pronaunciation in Czech!
Obviously this discrepancy is a favorite catch used by masochist teachers of Czech language on every Czech child! All those "diktáty" when the teacher dictates and children are supposed to write the words down are realy efficient ways to burn almost all mental capacity of any Czech young. As a result you get programmers highly skilled in evaluating things in a context. But does that worths all the masochism? Does understanding of an absurdly complex language helps you be a better programmer?
But now, after having all the linguistic conversations in Krakow I finally understand why the language is so damn complicated. In Polish they have the same "šli/šly" rules - but there is a difference - Polish pronounce the two forms differently. That actually makes sense. When you pronounce something differently it should also have a different spelling. It also shows the common language heritage. Apperently in the prototypical western Slavic language the pronaunciation was different - just Czechs got lazy and relaxed the pronaunciation (while keeping the difference in the written form). How more complicated your language can get? Can you tease your children more?
Btw. Slovaks got lazy as well and pronounce masculin and feminin form the same. But at least they were sane enough to change their grammer to always use "šli". That is of course reasonable as well. Only Czechs decided to stick with the hardest alternative.
Quiz: If you were searching for a context sensitive programmer who should you hire? Czech, Polish or Slovak?
In the context of the "i/y" story it is clear. Czechs have to have the biggest sense for context (and absurdism). But that does not mean the other nations don't have it: Later during the conference I learned the Polish pronounce "ch" and "h" the same (in contrast to Czechs), but keep the difference in a written form (probably also result of a shared language heritage). I guess you can imagine what is the most favorite way of torturing children during "diktáty" in Poland then...
In case you were "unlucky" and grew up in a country where children are not teased by context sensitive "diktáty", don't dispair! Buy Practical API Design book and become sensitive developer!