Friday, April 10, 2009

Avoiding Fads and Obscure Technologies

Years ago I had a job working with some structural engineers. They had developed a prototype in Fortran and I had to convert it to C++. These guys had no idea how easy they had it, because the science they were working with had changed little in 50 years. They kept getting paid for doing the same job year after year, but they didn't have to learn much new technology.

By contrast, as a computer science grad my field of expertise is constantly changing. Computer hardware is constantly becoming more powerful and the software is constantly changing.

Although it is always going to be a challenge keeping up with the pace of change, isn't it often worse than it has to be? I mean, some people are constantly re-inventing the wheel and/or chasing the most recent fads.

I currently work for a company that has a habit of creating their own in-house solutions for common problems and/or using obscure technologies. One of those obscure technologies is SwiXML. SwiXML is one of a small crop of frameworks built on top of Java Swing. SwiXML allows you to specify a GUI in XML instead of Java.

Why use SwiXML? I think the idea was to create a richer GUI than could be done with the in-house servlets framework they were using before and to do it in a way that did not require as much testing. Apparently, the architects had already written off Struts as not working well in an Agile environment, and Eclipse/SWT was suggested and also shot down. I am not sure what other alternatives they may have explored.

Unfortunately, SwiXML is so obscure that I wouldn't even call it a niche technology. Ruby and Groovy qualify as niche technologies. If I search on the internet for jobs that require Ruby or Groovy, I can actually find some. However, a recent search on SimplyHired.com turned up exactly zero jobs that asked for SwiXML.

Let's face it. Even if you like learning new stuff, there are only so many hours in a day, and only so many brain cells to devote to learning new things. Our brains aren't any smarter than the ones our stone age ancestors used when the most complicated thing they had to create was flint tools. Evolution is too slow to keep up with science and technology. If we're constantly having new technologies forced on us, isn't that bad for productivity? Won't it cause us to only have a surface knowledge of what we're doing?

I would love to settle comfortably into a technology that I could trust to be around until I retire, like those structural engineers I mentioned. Is Java going to be around that long? I think so, but there are constantly new open source frameworks and innovations to learn. Spring and Hibernate are a couple that have become just as important to learn as Sun's standard J2EE technologies.

Evidently, .NET developers have less technologies that they need to be proficient at. Learn C# or VB.NET and ASP.NET and you know everything you need to qualify for most of the .NET jobs that are out there. More than likely, the only IDE you will need to learn is Visual Studio.

It seems that these days there are as many .NET jobs out there as Java jobs. A few years ago I heard that 70% of new development was in Java, but I don't think that's true anymore. So, I think .NET is worth exploring for those who want to avoid wasting energy on fads and obscure technologies.

You can download Visual Studio Express editions for free. If you are a Linux fan, it is now possible to run some .NET applications under Linux thanks to a project sponsored by Novell called Mono. If you decide to give that a try, I would recommend using OpenSuse Linux. Since it is also supported by Novell, Mono is designed to work well with OpenSuse.

I have recently started helping a friend with a small .NET project. I don't know if I will ever totally switch from Java to .NET, but there are some jobs that require both. So, in the coming weeks I will be blogging about .NET and related topics. Stay tuned.

No comments:

Post a Comment