The stuff that dreams of are made of “ ~ The Maltese Falcon
Web Development is a fast paced, highly competitive and creative field. Commonly, there are two big parts to any web-based thingy. The front end, where the pretty stuff is. This falls under web design. Then we have the back end, where all the heavy machinery nestle. Technically only the back end falls under web development, but one cannot describe a house, without showing where the front door is. In this article I have tried to collect the views of the people working behind in the concepts discussed, from many web posts. At the bottom, are a few resources you can look at if you are interested.
I wrote this article originally for the KHMD blog
Going a little into the annals of computer history, we find that the Internet, despite growing rapidly, did not grow in chaos. It was developed layer by layer, each step taken in a logical sequence. The development of the internet, began with the creation of efficient data transfer systems. With the creation of the World Wide Web, came the key components of our present internet - the web browser and the web page.
Sir Tim Berners Lee (All Hail!) also created the Hypertext Markup Language - HTML - along with the web. The first few versions of HTML were, to put it in a nice way, severely lacking. If it weren’t for CSS, the Internet would be ugly.
Web Apps will dominate the market
Across the world, there is great belief that web based applications will be the future - of not just the web - but also smartphone and desktop apps. The arguments put forth for proclaiming web apps as the next conquerors are quite simple. Web-browser based applications are easy create - they primarily use the languages and technologies used to build regular websites - and will run on a multitude of platforms with just some minor adjustments. Today, with the rise of several mobile and desktop operating systems, each with their own system type, each with their own specific set of programming languages to develop with, more and more people (developers to be precise) are clamoring for a unified technology that allows one to build an app once, and get it to work everywhere.
Putting it all together, the general idea, is that why not make applications which are run by a web browser as opposed to them being run directly by an operating sywww.polymer-project.org/images/logos/p-logo.svgstem - To create what is quintessentially an operating system which is run on top of another operating system.
Oh if it were only so simple ~ Aleksandr Solzhenitsyn
Unfortunately, the world functions in mysterious ways. Or in this case, in very clearly defined, but still mind-numbing ways. There are a host of problems in such a model. If one were to make a list, of all the hurdles we would need to cross to implement this idea fully, topping that list would be Performance. Native apps (Normal apps run by the operating system directly) are able change a variety of system settings in order to fit in exactly, so as to utilize as less system resources as possible, and yet function smoothly and give a rich user experience. Currently while it is possible to some degree to create an app that can run on a particular browser, with some effort on all browsers, and maybe with a lot more effort on all browsers on all mobile and desktop OS’s (The time, human drudgery and expertise required will be high), such an app, will not be able to run nearly as well as a native app.
Here is a more detailed and well explained article regarding Google and Web applications : The future of the web according to Google
Flash of Death
One thing anyone can say for sure, looking at the present scenario, is that Flash will be driven to extinction. In 2010, Apple sounded the death knell for Flash by making iPad’s and iPhone’s incompatible with Flash. Google followed, and all versions of Android past ICS, do not offer any native Flash support. However HTML 5 is not replacing Flash at a rate which would be expected. Presently most browsers offer only limited compatibility with HTML 5, despite it being having more performance benefits. The vast majority of video streaming sites use Flash player, rather than HTML 5 based solutions. Even Youtube, still uses Flash Player, although it’s rapidly going HTML. It looks like Flash is not going to go down without a fight.
I will go a bit into scripting languages here. All interactive, motile parts of a website or web app (barring hyperlinks and css effects) are powered by scripts. There is more than way to skin the proverbial cat, and web-developers use mainly two different techniques to run scripts.
<Warning> Textbook definitions up ahead!
Let me start off the introduction to Angular.js with this picture :
Polymer is another project by Google, and it is, I have mentioned before, made for building web application components. Polymer is a new language that is still very much in development - I forgot to mention earlier, that it was launched in 2013. Polymer basically helps in building components, which together work to form a web app, or can directly be used in websites as modules for extra functionality. While Polymer is a great concept, it is still looks like it’s way ahead of it’s time.
An article sounding alarm bells for Polymer : Is Polymer.js the future of web application development?
On a final note, I would like to remind you that Polymer’s dependencies, although non-existent in the present, are already being made and standardized. Polymer uses several powerful features of HTML 5 not yet approved by the W3C, but hopefully, Polymer will succeed.
CMS (Content-Management Systems) on the rise
A rather small, but interesting thing to note is that the use of content management systems is on the rise. A CMS is generally used when there are large amounts of data to be posted on a website, or a large number of users post data to a website. Most blogging platforms like WordPress, Weebly and Blogger use CMS, along with e-commerce sites which use specialized CMS’s such as Magento. If you want to use a CMS for your website (not one that is on a blogging platform) Drupal is highly recommended, as it is open source.
The Web is now a shining beacon for all other fields of computer technology. Some of the greatest people in the field of technology and programming are developing for the web. There is a lot of room for ideas, and is a great area to point one’s computer skills at. If you are interested web development, now is a great time to get creative. Check out the resources page of the KHMD blog for some general resources pertaining to web development. Below are some resources specifically regarding the technologies discussed in this article.
Thanks to Gautam Padiyar for the ideas.
Before you start anything, head over to the homepages of these great projects. They give links to great learning resources, as well as lots of info concerning how why that project is really useful
Polymer - polymer-project.org
Node.js - nodejs.org
Angular.js - angularjs.org
Rey Bango’s Post on how to create basic elements in Polymer.
Angular and Polymer are very very similar. Here’s a post laying out the differences : Polymer vs. Angular
Here are a few links to detailed lists of great goodies
Node Cloud This website contains all the possible resources you will ever need to get started with Node.js, including details of different frameworks and IDE’s.
Udemy’s Node.js tutorial Udemy has a beginners’ course for learning MongoDB in Node.js. Great for someone who wants to launch themselves into a database-intensive NodeJS project.
Github list of Angular JS Resources From what I infer after opening a fraction of the links to resources provided here - and they are great ones too - is if you want to begin with Angular Js, visit this page.