Hacker News new | past | comments | ask | show | jobs | submit login

Essentially every single aspect of the web is terrible. It was designed as a static document presentation system with hyperlinks. And for years and years and years, no matter how much interactivity was shoehorned into this system, the standards bodies absolutely refused to make any design decisions based on the absurd notion that it was an application platform. They have only changed this view very recently, and the consequences of their decisions made to optimize the creation of static documents with hyperlinks will continue to be felt for a decade probably.

Had the web been designed as a distributed application platform with HTML being a user interface layout language and such, things would have developed very differently. And because making it do anything interactive most often required misuse and abuse of the browser, it wasn't much pursued by bona fide software engineers who knew the pitfalls of ad hoc 'organic' development and 'just keep typing until something works' mindsets. So, that's what we got. Big ball of global mutable state, scripting languages designed to make it so you could have a button light up when the mouse hovered over it bent over and made to do real work, dependency webs so complex that they're generating novel unsolved problems for graph theorists at every turn, etc.

All of this because users want to be able to search vaguely for what they want and be using an application a moment later. Something that could be solved a trillion different ways but nobody realized at the time that it is what people really wanted. So now we oh-so-slowly move towards the web becoming an actual application platform, but hamstrung by companies that feel entitled to every data point we ever generate so they seek to insert latency into even the simplest interactions by requiring asking their machines for permission.

Had the web been designed that way it probably would have died an early death. Back then we didn't have gigabytes of RAM, fat pipes, and an abundance of cores to run interpreted code that is shipped from hundreds of kilometers away.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact