Listen to Thoreau

Posted by Jim Jagielski on Friday, March 31. 2006 in Programming

I am working on a Webinar presentation that I will be holding for MySQL and Covalent about the LAMP architecture. The more I work on it, the more I'm reminded that we seem to be at a point where most technical arguments align along one concept: simple vs. complex. Look at the current favorites: REST vs SOAP ("traditional" Web Services); LAMP vs. J2EE; RoR vs. Everybody Else. Then look at the current "hot" technologies, which run the gamut from AJAX to SOA and ESB. Again, we see the range from simple to complex. And, of course, the old reasons and arguments are still being bantered about: "Simple lacks the power and capability" and "Complex problems require complex solutions." And it's also interesting that when a simple technology takes hold of the community and becomes "interesting" and hot, almost immediately a complex technology (usually a "framework") pops up as well. Like nature, the community must deplore magnetic monopoles. What is going on here? I admit that, at heart, I am a simplist. I value elegant and simple solutions over more complex ones. I also value frameworks and technologies that have those same standards as well. IMO, there are no problems that cannot be reduced to a manageable number of simple constructs. I would guess that most developers and software architects also feel the same way, so why is there such a prevalent prejudice against simple and elegant technology. It's almost as if there is a subset of people who feel that such tools as LAMP or RoR are "toys" and not "worthy" to be considered robust, enterprise solutions. I wonder if part of it is simply to protect themselves, and by fostering complex solutions, they protect themselves and their livelihood. Going by the stories and blogs about various interview "techniques" people have had to suffer through, it certainly feels like it. For example, some of the hoops that candidates are required to jump through seem almost sadistic to me, and certainly do not provide any real clues on how good they are. I want people who can design, who can abstract. I really don't care a fig if they know the full semantics of every function or method call of a particular language set. That's information that you can grab out of a book in a minute. Programming is not memorization, it's crafting. It's art. "Hurry up Mozart, you have 3 minutes to compose a waltz." But those interview horror stories do make sense when seen in the light of the matra "we must perpetuate the complexity of implementation." The desire is not to "get to know" the candidate, but to emphasize how smart the interviewer is, and how complexity is valued, not simplicity. I've said before that programming languages and frameworks are tools, and that you choose the right one for the job at hand. Not everything requires complex solutions, in fact I would guess that 97% don't. Choosing and using a complex technology stack doesn't automatically make your application "advanced" or "enterprise ready" or even "good." It just makes it complex. True Story: Several years ago at NASA, a circuit designer friend was given the task of designing a device called the Essential Power Transfer Unit, which was supposed to transfer electrical power from one spacecraft system to another. There were a whole bunch of specifications, and lots of concerns about the costs associated with it, and the hit to the schedule to design and build it. He used a wire. It worked perfectly. Use a wire.

Note to self

Posted by Jim Jagielski on Tuesday, March 28. 2006 in Programming

Best practices are there for a reason. Avoid shortcuts. Don't try to fix a bug before fully understanding it and, just as importantly, certainly not before recreating it personally.


Posted by Jim Jagielski on Monday, March 27. 2006 in Personal

Weekends come and I always hope to have a few extra cycles open to do stuff that I didn't get around to during the week, mostly coding, fixing some bug or doing some long-overdue testing. Then the weekend comes and I have so many other things to do on the home-and-family side, that my initial plans fall away. For example, this past weekend I was hoping to come up with a more robust balancer inheritance for the Apache web server, as well as button up 1.1.0-beta2 of Telaen. On the former I did maybe 20% of what I wanted to do, the latter almost none (I did that this morning). Instead, I finished sanding the hardwood floors I installed in the upstairs hall and finished prepping the walls in the master bathroom. And, of course, trying to spend some quality time with the family... It's important to keep one's priorities straight after all.

Simple AJAX

Posted by Jim Jagielski on Tuesday, March 21. 2006 in Programming

Me like. Not perfect, but pretty freakin' good.

That's old

Posted by Jim Jagielski on Thursday, March 16. 2006 in Programming

Last week I celebrated by 45th birthday. Funny, I don't *feel* that old, nor do I think of myself as that old. Having 3 young sons (17, 13 and 7) help, as well as having an incredibly attractive wife (we will be celebrating our 20th wedding anniversary in August). So turning 45 didn't hit me all that hard. Then I started thinking about how this means that I've been "involved" with computers and programming for 30 years now, since high school. Now I feel old. I won't turn this post into an "old geezer reminisces about the old days" entry, but I do consider myself lucky to have experienced the revolution from pretty much its onset. I only hope the next 30 are as interesting.

Page 3 of 3, totaling 11 entries


Search for an entry in IMO:

Did not find what you were looking for? Post a comment for an entry or contact us via email!