Tuesday, April 18, 2006
Language lock-in, language culture, development strategy
In fact, in many cases the issue has moved from vendor lock-in to language lock-in. Learning a language, its libraries, its idioms, and so on requires some effort (assuming you truly want to learn the language: contrast this with using (e.g.) C# but thinking (e.g.) in VB3). People have a natural tendency to avoid large efforts (and rightly so :-). Therefore, in many cases they won't switch language, unless truly compelled. It makes then perfect sense to pick "the right language", and here start the troubles :-)). Language wars abound, and I'm not going to add more fuel (well, not today :-). Instead, I'll add yet another factor to consider when picking a language: the alignment between your development strategy and the language culture.
A recurring theme in my consulting activity of the past few weeks has been the use of metrics to control some quality attributes. This is particularly important in large, distributed, partially outsourced projects, but even smaller endeavors can benefit from a few measurements (more on this another time). Of course, the first step is the selection of meaningful metrics; the second step is getting some tool to calculate those metrics. Here some facets of language culture are brought to light. For some languages, you can easily find powerful tools (commercial or open source) to calculate basically anything you may want. For others, there's basically no way to find anything decent. Does it matter? It just depends on your development strategy!
By the way: does anybody know where I could find a (commercial or free) program to calculate (at least :-) the cyclomatic complexity of a PHP function? I'm not kidding, I could actually use it...



