Tools of the Trade - Part 2
Coming back after another stretch of hiatus. I need to find more energy to blog regularly!
Also, it looks like the ideas I get for my post are more technical in nature. I have made a mental note several times to also post on casual topics, but so far it has not materialized. Will try to do this in the future. So, here comes another technical post!
Recently, I was reading an article from the Time magazine. The line “In the 1930s, you could throw 10,000 people with shovels at dam or road projects. Today the work of 10,000 shovels is done by a few machines“ ignited another related thought in my mind about web development. What’s the connection? This post explores it.
Yes, back in those old days, human race was still technologically backward. Take agriculture for example – tractors were probably not widely heard of during that time and tilling of land was still mainly using animal strength (at least in India). Motors were rare, and people used horses or horse driven carriages to commute. As the years passed, the human race progressed – we developed tools which we used to design and manufacture sophisticated items like a tractor or a car. In the process, we also designed better tools which further improved our capabilities to produce goods. These tools removed or reduced the time people spent on mundane or labor intensive activities and drastically improved productivity. People now gathered skills required to utilize the tools effectively to reap maximum benefit.
Very soon, the 10,000 people with shovels and chisels of 1930s were replaced by a few machines, and the operator of the machines needed to be skillful in his area of work.
Fast forward to the present, and think about web development for a minute. Today, if we have to follow all the correct standards of web development (like keeping CSS and javascript separate from html etc), there are no tools that aid us there. One needs to code by hand using a plain simple text editor like Textpad or notepad. A lot of web development books mention this as though it is an advantage! Take Jeremy Keith’s book on DOM Scripting for example – look at page 14. Coding a webpage by hand using a plain simple text editor is equivalent to the building a dam or a road by using just the very basic tools such as shovels. Such development is painfully slow due to obvious reasons. Since the html/css/js code needs to be neither validated for syntax nor is compiled at all, errors in the code are not detected until run time - coding is really by trial and error.
So, the need of the hour is really some handy tool(s) to aid web development. There is certainly some effort in this regard – Aptana Studio is one such tool. (I use Aptana as an Eclipse plugin for html intellisense and to view the outline of JS files). However, there is much left to be desired. The nature of html/css/js itself (dynamic architecture) makes development of any tools very difficult. Added to the complexity is the nature of enterprise applications, where most of the time, dynamic web pages using JSP/PHP etc are needed. Then there are tools like Google Web Toolkit (GWT) which complicate matters further by providing a java interface to coding web pages. A big feature still missing here is a “designer” interface. So, what is the poor developer to learn and master?
Is Adobe Flash or Flex the answer? I really don’t know as I haven’t explored much of either. Of course, flash / flex applications are not really the typical “web applications” – they are applications that can be hosted on the web. They also cost a ton of money in license which has made me stay away from them so far!
Bottom-line – even though a lot of standardization has happened over the last few years, we are still in the very adolescent stages of web development! There is a lot of work still to be done before we developers can really work on the “design” rather than worry about syntax errors in their code.
My vision of a web-development tool in the future would be this one tool - which has the designer interface where you would really drag and drop elements onto the screen to create your web page. This tool will automatically generate code (HTML/CSS/JS) which adhere to all the web standards. The tool will need to provide for scripting using some high level language and will check for syntax errors at the time of development. Of course, the tool will be built on open source framework!
Any guesses on the timeframe for the availability of such a tool?
Also, it looks like the ideas I get for my post are more technical in nature. I have made a mental note several times to also post on casual topics, but so far it has not materialized. Will try to do this in the future. So, here comes another technical post!
Recently, I was reading an article from the Time magazine. The line “In the 1930s, you could throw 10,000 people with shovels at dam or road projects. Today the work of 10,000 shovels is done by a few machines“ ignited another related thought in my mind about web development. What’s the connection? This post explores it.
Yes, back in those old days, human race was still technologically backward. Take agriculture for example – tractors were probably not widely heard of during that time and tilling of land was still mainly using animal strength (at least in India). Motors were rare, and people used horses or horse driven carriages to commute. As the years passed, the human race progressed – we developed tools which we used to design and manufacture sophisticated items like a tractor or a car. In the process, we also designed better tools which further improved our capabilities to produce goods. These tools removed or reduced the time people spent on mundane or labor intensive activities and drastically improved productivity. People now gathered skills required to utilize the tools effectively to reap maximum benefit.
Very soon, the 10,000 people with shovels and chisels of 1930s were replaced by a few machines, and the operator of the machines needed to be skillful in his area of work.
Fast forward to the present, and think about web development for a minute. Today, if we have to follow all the correct standards of web development (like keeping CSS and javascript separate from html etc), there are no tools that aid us there. One needs to code by hand using a plain simple text editor like Textpad or notepad. A lot of web development books mention this as though it is an advantage! Take Jeremy Keith’s book on DOM Scripting for example – look at page 14. Coding a webpage by hand using a plain simple text editor is equivalent to the building a dam or a road by using just the very basic tools such as shovels. Such development is painfully slow due to obvious reasons. Since the html/css/js code needs to be neither validated for syntax nor is compiled at all, errors in the code are not detected until run time - coding is really by trial and error.
So, the need of the hour is really some handy tool(s) to aid web development. There is certainly some effort in this regard – Aptana Studio is one such tool. (I use Aptana as an Eclipse plugin for html intellisense and to view the outline of JS files). However, there is much left to be desired. The nature of html/css/js itself (dynamic architecture) makes development of any tools very difficult. Added to the complexity is the nature of enterprise applications, where most of the time, dynamic web pages using JSP/PHP etc are needed. Then there are tools like Google Web Toolkit (GWT) which complicate matters further by providing a java interface to coding web pages. A big feature still missing here is a “designer” interface. So, what is the poor developer to learn and master?
Is Adobe Flash or Flex the answer? I really don’t know as I haven’t explored much of either. Of course, flash / flex applications are not really the typical “web applications” – they are applications that can be hosted on the web. They also cost a ton of money in license which has made me stay away from them so far!
Bottom-line – even though a lot of standardization has happened over the last few years, we are still in the very adolescent stages of web development! There is a lot of work still to be done before we developers can really work on the “design” rather than worry about syntax errors in their code.
My vision of a web-development tool in the future would be this one tool - which has the designer interface where you would really drag and drop elements onto the screen to create your web page. This tool will automatically generate code (HTML/CSS/JS) which adhere to all the web standards. The tool will need to provide for scripting using some high level language and will check for syntax errors at the time of development. Of course, the tool will be built on open source framework!
Any guesses on the timeframe for the availability of such a tool?
Labels: aptana, tools, web development