
I am a strong proponent of layered cakes. I don’t know how to handle a cake that is just mashed together with many ingredients and shoved in the oven — I just end up staring at it, wondering how the hell I’m meant to consume this thing! I prefer to have clearly defined layers, each with a unique palette that, when combined with the other layers adds to the overall symphony of taste.
Of course, I’m not actually talking about bakery; I’m talking about the web, and the many layers that it’s made of. I believe that maintaining separate layers is the best way to move forward whilst offering a usable, functional and accessible web.
I think JavaScript is an afterthought, and I think it’s best for everyone if it’s treated that way. Once you try mixing it into your application you’ll eventually encounter a conflict of layers! A.K.A pissed off users.
I’m not just talking about being unobtrusive; I’m talking about true progressive enhancement, and true separation of concerns, on the server side and on the client side. I appreciate and try to develop by this ideal, because I honestly feel that it is the best way to develop any website or any application.
It’s not just about the end-user experience though; it’s about developing in a way that makes sense. For me, this makes sense.
For me, until I change my mind, JavaScript will always be the icing on the cake!
Thanks for reading! Please share your thoughts with me on Twitter. Have a great day!
I am not completely sure what you are saying, I think i see your point but I always have concerns when we define javascript as icing.
Javascript is not just enhancement anymore I think, and it is certainly not to be used by webmaster seeking to add functionality to a already finish website that was not build with a define place for javascript in mind.
A lot of people see javascript this way, and I personally think this is wrong, a lot of web site and apps cannot fully work without javascript, and I really don’t think this is a bad thing,
If I want a very complex part of a website to work fully in ajax and is designed to work this way because it give better ui / response time, well javascript will be an integral part of the ux design, I will not implement a fall back for the 3% that are traveling the web without javascript enabled.
Think about it, when IE6 will have 3% of the global market, will you still support it unless the client say it is necessary?
I am not seeing the website will be completely javascript bound, but some parts could require it. This is actually more true with web app, most small web application I have done are javascript bound, and take a big parts in the application design.
well, hope it make sence 😛
That said, I also take into account what type of audience the website have. If this is a governmental website for example, well you need a very good fall back, but that kind of website is generally not complex with mostly text everywhere.
I’m actually glad that someone opposing my view commented first. Your argument is one I expected. JavaScript is used in some places for more than icing; it’s depended upon for interaction and additional functionality. Honestly, I’m not entirely sure how I feel about web applications. If it’s an intranet app then you can do what you please. But, for public web applications, I feel there should be a way to use the application without JavaScript — even gMail has this.
JavaScript is obviously becoming more important as we move forward, but that doesn’t mean all of its usages are correct. Once you start using JavaScript for content retrieval and generation you’ve pretty much said goodbye to the whole purpose behind a standardized markup like HTML. If the internet is all about what you can see, then we should just use a bunch of JPEGs instead of text content…
One of the most important aspects of the internet is the idea that everything is shared in standardized formats. Google only knows how to parse HTML documents, it doesn’t know how to handle this:
And even if it did, it’s not just about Google, it’s about everything and everyone that’s trying to access information and interact with that information on the internet.
And also, where is the line drawn between a “website” and a “web app”? Does each one have an unwritten set of rules to abide by when it comes to JavaScript? Or are they the same?
Well I think if we were to bastardize this, I would say that a website is to view content, and a web app to perform tasks. Which sometimes cannot be done without a dynamic GUI.
I do not necessarily want some part of the content indexed by google or seen by everyone, a good example is a private website section.
Gmail is basically a list of text, it does a lot more with javascript, but for example, if I take a app using to crop images, you can’t do that with css 😛
I see your point about standardized html markup, but that being said, html is all we have beside flash (and silverlight and co..), and I think we can try to make the best of it even if the original intention behind it was only for text.
Well I rest my case, I think we could argue this for ages 😛
Yeh, this could go on forever, anyway, I think we’re actually in agreement where it matters. 🙂
Then…
what would Facebook, GMail and all other Javascript Apps be… if only icing ?
I think JavaScript is more than icing with the modern web. i.e GMaps is incredibly more useful and powerful with JavaScript support than without.
I’d say it’s more like comparing a cheese sandwich with Christmas/Thanksgiving dinner. Your users shouldn’t go hungry either way.
I’m stunned! How can you talk about layers without a reference to Shrek and the obvious layers that ogres have?
@Pete, @martin, I don’t think Facebook or Google Maps or any single modern web application can be used as justification for NOT bothering with progressive enhancement. That said, Facebook, Google Mail and Google Maps ALL have degradable features and/or non JavaScript versions.
@Scott, LOL, ogres are like onions…
I tried your icing stuff for my last project.
I kept going to not using javascript even though I reached better-use-javascript point like date entry and grid-row movement.
The result was I got my whole app use case covered faster than when I use my old habit of using javascript straight from the start.
Now I am unobtrusively instrumentizing my functioning web app with javascript and ajax, and it is easy.
The problem with javascript is it is so fun that you don’t want to stop polishing.
I think I see the values of this icing principle more than just serving javascript-disabled browser.
Thanks.