Monday, March 23, 2009

Is this the final Eclipse, or will Sun be fine in a Big Blue sky?

The recent rumors about IBM purchasing Sun present some interesting considerations.  The biggest question is whether IBM is interested in the hardware assets, software assets, or both?

The most obvious question is about the future of Java - with IBM in control, would Java become more or less open? What would become of the JCP? IBM would likely want the ability to exert influence over its new baby, so there could be big changes in store...

Being a Java developer, some the other overlaps between IBM/Sun products give me cause for concern:
  • Servers - WebSphere is well established, what would happen to the less than successful server initiatives from Sun (Glassfish, etc.).  Would they continue to receive any support from IBM?
  • Tools - Which IDE will win? NetBeans or Eclipse? 
  • Databases - MySQL or DB2? Yet another conflict here (perhaps less of an issue, given the target markets).
  • Operating Systems - Solaris or AIX?
I guess we'll have to wait and see if anything comes of this, or if the rumors go away as quickly as they started.  For some reason, I doubt the latter.....

Tuesday, March 17, 2009

What's in a name?

Like I mentioned previously, I'm reading the book "Clean Code" right now.  Great book.  There are lots of great tips on how to write clean code. There's a whole section dedicated to naming (and rightly so).  

Its easy to overlook how important it is to use care when naming classes, methods, variables, etc. Two of the tips seem like statements of the obvious, but I have found to be more valuable than one might guess:
  • Use Pronouncable Names
  • Use Searchable Names
Pronouncable names make it easy to discuss the code with other developers, which leads to better code (and a better understanding of the code by the development team).  Searchable names make it easy to find specific parts of the code that you may need to come back to at some later date.

These two simple items will make your life much easier over the long haul (since we all know that often the code we write lives much longer than we ever expected it to...).

Saturday, March 14, 2009

Good books for programmers

Clean Code: A Handbook of Agile Software Craftsmanship
Right now, I'm reading "Clean Code: A Handbook of Agile Software Craftsmanship" by Robert C. Martin.  This is a great book - a lot of tips that sound like common sense, but are often ignored (even by seasoned developers). This book does a nice job of codifying the best practices of some of the industry's best programmers.

Refactoring
Another book that is great for younger developers that are looking to grow their skills and improve the applications that they develop. "Refactoring: Improving the Design of Existing Code", by Martin Fowler talks about the process of gradually taking an application and improving it incrementally to "fix" the design (plenty of additional knowledge is gathered in the development process, so at some point a developer needs to go back and apply that to the design).

There are plenty of others:
  • Effective Java - Joshua Bloch (more good tips)
  • Practical Java - Peter Hagger (yet another collection of good practices)
  • Expert One-on-One J2EE Design and Development - Rod Johnson (a pre-curser to his work on the Spring Framework)
What else???