* * * * *
An epiphany about bloated web pages might be the result of a dumb network
I was scared by an epiphany I had the other day when I read a quote by John
Carmack [1]. But before I get to the quote and the ephiphany, I need to give
some background to understand where I was, and where I am.
First, for the years I was working for The Corporation (and later, The
Enterprise), I was in essense, working in telephony networking, and I was
never a fan of telephony networking (the Protocol Stack From Hell [2]
notwithstanding).
Basically, the paradigm in telephony is a “smart network” and a “dumb edge.”
All the “intelligence” of an application on telephony is on the network side
of things—the “edge” here being the device the end user interacts with. In
the old days, this was an on-off switch, a microphone and a speaker. Later
models this device included a tone generator. So any features needed to be
handled on the network side because the end user device (the “edge”) was
incapable of doing much at all. If a person wants a new feature, they have to
get it implemented on the entire network, or it's effectively not supported
at all (because there's not much one can do with an on-off switch, speaker,
microphone and a tone generator).
Contrast this with the Internet—it's a “dumb network” with a “smart edge”—all
the network has to do is sling packets back and forth, not concerning itself
with the contents. The “edge” in this case is (was?) a general purpose
computer that can be programmed to do just about anything. So if a person
wants a new feature, all that's needed is a program on at least two endpoints
and said feature exists—there's no need to inform the rest of the network of
it, as long as the “dumb network” can do its job and sling the data between
the two endpoints. Want an alternative to the web? Just do it [3]. Want an
alternative to IRC (Internet Relay Chat)? Just [4] do [5] it [6].
Second, I have always had a hard time understanding why people keep insisting
on writing bespoke web browsers in JavaScript that just show text, when the
user is already using a web browser has already been written to display text.
The poster child for this (in my opinion) is the Portland Pattern Repository
[7], a large repository of programming wisdom, that, for whatever reason,
Ward Cunningham (creator of the site) felt that a normal web browser wasn't
good enough to browse a text-only website and thus demands the latest and
greatest in JavaScript conformance to view text. He's free to do so, but I
find it annoying that I can no longer read a site I enjoyed (and even
contributed to), just because I haven't updated my browser for the past
twenty minutes. I'm not even asking to participate in editing the site any
more, I just want to read it!
And finally we get to the John Carmack quote:
> It is amusing to consider how much of the world you could serve something
> like Twitter to from a single beefy server if it really was just shuffling
> tweet sized buffers to network offload cards. Smart clients instead of web
> pages could make a very large difference.
>
“John Carmack Tweet [8]”
Oh crap.
“Smart clients”—“smart edge.”
“Web pages”—“data.”
My dislike of the Portland Pattern Repository just got ran over by my liking
of dumb networks and smart edges.
Ward Cunningham wants a smarter edge to view his site (and to “improve server
performance” if you read the comments in the web page returned from the site)
and I can't begrudge him that—I like smart edges! It makes more sense to me
than a smart network. But at the same time, I want a web site to just return
text to a “dumb browser,” even if the browser I'm using is not particularly
dumb.
Do we, in fact, have too much intelligence in web servers? Do we want to push
all the intelligence to the client? Do I have to reconcile my love of simple
web clients and intelligent web servers with my love of the dumb network and
smart edges? (And to spell it out—the “network” in this analogy is the web
server and the “edge” is the web browser) Where does the simplicity need to
reside?
[1]
https://en.wikipedia.org/wiki/John_Carmack
[2]
gopher://gopher.conman.org/0Phlog:2012/01/31.1
[3]
https://gemini.circumlunar.space/
[4]
https://www.lifewire.com/what-is-aim-1949607
[5]
https://www.jabber.org/
[6]
https://www.signal.org/
[7]
https://wiki.c2.com/
[8]
https://twitter.com/id_aa_carmack/status/1350672098029694998
---
Discussions about this page
THE EDGE OF INSANITY
gopher://aussies.space/0/%7efreet/phlog/2023-01-17The_Edge_of_Insanity.txt
Email author at
[email protected]