As HTML, CSS and JavaScript keep advancing, the power that resides in your web browser grows. More can be done efficiently and interactively with JavaScript in the web browser, and with server side languages doing back-end processing. As a result of this, more and more software applications are being written in web languages instead of standard systems languages such as Java.
This post has come to be because of something I noticed the other evening when out for dinner at one of my favourite restaurants - they were using Google Chrome to manage orders and so on, this was the first time I'd ever seen this kind of e-commerce application.
I'm a huge fan of web technologies and developing for the web, but I'm not entirely a fan of the use of the web to develop every bit of software required out there. For a start, none of the languages used on the front end are compiled before being sent (now this would be a good idea for JavaScript) so it's easy to manipulate them with some kind of other underlying program (such as a virus). This could indeed by a security problem that could be avoided by a compiled program written in a language such as C. Also, as JavaScript is an interpreted language, it is interpreted considerably slower than that of a compiled program.
But web based technologies do offer some major advantages that can be seen as the main reason for their use.
The first is that they are available on any computer with a web browser. This also makes them platform independent since the web is a single standard that must be implemented by all web browsers. It also means if they are on a server somewhere, they can be accessed from anywhere and indeed do not need to be installed.
The second reason is because of the kinds of tasks being performed in these applications are relatively simple and do not require the full power of a system. As a result, the JavaScript scripting language is sufficient for performing these tasks and therefore cheaper too.
The third reason relates to user-preference as web-based applications offer a much easier alternative to other applications when it comes to setting user preferences. First off, we have cookies and session storage. Both of these let us save information for later and quickly restore it, and there are plenty of APIs for using this kind of stuff. Secondly, CSS makes it really easy to style items on the screen and is far more favourable for most companies out there.
Processing performance is a big advantage here too since we can do major processing on a server that is connected to the application rather than doing it on the local machine. This is a huge advantage that can help with mission-critical situations, such as a traffic monitoring system.
Another major argument is scalability. Whilst some desktop languages really suffer as applications grow, web applications are by nature sub-divided into smaller programs and can be seen as more scalable. Expanding an application written in web based technologies does not need a full redeployment of the application, simply that a user refreshes the page.
Security is also a huge advantage now, at least in terms of keeping parts of the application safe. This is because the code that is stored on the server will never be transferred to the client, so you can keep all of the secure stuff away from the users of application. This all makes it less likely that the application will be misused by its users.
Finally, the main argument for many developers, including myself, is ease of development. HTML, CSS, JavaScript, PHP or JSP are easy to develop for. It is this argument that draws most developers to it.