Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

schwern (1528)

schwern
  (email not shown publicly)
http://schwern.net/
AOL IM: MichaelSchwern (Add Buddy, Send Message)
Jabber: schwern@gmail.com

Schwern can destroy CPAN at his whim.

Journal of schwern (1528)

Saturday May 03, 2003
11:59 PM

I Cringe

[ #11995 ]

[cogent showed me this one]

I, Cringley demonstrates what happens when you open your mouth REAL WIDE about a topic about which you know nothing.

Cringley tries to talk about the economics of Open Source It ain't no Homesteading in the Noosphere. Towards the end there's some rehashing of the old "there's too many projects, its all confusing and thinning us out" whinging that misreads Open Source as some sort of dispersed business venture. Feh. But that's not what caused my eyeballs to drop into my stomach.

Look how many Open Source projects have updated versions and the changes read "cleaned up some code." What that really means is the programmer loves his little project, and a few fans have made him love it more, and he just NEEDS to touch it. He can't keep his hands off the code even when he isn't adding new features.

"Cleaning up code" is a terrible thing. Redesigning WORKING code into different WORKING code (also known as refactoring) is terrible. The reason is that once you touch WORKING code, it becomes NON-WORKING code, and the changes you make (once you get it working again) will never be known. It is basically a programmer's ego trip and nothing else. Cleaning up code, which generally does not occur in nature, is a prime example of amateur Open Source software.

ALERT MARTIN FOWLER! Refactoring is all just an ego trip! Hoooboy. I've never seen anyone attempt to turn programmer hubris on its ear that badly before. Yes, we should not attempt to improve the design of existing code for fear we might break something. Spagetti code all 'round, boys. I wish I could offer Cringely a free pass to a testing tutorial so the man can have a little confidence, geez. A little less harshly is to say that Cringely doesn't really understand Refactoring, its just "cleaning up code for no apparent purpose". A lot of people don't understand Refactoring, but they don't have a column on PBS.

Even better is what cogent has just coined: "Cringely's Second Law of Softwaredynamics: Software only ever goes from WORKING to NON-WORKING".

Since all changes to WORKING code become NON-WORKING code than no changes can be made to WORKING code which produce WORKING code (unless we allow that one can go fro NON-WORKING to WORKING). Taking this to its illogical extreme, Cringely is proposing a Creationist view of software development! WORKING code cannot be created, it can only become NON-WORKING code! All WORKING code must have existed at the beginning of time!

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • by chromatic (983) on 2003.05.04 3:20 (#19764) Homepage Journal

    I saw that earlier today and sent Cringely a lengthy e-mail. Here's the conclusion:

    Now rewriting code for the sake of rewriting (without a concrete goal in mind) or refactoring without tests are both silly and oughtn't be done and happen all too often in the open source world. They also happen in the proprietary software world too, unfortunately.

    We just hear about them more in the open source world; there's less to hide.

    Good on you for suggesting a free day pass to Testing Boot Camp, though.