First post on my new home page: a musing about the sanity of modern internet technology

After years without internet presence, I finally made an effort and created my new personal webpage. It's been a long time since I started my first webpage about 25 years ago. So let me explain why it did take me several years to set-up a new page in Oldenburg (disregarding for a moment the rather harsh time constraints when combining life as a university professor with having a family).

These last two or three decades have seen quite some changes in internet technology. Back then, in the good old pioneer days of the internet (when I did my first page), construction of a web page was easy. I only needed to know basic html, throw in some inline styling and enrich the code with pieces of cgi-scripts here and there (if I wanted something fancy), and that was all about it - a piece of cake.

Compare that to the situation today at the beginning of 2020. Nowadays a web developer has to juggle a multitude of different styling, markup, and programming languages and frameworks. Besides knowledge of html, mastering at least some CSS and Javascript is mandatory. But Javascript alone won't suffice. First of all, ‘real’ programmers don't use Javascript, but might prefer variants such as Typescript, Coffeescript, Clojurescript, or something more functional like Elm, and may need further tooling by improved standards (e.g., ECMASript 6) and compilers (e.g, Babel.js). Next, there are tons of js libraries, that one should be aware of, starting from jQuery anf friends. Add package managers (npm and Node), build tools (e.g. Grunt, or Gulp), and bundlers (Browserify, Webpack, Brunch) - and the Javascript world alone starts to look alarmingly complicated (a phenomenon, sometimes referred to as JavaScript fatigue).

But there is so much more. Nowadays, it's hardly possible to present something on the web without using some form of data configuration (e.g., XML, JSON, Toml, Yaml) and markup languages (e.g., markdown and its many flavours with slightly differing dialects) or making choices of typography (e.g., Flat vs. Material design). Next, modern web designers need to know about CCS with all its flavours, such as CSS preprocessors (e.g., Sass, LESS, SCSS, or Stylus) and CSS resets (e.g. normalize.css). Furthermore, there are Javascript tools to process and prefix your CSS (e.g., PostCSS) with an extensive ecosystem of plugins (e.g., autoprefixers, CSSNext, CSS Modules, LostGrid, and many others), as well as Javascript-CSS combinations for styling (e.g., CSS-in-JS or Styled Components). Of course, we should not forget libraries for responsive design (e.g., flexbox, grid) to support the many back-ends of unknown screen resolution (from mobile device, to platforms and large screens) and issues of browser compatibility, using polyfill tools (e.g., core-js) because there is no guarantee that all these plugins and tools are supported in every browser.

Maybe I try to escape these choices and go for a CSS-framework that hopefully integrates all necessary tools and modules. But which framework to choose? Would I prefer Bootstrap or Foundation or Materialize or Tailwind or something else? What about Javascript-frameworks (e.g., React, Angular, Gatsby, Vue, Angular, Svelte), allowing dynamic single page applications? Maybe I am more inclined towards a static site, having to choose between various generators (e.g., Jekyll, Roots, Hugo) - requiring additionally some intimate knowledge of the corresponding template language? Or should I could go even further and use a full-stack content management system (e.g. Wordpress, TYPO3, Drupal, Joomla!, etc), adding some PHP and possibly MySQL to my learning curve? In any case, using any of these frameworks goes at the cost of either living with the set of designs offered by the framework or - if I need some more flexibility - having again to go deep into the rabbit hole, tuning CSS files and template functions.

And what is worse, this whole list of web tools probably is just scratching the surface. For example, I didn't even go into issues of client side vs. server side components, browser based visualization technologies (e.g., D3), or web frameworks (e.g., Django, Ruby on Rails, etc.).

What went wrong in the evolution of web technologies?

So what does all of this say about the state of modern web technology? Obviously web technology has gone crazy in the last years, having reached a situation of staggering complexity. What is more, this situation shows no signs of stabilizing. If anything, the market of new web technologies seems to be advancing at an accelerated rate, with new frameworks and web-stacks emerging on a yearly, or even monthly, base. With this complexity it is quite easy to get lost and confused when having to choose the right tools, making me wonder how web developers can stay sane and keep-up with these constant changes of the ecosystem.

Thinking about it, this is really strange. How possibly can we have such a mess and confusion in today's most used information technology. All my intuition is telling me that this can not be the optimal solution and it is hard to believe that we would come-up with a similar mess of libraries if we would have to re-design the internet from scratch.

So where does the complexity come from? One possible explanation is that web stacks consist of ‘orthogonal’ technologies that fulfill different roles, essentially following the logic of separating content and style. In contrast, I rather believe that what we are seeing in today's web technology is the relict of the successive and erratic evolution of web technologies: where the original developers of HTML could not foresee the demands and requirements of a future internet industry decades later; where by coincidence of all programming languages Javascript turned out to become the lingua franca of the web; and where is was not uncommon that qualitatively excellent tools were outcompeted simply because they were not supported by major browsers. Thus, the complexity (and craziness) of the modern web ecosystem should share some similarities to the idiosyncrasies of naturally evolved ecosystems.

In any case, here is my choice. After going through a difficult decision-making process, I made my page with the static site generator Hugo, using the Academics theme.

Avatar
Bernd Blasius
Professor for Mathematical Modelling

I am interested in the theoretical description of complex living systems at the interface of theoretical ecology and applied mathematics