Keaton On: Web Development (and Joe the Plumber)
Two weeks ago I did a rant about how much I hated Xcode, but in the last 2 weeks I’ve finally managed to figure it out. Of course, being my easily distracted self, while learning Xcode I’ve also decided to try my hand at coding a website. So, now all of my anger at Xcode has found a new target: Web Development.
Apparently, me being a geek (or, maybe just an American) means that I get really mad at things that are too hard. Sure, it’s sounds kinda petty and childish, but really, is there any reason this stuff has to be so complicated? Not really, hence the problem, hence the anger, hence the blog post, hence the lengthy comments (sorry, I kinda forgot where I was going with that).
My target this week is a perfect example of something that is way way overly complicated, at least Xcode sort of has reasons to be complex, Web Development has just expanded to be more than it was ever meant to be, so the standards that were put in place back in 1991 have had to be stretched and extended to fit modern expectations (It’s as if websites were 16 year olds still trying to fit into the pants they wore when they were 1, it’s just not gonna end well.)
Alright, so let’s say Joe the Plumber wants to make a website for his Emergency Tax Fund Foundation, unfortunately, all Joe knows about the internet is that it’s sort of like a series of tubes (although saying that apparently somehow leads to getting arrested and loosing a re-election bid a year or so later). He figures if all the stupid teenagers can operate computer machines, so can he. So, he figures out how to get on the interwebs, and soon he’s computer savvy enough to realize that everybody on the internet has been making fun of him for these past few months. Still, he wants to get started on his website, so, what’s he got to do?
Well, first he’s gonna have to get a website, a hosting company, and all that, simple enough. Now, he’s gotta learn HTML, which will let him put text, images, links, and tables on his website. Unfortunately, his website will be about as good looking as Ted Stevens when he’s angry (Think: Steve Balmer when he’s really excited, only mean looking). So, now Joe is gonna have to get his hands on a good design tool, unfortunately, you can either use MS paint and have a website design worthy of a Kindergarden class, or dish out at least $50 on a decent program. Once he’s got his graphics designed, he’s gonna have to lay them out on the page, but unless he wants to get yelled at by angry web-standards obsessed clients, he probably shouldn’t just use tables in HTML. It’s time to learn a totally new markup language: CSS. Now, with CSS, he can place all of his graphics in a very strange and really quite unintuitive way. X and Y coordinates? Nope, he’s gonna have to use margins, padding, alignment, etc.
Assuming Joe actually has some design skills, he should have a decent looking website right now, but it’s still boring, it doesn’t do anything, it’s static. Joe wants to make it so when you roll over an image a little box pops up telling you information about the image (I was gonna make some strange joke about plumbers butt cracks here, but I decided against it). Oh boy, Joe, it’s time to learn an entirely new language! Javascript, which, unfortunately, has nothing to do with a nice hot drink that sophistimacated people drink, or even the outdated programming language by Sun that some people still use for some reason. So, now Joe learned Javascript, but then he realized that the picture of him holding a bill for $1,182 in unpaid taxes from the Ohio government probably shouldn’t be available to everybody, so, he wanted to create a login system. Here it comes, 2 entirely new languages/markups, PHP and SQL.
Joe already knows Javascript, and is confused as to why he has to learn another language to make it interactive in a different way. It’s kinda stupid, still he goes ahead and figures out how to set up a database, then talk to it with PHP, then use that data to determine a users credentials. He then has to figure out how AJAX works so that his Javascript will always display the right images with the right descriptions. Now he wants a donation box, so he’s gotta go to paypal and embed a little script that will make it easy for his users to donate. Now, after learning 3 markup languages, 2 coding languages, buying $50+ of software, and figuring out a whole crapload of different concepts, Joe is finally ready to do what he does best, pump it out to the series of tubes.
Joe goes to get his plunger, but can’t figure out where on his computer the tube is, so he finally decides Ted Stevens might have been wrong, and goes to read up on how to load stuff on to the big truck that is the internet. It turns out, he’s gonna have to get another program, an FTP program. Luckily, there are free FTP programs out there, but it’s kinda hard to find a good one, so Joe decided to spend another $20 or so on a decent one. Now, Joe has to figure out all of his credentials, upload all of his stuff and make sure all of the links work right. Cool, Joe’s got a website now! But, it’s still not done.
One of Joe’s angry web-standards obsessed clients was using Firefox, and noticed it didn’t work. Now Joe has to go back through all of his code and figure out what he did wrong. Once that’s done, another one of Joe’s clients noticed that he was really hard to find on Google (Stupid liberal media and their high SEO rankings). Now, to compete, Joe has to improve his own SEO, so he get’s to tagging, linking, etc. So, he’s finally about as done as he’s gonna get, still, every time he wants to change his website, he’s gonna have to change the code, re-upload (which makes his site go offline for a few minutes), then re-test in a bunch of different browsers.
Seriously, randomly famous plumbers aside, this is ridiculous. I sort of can’t believe I’m about to use Xcode as a good role-model for something, but really, at least to write an app you only have to know 1 language. I know websites are very different that apps, but there has got to be a better, easier, way than what we’ve got now, even if it’s just a really nice WYSIWYG editor or something (Actually, come to think of it, if Adobe could just make Flash a little easier to use and cheaper, we might have a winner).
HTML was designed for to be more like a simple word document than a fully fledged modern website, and so the fact that we’re still using it as the basis for almost every website is pretty ridiculous. The real question is, are we stuck with it now that the internet is the size it is.


Or Joe could just use iWeb.
Sebastian,
Whilst iWeb is a great web tool, it’s by no means a web development tool. I’d agree with Keaton, there’s so much to learn for ‘full web development’
iWeb it great, but there are a few problems with it. First of all, like most IDE’s, it’s completely template based, which makes it hard to make things other than what it was designed for. Joe the Plumbers Emergency Tax Fund Foundation probably wouldn’t fit into the family oriented templates iWeb provides :p
Second of all, iWeb only replaces 2 of those languages, to build his website, Joe would still have to learn Javascript, PHP, and SQL.
Touché.
Uh, let's see… Is Joe using a Mac? He is. Good!
Programs:
Smultron – IDE – Free
The GIMP – Graphics – Free
CyberDuck – FTP – Free
FireFox/Safari (Anything not IE) – Web Browser – Free
Huh. No money spent yet. Odd….
Okay, Languages:
Actual Page – HTML
Styling – CSS
Image Rollovers – CSS (look up the :hover pseudo-class)
Some Sort of CMS – PHP (and if you want to, you can use SQL)
Oh, what's this? What is this thing called a CMS? What's WordPress? You mean I DON'T have to learn all of this to have a good site? Awesome!
I rest my case.