About 6 years ago when I started thinking about software development as a career, I talked to a friend, a C programmer with a local company, about the future of the software. In my opinion, desktop applications (which we know today) run on remote servers. My argument is that with the advancement of technology, we should not install the software and run it locally. She thought I was stupid.
Today, with the increasing popularity of Google Docs (and less well-known to others), its dumb ideas are increasingly resembling reality. I think it's important that anyone thinking about software development should at least know this. Software and web development are slowly united. Returning to Google Docs, text, spreadsheet and presentation files can be easily edited offline, edited without needing to be installed, and saved after saving files locally. No, this is not a Google Docs promotional ad (actually I used it many times and did not take my breath), but it's just the tip of the iceberg when it comes to user applications.  Let me introduce a hypothetical example of running a popular application remotely. Suppose Photoshop, a graphics editing application, runs on an Adobe-managed server. To use this, I would buy a license (just like now when I buy a CD) and use the software with a browser (or client application). I did some tasks, all of which I asked the server and saw the results on the screen. While the computing power required by servers will be huge, technology can only improve, so it's a matter of time. In addition, existing distribution costs should be allocated to the appropriate hardware. Did this example go far? I do not think so. The cost of hardware is constantly decreasing, while the cost of distribution can only rise. Finally, due to the need to maintain competitiveness and technological progress, companies will consider the distant future.
This concept may include operating systems. Many large companies work with diskless computers that load the operating system from the main server over the network, so why can not the network be the internet? I can even see a world where I can upload Windows and the next Linux one day. There may be things to work with, but this is no miracle, but an investment.
Achieving such a concept has enormous advantages. First of all, it would mean the end of software piracy, which is important for developing companies. Secondly, because of open competition among developers, we would not have such high-performance obstacles. I'm sure Microsoft would think twice before asking me to buy a new machine to use the software, because you can easily compete with them. Additionally, the virus and spyware are no problem for the user, and I trust that the servers running the servers will do a better job than they do today.
addresses a number of issues, such as remote server users, but the benefits outweigh the inconvenience and make it much easier to handle technical support as companies need to solve problems with servers rather than custom user machines.
This is my view for the future, and while it may be far-fetched, it's definitely an idea to look further.