What to know, what to learn

Let’s talk about what we should know and learn, shall we?

My friends Chris Heilmann and Marco van Hylckama Vlieg recently wrote Web Development is Moving On – Are you? respectively The death of web development and design, and what to do next.

Having only skimmed through them before, I was sure I would react strongly to something and completely disagree with them, but I just read them properly, and my “problem” is that both are well-written and very balanced. However, I do have some thoughts to complement their posts, so please allow me to chime in.

What to know

Chris has an interesting quote, which Marco used, and I will as well:

Our craft is becoming a commodity and people in charge don’t care about the quality of the markup, CSS or how short our JavaScript is. What matters is how fast you can get it to market, how many people it reaches and how cheaply it can be built.

With all due respect, I disagree. Of course time to market, reach and price is important, but let’s think a little longer. Think about the cost of maintaining a web site which was quickly developed, or just how easy, or hard, it is for a new developer to grasp the code and the concepts.

And, when you realize that the site weighs a little bit too much to load, there are a number of HTTP requests too many to make it pleasant for the end user, or it just suddenly fails in some web browsers, who would you turn to to solve that?

Your employed developers that used all the APIs and provided documentation will have no clue how to solve specific problems, since they don’t know about the inner workings of what they used, only the exposed methods.

Overbelief in APIs, libraries and services

And this leads me to what I see every day as a consultant, and have done so for quite some time. With all services, JavaScript libraries etc, people can deliver amazing things in a short amount of time for a low cost. Great! Really!

But, if you have developers who don’t really understand what they have used, why it actually works, and how you can control it, it will come back to bite you in the end. For instance, with the mass-adoption of JavaScript libraries, like jQuery (which is a great JavaScript library), people use it everywhere with every possible effect and method available.

They deliver stunning results, but as soon as they have to tweak it, optimize it or just plainly find out why it doesn’t work as expected, they’re stumped. And I see this with a lot of developers and projects, where people want, or are pushed, to deliver what might at a first look seem as magic, but essentially they don’t know how it works. And that, my friends, is a very dangerous situation to be in as a developer.

And with JavaScript libraries, they are generally built to fail silently, and with no debugging option available. Read The Art of Throwing Errors in JavaScript to delve more into why this could pose a problem as well.

Maybe I’m exaggerating here, but at times, the trust in APIs and services remind me of the time when knowing how to code HTML would be completely superfluous, since all WYSIWYG tools (Dreamweaver et al) were to replace that. Guess what? So far, no tool has gotten smart enough to figure out how people try and build things, since the human mind sure works in mysterious ways.

With the same line of thinking, APIs and such only go a certain way in figuring out what you want. Sure, you can contribute to it, but that doesn’t necessarily mean you get exactly what you want – and, more importantly, what you want might be the opposite of what someone else wants, so the bigger the API/service, the bigger the compromises.

A lot of companies still do it themselves

Chris and Marco work at Yahoo, where they get the opportunity to work with a lot of very talented developers. And when they’re not, they’re mingling with a lot of other great people at conferences. That is fantastic, truly, but I think that it just might cloud their judgement a little.

From what I see, most companies still want to do it themselves, host it themselves and generally adapt it themselves. They use libraries, public APIs etc to a certain extent, but the vast majority of what they have is produced by their own developers and/or consultants they hire.

And I don’t really think this comes out of fear for the cloud (although what happened to Ma.gnolia is truly fucked, and should not be possible to happen), but rather that they like control, overview and doing things from scratch if possible.

Is that a bad thing? Yeah, perhaps, but at other times they produce fantastic results which they can customize and maintain however they seem fit.

So, what should you really focus on?

I think Chris’ and Marco’s advice are great, to look into options and other ways to do things, while definitely being there for new people to teach them about how things actually work. But at the same time, if you’re new to web development, I strongly encourage you to learn the basics and more about the major technologies you will be working with. It will pay off in the long run.

Posted in Developing,JavaScript,jQuery,Technology |

Leave a Reply

Your email address will not be published. Required fields are marked *