The Web Stack
Published 14 years, 3 months pastFollowing on my “HTML5 vs. Flash” talk of a couple of weeks ago, I’m hoping to do a bit of blogging about HTML5, Flash, mobile apps, and more. But first I need to get some terminology straight.
As I did in my talk, I’m going to refer to the collection of front-end web-standards technologies — (X)HTML (of any flavor), CSS, and JavaScript — as “the web stack”. I’ve seen the term used here and there and it makes the most sense to me as a condensed verbal shorthand. It beats writing out the specific technologies every time or trying to use similarly clumsy constructions like “front-end tech”. If you like, think of “web stack” as a rough equivalent to “Ajax” — a term that was invented because continually saying “asynchronous JavaScript + CSS + DOM + XMLHttpRequest” was unworkable.
The web stack sort of includes downloadable fonts, but only in the same sense that images or any other external resource is part of the stack. SImilarly, it encompasses frameworks like jQuery in the sense that they’re built out of the components of the web stack.
When I use the term “web stack”, though, I’m not referring to back-end technologies. Those things are important, certainly, but not from the front-end point of view. A browser doesn’t care if your page was generated by PHP, Django, Rails, Perl, or what have you. It doesn’t even care if the server runs on Apache or something else.
Furthermore, it doesn’t refer to plugins. Yes, that means Flash, but it also means QuickTime, Real, ActiveX, and so forth. What I need to make clear is that I’m not doing this in an attempt to imply that plugins don’t belong on the web at all. They’re just not part of that core web stack any more than the web stack is part of them. That doesn’t stop them working together, obviously.
Okay, so that’s out of the way, and I hope my meaning is sufficiently clear to everyone. Please do leave a comment if it isn’t. Onward!
Comments (44)
You could always call it DHTML.
Sadly, michael, that term got far too poisoned around the turn of the millennium.
I think you are being too specific with a general term.
What you describe is the front-end stack. There is also a back-end stack (more variable one).
Together they are part of a web stack.
But right now you are defining the “web” as front-end only, which is – and I would hope you agree – obviously false.
What about something like JACD – JavaScript + Ajax + CSS + DOM then we could say, “Yo! That page is JACD up!”
I should note that “web stack” is also an already used term… and usually encompasse more than the frontend.
So I’d be careful over overloading (and de-generalizing) an already established term.
According to my searches it’s already an overloaded term, Gregory. Nevertheless, I have yet to see a better term to describe the stack of structure, presentation, and behavior—”front-end stack” is still too clumsy. If a better term emerges here in the comments, then great. Otherwise, this is what I’m going to use.
The web obviously isn’t front end only, but you can certainly build things with the “web stack” as defined here without using anything from the back-end stack. The opposite isn’t really true.
And what’s included in the back end stack? Web server software? Databases? PHP/Ruby/Perl/Python? Web services? Flash media server? If you’re going to include all of that stuff would the term even be useful anymore? When would you ever use it?
@Gregory: I disagree. The web is a set of conventions for sending pieces of information back and forth. It includes neither the question of how the information is generated (the server) nor how it is consumer (the psychology of human perception). Certainly a lot of value that is on the web is provided by programming languages and software that run on servers, but the value of the web as a whole is that all of those things are *outside* the web itself, and therefore anyone may use whatever they want. But html, css, javascript are the items we have in common to experience it.
Hi Eric !
What about the « [common] browser stack » ?
After all, it’s what it’s all about : the embedded browser technologies (that definition excludes the plugins, obviously).
Actually, I don’t like the « web stack » expression much because it’s implying that the web is only to be viewed through the browser.
No love for JACD as an acronym? Damn, I thought maybe it could be all new-millenium, and appeal to the hipsters.
HTML is the document layer. CSS is the presentation layer. JavaScript is the functional layer. You need something as cool as ‘Ajax’. How about ‘DoPreFun’?
Seriously, I’ve always thought of it as simply ‘The front-end’.
I really like the term “browser stack” in this context as it’s correctly reffering to the common browser technologies for *viewing* the Web. The Web itself is the sum of information (somehow tagged and structured).
There are a number of other terms possible such as web suite, base stack, web mill, web hub, web core, etc; however, web stack carries the simple essence of structure, presentation and behavior you are looking for.
Eric,
I hope this catches on as it would make describing things considerably more simple as far as I can see. Using AJAX was never a good answer in my mind because it was also its own subset of the technologies (although it uses all the technologies you are saying define the web stack). In my opinion this is a much more definitive phrase that points to the organizational (html), the design (css) and the functional (javascript) elements that make up the “modern” web, a stack or set of layers that work together as one.
-David
@Adam you say you disagree… and the proceed to completely agree with me. I’m not disagreeing that HTML/js/css are part of the web and shape how we experience it, they are just part of it though. Which seems to be in line with what you said.
I dunno the term just seems lazy. If you’re overloading terms already for easy generalization then just call it “the web” and be done with it. You’re going to be using it in a development context anyhow, and we’ve already throw away the pretense of any accurate semantics…
Your call obviously Eric, it’s your blog, presentations, and writing – but I think you’re adding semantic confusion for the sake of brevity.
I would second “browser stack” btw
nothing beats a nicely JACD up website.
Well people need to stop referring html5 to “the web stack”, thats for sure.
I always liked the “three legged stool” from Jeremy Keith’s DOM Scripting book.
How about the “Webruta Triangle” ?
Web Stack sounds good.
The word ‘stack’ has a lot of connotations with server-side technology so it’s certain to irk back-end developers, but maybe that’s a good thing :)
A good handle term for HTML, CSS, and JavaScript would be nice, but I think it would only make sense in the general marketplace if the web browser was perceived to be a clear-cut web standards machine. The fact is, like you’ve said, there’s a lot of proprietary technology bolted in there as well (Flash, Silverlight etc.) which are bread and butter for a good segment of the industry.
Possibly a side question:
I know that I can “embed” an MOV the old way, and it plays back with the QT plugin.
If I use
<video>
and it plays back “natively” in the browser, will Safari use the QuickTime plugin or what?It seems very mind-bendy to me, because I am under the impression that everything is played back through the QuickTime layer on a Mac anyway, so its not clear to me what the distinction would be.
+1for browser stack
Eric, I thought that’s what the terms “web standards” was all about. It’s certainly been around for a while and my take is that it encompasses HTML, CSS, and Javascript; these being all the things that the browser makers have to do consistently so we can all develop sites that work the same in any browser.
It’s even the view I take away from reading this…
http://www.webstandards.org/about/mission/
For someone like you, who has been at the forefront of so much of this (in a wonderful way), I guess I’m a little surprised that this term didn’t occur to you as the right one.
The term “web stack,” in my view encompasses much more; most particularly the entire HTTP protocol. Whenever I hear the term “stack,” I think of networking protocols (blame it on my past life).
Bob, I did consider the term “web standards”, but in my mind it refers to all the web-related standards, including HTTP, whether or not they impinge directly on the front end. That’s why it didn’t feel right to me. Which is funny, because you and I have the same reason for not preferring a particular term; it’s just the terms that are different.
(And it should be noted that HTTP isn’t actually required for what I call the web stack—one can load pages directly from a device with no web server involvement, and still work. Is that the web? Hmmm.)
To various commenters, “browser stack” sounds like either a suite of browsers, which isn’t quite what I’m trying to say here; or else a technology stack for creating browsers, which definitely isn’t right.
I played around with a lot of acronyms based on a variety of terms, and nothing came up a winner. The closest I got was Basically Open Browser-Assisted Front-End Technology Triad (BOBAFETT) but besides using two potentially loaded terms and being a bit of an overstretch, the last thing I need is C&D letters from Lucasfilm Ltd.
This isn’t perfect but it does allow the inclusion of other front-end technologies such as SVG and MathML: The W3 Stack.
Structure Presentation And Behavior (SPAB), Browser Stack or Web Standards would be my choices as web stack means much more to me than front-end technologies.
I would go with Structure, Presentation, and Behavior… or SPB.
This would nicely allow the inclusion of the rest of the parts as Architecture, Structure, Content, Presentation, and Behavior: ASCPB.
It doesn’t sound fancy, but that’s not what we’re aiming for :)
Firstly, I like web stack….but for some reason it makes me hungry for pancakes…..so still thinking but the first idea:
CJAX (Css/javascript/xhtml)?
Well, I see cjax is taken….doh! How about
styleJax?
styleScript?
XScript….x from xhtml and FOR all the other parts described – also stands for eXperimental in aviation/the S of css meets the S of javascript
…think I will go back to your first idea!
I like the term web stack. The moment I heard it the first time I knew EXACTLY what it was. And it is a much better alternative to incorrectly calling all the new css3 and javascript HTML5 (yer previous post). Like Bob, I too, come from a background that calls upon the network stack term ; but to me that’s just a bonus; it makes the concepts of layering structure, presentation and behavior crystal clear.
So I say go for it, call it “web stack”. I’ve already started to.
Coming back to it…
“the collection of front-end web-standards technologies” = front-end standards.
In the context of web, anyone should understand what this implies.
Eric, I’m surprised you don’t consider HTTP to be a core part of what you define as “the web stack”.
If you exclude HTTP, it’s not the Web. You may as well call it “shiny stuff in a browser”. Some would go as far as saying that your web stack is what’s optional, rather than HTTP. I don’t agree with that view, but I do think that both are required.
In practical terms, HTTP response headers will have a direct, visual impact on how the page is rendered in the browser. So being able to understand and manipulate those headers should be a required skill for a front-end coder.
The absence of HTTP as a topic in front-end coding curricula causes many coders to reach dead ends when debugging, not knowing how to make use of Firebug’s Net tab. I’m thinking stuff like encoding declaration conflicts, wrong mime types, missing resources, content negotiation, and of course ajax debugging.
Just a note to say that I love Nancy’s CJAX idea. Probably too derivative to catch on, but I think it’s pretty inspired…
I love standards–there are so many to choose from.
Thanks David!!!! I am so glad Eric is busy getting beyond this point….see how long it would take me to get past this point??!
Web Client Stack
Web Front End Stack gives WebFESt
PPK is calling them HTML5 Apps.
Quick, meeting of the internet-buzz-word society: fight.
+1 for “browser stack” or “web client stack” or maybe “client-side stack” (of the three, I prefer “web client stack”)
Reminder that the origin of the term “web” stems from the interconnectedness of the various nodes on the network. I’d suggest that presentation of and interaction with the data and UI of those nodes is a significantly different animal than the network itself.
Sidenote: I prefer one of these terms to “HTML5 apps” because the latter is inherently dated to roughly the present time. When the next big advance in front-end web tech comes along, it will become outmoded.
Sincerely,
An irked server-side developer
;-)
Within our office, I developed a habit to use the term ‘core front-end languages’ to define HTML, CSS and JS altogether. But after reading this and the rest of the comments I’m liking to form it as ‘core web stack’. What do you think?
Pingback ::
The State of HTML5 Apps
[…] Respected web design consultant and author, Eric Meyer, has started talking about the concept of Web Stacks — and we’re in a situation not unlike the beginnings of Ajax: A few people are already […]
I like BOBAFETT myself.
You could call these kind of apps “browser-based”. That accounts for the technologies are dealt with by the browser e.g. markup, CSS, JS but excludes server stuff and native applications (although I suppose it includes plugins). Also, I think most regular people would get what “browser-based” means, so it wouldn’t have to be an industry “in-word”.
Does it really need an acronym or a cool name? (not moaning, just saying)
I favour either ‘browser stack’ or ‘render stack’ or ‘display stack’ or ‘UI stack’ over ‘web stack’ which implies a lot of things way outside the UI to my mind.
I have to agree with Nancy, Web Stack does make me think of pancakes! But then again I like cooking, and in cooking there is a phrase called the “Holy Trinity of Cooking” referring, at least in the South more specifically New Orleans, as equal parts of onion, celery, and green peppers.
It would stand to reason then that we could refer to the term of the “Web Trinity”. They go together hand-in-hand. Thoughts?
HTML5 + ECMAScript5 + CSS3 = “HEC”