Archive for February, 2006
Beauty, Artistry, and computer code.
Tuesday, February 21st, 2006I’d like to take a moment to wax poetic. Code hackers have a term for well written code. Elegant. We appreciate elegant design and algorithms in code. It’s a pleasure to work on code like that. We will stop and just think “Man, that’s beautiful” Even our quick and dirty scripts somehow turn out to be pieces of art. So what makes a piece of code beautiful? It’s a little bit hard to describe but there are usually several elements that contribute to code’s beauty. Those elements that compose what I perceive as beauty in code are:
- Efficiency
- Cleverness
- Style
- Flow
Efficiency
Efficiency is perhaps one of the most important elements in the percieved beauty of code. Code that is streamlined, sleek, and targetted is beautiful. This kind of code does one thing and does it well. There is no wasted effort or duplicated work in efficient code. Efficient code knows what it needs to do and gets down to business. Many times this equates to less code though not always.
Cleverness
Cleverness is a close second in the elements of code beauty list. Cleverness as defined by “Now, that’s a cool way to do it!!” It’s coming up with a better and heretofore unconsidered method or algorithm to get the job done. It’s similar to those paintings in art with surprise built into them. Like the excercises in perspective where you don’t realize it’s a painting till you get close. It makes you stop and go Wow! Now that’s cool. Code cleverness usually has a lot to do with Efficiency. If your clever hack makes the code less efficient it may actually decrease your codes beauty. It can be a double edged sword.
Style
Style along with Flow are the subjective parts of the beauty equation. It means different things to different people. It’s part of what makes someone love perl and hate python while a different person loves python and hates perl. Style encompasses such things Indenting, code organization, and naming conventions. Everyone has a different opinion of what looks good. Similar to art where one person likes modern art and another thinks it looks ridiculous.
Flow
Flow is also a highly subjective part of the beauty equation. Some people like to flowchart for days before even touching the keyboard. Others prefer to let the programs logic structure sort of organically grow. Still others prefer a balance somewhere between the two. Flow covers how your code handles the various tasks that it is responsible for. It encompasses reusability. And it can increase or decrease your code’s efficiency. Like Art everyone has their own definition of what is beauty when it comes to Flow.
So how do you classify beautiful code? Let me know in the comments.
Gmail *Talk
Friday, February 17th, 2006One of the things Google does well is integration that makes sense. Take the new enhancements to Gmail And Google Talk. For everyone who thought that we didn’t need another talk client May I humbly present: Gmail Talk beta. I knew they had something up their sleeves. And the integration is both seamless and easy. This is what makes Web Applications done right such a beautiful thing.
I just log on one day and boom my wife can IM me an important message with no work on my part whatsoever.
- No client to install.
- No configuration option to set up.
- No service to sign into.
Now that is the way it should be. Invisible till I need it. Just instant communication from just about any web browser in the world. Now all I need is Google Calendar and my Google Experience is complete.