Recently, I’ve met a couple developers who just “got” into web development a few years ago and found out that they have no understanding of the history of web development. I thought it’d be nice for many beginning developers to understand what happened in the past 10 years and how we got to where we are at.
—
It’s been roughly ten years since the birth of “standardized” web development, or as you’d call it “Web 2.0.” Prior to it were the wild, wild, west days of coding, where codes roamed free and no web police to tell you otherwise. It was nasty, man, nasty (ugh osCommerce). Many of them apps were just awfully designed and ugly, they lacked standards and had their own weird way of doing things.
Fortunately for us, things took “shape” in the past 10 years.
The Birth of Web 2.0
September 2005 — MVC (Ruby on Rails)
The web development greatly took off since the launch of Ruby on Rails, which at the time showcased MVC (Model-View-Controller) just how simple, organized, and fun web development can be. It introduced many of the things developers take for granted today. Aside from Ruby’s compact style of coding and it’s MVC methodology, Rails went further by providing things such as database migrations, unit testing, generators, and routing out of the box! An all-in-one package of all the right things while keeping things incredibly “simple and elegant” to use, which I’m still quite baffled by how the creator (DHH) did this at a time when none of these existed. Even more amazing is that he built it on the Ruby language, which at the time, was utterly bizarre and new to most developers. That’s some balls. Coincidentally, I believe this period also marked the birth of when hipsters started appearing with their beanies, beards, and oh yes, the Macbooks. Soon after, many web frameworks followed it’s lead and began to incorporate MVC as well, such as Zend Framework and Django.
August 2006 — Front-end boom (Jquery and Ajax)
The period when the web designs started to get cleaner, and fonts began to get bigger. More importantly, it was when John Resign introduced a javascript library called Jquery that changed how we do front-end coding. Jquery somehow turned the incredibly ugly Javascript language that nobody wanted to touch into one of the most friendly and enjoyable coding languages to use. There were others notably Prototype/Scriptaculous and Mootools, which were still significant milestones. However, Jquery with it’s elegant coding style with its CSS-selectors and easy to remember methods, allowed developers to wield the incredibly boring DOM (at the time) extremely pleasant to do. It was also during this period when the web became alive with server-side Ajax calls, fancy animations, and dynamic renderings we take for granted today. It also marked the time when the internet started contributing Jquery plugins, and it truly showcased the power of open source.
Around, 2006 — Server Package Management (Yum / Apt)
It was around this time when system administration started to get easier. When I say easier, I mean like 100 times easier. It used to be that previously, web server stacks such as Apache, PHP, Mysql had to be manually compiled (or build your own RPM packages). Some of these were incredibly fun, like especially when SHTF during service upgrades. There weren’t sites like Stack Overflow to help you and mailing list was your only hope. Every modules and configuration changes usually had to be re-compiled which typically took half an hour or more (the whole time you praying) and there weren’t snapshot technologies back then to rollback so risks were high. But ever since the days of Yum and Apt packages matured, installing and setting up services have been a breeze.
September 2007 — Micro-frameworks (Sinatra)
The movement spearheaded by the micro frameworks such as Sinatra, Express, and Flask. I think this was the turning point where people started to realize, “Hey, less is more!”. It introduced the concepts of minimalistic frameworks, where with just 5 lines of code, you can start your website with a highly structured codebase that is fast and robust. These not only made websites more performant due to its lightweight nature, but they also sped up the learning process for many developers because they are incredibly minimal and quick to learn.
September 2008 — Stack Overflow
Previously there were QA forums like Experts Exchange but either many of them were not good or it wasn’t free. Stack Overflow changed all that and made it extremely easy for developers to ask and receive help from the experts. Can’t thank them enough, really can’t.
Around 2010 — Web Scale (MongoDB)
MongoDB shook the world a bit with it’s NoSQL database which promised incredible speed and simple horizontal scaling (sharding) out of the box, which was difficult to do with relational databases such as MySQL. Developers caught on the scalability fever and the term “Web Scale” was born. It was thought to be the holy grail for creating applications with Facebook level traffic. But there were also many developers and DBAs that were highly against it as well.
Around 2010 — Front-end frameworks (BackboneJS, KnockoutJS, Angular)
I recall this period vividly like yesterday when the 2-way bindings were all the rage. I recall how each of them had some major shortcomings, such as FOUC (flash of un-styled content), lack of SEO support, and extra code bloat.
August 2011 — Standardized CSS (Bootstrap)
Before Bootstrap, HTML/CSS coding was, as you might imagine, a real pain in the neck. You truly had to master the ins and outs of CSS specs and keep sync with the many different browser quirks and features. We really should pay a great tribute to Twitter and their team for making Bootstrap open-source. I’d hate to think how things would be without Bootstrap. Amongst the most notable achievements of Bootstrap is that it have brought an appealing, minimalistic design that caters to almost everybody, which is quite a feat in itself.
Around 2011 — HTML5 kills Flash
Apple declares to drop Flash support. Most Flash developers abandoned ship around this time.
Around 2012 — Responsive Web Design (Mobile, Tablet, and Desktop)
Web design started to get a lot more complicated knowing that you had to design for many different screen sizes. Frameworks like Bootstrap helped ease the pain but the pain still exists for many designers and developers. UI/UX designers started to become hot commodities as they would articulate the application flows for all devices with a single design.
March 2013 — Facebook open-sources React
React was the next logical choice for many front-end developers who worked with Angular. Many of them love the fact React is much easier to work on because it doesn’t require hundreds of methods that Angular provides and it provides you with a simpler 1-way binding instead of 2-way bindings.
March 2013 — Docker was released
I believe this was a monumental event for developers. Docker allows you to package an entire fleet of servers into a single command. Now anyone (even non-techies) should be able to host a website or a service with a single command. Things are still a little rough around the edges but I think it’s getting there to the point it will change the way we do app development and deployments completely.
2014 — Functional Programming Languages makes a comeback
Functional programming have become the latest craze due to a surge in Node.js, with Clojure and Elixir taking shape as well.
2014 — Immutability became a thing
With the popularity of Docker surging, this led way to immutability being a thing! Basically immutability means that something can’t be changed once created and can only make copies of it. It certainly makes a lot of sense in the devops and sysadmin world to have identical copies of your servers all around. Front-end world also got a kick out of immutability due to React and it’s Flux paradigm pattern.
2015 — Rise in Isomorphic Frameworks
Over the past few years, there have been a rise of interests in isomorphic development. Which is basically to say it combines server-side and client-side coding. Meteor was one of the first to do so back in 2012 and they seem to be steadily growing in popularity. Also, I think we will start to see more and more apps utilizing Websockets as they become a key in making this possible.
2016 — Web Components
React is currently paving the way in making Web Components a hot thing. But there is also others like Polymer, which I believe can have a bigger impact in the Web Component space soon.