Did we betray Tim Berners-Lee? Is the Web going away from what it was meant to be – an open, diverse, horizontal set of actors not dependent of any central corporation?
A few years ago, Wired thought we were leaving the wild Web for the comfort of “apps”. In a more recent article, André Staltz, a consultant, anticipates the supremacy of Amazon, Facebook, Google and Microsoft when it comes to do anything online – from viewing content to hosting an application.
In this blog, want to look at the technical side of things. How evolution of technology and software practices made concentration happen but also helped keeping the Web affordable.
Barriers to entry
Twenty years ago, we had slow computers and slow network connections. Websites could only consist of static text with hyperlinks. But they were cheap to create and almost anybody could have a website as capable as any other: you just had to write a bit of HTML or grab some software that could do it for you.
FrontPage 98 in action
Where are my standard features?
But even if you are a decent programmer or designer, there is only so much you can do by yourself. And as an end user, once you know there are useful technologies available out there, it is hard to get back and accept a basic application.
A few examples? Think of a search engine, interactive maps, standard analytics (who you visitors are and what they do), payments, responsive pages (and CSS frameworks), single sign-on to popular social networks; and soon, everything that machine learning enables (recommendations, fraud detection). These features rely on technologies that took time to mature. They require important resources to maintain and they are for the most part owned by a few big tech companies.
Agile doesn’t help
Do you know Waterfall, the (not so) good old way of building software? We write the complete specifications then we implement them from top to bottom then we deploy everything at once. Big projects take years to see the light of day. To solve shortcomings of this methodology, a small group of bright people invented Agile, which lead to the notion of Minimum Viable Product. Suddenly, you could see something just a few weeks after throwing the initial draft on the white board.
Programming languages also became a lot more productive, with the help of frameworks like .Net or the Java Standard library. They now allow to do much more with fewer lines of code. Even more verbose languages like C# lean more and more towards functional programming with every version.
All this leads to another set of expectations. A website responds to a need, whatever it is (entertain, sell, inform, meet…). The sooner the need is satisfied, the better. In e-commerce especially, the time to market must be shortened as much as possible, since you don’t want to be late to the party and give away prospects to competitors (“rich nodes get richer”).
But if we wanted to stay completely independent, we would have to implement our own solutions every time, which is always a risk, both for the quality and the time of delivery. Therefore, moderately complex software is also owned by a few players: Content Management Systems, e-commerce platforms, client-side frameworks (Google’s Angular or Facebook’s React) … But then, why almost all websites, big or small, are so feature-rich?
Lowering the barriers
Big corporations accepted – sometimes reluctantly – to play the “open Web” game. They realized a community of users and developers is crucial to increase their reach. Google, Facebook and Twitter provide most of their services and APIs for free. Most webmasters now expect them “out of the box”. Nobody can imagine spending tons of money to implement them. Developer tools also become cheaper and cheaper. Microsoft has a free “Community” version of Visual Studio. MacOS and iOS developers have Xcode free of charge.
Open-source all the things
What would be a developer’s life without GitHub and Stack Overflow? From programming alone with a book, we got used to finding reusable open source code online. If you are a software vendor and wish your product to be adopted by a large community, your best bet is to open it for contributions. Then you can capitalize on this community. In a spectacular move in that direction, Microsoft opened its .Net Framework in 2014.
At the other end, some vendors choose to position their product for big businesses only, with huge license costs and no public documentation or developer version. They accept the drawback of being unknown and inaccessible to humble mortals. And it seems this strategy is no longer viable because the market is saturated.
Cloud computing does help
Hosting a small website in a shared environment has always been cheap. But it used to get very expensive if you were a little bit more ambitious. License costs, backups, monitoring, scaling… Being autonomous was not for everyone.
Now we can deploy a standalone web and database servers for a few euros per month. And you have all the above services included. It is true that powerful virtual machines with SSD drives are still expensive. But you should never need them for a typical Web application.
Not ideal: pragmatic
In the end, concentration is not necessarily the enemy of open and diverse since the barriers to entry are lower than we feared, due to the necessity to be adopted by a large community. Of course, everybody ends up using the same tools, but it has been the case since the beginning – we all use a PC running on Windows, don’t we?