Monday, September 22, 2008

Out of control!

On a Java project that I work on part time we use the Eclipse IDE, which is a power tool for Java programming. Java itself gets hard to deal with once your software gets to a certain size, and Eclipse tries to do a lot of the hard work for you. Java would be unusable without such tools.

On the flipside to this, we had been using an older version of Eclipse. Ultimately we decided to upgrade to a newer version (but not the latest) because we wanted to use Subversion instead of CVS for our source code control.

One of my colleages decided to attack the upgrade and document what was needed for everyone to use the new version. It seemed like it took him many days to figure it all out. The new version didn't look too much difference on the surface, but I kept hearing groans from him. Clearly something wasn't going well, so I went over and asked him what was the matter. His answer was simply, "I can't figure out how to do things that I used to know how to do!" The new software was getting bigger and more complicated.

There's a balance to strike when developing software. It's hard to make software easy to use while also adding new features.

2 comments:

Noble said...

This is so very true. I use OpenOffice and it seems to get more complicated and sluggish with every release. The same holds true for VMWare/Fusion. I just upgraded to the latest version and it has slowed my vm's way down.

I really appreciate you growing Liberty slowly like you are. It just makes since.

Tom said...

I can see how it happens. For instance, I like the simplicity if basic languages like LB, QB, etc. However, I love object-oriented programming. Classes and Objects are second nature for me. So should a basic language add object-oriented features? For me, it would simplify things. Inheritance and polymorphism produces much less code, and FOR ME, much more simplicity. However, for a procedure-oriented person, only complexity has been added. The same is true for OO people when languages start adding functional-language features like lambda functions.

I guess the answer always is, you can't please everyone.