Michael J. Braude wrote a post on why he’ll never be a “web guy”. The gist being, the annoyances of writing for the web are not the sort of challenges he wants to tackle as a programmer.
Then Jeff Atwood gave his two cents on why programming for the web is where it’s at — it’s fast, it gets seen by more people, and more and more great apps are being made on the web.
I’m sure Michael has a point. I think the way he said it got up Jeff’s nose a little (it certainly got up mine), but it’s valid. For some, the web just seems simple and trite. My lecturer thinks like this I suspect. I also agree with Jeff that it’s somewhat myopic — if you dismiss web apps, you dismiss a lot of clever, well written programs right out of the gate.
The debate got me thinking about why I’m studying programming. I’m a web guy, but not even “smart enough” to “throw an ASP.NET webpage together”. But I see the innovation in web pages. I also see how useful these technologies will be moving forward. While Michael is coding apps that will work on one type of system sitting on someone’s desk, programmers like Jeff are making universally accessible programs that are instantly available to anyone with access to the internet. I could learn to regurgitate borrowed code in half-arsed web pages and validate Michael’s argument, but I’d rather learn to do it properly.
When I was leaving high school and thinking about what to study, the web was just starting to become mainstream. One teacher I got advice from had been programming years earlier and painted a picture of a world of drudgery, typing pre-written code without chance for innovation or personal expression. It was not a nice picture. I probably let myself be swayed by it too much I’m sad to say now.
What I discovered in the years after, is how exciting the world of web programming can be. Instead of being a small cog in a giant programming machine, a web programmer can be a vital part of a small team who’s work can be seen instantly. Of course I know now the same can be said of non-web programming, but the web was what opened my eyes.
So I’m going back to study to do something I should have done all along. And I’m going so I can understand: “virtual methods, pointers, references, garbage collection, finalizers, pass-by-reference vs. pass-by-value, virtual C++ destructors, or the differences between C# structs and classes”. And then I’m going to use that knowledge to make the best web programs I can make. Maybe along the way I’ll learn enough that web programming seems trite to me too, but I’m not expecting to. I agree with Jeff, and strongly believe good web apps are only going to become more important.
I want a slice of that action.