Episode 116

Preserving the Architecture of the Web with Stefan Tilkov

May 30, 2016

There’s a lot of pressure these days to use a JavaScript framework to create every website. “Which one is best?” people ask, “Which one should I use?” Stefan Tilkov joins Jen Simmons to talk about the architectural style of the web, and how to understand to best create an application on the web. What is the role of each of the technologies available?

In This Episode

  • Constraints and Qualities of The Web
  • The Hypermedia format
  • The REST model
  • The ways that we’ve forgotten the architecture of the web before in the past
  • The three core web technologies: HTML, CSS, JS, and the separation of concerns
  • The idea that HTML is not good enough for real programmers
  • Angular, Ember, React — how does a team choose the best tool?
  • The role of JavaScript: to extend the user agent’s capabilities, and do things that cannot be done in HTML or CSS

You can build something that’s very similar to the way you built applications in the past when they were native applications running on Windows or on the Mac… You can escape from the web if you decide to build 100% of your application in JavaScript. You can deliver something through the web and exploit the platform, but you are losing all of the other benefits, and I find that very sad.

Show Notes

Comments

Hi Jen and Stefan: I loved this discussion. It’s great to hear professionals of your stature making the case for understanding the web’s strengths based on its anatomy. One thing I’d love to hear more about is how much of the flight to frameworks and appification is really a flight from page load events because that is perceived by developers as being perceived by users as a bad experience.

Thanks Adrian. I believe this is one of the many places where people perceive a problem, and mistake one particular solution approach for being the only one. I, too, dislike slowly-loading pages and unnecessary page refreshes. But it’s completely possible to address this with a little dose of JavaScript, preserving the architecture. A web app built using progressive enhancement does not, in my experience, have to feel any different to the user than one built using a JS framework.

Hi,

This is an interesting topic. I also think that people should not use a new framework just because it's new... However... I think there are some way to improve the episode (IMHO):

It was too biased and there was too much focus on discarding any new architecture. At times I was under the impression that the main argument was "it should be like that and people should not try to do otherwise" (without enough explanation). There wasn't enough explanation on the advantages of using a some of these new frameworks... and even not enough specific explanation on their flaws. I do use Javascript frameworks sometimes and I they have a lot of interesting aspects.

I would also like to comment about the "accessibility" story: I think it's not a good example because this kind of comments ("we don't care about accessibility") is also frequently made by "regular" HTML developers. In the other hand, there are people who are working on making Angular accessible. So it's more a person issue than a technology issue.

Despite these comments, thank you for the podcast!

As regards to the health of the Web and frameworks, I’d like to share this article, “Opinionated rundown of JS frameworks”:

https://blog.andyet.com/2014/08/13/opinionated-rundown-of-js-frameworks/

The article is from 2014, but IMO does an excellent comparison of frameworks. **You should read the article!**, but the author leaves off with Ampersand.js, and describes how the shortcomings of other frameworks helped inspire the design decisions behind Ampersand.js. It is human-friendly, code-friendly, and—best of all—concerned with the health of the Web.

Yeah there wasn't a lot of valuable, detailed critique of any given framework or even if frameworks in general here. I'm not sure there was actually any examples given of a React (just one of the frameworks mentioned) app that broke any of the so called best practices. I've used several apps that had fully intact state and history so a bad example would've been useful.

Thank you for sharing information about website architecture. As a web developer i know the value of pre website architecture is important for building an eye catching website.

At about 1h15m in to this you start talking about frameworks with regard to accessibility and stress that this causes concerns. Is there any chance you could go into more detail on what you mean by accessibility issues caused by using frameworks like Angular?

I've been a web developer for six months. and I'm so glad that I listened to this show -- it gave me several "A-ha!" moments. What I took away:

- being resource-oriented means browsers you're totally unfamiliar with can still get value from your site;
- HTML may be ill-defined in the mathematical sense, but the payoff is you can communicate meaning more broadly (and again, to browsers you don't know)
- JavaScript takes a user-agent that can already do some stuff, and gives it additional capabilities (so be careful about what you graft on)

This really made web architectural style into something that I understand the tradeoffs of, instead of seeing it as an unmotivated instance of "we've always done it this way." Thank you for the show!

Add new comment