Saturday, March 26, 2016

Web 3.0 and beyond

Remember the days of "web 2.0", those were great days. It was some time ago ( 2004, or maybe 1999,) when the money was flowing like fiat currency and we only had just over 100 javascript libraries. Those were good times but also dark times. We would return markup from ajax requests and even wastefully made the dom repaint an entire UI just because one attribute of data changed. Who would even dream of doing such a thing now? Even if Im just updating one div in my UI I make sure that a vdom is used and that the markup supplied is tied to a template complier so state is ensured, and that a promise is used to supply data to the template so my code stays written in a synchronous format. Im also responsible enough to know not to just write my dom manipulation in basic javascript. I use some model/view/babble/jsx or component abstraction even if it means the JS framework Im using is larger than the page. I cant believe we used to be so simple minded. Its was almost savage. Lets take a look at how we got here (to Web 3.0 as it might be called), maybe that will give us a look into where we are going next.

Hello world wide web (the server)

In the beginning there was only the server and the browser. All display content was generated and sent by the server. In those days the languages of PERL and PHP rained supreme. Perl has always been a popular scripting language so it was natural for it to do some of the more interesting things that a web application would require beyond document serving. PHP was made for the web. It is a template scripting language all in one. At this time the internet was just a store front for many companies. A place to display news and transfer communication in a public setting. Forms and forums were all that were used to store and display user generated content but commerce on the web was not a happening thing yet. There was a chicken egg problem that needed to be solved first. Businesses were not doing commerce on the web because there were not any customers to sell to. Customers were not on the web because the products they wanted to by were not on the internet. It took some time and eventually the businesses and consumers met online. I dont think that there is any one thing you can say catalyzed people to the web, in general it was a new thing that people needed to get used to before it could be ubiquitous. I do believe that in the beginning one of the main reasons to spend time on the web was because of free flash games and porn. People like to go where the fun is at, and so it appears flash has served its purpose. Thanks Adobe, you made the internet fun when it was just a crappy useless glob of geocities pages.

Web 2.0 (the browser calls back)

So finally people came to the internet and the business men followed. Some of the main players to make the internet useful and profitable were Pay Pal, Ebay, Yahoo, Google, and AOL. They were around from the early days when all the markup was coming from the server. These companies were very much the foundation for smaller web entities. With the use of search engine discovery and paypal online currency transfer the small businesses could move into the virtual space. The startup was born, not your mom's and pop's "mom and pop" company. This era of "web 2.0" is hard to define in the business since and I feel like Im ill equipped to really make a point on when online businesses became web 2.0 businesses. I experienced web 2.0 on the engineering side of things as 2 features , rounded corners on UI elements and ajax.

Rounded corners, what a pain in the ass back in those days. With the windows 8 UI having corners so sharp you could use them to shave (http://metroui.org.ua/) the web UI engineering of yesterday is just something to laugh at now (or cry). Ajax is not as silly and was a practice that has become a corner stone in not only experience of a web application but also in helping the performance of a web application. The underlying technology of ajax the xmlhttprequest object was first introduced in ie6 (and we have said something good about ie6 too). This object existed a little bit before the coining of web 2.0 but thats because it took some time for a majority of engineers (and browsers) to adopt it. Once adopted the web sites became much more of an application than a series of documents. New interactivity was introduced and we began to see many more features written in javascript to add support to the markup coming from the backend. The "frontend engineer" was born (2005 , the introduction of jQuery and many other javascript libraries becoming a "thing") and the server finally had a friend that would talk back.

3.0 full stacked

The technologies of web 2.0 have been taken to their extremes. The frontend engineers has sufficiently caked on enough processes and technologies to make a simple good thing (javascript) into a complicated mess (grunt, babel, vdom, components, templating, coffee script ... etc). And so we can say with confidence that being a frontend engineer is something takes the certain level of skill in logic and reason. The web is now mature but that doesnt mean it has stopped growing.

Much of the what we have today has been the laying of a foundation. This is an introduction and training of the web for the masses. Now the masses know what to expect. The general populace knows what a "troll" is and what a "hamburger nav" is. Now can apps can communicate efficiently with the public. What does the web community want to communicate next? Whats the new thing we are going to say? Or maybe my question as an engineer is what is new way we will speak?

Next.0

Microservice , navtive apps and many other techonologies are becoming common place but I dont feel that these are fundamentally significant differences from the current technology. Native is just a better browser that is closer to the hardware and microservices are just multiple MVCs communicating through a common data structure.

I think the IOT (internet of things) will be the next big frontier. The communication will be very familiar (server to client), but IOT is the next significant leap in growing the capability of the web. First we displayed info, then we let info travel back and forth. Next info will do things. I think this will take a long time to flesh out. Probably 20 years. In 10 years well see the big companies have some IOT products and then another 10 years before well be complaining on hacker news about how there are too many IOT frameworks. What are we going to do with IOT technology? Trying to guess about what will happen 20 years out is a practice in how creative you can be at being wrong. 20 years ago when the internet was just starting would anyone guess that there could be profit and high popularity of displaying personalities playing video games in real time (twitch.tv). Guessing technology is like predicting how a kid will turn out. It is the interaction of the technology and society that determines how it matures. If IOT does mature to a mainstream software environment (where we see opensource IOT frameworks) I think that will be the first time we see something more important and have more security concerns on the internet than the database. I cant wait for the fights between DBAs and RBAs (database administrators and robot administrators). As a fullstack developer Ill be in the middle instigating it.

But for now ...

Times have changed but browsers for the most part have stayed the same. As fast as the most ambitious engineers might want to move there seems to be physical limits in this virtual world (https://news.ycombinator.com/item?id=11203183). As we move from web 3.0 to web 4.0 or mabey more honestly stated, from web now to web next there are still some traditions that we can take comfort in. The server still responds to a simple handshake and you can confirm communication with basic "hello", at the core this is still the web and will always be. Thats a good, dare I say, a friendly start, for anyone coming into this ecosystem. Some of us still might not pass every bit of markup through a virtual dom, and some still might maintain our own state separate from the generated markup. Its ok cause it works, and the users get the data they need in an accurate timely manner which is the most important part. The one thing we should try to make sure does not go forward is math done in javascript. That was never a good thing.

No comments:

Post a Comment