Friday, March 11, 2011

NOTES: Web Application Development Sucks (or at least frustrating)

I have been wanting to write this for a while, I believe ever since I started web development more than 15 years ago. Web Application Development is pretty frustrating mostly because of issues with the foundation technologies, HTML, CSS and JavaScript. Alone, they are pretty harmless and quite useful but when mixed together they seemed to step over their intended roles (CSS is pretty useless in a self-contained environment). The original intent of websites seemed to involve easily publishing text documents so that others could view information online. The documents also would have functionality to link to other documents. There you have a web of documents. The web of the mid-nineties was functional and didn't seem so bad. In 2011 so many features have been piled on top of past technology and now we are just left with this big pile of mud. Most content online is for presenting text information, like news reports or stock quotes, business profiles. But now businesses are putting their entire applications online in a publicly accessibly way. All you need is a username and password and you are granted access to the business site portal. So what is the problem? Well, we we went from online published text documents to business web applications like online banking website or shopping carts. On top of the web standards groups decided that business applications aren't enough, we need graphics and video streaming and whatever else. All of this is kind of clumped together with the HTML document format.

What is the issue?

A typical HTML document has a declarative format. You include a mix of your text and the formatting associated with that text. If you want to add bold formatting to a piece of text, then add the bold wrapper tags. [b]TEXT I WANT AS BOLD[/b] And the rendered output of that text has a bolder text. Simple. And a full HTML document is equally as a intuitive. Add the [HTML] tag to begin a document. [HEAD] for the header, meta information, BODY tag and then the text content itself.

The problem comes in when you want to start building web applications. Compare a responsive desktop application with a similar web-application. JavaScript, the language is a powerful general purpose programming language. I just have issue with the hybrid mix of HTML for content, JavaScript for handling user events and CSS for styling. There seems to be too much overlap between the three technologies and too much unexpected behavior when you want to do complex tasks. If you want to show or hide a section of the HTML content when you hover over a link. There is an approach you can use with CSS, there is an approach you can use with JavaScript. I don't really understand why CSS should be used to interpret mouse and hover events but apparently it has that capability.

There are overlapping concerns and no real consistent way to handle the overlap. The behavior also varies from browser to browser. The developer has to worry about too many different side-effects that can occur from inconsistent page layouts and where JavaScript is placed, how it is included, possibly when the JavaScript is interpreted by the browser. The environment surrounding HTML, CSS and JavaScript is very error-prone.

My Solution

I am very much in favor compiled languages, possibly translated into some form of vm bytecode. Let the HTML/CSS/JavaScript compiler catch common errors before the code is deployed to a server. This is similar to the approach that Google's GWT Compiler uses.

7 comments:

  1. i rattling thankful to find this web site on bing, just what I was looking for likewise saved to favorites
    Web Development UK

    ReplyDelete
  2. This comment has been removed by the author.

    ReplyDelete
  3. This comment has been removed by the author.

    ReplyDelete
  4. This comment has been removed by the author.

    ReplyDelete
  5. This comment has been removed by the author.

    ReplyDelete
  6. Master Strokes Delhi, India, provide services for
    Website Development company
    ,CMS website,SEO Services India, SEO,SEM,SMO,PPC Services Company India,Ecommerce website development, india.

    ReplyDelete
  7. Definitely believe that which you stated. Your favorite reason seemed to be on the internet the easiest thing to be aware of. I say to you, I certainly get irked while people think about worries that they plainly don't know about. You managed to hit the nail upon the top as well as defined out the whole thing without having side-effects , people can take a signal. Will likely be back to get more. Thanks
    How I can Create YouTube Channel?

    ReplyDelete