Keep the Creativity in Your Development
As a group, we (developers) are a very analytical, very logical bunch. Oddly enough, this contrasts with the stereotypical computer programmer who is quirky in a Steve Urckel kind of way, but that's another topic altogether. We are seldom classified as being creative in any way, nor is our profession credited with requiring too much creativity. This shouldn't be the case.
I guess it all comes down to: Why do we develop? If you develop just to put food on the table and give yourself some time each week to play golf (or Halo, depending on your generation), then that's all well and good. But, you're missing out on the real rewards of being a developer. I know that I personally develop because I can do nothing else.
For me - and I'm sure a lot of you who are reading this - development is an art form. Tuning that algorithm just right is not just a matter of squeezing a few more milliseconds out of our application is a matter of honor and love. We weep when we finish that perfect method which computes the value of phi using the Fibonacci series in six lines flat. Conversely, we weep when we realize we just inherited 20,000 lines of poorly written, poorly designed code which "just gets the job done" without any elegance at all (usually, such code is written by the "golf and Halo" principle).
I guess it's a little surprising that most programmers don't even realize how much satisfaction could be derived from their profession, just by marginally altering their outlook on development. Rather than viewing that script as something which "has to get done," they could instead see it as a chance to exercise some new technique, or play with a new technology. There are so many opportunities in almost any job to get excited about learning something new or to express something old in a new way. It's probably for this reason that all the really good developers out there avoid jobs with a high degree of "soul crushing" work (work with no possible creative outlet). I've seen really good developers go for jobs far less lucrative in monetary compensation just because the problem put forth was so interesting and required such a creative solution.
For me, a lot of creative expression can be found in playing with other languages, even weird and kludgy ones (like bash shell scripts). Learning another language may or may not help you directly in a practical sense, but it does allow for a creative outlet for some development urges which your "everyday language" doesn't allow. For example, when trying to tune that perfect, emotionally recursive Fibonacci algorithm, I would turn to Ruby. Not necessarily because Ruby can do the job better or faster (in fact, it's probably slower than Java for recursion), but because Ruby is (currently) the language I get excited about. Closures, lack of superfluous meta-syntax and a fully dynamic model all seem to really bring out the most programmatically expressive part of me (I'd write poetry, but I'm a terrible poet). Of course, your language of creative choice doesn't have to be Ruby; it could be just about any language you find exciting and fun. The point really isn't that the language is great, it's that you believe the language is great.
That's part of what I love most about Eclipse. Not only does it have the tools which allow you to program in all these cool, new languages; but more importantly, Eclipse itself facilitates creativity. If I find myself suffering from developer en oui, I give some new refactoring or template a try. Instead of fewest lines, it becomes a creative challenge to write an algorithm in the fewest keystrokes, or some such pointless exercise. New features in your IDE can make an old language new again, and provide you with a creative outlet you never knew you had.
Eclipse Headed for Silent Ubiquity?
Jens Eckels (evangelist for MyEclipse) recently wrote what I think is one of the more interesting blog posts I've read in quite some time (granted, the phrase "broad adoption in multiple verticals" seems frighteningly Dilbert-esque). In the post, Jens proposes that Eclipse is headed for a level of adoption and acceptance within the industry such that Eclipse itself is no longer anything worthy of note. I thought that this was quite interesting in that it seems to imply that Eclipse is of the same cultural caliber as something like Microsoft Windows, Microsoft Word, and Microsoft... Well, ok. That was probably a bad example.
Anyway, Jens suggests that within the next 5 years, Eclipse adoptance will totally overwhelm all other IDEs, becoming the de facto standard for any and all development work (see this thread for more on Eclipse as the de facto standard for stuff). Of course, Rouman Strobl had a few things to say responding to the post, but I would expect that any IDE evangelist would respond pretty quickly to accusations that his IDE is going to get buried by its competitor. But what do you think? I mean, I love Eclipse as much as the next guy (well, maybe more), but I'm not sure I believe that it's going to be the "only product out there" - so to speak - in the world of tomorrow. I'm definitely interested in the response to this one. See the EclipseZone thread here.
Whatever Happened to XML?
It actually just struck me that we haven't seen any new XML editor plugins coming out for Eclipse recently. I mean, back in the day those things were a dime a dozen. Part of it might have something to do with the fact that one of the PDE templates is a fully functional, XML editor. But seriously, I once sat down and evaluated no fewer than ten XML editor plugins (excluding all the editors which were just redistributions of the PDE template). Personally, I still use XMLBuddy, but AFAIK there hasn't been an update to this plugin for quite some time. Is the whole "build an XML editor" mentality gone from plugin developers or are we just seeing a dry spell?
Until Next Time,
Daniel Spiewak
daniel@dzone.com
|