Shifting Gears

Well, I’ve lost a little regularity to my posting. In truth, I’ve reflected a lot on what I wrote in Confessions of a Boardgame Potato. I realized I was sinking entirely too much time into the boardgame sidelines… it really was obsessive. Unbelievably, I’ve broken out of the addiction and centered my attentions on another area, namely my career.

I’ve been a software developer for some time and have learned tons by the tail end of each project. In retrospect I’m always critiquing myself and thinking, “Now why did I do it that way?!” Periodically, I rediscover my passion for coding and learning the lastest technologies and best practices. In truth, I find it tiring how many times technology overtakes me and requires me to learn an entirely new set of skills. (It’s exciting too, but a two-edged sword nevertheless.) While much of the applied knowledge carries forward, the latest technological fads begin their demise within 5-7 years. I was late into web development. About 5 years ago I taught myself ASP, now Classic ASP–see what I mean!–and then not long ago Microsoft released .NET and ASP.NET. I adopted C# fairly early and began developing a large .NET application, but no ASP.NET. It’s only recently that I find myself required to learn ASP.NET if I wish to be eligible for contracting work in the Harrisburg, PA area.

Actually, when I got my first collection of .NET books several years ago I did get the Wrox Professional ASP.NET title too. My workload at the time demanded desktop software, and so I procrastinated with ASP.NET. At one point perhaps a year and a half ago I began reading the book and doing some of the practice exercises and learned a little, but–fast foward to today–it didn’t stick. Today I’m devoted to tooling up. I purchased the successor title Professional ASP.NET 2.0 as we’re already in the next iteration and I’m trying to absorb the whole of it. (By stacking both books I can use them to look over my neighbor’s fence!) Let me tell you comparing ASP.NET to Classic ASP is like comparing a whale to a salmon. Microsoft by holding nothing back likes to create sophisticated and robust technologies (often bloated) that require stirrups with which to climb.

I mean, why for goodness sake do I have to install an IDE, specifically Visual Studio Web Developer Express 2005, that take nearly a gig of my harddisk!? An IDE should fade into the background allowing me to concentrate on the work at hand without impediment. Instead, I find that as I switch between tabs/views it sometimes takes 30 seconds for VS to get its wits about itself and allow me to begin keying code. I’ve always been a by-hand coder who avoids WYSIWYG and drag-and-drop development. It pains me that the IDE I use hogs so much memory that my machine chugs to keep up. Why must maturing software snowball so? Who wants that!? Really! I’ve learned that more is gained by simplifying, taking away rather than adding. This holds true in writing and in software design. I just want a simple environment with the few handy tools (like IntelliSense) that matter most to me.

How many times have you slapped your hand to your forehead when you double-clicked a file only to realize that you’d have to wait 25-45 seconds for the associated app to load? I’ve learned to associate lean apps like Notepad 2 to file types so that I can enjoy immediate load times. I mean, why have a tank roll up to kill a fly; just pick up the fly swatter and be done with it!

So, I’m learning ASP.NET and I’m wishing I had the freedom to choose my technologies. Trouble is my area demands almost exclusively Microsoft and Java developers. Goverments and organizations for which consultants develop have their own people to whom completed applications will be handed for ongoing maintenance. This demands that the technological platforms align with the skills of their people. Even if I told a client I could develop their desired application using Ruby on Rails in one fifth the time, that wouldn’t fly. They’d have no one on staff with which to support the application once I left.

That brings me to Ruby on Rails. Interesting stuff! What I liked most about it is that it closely aligns with the design practices I grew into when creating ASP web apps. Although I hadn’t learned the technological jargon until later my web apps used elements of the MVC architecture. I adopted the “convention over configuration” ideology. I separated my concerns. Unfortunately, the homegrown framework I developed wasn’t designed with forethought and a plan. It started as a seedling and grew and grew until it produced its own unique kind of tree. It was useful for the rapid developing of web apps that adhered to my conventions. Those conventions became so ingrained in the framework that specialized configuration was difficult to impossible. It’s the whole idea that software evolves. You start with a little something and a little knowledge and you paint and paint until you find you’re in a corner. And then you start over and do it right or as close to right as you can. From what I’ve learned, Rails is this right thing of which I speak.

I have been devoted to learning first ASP.NET (for professional purposes) and then Ruby on Rails (for personal purposes). This along with the other demands of life has kept me quite busy, and that’s not even including AJAX which I’ve already decided is essential. It’s an elephant I’m eating one bite at a time.