|> Home > Technology > Software discussion and controversy|
There is an interesting piece on software education and software development by Bjarne Stroustrup. It is particularly interesting to me in confirming my prejudices about the dangers of excessive dependency on libraries and architectures.
Discussion of dynamic (scripting) languages such as Python and TCL, versus static (system programming) languages such as C++ and Java. A bit out of date, but still useful.
fm2x are not afraid of a little controversy. While we do use and build objects in our software, we use declarative and function programming when it is a better (i.e., simpler, more easily maintained) way of doing things. We are sceptical about any "cult" approach to software development, except the cult of getting the job done as quickly as possible without any bugs (yes, we said it ... no bugs, as in zero bugs, I mean absolutely none at all).
OO languages may not be more productive than procedural ones; a reputable paper
Well, since we've now poked our head out of the closet a bit, let me say that I have become increasingly sceptical about the long-term value of general purpose application frameworks such as Zope, Access, Oracle Forms and the like (probably Ruby on Rails). I have no quantitative evidence for this view but my personal experience is that these platforms allow one to get started quickly and work well up to a particular level of complexity. Eventually, however, "real" applications demand that one is forced to bend the "rules" of these frameworks until much of the time is spent fighting the framework rather than getting things done. The difference with fm2x is that the framework is not intended to be general purpose and it is very easy to drop in and out of it to get things done.
As is the case with most human activities, individual performance (good and bad) is highly variable. Say you think you're a pretty good amateur tennis player; would you be surprised if a world-class tennis player trashed you ten to one? You'd probably think yourself pretty hot if you managed to score a single point in a whole match. The same is true of systems developers; the best developers probably are ten times more productive (i.e., get it done ten times more quickly and with a tenth as many bugs) than the "average" developer. Convincing formal studies are not known to this author but there seems to be quite a few other developers out there of a similar opinion (http://developers.slashdot.org/article.pl?sid=07/08/06/1950201).