For a good part of the last couple of months, most of the time I’ve spent in front a computer has been used to explore the current world of software development. Developing software is how I started my career, and is something which I always had a total blast doing – in an obsessive-compulsive, off-the-scale intense sorta way. My wife always used to tease me that I had two personas – the software development one and the normal one. Not that it was all that great, but she liked the latter one a lot more.
It’s probably worth mentioning that while I enjoyed it and got to write a lot of code that people bought for real money, I was never an A-class developer. Eventually, I discovered that managing development teams was more of a natural fit for me and I only looked back longingly once in a while.
Things have changed a lot since I last delved into development. C, which used to be used for just about everything, has been replaced with newer, updated, object-oriented languages inside rich environments that actual make it easy to incrementally build software projects and target them at multiple operating environments and platforms. As with most things, though, all of this power has created new levels of complexity. To successfully build even moderately complex applications seemingly requires at least a passing knowledge of several languages and environments. Because of this, it’s not the writing of code that takes all the time (including debugging), but it’s the ramping up on all the various pieces required to create the application.
For example, my recent journey included spending time using Ruby, Rails, C#, Visual Studio, PHP, Eclipse, HTML, Visual Basic, SQL, XML, CSS, etc. Even with all the documentation and help available on the web, the confusing set of technologies each take some time to understand enough to be able to use them.
After investigating the list above and a few others, I decided to start writing a web application using Visual Studio, C# and of course, HTML and CSS. My goal was to be able to put a home weather station on the Net. This was a crappy choice for a first project since I also had to debug serial and TCP communication. No guts no glory.
It was a fun ride. Eventually, I had only a couple of hundred lines of code that implemented the project, although I probably wrote several thousand trying to figure things out. Since I couldn’t find anything like it mentioned on the web, I published it here. If your interested, there is a complete description of the project as well as the code at the link.
Even though it took an unreal amount of time, I had a complete blast. My wife frequently said things during the project like, “stay away from your father, he’s programming,” worrying for the safety of her children. Or, “uh, oh, he’s coding again – we’ve lost him.”
I’m going to try to continue to do development at some level so I don’t have the same steep learning curve to climb again. But for now, maybe, I can use my computer for some blogging as well.