Dmitry Petrov Back

From the basics to complexity and back

Intro

Do you remember good old nineties? It was a time when websites looked, well, like a mess on today’s standards and browsers were not really helping with that. You could make a career on being able to craft round corners that looked ok on netscape, opera and internet explorer, becase it wasn’t trivial at all.

What happened next was a huge movement that gave us all the web standards we love and use today. It was also the time of pixel perfect design. I still remember how I would alt-tab between the browser window and photoshop or use an exported png as a background in order to fulfill designer’s expectations.

Not only that, we were all busy crafting our home pages, making them look unique and awesome. Or take MySpace or Livejournal.com where you could make your journal unique by adjusting the templates.

That was an era full of creativity but then it was gone and what’s interesting many people haven’t noticed.

Facebook

Disclaimer - I was a livejournal.com engineer back in the days. It’s hard to overestimate how much users cared about their styles. Every time a change had to be introduced (e.g. fb like button) we had to carefully craft it in all the different designs that were supported by the system, help out popular blogs that had their own custom styles and still got it wrong once in a while.

The same users who hated us for any changes on their beloved blogs and eventually switched to facebook and other huge platforms that are there now didn’t care a single bit about the fact that they had near zero level of control on the presentation there. As it turned out, if the content is good and all your friends are around you don’t need that much. And facebook is actually not very extreme in this situation, you can craft your post in markdown while other platforms don’t give users almost any way to control the layout and everyone is just fine with it.

Instagram users can only write plaintext only without any formatting and it even doesn’t look nice on the phone and you have to insert an image even in case you only want to post a message and you know what? Nobody cares. I can only talk about russian speaking segment of the platform but the amount of activity there is just crazy. People not only share cat photos there, but also buy and sell stuff, write analytical articles, do workshops and trainings without any problem. The fact that from time to time they have to literally edit the photo and put a text overlay on top of it (and it often looks like some of the worst myspace examples) doesn’t bother anyone. And all the communication is solved with a restricted instagram account or a closed whatsapp group.

Or take twitter. Before we got threads some users posted images with the text to work around the text limitation. That’s crazy, you cannot even copy/paste or quote this thing. And no one cared. As it turns out, the main reason people are on the internet is social interactions and if the design is good enough and, most importantly, others can discover your content, the rest simply does not matter that much.

Do you remember how your friend’s website looks like? You don’t probably, because it actually doesn’t matter that much and what even more probable they don’t even have one. But you probably do remember some catchy text they wrote. I’m a huge fan of Dan Luu’s blog and eventhough it’s literally just html in it’s simplest form, just try to open one of his posts in the reader mode in firefox and you’ll find out that it looks awesome with zero bloat you usually get. It doesn’t even use react!

Same goes for your favorite rss reader where all articles look nice even though the author doesn’t have to do anything with it. You can go on github and open a file with this very post and it will render just fine for you, zero html or styling involved from my side.

HTML

Now let’s discuss what unites social platforms, rss readers and firefox reader mode.

If you compare all of them you will see that they all do not support any of the complex markup of html or formatting of the css. In most cases users cannot even chose where to put the images, it’s all decided by the platform.

If you think about it all the platforms have become real browsers within a browser and what makes them so effective is specifically that the users are limited in the way the present content. Why so? Because simple markup makes it trivial to render the content anywhere ranging from a desktop browser to a fridge. Not just that, it’s absolutely up to platforms how to render the content in the first place. The photos are at the bottom now, but they can as well be put anywhere else, page previews can be generated and a whole lot of other stuff that would be simply not possible if the constraints were not there. It’s also important to note again that users usually don’t care too much about the presentation of the information on the platform if it reaches their audience, because this is the only point.

If you still have any doubts, take Gemini proctocol as an example. The list of clients on the project page suggests that eventhough building a proper web browser is no small task, the rendering part of it is definitely trivial especially if you compare it to let’s say a multiyear effort by Serenity OS community to get ther web browser to a proper level. They’re doing wonders really, but the complexity and scale of specs and the variety of real world use cases requires a tremendeous amount of work to get it right to an extent that even bigger players like Microsoft and Opera have given up on supporting their own rendering engines.

Another angle to take is that there is another problem that’s being discussed every now and then - as time goes by, the web is not getting any faster. We get better connection only to get more bloated websites as a result. A basic website can deliver megabytes and megabytes of styles and scripts just because an unlucky dependency made webpack include a half of npm registry into the build. You can fight against it, but that’s really an uphill battle, everything is designed in a way to make including more stuff simpler, not the opposite. The CSS design is fundamentally hostile to any cleanups, which most people who tried to remove a div p a selector from the code base would agree with.

Just to make the final point: none of the dialects used by the platforms is standardised. Markdown has a standard, but except from really basic stuff that covers suprisingly big amount of cases, the rest is not really well supported everywhere and again that doesn’t bother too many people.

So what?

Now that I’ve built up this argument, the question is also there - what can we do with this observation?

First and foremost we can start by acknowledging the fact that html, css and js are gone as creativity tool for most of people - too much complexity and bloat.

Second, suprisingly small amount of features is needed for an ordinary person to start producing amazing work. We’ve already been there with Macromedia Flash. If somebody still remembers Action script 1/2, it was a joke not only because of the lacking features, but also because most of it was often embedded into the frames in a very chaotic manner by people who barely knew how to code. The most surprising fact is it still looked and worked amazingly. Every topic on hacker news related to flash instantly gathers a lot of comments from users longing for that content.

The beauty of it was not only that there were tons of it, but also that it was really amateur, anyone could do it and my stong belief lies in fact that no big corp or data science can beat that. I think that’s what we’re missing now.

You may also not admit it but you probably also think about good old days when creating a website was as easy as copying an index.php file to a remote ftp.

We can leave web technologies for big guys who want to make amazon.com or google docs, however we certainly need something else to unleash a new era of creativity on the web that also doesn’t mean getting into another walled garden.

My bet would be on the fat clients. They are pretty tough to evolve sometimes, just remember how long we’ve been waiting for the official death of IE6, but at the same time that’s the place where the real changes can happen and rss, browser reader mode, gemini and flash proved it. My bet is that the new thing should be simple again, yet complete enough to allow artistic expression.

Should it be one more flash generation or something else? I don’t know, but what’s certain is that it doesn’t need to have that much to become the next big thing. It will get big and standardized and bloated in time but before that we will have some very fun years.

Thanks a lot to Artur Burtsev and Artem Tyurin for the comments and ideas.