The Web Is The New DOS
Tuesday, 31. October 2006, 16:22:40
Reading slashdot, I came across something that really caught my eye, but didn't surprise me in the least bit. This article[1] (warning: long) talks about how Sourceforge can't find superstar programmers for their site. The first thing that struck me is 'superstar programmer' and 'sourceforge'. Now, I'm not rapping on Sourceforge. Yeah, some people don't like the way they're doing things lately, but that's not the issue. Sourceforge is a web site. They want superstar programmers for a web site. I'm also not dissing programmers for working on websites, but I can't for the life of me think why an advanced programmer would want to work on websites.I also have the utmost respect for web programmers. They need to know their Ruby, Python, PHP, Perl, Java and Javascript that works differently on about five browsers, not to mention the different versions of these browsers. They must know CSS, XML, HTML and all aspects of box layout if they so choose as well as DHTML (how layers work in different browsers). They must also know their Apache, IIS, MySQL, PostgreSQL, Oracle and DB2. They need to know how best to cache often used pages such as eAccelerator or Zend for PHP. They need to know about all sorts of different machines where the hosting can be done which on Sourceforge involves at least a dozen different kinds of machines. This means all sorts of Linux and Windows experience is necessary, mostly Linux though. Then you need to be able to figure out what kind of web templates the previous programmer has implemented. Normally templates have tags in the web page to be substituted by values in the database all the while using CGI and making sure the output is correctly formatted according to the layout of the page. We'll leave out the CSS vs. tag vs. table column naming conventions for now.
So yeah, web programmers need to know a lot of shit. But it is SHIT! I can't imagine anyone finding this stuff fun. More to the point, I can't see superstar programmers finding this fun. And it's not just about fun, even at a lower threshold of acceptable or bearable, I just don't see it. Heck, the header and design of this blog took me forever because I wanted it just right. You can find a few entries on the hassles I had to go through, especially when the Opera designers decide to change something without informing its users. I still haven't fixed the search results page. I have to dig up the CSS and find out what tag they used for the result. Then I have to format it correctly. That's why I left as much as possible intact in its original form so it wouldn't break. The quote tag still looks horrible. These things are annoying because the web is in a continuous state of flux. It betrays any concept of proper design or any attempt to do so.
I doubt if anyone reading this has worked in construction, but I have it on good authority that a golden rule of thumb is that if you start friggin' with stuff, you're wasting time and money. When you start doing this, you may as well go home because you're doing it wrong. If you start to cut corners or start trying to 'make due' or are trying to fix problems that you uncovered caused by previous workers (usually behind walls), then you're really wasting money and you should avoid it literally at all costs. In the programming world, web programming is 100% friggin' with stuff. It's all a bunch of ad-hoc details that you have to patch together. And most of the time, you're fixing other programmers' bad work. In any other field, this would be banned and anyone suggesting doing it this way would be blacklisted. Usually, when you uncover this kind of problem, you tear the whole thing down and start over from scratch. But not in IT. Oh no! We have to preserve existing infrastructure, whatever that is.
I want to shift gears a little. We often hear that what the Internet or the Web offers is the next level in application development. That the monolithic style of software development found in desktop applications does not translate well to web applications. Well, this may be true, but for different reasons. Web applications suffer from a great deal of obstacles not found with desktop applications.[2] Contrary to popular opinion, the web still has a lot of catching up to do. And what's strange is that with all the programmers who work in IT, you would think that one of them would try and make things better. Unfortunately, we only see programmers improving their favourite tool and never tackling the real problem. The 'superstar' programmers that work in web related environments have their own agendas. But where are the other superstar programmers?
On slashdot, many are commenting how they left the field. IT was what was demanded, but after a while they let go. IT is still with us, but there's nothing new and refreshing. The web is OLD! It's passé. And it's corrupt. People don't like working with things they have to keep friggin' with just to get it to do something, anything. You know what it reminds me of? The web reminds me of the DOS days where everyone did things their own way. It's a perfect replica actually. There was a thin interface that was common to all applications. In DOS, it was the executable format. On the web, it's CGI. Both have ways to transfer parameters to the application in question and provide an interface to display those results. One has the command line and DOS has, well... the command line. Just as we used to look in subdirectories for applications, we now look in uhh... subdirectories for scripts or web pages. If these are server side scripts, we can pass parameters delimited by '?' and '&' characters. DOS and Unix use spaces. Have we gone from bad to worse?
My question is who in their right mind would want to go back to the DOS days? That's exactly what we're doing. Everything and everyone is doing things their own way. Everything has to be redone because no one can agree on anything. Just as DOS died out, the web emerged. Oh sure, the interactivity is great on the web. The amount of content is much more than we ever had even if much of it is crap. But is it fundamentally different? I can't see it.
It almost reminds me of kids who were wearing baggy pants and bell bottoms in the 90's. I was just out of high school and thought: "These people definitely didn't grow up in the 70's or early 80's and definitely don't ride bikes". The 70's and 80's remark is because bell bottoms are butt ugly. Even if you like them, it's been done. Move on. It's like a comment I read online about this little girl in New York Square looking at a poster about a movie based in the 70's. The little girl's comment to her mother was: "They used to dress so retro back then!" And the bike comment may be a sign of the times where outdoor activity is probably not as popular as it used to be. Anyone who used to ride bikes as much as we did would know that bell bottoms are a recipe for disaster. It just wasn't done. And even regular pants would sometimes cause problems. In case this is all alien to you, realise that pants rubbing against an exposed chain while in motion will over time have a probability growing toward 100% that it will eventually get caught. Use your imagination to figure out what happens next and keep in mind that once you're caught, there is no escape. This usually brought on quite the laughter from your friends and rightly so because it was so fucking stupid. If someone had 'the walk' and wasn't on his bike, we knew what had happened. The culprit was bell bottoms or loose pant, so they were done away with. And no, a bike chain cover was not an option. We were guys after all. We had to maintain some level of dignity.
While we learned from our mistakes, it seems that the ones who came after us never learned these lessons. Not about the bike. I couldn't care less (and wish I could forget). But it is a recurring theme. It seems that the pains suffered with DOS have not been learned by those programming the web. And indeed, even if you can't put your finger on it, anyone who's used DOS will recognise that there's something quite wrong with the web. The only way to be able to suffer through that is not to have dealt with it before. Otherwise, it would be unbearable. What the web has going for it is design. Not programming, but visual layout design. It makes it appealing and although it's prone to ugliness, one can expand their creativity with proper training. That's where the items 'for' it stop. Everything else is a rehash of same old, same old.
Then I must think back and wonder. Did we ever stop using our bikes? Not really. Not until we got cars or became too busy. And with DOS, did anyone like it when it was around? Hell yes. I was one of them. It was a matter of investment. To use DOS, you had to know so many details, it was mindboggling. When Windows (even 3.1) arrived, much of this knowledge was no longer relevant. Sure, we may had to know certain library calls and a new API, but it wasn't on the scale of what we had to know before. I think that with the web, many programmers just don't want to go through that again. I've mentioned at the top of this article many of the things you have to know. Each one of those is an environment in of itself. It's not that we don't want to learn new things. It's about learning things that won't go to waste in a couple years. I think that's why Java is so resilient even with all its faults. Programmers don't want to have their knowledge and investment go to waste even if there is a better way. Say what you will, but the move from DOS was painful. It was not easy and it was not fun. Lots of things didn't work correctly or like it used to. Legacy software was a huge problem. And many programmers found themselves unwilling to move on. I think the same thing is happening now. Maybe the Internet is the future. But is the web the right way to go? Anyone who's done DOS and then moved on to desktop applications knows that the web is a step back. We've seen a painful close up view of our front tire once too many times. We all survived without any 'real' damage, but at every stage, the pain will get worse. Who's ready to let go and start fresh with something that actually works? No one. The ones that would are already gone. That's the reality of the situation.
What happens now? Where are we getting new programmers from? Is ignorance a prerequisite in order to get new people into the field? Is there a better way? I have some ideas, but no certainties. I do know that many superstar programmers are done with the pain. After a while, it's not funny anymore. Well, it's funnier laughing at others. And I fear that's what they're doing. The web has turned into a joke.
References
1. Slashdot, Oct 30, 2006. Hiring (Superstar) Programmers
2. Interaction Design. 1997. Designing Web Applications


By willosof, # 17. November 2006, 11:25:02