A while ago I wrote a post about what it takes to bake a 762 layer cake; a thinly veiled metaphor of modern real-time software development. In the end, the sheer size of what we must maintain for today’s standards has created something of comical Rube Goldberg approach to keeping it all together.
I’ve recently ventured outside of real-time simulations and video games to peek into the world of the internet. I’ve discovered that there is no better example of the threats we all face than to look at what happens in an environment of rapid growth and profit. Welcome to the World Wide Web.
A friend and I had a long discussion about our future as software developers. We are getting older each year and, though our skills continue to branch and strengthen, it’s really a series of diminishing returns. Salaries eventually cap, and certain branches turn into dusty skills that are reserved for those few and far between contracts that pay generously just for remembering how that dated system still works. Video games are something of a young man’s dream; long hours, little pay, and a decreasing chance of personal success in an increasingly crowded and turbulent industry. My friend has left the real-time world behind and found new gold in old hills; web applications. He has convinced me to at least stick my nose in the door but I must admit I don’t like what I’m smelling.
Not having touched client-based web technologies since HTML 1.x in college, I spent a few days reading about web technologies. In my ventures I followed a trail of dead and dieing technologies, and I watched libraries abandoned and forked over and over. It was like a class in digital World History to watch these frameworks and languages thrive then die… but did they? Not really.. Many hosting sites continue to support aging technologies while some websites and web applications continue to push forward with a blend of old and new. There is only this unsettling sensation, but without any definitive facts, that most of what exists out there is in perpetual deprecation; and yet it’s still there, all of it.
I started looking into AngularJS. I’m told it’s the new hotness right now. As I learned more about Angular I fell deeper into the rabbit hole. It lead me back to my old stomping ground of HTML. This brief homely sensation was replaced with dread as I dug deeper into CSS hell. Magical tags of :before and :after and .show and .hide were everywhere. A face-punch of intrinsic appendages were scattered in there as if one was simply expected to know. I mean why wouldn’t you always include webkit-box-shadow and moz-box-shadow with box-shadow in your style template right? Duh! This is further complicated by the insistence to include other styles such as Bootstrap to help reduce the pains of mobile support. To add insult to injury most of this was processed through “Minification” which decimates the readability to save a few bytes of download and improve parsing performance.
The documentation and vast majority of training material seems highly geared toward Linux or OSX users. Most of the tools don’t even run on Windows. I spent what felt like days, installing various software packages to avoid dual booting into Linux or building virtual machines on my PC just to compile these libraries. Eventually I just gave up and used the pre-compiled Angular and Bootstrap files. I still don’t know if I’ve executed enough command lines to actually boot a local web server. I still don’t know what half of these packages do; many of which have home pages that only say, “A tool used to make your life easier. It does other stuff too.” Gee thanks.
The Internet is broken. I’m convinced of it. It’s built on a collection of systems that require an institutionalized knowledge of how things work now and how they have worked for the last 15 years or so. It’s a backwards compatibility nightmare that I don’t ever see going away. I’m certain that technologies like Angular are just another stop-gap in the road to figuring out what the web is supposed to be. I’m not sure we’ll ever get there in my lifetime, but it’s a pretty filthy place to be in right now.
Days later, I’m still working on my Angular “Hello World”, but only after I figure out why Bootstrap glyph icons aren’t rendering… as soon I figure out why I need to:
Ohh.. Bower not… Nevermind.