.

Wednesday, May 29, 2019

The Problem: Rewrite Mania :: essays research papers

The Problem Rewrite ManiaI have been noticing a certain trend in softwargon toward rewriting successful tools and standards. It seems that programmers always have the urge to make things better, which is perfectly understandable - after all, this is the primary trait of the engineers mind (although I in any case think that artistic creativity also enters in the mix). Why should things stay static? Surely progress is good, and if we just stayed in the identical place, using the same var.s of tools without improvement, then things would deteriorate and generally get pretty boring. Thats all very true, yet what I am seeing is that in many cases we have tools which sincerely are "good enough" for what they are designed to do - TCP/IP allows us to build giant, interconnected networks, Apache lets us build flexible blade servers, Perl lets us write incomprehensibly obfuscated code()... well, point being, these things work. Really, outstandingly well. They are "good enoug h", and moreover they are used everywhere. So alls well and good, right? Well, not exactly. The programmers supplement little bits and pieces here and there, fix lots of bugs, and over time the code starts to look distinctly messy - and with the insights gained from this "first version" of the application (I dont mean V1.0, but rather the overall codebase) the developers start to think about how it could be "done right". You know, now they know how they should have done it. Fired with new flair and enthusiasm, the developers embark on a grand rewrite project, which will throw out all the old, stale, horrible, nasty untidy code, and construct reams of brand new, clean, designed, and, uh, buggy, incompatible, untested code. Oh well, itll be worth it ... right? So the new version will break some things that worked with the old version - the benefits from the changes far outweigh a loss of reluctant compatibility. In their minds, the developers are more focused on the cool aspects of the new version than they are on the fact that in the real world, millions of people are still using the old version. Eventually, then, the new version comes out, to grand fanfare. And a few people download it, try it... and it doesnt quite work. This is perfectly normal, these things need time. So all the people who are running large production systems with the old version just back off for a while until the new version has been tested properly by, uh, someone else.

No comments:

Post a Comment