Sunday, October 23, 2005

Getting back to simplicity

There is a trend in computer usage that I like: getting back to simplicity. Unless you want them to for entertainment, computers should simplify your life, not make things more complex. I think that this goes for developing software also.

As a Java developer, I used to want to know and understand every nook and cranny of the language, standard libraries, the JVM, and the entire J2EE stack. Now, I find myself concentrating just on those technologies that are most useful for getting work done: on the server side JavaBeans, JSPs, custom tag libraries and a small number of persistence strategies. On the fortunately rare occasions that I need to write JFC based clients, I simply use the NetBeans UI designer to bang out the framework with event handlers stubbed out. Simplicity of tools and approach, and concentrate on problem solving...

I have also been really getting into the simplicity and consistency of the Ruby on Rails framework. Except for very large scale web application deployments, I now think that RoR is a very viable option to server side Java. Again, easy to master tools let you concentrate more on problem solving.

In my work I have tasks that need to be done on Linux, Windows, and OS X systems - not the best for striving for simplicity! I manage this extra complexity having a beefed-up PC configured for both Linux and Windows XP. The default boot is Ubuntu Linux and I have nothing extra installed on the system except for what I need to work: IntelliJ, Tomcat, JBoss, Ruby, Ruby on Rails, Python, the gcc/g++ toolchain and OpenOffice. I don't boot up to "have fun" (well, work is fun, but you know what I mean).

I separately have Windows and Mac OS X systems configured with both entertainment software (video editing on the Mac, etc.), and development tools. Except for work for 2 customers, I generally don't boot OS X or Windows to work.

As a computer user, I really like Ubuntu Linux: I use it and don't really have to think about it. Updates are easy and transparent. I wanted to burn a data DVD-R backup a little while ago: pop in a blank DVD-R, drag the files to backup (everything on /home :-) and burn it. At least as easy as OS X, and easier than with Windows XP. The Ubuntu desktop seems to not offer as many options (without digging), but just presents functionality that you need - they do a very good job of putting together a user-oriented Linux distribution, BTW.

My next move to simplicity is moving the data for most of my writing off of my computers and use one of my rented servers and the document management application that I am now developing using Ruby on Rails - I expect to be done with that in another free evening or two. I decided to put together this web based content management system for myself after realizing how nice it is to just use GMail, del.icio.us, Yahoo Calendars, and other web application to organize my stuff.

No comments: