The Static Web Returns
(all of this has happened before and is happening again)
Originally posted Monday, February 3, 2014
So yeah, I said that before Mr. Robot was even a thing.
Sam Esmail is a singularly distinguished creative genius.
A lot has changed since then, they even call it JAMstack now.
And, yes, VIM is still the best editor. (Update: I now think VSCode is the best editor. VI still for operations stuff.)
Help us build a better KnowledgeNet.
Original Blog Post:
Nirvana on the Walkman, laser-discs the size of vinyl albums tied to our Apple Macintosh IIfx boxes, writing emails in Eudora, searching the Internet with Gopher or for books telnetting to library terminals, fingering our friends on university BSD machines, aw yes, those were the days.
I will never forget the day I saw my first web page. I FTPed (or Gophered) NCSA browser and saw my first HTML of the campus. Then I opened a page with an image on it that took four minutes to load and I thought I was going to faint it was so cool. All the possibilities opened in a way that must have for Thomas Edison when he saw the first working light bulb. I grabbed random strangers in the university hallway and said, “You HAVE to see this!”
Those were the days of static web pages. Modems forced an unhealthy obsession with optimizing web pages. The idea of connecting web content to anything dynamic was a dream.
Then came CGI, the Common Gateway Interface, and anyone with Perl skills instantly became a web god — especially if you could make web pages render data from flat file databases like Xbase, CSV, and such. Ironically, the language of the web then was really just designed to replace
awk and not much more, but we made it work. (People would do well to remember today just how amazing
perl still is for its original intent.)
Now get off my lawn!
Ok, I couldn’t resist.
Eventually we learned to talk to mostly Oracle databases, if you had the money to work with one. There was no Open Source database offering. Having a dynamic site generated from content in a database was the coolest thing most could imagine. And as for speed, well, it took so long to even load the content the DB and dynamic latency was not an issue — at all.
The Dark Ages of Bloated Java and PHP Frameworks
I have to say I’m rather glad I was doing Linux system administration and system development and other interesting stuff during the dawn of dynamic web frameworks. ASP turned my stomach so much I couldn’t even look at it (still does). In fact, it was one major reason I left web development in general for stuff more deeply buried.
Frameworks, then and now, seemed largely like an unforgivable waste of resources to me. More and more people wanted to create systems that required caching database calls and other complex, unnecessary tricks when just creating a system that organized that data and created static resources, static pages and files, would have been fine. There were definitely legitimate uses of server-side dynamics, but everyone wanted it just because it was cool.
The web-driven language PHP was born around this time. It was carelessly thrown together and grew with no supervision into a bloated piece of crap that even the original authors won’t claim anymore. I made the mistake of being a team player and using PHP for a rudimentary back-end data processing queue only to uncover the horrendous memory-leaks of something that was conceived and designed to run but a few seconds in a web server request. I imagine a lot of that is still unfixed and people refuse to work on it. Yeah, now THERE is a language we should build our entire web-o-sphere on — shakes head — which is exactly what happened with Wordpress, Drupal, Joomla, Facebook, and the rest of the PHP-based butt-ugly applications and frameworks. Why on Earth so many brilliant, talented, people would waste their skills on this shit that the creator doesn’t even call a ‘language’ is beyond me. I just won’t. And I won’t teach it either. PHP and all the frameworks built on it are BAD for the Internet. The sooner they die the better. And they will.
Browsers Grew. Peace was Made. The Web Got Faster.
Maybe the Mayans were right. Yep. It seems the world has awoke to many important improvements and the web world is among them. The following factors have combined to obliterate the dark ages of bloated, dynamic frameworks:
- Mobile first development began to dominate
- HTML5/CSS3 came out and was welcomed
- SQLLite and NoSQL databases emerged
- git and GitHub saw mass adoption
- Static web site frameworks (Jekyll)
- People just got sick of horrible sites
Mobile devices proved slower than their desktop counter-parts, which got developers concerned about speed again.
Mashable Services (SaaS) and Client Side Power Leave Static Standing
But clearly the leading reason for this reemergence boils down to:
- The proliferation of mashable services
- The increase in cross-browser, client-side power
Almost instantly the need for WordPress plugins vanished. Once upon a time these plugins were essential to anyone that wanted a shopping cart, comments, advertising and more. But now that services themselves are pluggable the need and demand for plugins — even entire frameworks built to enable plugin-like server-side functionality — seems to be dramatically declining. Wordpress, Joomla, Drupal, and Django are falling decrepitly by the wayside. We just don’t need them anymore.
Show me a Wordpress plugin for something someone really needs and I’ll show you an embeddable service that already does the same thing.
But Some Still Haven’t Learned
I’ve had to research this stuff mostly because of career shifts to education and back to web and mobile development. But during this research it is very clear others are not keeping up. Public schools seem to be the worst. Students that come to SkilStak after their Web Technology classes usually have not even heard of responsive design, or pretend they know and usually think it is how fast the web page pulls up. Usually their ‘advanced’ courses involve learning a PHP framework, still others are being forced to learn .NET. shiver
I’d dare say even those learning Ruby on Rails are behind. Raking Active Records was nice in the pre-NoSQL days but these days you either want finely crafted DB queries with absolute control (node + MariaDB/PostgreSQL/DataWarehouse) or you don’t want an SQL database (MEAN) — if you even need a database at all. The HTML5 data attribute alone has made working with small amounts of data much more elegant.
People teaching and practicing web development should be as diligent about keeping up as open-heart surgeons or dentists. Ever been to a dentist that has NOT kept up?
I won’t lie, I’m still just as new as everyone, I’ve just been around the block enough to know good technology when I see it and — in true programmer fashion — am too lazy to not want to use (or create) the most efficient solution the first time.
You know those people that find something great and become so obsessed they cannot think of anything else?
Keep it Simple
The burden of proof has clearly shifted. Developers now have to prove there is a need for dynamic elements instead of assuming they will be there from the start.
Static Blogging Ain’t Just for Blogging
Tools like Jekyll, which Obama used in his campaign, demonstrate the sheer power and simplicity of the static site paradigm. Even though Jekyll started as static blogging engine from what I can tell from the first blog posts to GitHub it certainly has grown into much more.
As if returning to the static web were not retro enough, Markdown, Sublime, WriteMonkey and vim have returned us all to an age when word processing was done on a terminal and not a bloated, ugly word processor. The terminals just got cooler. Just like before, we markup special emphasis as easily as we type other words and live with it appearing in-line, then we tweak the presentation of the whole hot mess with CSS beyond our dreams back then. No more, “Oh, was that an H2, damn I missed it” like you get with incompatible Microsoft Word docs.
You Can Always Add Dynamic Later
Mobile and cloud seem to have shaped server-side functionality into manageable, granular bits of event drive functionality couched in events. It’s no surprise to me (and others) that Node is taking off so quickly because of it. It seems the modern static web is in love with the ripped, server-side abs node shows off at this party (notice I did not say framework and yes I’m wearing skinny jeans).
Thank you static web for putting the fun back into writing and web development. I owe you a beer. Now will you dance on the table? (Oh God, who invited tables.)