First of all, I think web software development is more complex than desktop software. At least, the way of development is far from ideal.
Desktop software modularity, components are quite mature, such as the VB Delphi later Visual C #, java+ SWT, C + + QT. and web development, so far there is no particularly ideal component development mechanism.
In order to improve web software development, the industry has made many attempts.
January 16, 2002 , when ASP. NET 1.0 was released, it was really refreshing, and ASPX simply developed the Web in a VB way!
Java later followed up with the jfaces scheme, similar to ASPX.
2006.05.16, Google GWT first release ! Unlike ASPX, the idea of GWT is developed in the same way as desktop software, and it is done by compiling Java code into JavaScript to run in the browser. A similar scheme is pyjamas (now PYJS).
In the same year, January 2006, jquery was first released ! Now go back to the next year this thing, can think is the industry gradually found that the problem lies in JavaScript! JavaScript's low-energy, binds people's hands and feet .
The first version of the V8 engine was released at the same time as the first version of Chrome:september 2, 2008.
September 2, 2008, with the release of Google Chrome browser, the new JavaScript engine V8.
The advent of V8 has dramatically increased the speed of JavaScript, creating conditions for later front-end innovation.
Incidentally, Google Dart Lang, first Appeared:october 10, 2011. 2011 Double Ten Google launched the Dart language, and the idea was to use it to replace JavaScript .
Facebook Reactjs Initial Release:march 2013. (Facebook Reactjs first released in March 2013 ) Reactjs can be considered an important attempt at component development.
However, to this day, I don't think there is a development mechanism that can achieve the ideal level of Delphi for desktop software development.
Based on my years of experience in developing Web backend systems, I feel that the root cause of the web's comparative difficulties is the following:
1.B/S software is a kind of distributed software, that is, the software interface code data is not the same computer; b/S software is based on the HTTP protocol, while the HTTP protocol has a major feature is not to stay connected and stateless.
2.javascript language features and operating speed, it is difficult to support complex software development, and there is no choice, only use JavaScript. Although because of the V8 engine, there is a big improvement.
The 3.html language itself is expressive and does not support expansion. For example I need a DataGrid function, but there is no direct way to define a new label <datagrid></datagrid>
The key point is to say the 1th. What happens when a user opens a Web page using a browser? In a nutshell: The browser program of the user's computer transmits the HTML-described interface from the remote server to the local via the HTTP protocol, and the browser renders it as a graphical interface to the user and provides interactive functionality.
Once the user has done some work on the webpage, there must be some data to be transferred back to the server to save (otherwise, the server side is unable to perceive the user's operation, the interaction is not completed)
The interaction on the Web page is so "back and forth".
I often think that if you use Remote Desktop to develop a system, each user in the Remote Desktop Open a software window, then software development will be much easier!
Why? Because it can be free from HTML language, various Desktop window components are used directly. Because the RDP protocol of the Remote Desktop is to run the connection is thus stateful, if the network speed is fast enough, then the user does not differ significantly from the local in the remote.
Since Remote Desktop does not become the mainstream of software interaction in this way? The reason is not difficult to understand: 1 speed is not allowed, 2 server resources can not support this overhead; 3. Installation trouble, far less than the browser directly open convenient. In addition to these main reasons, 4 security may also have some problems.
So where is the way out? or in what direction will the future go?
Well, I'm not a master, I don't know. I think, there must be some technology, such as ASP. Jfaces GWT continues to evolve, a variety of front-end frameworks emerge, front-end and back-end integration framework will appear (server Side:nodejs), but also focus on ES6 and other javascipt development.
Not finished ...
Where web software development is difficult (compared to desktop software)