(2021-03-21) Bjarnason Which Type Of Novelty-Seeking Web Developer Are You?

Baldur Bjarnason: Which type of novelty-seeking web developer are you? I’m noodling around at home and taking stock after having left a job of four years.

Reassessment seems to be the word of the year for a variety of reasons, both obvious and subtle.

I still really enjoy working on the web (good because that’s the career I have) I really do not enjoy working on the kinds of projects that are popular in the industry today: client-side-only SPAs with no progressive enhancement (ProgressiveWebApp) and super-complicated state management. Many of the latest trends in web development leave me disinterested

I really do enjoy some of the new developments in the field

But I do have a deep and abiding fondness of the history of the web and web development.

This is the point in an essay, talk, or pub conversation that I always quote Alan Kay.

  • Binstock: You once referred to computing as pop culture. Kay: It is. Complete pop culture. I’m not against pop culture.
  • The big problem with our culture is that it’s being dominated, because the electronic media we have is so much better suited for transmitting pop-culture content than it is for high-culture content. I consider jazz to be a developed part of high culture.
  • Pop culture is all about identity and feeling like you’re participating. It has nothing to do with cooperation, the past or the future—it’s living in the present. I think the same is true of most people who write code for money

Now, I’m not as down on the web as Alan Kay. Large parts of it are garbage, sure, but I think there are a few core ideas in the web that are straight-up awesome.

Nor am I as completely disdainful of pop culture as he is. The edges of pop culture have a role to play in popularising the avant-garde and breaking up stagnant forms.

This is the culture that finds the idea of ten year old essays still being relevant so jarring that instead of just referring to collections of these essays as the field’s ‘canon’ they invent a new phrase that’s based on a misunderstanding of a casual heuristic observation: “Lindy Libraries” or “Lindy Media”.

Instead of building on centuries’ worth of discourse on the problems and benefits of a field having dominant canonical texts, they just ditch all of that and start again on square one with a shallow understanding of the interplay between a field’s canon and that field’s practice.

everybody walks on the shoulders of giants thinking—or pretending—that they’re just following a dirt path conveniently laid out by nature.

This is the first kind of novelty-seeking web developer.

This is the other kind of novelty-seeking web developer, one who seeks to build on the history and nature of the web instead of trying to transform it.

The specific aspects that fascinate are likely to vary from person to person but for me these are the constant threads I follow:
Encapsulation
Hypertext
The Dao of the Web
Distribution

Encapsulation

I mention this first as it’s the aspect of the web that modern web developers hate the most without even giving it a label. Single-Page-Apps and GraphQL are both efforts to eradicate the encapsulation that’s baked into the foundation of every layer of the web.

if you don’t go against the grain of the web, each HTTP endpoint is encapsulated from each other. From the requester’s perspective the logic of each endpoint could be served by an app or script that’s completely isolated from the others

This encapsulation can dramatically simplify development times and costs if you let it. Once you get into Lambdas/Cloud functions, for example, the platform’s built-in encapsulation means that integration tests and unit tests start to look very, very similar.

Hypertext

instead of the complex shared state that defines most native apps and SPAs, the web represents state as resources that are connected to and transferred via links. (ReST)

The Dao of the Web

for me, the essay Dao of Web Design that I mentioned earlier is the defining text of this aspect of web development

It’s the idea that the web isn’t a single fixed thing but a fluid multitude whose shape is dictated by its surroundings.

This approach has been out of vogue in web dev pop culture over the past few years but I think it’s making a comeback through the popularity of static site generators and improvements in many of the popular server-rendered component frameworks.

Distribution

The web doesn’t care; it shares. Which is always exciting (as long as it lasts, world politics being what they are).

What are these new and shiny things you are obsessing about?

Deno and Deno Deploy

it genuinely seems to be taking a more ‘webby’ approach to server-side JavaScript than Node

I think we’re likely to be nearing a point in time where new developers will find Deno much easier and simpler to learn, adopt, use, and deploy than Node.

It’s never going to replace Node but it’s likely to stunt its growth at some point.

“Deploy this bunch of stuff from a git repository as a bundle”

We’re seeing so so many of these kinds of services because they make so much sense.

Begin caters a bit more to the server-side developer who is all in on Amazon Web Services. Deno Deploy and CloudFlare Pages prioritise execution speed and easy transferal of front end skills to back

Deploying a bunch of AWS Lambda endpoints (or equivalent) and static assets from a single repository to a single domain gives you top notch encapsulation without sacrificing the benefits of monolithic development. All of the benefits of microservices without any of the drawbacks. (serverless)

It may seem strange to bundle these two but they are both trying to implement the experiences that everybody seems to like from Single-Page-Apps in ways that better use the platform and without the common SPA pitfalls.

Hotwire and Turbo use HTML and HTTP to transfer and represent state. It strongly leans on URLs in the form of turbo-frame as a way to compose and coordinate the various parts of the app.

SvelteKit seemingly could not be more different but it has a similarly strong ‘use the platform’ vibe as Hotwire.

SvelteKit itself is an even newer addition. It uses JavaScript’s new(ish) hypertextual module system during development but compiles down to bundles (as needed) during deployment.

Thankfully, that isn’t all that it does.

SvelteKit transparently reuses this logic on the client side.

Another way to put it: this lets you create SPA-like web apps without having to worry about SPA-like state management (which is a pain in the ass).

Moreover, SvelteKit lets you configure prerendering, hydration, and routing on a per URL basis.

Hotwire and SvelteKit lend themselves to different kinds of projects, which is why I’m glad we’re getting both and why I’m excited about both.

That’s just a few of the projects I’m excited about these days. There are so many interesting projects around

What most of these projects have in common is that they are building on the medium and its history. They aren’t bolting an application platform onto it or trying to compete head-on with native apps.

Jeremy Keith: Of the web

Which type of novelty-seeking web developer are you?

turns the existential questioning to the World Wide Web itself, or rather, the people building the web.

In examining the nature of the web, he hits on the litmus of how you view encapsulation

Single-Page-Apps and GraphQL are both efforts to eradicate the encapsulation that’s baked into the foundation of every layer of the web. Most modern devs are trying to get rid of it but it’s one of the web’s most strategic advantages.

if you don’t go against the grain of the web, each HTTP endpoint is encapsulated from each other.

He finishes with a look at another of the web’s most powerful features: distribution. In between are the things that make the web webby: hypertext and flexibility (The Dao of the Web).

On the one hand, you can see the web purely as a distribution channel. In the past you might have been distributing a Flash movie. These days you might be distributing a single page app.

The other way of building for the web is to go with the web’s grain, embracing flexibility and playing to the strengths of the medium through progressive enhancement.

With that mindset, Baldur then takes us through some of the technologies that he’s excited about, like SvelteKit and Hotwire. I think it’s the same mindset that got me excited about service workers.


Edited:    |       |    Search Twitter for discussion