Why No Change Shootout

Hundreds of billions are spent on software development. Software runs the world. But why are there not more realistic tests being done by research institutions and universities? This is the age of science, not the age of anecdotes. Should so much be decided on such scanty evidence? That's not rational. There's no excuse for such mass avoidance of testing.

I suspect it's GreekSyndrome? going on (EvidenceEras). Such testing is "boring" from an academic standpoint. It's not exploring some slick catchy equation or BigIdea, but messy and tedious coding and counting.

For example, how about a representative sample application be developed using OOP and non-OOP styles, say a college class and grade tracking system, and then throw several realistic change-scenarios at both code bases, and see which one is easiest to change in terms of modules, functions, and lines of code that needed changing. (I suggest one heavy-typed language and one lightly-typed language be used.) Theory and anecdotes only go so far. Time to science up and RaceTheDamnedCar.

(Even if it doesn't settle anything, it will at least provide a framework for discussing and comparing code change metrics.)

That sounds like innumerable final-year undergraduate "information systems" dissertations. Fun stuff for students, but fraught with difficulties for any sort of serious or genuinely meaningful research and the outcomes are of little interest (i.e., unlikely to be funded). It's too much like doing "serious" research to determine which is "better", a hammer or screwdriver.

In 2000 I worried that computers in 2010 would be so easy to use, nobody would need programmers any more.

Fat chance, huh!? --PhlIp

I was told in 1985 that programming was a dead end, and that hardware repair was the place to be --PeteHardie

I was told in 1987 that nobody can predict the future. That's the one that was right. As far as programming in general, the 1985 people may have had a point: -t

I wasn't warned that I'd have to leave programming to advance - I was warned that "soon" all programs would be written by machines

I'd like to see how such machines deal with users who don't know what the h*ll they really want. I suppose if it can spend all it's cycles redoing everything on an endless trial-and-error loop, it could pull it off.

Had a bad day, Top?

Just the usual: flaky users who gum things up for the shear power-trip of being able to gum things up. Drama-addicts, we sometimes call them.

I bet they like provoking nerds.

If so, it works.


If you wish to sell your ideas, TopMind, perhaps you should write some papers or attend some conferences on these subjects. EvaluationAndUsabilityOfProgrammingLanguagesAndTools? (PLATEAU) is getting together 2010 October 18. http://ecs.victoria.ac.nz/Events/PLATEAU/WebHome

Reno? Like they will get any actual work done, he he. I guess SoftwareDevelopmentIsGambling ;-)

One town is very like another when your head's down over your parentheses, brother.

{Conversely, you can find booze, gambling and hookers everywhere.}


Addressing Specific Issues


I see it as even more fundamental and less scientific than one would realize. Let us say the requirements are fair (none of the languages in question have large portions of the problem domain in their standard libraries) and generated by double-blind rig so that the requirements writers cannot choose to favor a particular language, and furthermore the original samples (program before new feature) are written with the best techniques available and the best design possible. In that case, the best you can hope for is a battle of champions and so whatever language has the best champion will win, regardless of the merits of the language in question.

I once was preparing to tackle this problem in a Master's level CS class. The problem is intractable due to the various difficulties including test rig and champion ability.

I don't view it so much as a contest but more of a way to provide a framework to compare, isolate the reason for differences, and suggest further studies. If there is an issue of whether it is a paradigm advantage or a language advantage, then further tests can be done. Also, Ideally, each paradigm is tested under multiple languages such that one can see if any "winner" shines more per language or per paradigm. Since Lisp is a multi-paradigm language, perhaps it can be used as a kind of control language.

It's a starting point, and a step above anecdotes and holy-wars, which is the only technique used now. You seem to be saying that one shouldn't embark on a journey unless one is sure to find the destination.


See also: CodeChangeImpactAnalysis


CategoryRant, CategoryMetrics


EditText of this page (last edited October 10, 2010) or FindPage with title or text search