Languages I’ve Learned, or Not — Web 1.0

Michael Gant
5 min readMay 3, 2019

--

In my 20+ years as a professional software developer, I’ve learned a variety of languages and tools. Of course, there are many more languages and tools that I’ve chosen not to learn, or never had the chance. Regrets? I’ve had a few…

I remember the first workplace where we had the Internet. The year was 1997. The operating system was Windows 3.11. Email was on the mainframe and was strictly internal. There was an “Internet Computer.” It was set up in a spare cubicle and connected to a dial-up modem. You could reserve time on the Internet computer, but you had to have a very good reason. Among the things that would not have been good reasons: checking Facebook, Twitter, or LinkedIn, shopping on Ebay or Amazon, or posting on StackOverflow — none of those things were things then, but even if they had been, the Internet Computer could not have been used for such mundane purposes.

The Web was much smaller then, and the variety of tools to choose from was also small.

There was CGI, which, as I understand it, executed some code (probably Perl or something similar) on the web server (probably Unix), which generated some kind of response to send back to the client. The main thing I remember about CGI was that, whenever I saw cgi-bin in a URL, that was my cue to go grab a cup of coffee, because many of those sites were painfully slow to load.

Java was there. Java applets, running right there in the browser. Of course, I learned and used Java eventually, but I’m pretty sure I never wrote an applet. I actually wonder now, looking back, how many real-world applets there ended up being, and for how long. It seems like an important but short-lived (and maybe long-tailed) phenomenon.

I eventually learned to do ASP — the old-style, classic, spaghetti-code ASP — but I didn’t learn it on Visual InterDev like Microsoft meant for me to. It was actually on one of those lovely Macromedia tools that Adobe absorbed and then mostly let fade away. Dreamweaver, maybe? Wait, I just googled it, and, actually, Dreamweaver is still around. Who knew?

I hesitate to speak of PHP in the past tense, because I know lots and lots and lots of people still use it. I’m not sure how many use it by itself or with something like Laravel vs. using it to extend WordPress. So it’s not past tense. But at the same time, I can’t help feeling like the time for me to have ever learned PHP has passed. I understand that PHP is a general-purpose scripting language, not just a HTML templating tool, but it’s hard for me to get past seeing it that way. I don’t need a templating tool on the server, because any kind of dynamic UI happens in the client now (more on that in another article). Server-side non-UI doesn’t seem to be a particular strength of PHP either. So no disparaging whatsoever if you love it, but I can’t think of a reason to try to.

In fact, if I were going to learn a general-purpose server-side language from the older generation at this point, it would be Python. I still am looking, longing even, for a good reason to learn Python.

I can’t seem to get a feel for where Ruby fits in now. My sense is that it’s matured to the point that it’s no longer exciting, even though it’s still probably an excellent tool. If I had a client with an existing Ruby install, I might just jump in and learn it. Otherwise, I think it may have passed me by.

Of course, I’m moving sort of forward through time here, and I’ve come back around to Java, this time to Java EE. We had some good times, Java and me. I was working mostly on Microsoft technologies (more on that in a minute), but I ended up on a project working with an intensely Java-focused team. They were running J2EE with Struts and Tiles (don’t remember what Tiles were; Struts was just MVC, I think), on WebSphere Application Server running, ironically, on Windows. I really kind of enjoyed my time with Java EE, JSPs, servlets, beans of all persuasions, and JARs WARs EARs and all that. But Java EE was like this whole other world, a parallel universe to what I was familiar with. The Java guys were nice, and reasonably accommodating. But my takeaway from the experience was that, in Java EE, there were at least eight different tools and/or techniques to solve any given problem and they were all wrong and you were an idiot. Maybe it was just me. Either way, good or bad, I think Java’s biggest days as a web language — even the web language — are basically behind it.

I’m going to backtrack just a touch, to ASP.NET 1.1 through, I don’t know, 4 or so. When I started on the web, I didn’t really grok the stateless request/response flow of web applications. Apparently, my level of cluelessness was sufficiently common to allow Microsoft to succeed in constructing and, for a time, maintaining the elaborate fantasy known as WebForms. Windows forms (WinForms) were inherently stateful. I mean, not inherent in any special sense, because if we (my fellow Microsoft developers and I) had understood separation of concerns as we should have, we would not have been so accustomed to hanging on to so much information. But we didn’t, so we did, so they were, if you know what I mean. So WebForms gave us a way to emulate in a Web application what we shouldn’t really have been doing in our Windows applications.

I won’t go into all the flaws of WebForms. They (the flaws) were fundamental, pervasive, and probably interesting enough for another article. The irony, though, was that WebForms was meant to be an improvement on “classic ASP”, but turned out to be worse in a totally different direction.

I do want to redeem myself a little, though. Once I understood WebForms, I ended up instinctively fighting against it. I built ASHXs instead of ASPXs — my server-side code was essentially headless — and built my application in actual HTML and JavaScript with AJAX calls (which was way harder then, on IE6, than it is now) rather than generating it on the server side. In a way, I can’t help feeling like I was a little ahead of my time with that.

Speaking of redeeming myself, I never built anything in Flash. I remember when Adobe Flex launched, and Yahoo moved a few of the applications to it, including their Mail application. I was interested for like five minutes. It seemed promising, but maybe a little ill-timed. HTML5 was just around the corner, and there just wasn’t a need anymore.

Finally, the JavaScript libraries. The first one I actually remember using was YUI, from Yahoo(!). It’s long dead now, but it was great at the time. I tinkered with a few others. There were approximately 825,000 that I never bothered with, some of which I probably could have learned something from. I have to admit to a rather deep streak of NIH and have reinvented a lot of wheels, especially in JavaScript. I’m getting better about that.

I still work with web technologies quite a bit, in fact more now than ever. I’ll talk about some of those another time.

--

--