Book idea: The Vanilla Web Diet
Tuesday, October 30th, 2012I right now feel the itch to write a book again. I see a lot of people buying books and making a living selling them and I feel that there is a space for what I have in mind. I also don’t see how I could cover all the things I want to cover right now in talks or blog posts. It is presumptuous to think you’d follow a series of them so using a book form with code and possibly a series of screencasts seems to be the right format.
I have a few outstanding offers by publishers but having my first publisher just hand over a second edition of my first book to someone else without waiting for my yay or nay makes it less interesting to me to go through the traditional publishing route. Whilst I am pondering other distribution offers (and if you have some, talk to me) here is what I am planning to write about:
The web needs a diet
Web development as we know it has gone leaps and bounds lately. With HTML5 we have a massive opportunity based on a predictable rendering algorithm across browsers. CSS has evolved from removing the underline of links and re-adding it on hover to a language to define layout, animation and transformations. The JavaScript parts of HTML5 give us a much simpler way to access the DOM and manipulate content than traditional DHTML and DOMScripting allows us to.
Regardless of that, we still clog the web with lots and lots of unnecessary code. The average web site is well beyond a megabyte of data with lots of HTTP requests as our desktop machines and connections allow us to add more and more – in case we need it later.
On mobile the whole thing looks different though and connectivity is more flaky and each byte counts. In any case we should be thinking about slimming down our output as we put more and more code that is not needed out, adding to a landfill or quickly dating solutions that will not get updated and fixed for future environments and browsers. We litter the web right now, and the reasons are:
- A wrong sense of duty to support outdated technology (yes, OLDIE) without really testing if our support really helps users of it
- A wrong sense of thinking that everything needs to be extensible and architected on a enterprise level instead of embracing the fleeting nature of web products and using a YAGNI approach.
- An unwarranted excitement about technology that looks shiny but is not to be trusted to be around for long
Shed those kilobytes with the fat-free vanilla approach
In the book I’d like to outline a pragmatic and backwards compatible way of thinking and developing for the web:
- We start with standards-compliant code that works without relying on hacks and temporary solutions
- We improve when and if the environment our code is consumed in supports what we want to do
- Instead of shoe-horning functionality into outdated environments, we don’t leave promises of functionality when it can not be applied
- We write the right amount of code to be understandable and maintainable instead of abstracting code to write the least amount without knowing what the final outcome is
The book will be opinionated and challenge a few ideas that we started to love because of their perceived usefulness for developers. In the end though I want to make people aware of our duty to produce the best products for our end users and to write code for the person who will take over from us when we want to move on to other things.
The book will teach you a few things:
- How to build with instead of just for the web
- How to use what browsers can do to build without writing much code
- How to avoid writing code that will fail in the near future
- How to not make yourself dependent on code you don’t control
- How to learn to let go of “best practices” that made a lot of sense in the past but are not applicable any longer
- How to have fun with what we have as web developers these days without repeating mistakes of the past
- How to embrace the nature of the web – where everybody is invited, regardless of ability, location or technology