Something is missing about the web platform

I remember the good old days when I was entirely devoted to create desktop applications. That was the time when desktop applications development ruled. Web developing started to take some popularity but was not stronger at that time (well at least in my country).

I was in April 1999 when I got my first job as programmer only one year before finish my university studies, in a small software development company. In this small company I was in charge for developing a patient record module for a medical system, in Visual Basic 5. Few months later, we got the brand new Visual Basic 6.0 version and we migrated the application. One year later, I moved on to Geusa (a local Pepsi Corporate franchise) to finish development of a Warehouse Application development, made in Delphi 4.0 and a mix of Visual Basic 6.0.
I want to highlight one point about desktop applications development: the simple and established way related to work with the user interface.


Here are why:
- You had your development tool ( visual studio, Delphi, etc) with an integrated GUI designer.
- A complete toolbox of controls you needed: you place them in the form and you give them some behavior and functionality.
- There were the event handlers to do that, only you must care about code layer separation and not making a mess of code within the related to your GUI objects, among other things.
- Only you had to fill out this components with data, not remake the component itself.

This way of getting the things done about the desktop applications was very straightforward. I don’t remember having to use some kind of ultra-popularity- framework.


Now in the present times, after several years making web development, I feel like another layer that makes more difficult the development of software was added: the open, dynamic and changing nature of web presentation. Before continue, we have to remember that the web was born as a standard way for share content. This mean that primarily, we are working with images, text and another type of visual elements.

Over the years, web standards and technologies evolved to support elements related to user input interaction ( form elements, file uploads, client side improvements, dom model, etc) . That means that the web standards were adapted to meet the need of application development.


Concerning to the user interface in web application development, all the gamma of components we had in desktop is tried to be emulated in a very varied ways, but at the end they are not real. A level of complexity is added because we try to replicate the event-based component model in a world that doesn’t exists at all.


Proof of that: search the number of existing web frameworks created to develop web based applications. Everyone with its own model and specific terms, API’s, ways to do the things, etc.
In my own personal point of view this variety of frameworks made the web development more complex because they slow the initial web development learning curve if you don’t master one. And is also complex because you have to deal with the problems or bugs related to the framework itself.


Do you remember when making desktop apps messing with config files to configure and arrange all your user components ? Yes, they exist but you focus on the application itself instead of worrying to setup and hacking those config files. I think this is one step backward of this web developpent approach. Even in the Android development, you have to stay aware of xml config that define your graphical presentation.
Check the number of files, directory structure and steps required for create a simple Hello Word component for Joomla, it makes no much sense to me.


I always stated that web development is not desktop development, and trying to recreate one model in to the other one doesn’t fit at all. If that is the solution, why there are more and more frameworks?

Something is missing in web application development: a standard web application event-based component model specification, that let us create complex components and extend them, or due the document and open orientated nature of the web, another way of doing the things.