Print

Windows & .NET Watch: Software's just a system for stuff



Larry O'Brien
Email
January 15, 2009 —  (Page 1 of 2)
The great philosopher George Carlin recognized that “a house is just a pile of stuff with a cover on it” and, further, “that’s all you need in life, is a little place for your stuff.” He may as well have been talking about software development.

Lately I’ve been wondering if this is not the defining characteristic of good software: stuff in the right place. At the line-by-line level, variables are limited in scope and initialized near their behavior. Functions are little piles of related stuff, functions are piled into larger piles (perhaps objects, perhaps libraries), and then you put a cover on it and call it a system.

Bad software is also a big pile of stuff, but all the stuff’s mixed up—a variable initialized over here is used over there and then never again, but it is left lying around in the pile; a function that does a whole bunch of stuff; my stuff and your stuff are in the same pile, so we can’t tell whose stuff it is; and so forth.

I remain a big fan of object-oriented programming, which does not have nearly the cachet it did a decade ago. When a client throws out a buzzword today, it’s much more likely to be “AJAX” or “Service-Oriented” or even “RIA” than it is to be “OOP.” Buzzwords come and go, but even among programmers today you’re more likely to hear “functional” rather than “object” approaches lauded.

While functional programming has much to contribute, it seems to me to fall short of object orientation in terms of keeping stuff in its place. Functional programming is nicely Spartan in how stuff is piled and how you move stuff (by making a pile of stuff). However, it seems to me that functional programming falls short in explaining how you organize larger piles.

I don’t use a lot of instance variables in my classes anymore; the functional approach of controlling state with parameters and return variables is generally clearer, easier to test, and beneficial in concurrent programming. But I very much value that classes create a natural order of places to keep and find stuff, and they become effective packages that I can use to make bigger piles of stuff.



Related Search Term(s): Web development

Pages 1 2 


Share this link: http://sdt.bz/33187
 
Most Read Latest News Blog Resources

Add comment


Name*
Email*  
Country     


  • Comment
Loading




close
NEXT ARTICLE
Book Excerpt: The Tangled Web: A Guide to Securing Modern Web Applications
From Part III: A Glimpse of Things to Come Read More...
 
 
 
 
News on Monday
more>>
SharePoint Tech Report
more>>


   

 
 

Download Current Issue
MAY 2012 PDF ISSUE

Need Back Issues?
DOWNLOAD HERE

Want to subscribe?


 
blogs tab
Creation
To write better software, cultivate your ability to be creative.
05/19/2012 07:40 PM EST

Slick...but who needs it?
compilr.com is a well-designed site and the folks behind it seem to have their heart in the right place. But...who needs it?
05/16/2012 12:45 PM EST

How to be a better software developer
Want to be a better developer? You won't get there by mastering an interesting language or learning a new set of APIs.
05/14/2012 12:18 PM EST

Wooing Galatea
Do yourself a favor and check out Galatea 2.2, a wonderful book by novelist Richard Powers.
05/12/2012 07:05 PM EST

The world as story
An artificial-intelligence system at Carnegie Mellon seeks to understand the world by making statements about it.
05/10/2012 06:39 AM EST

The Rise of the Brogrammer, or the Rise of the Sexist Programmer?
Women in Silicon Valley get vocal about sexist ads and campaigns that contribute to a tense work environment.
05/09/2012 03:14 PM EST

 

Events calendar tab
5/23/2012 to 5/24/2012
Chicago
IEG

6/3/2012 to 6/7/2012
Orlando
IBM Rational

6/10/2012 to 6/15/2012
Las Vegas
SQE

6/10/2012 to 6/15/2012
Las Vegas
SQE

6/11/2012 to 6/14/2012
Bellevue, Wash.
AMD