What Will Come After the Web?
Friday, March 16, 2007 1:18:03 AM
I often hear people that the web has displaced desktop apps. Or that the web has taken away any monopoly over the platform and has freed the hand of many programmers. Web apps can be used anywhere in the world and are thus superior and always will be compared to desktop apps. For example, you can check your email from anywhere. These are indeed advantages over desktop apps. But there's more to the story.
I'm noticing a trend lately. Actually, it's been happening for quite a while. Some talk about RSS being one of the big successes of the web. I find this odd because I use it to show exactly what's wrong with the web. RSS is not part of the web. It isn't. Your browser knows nothing about RSS. Sure, today's browsers can have functionality for it. But that's my point. The browsers had to change. If it was part of the web, this wouldn't be necessary.
I can list RSS, browsers, chat, email, P2P, news readers and others as software that use the Internet. Some of them have merged. Some have not. But what they all have in common is that they are all desktop applications. There will be MORE desktop applications like these in the future. So there's something about the web that just isn't enough. It isn't filling all our needs. This means there's room for something new. Something fresh to fill that void.
So what is this void? This is the wrong question to ask. It's the logical one though. And that's why we haven't seen any changes yet. The correct question is what makes the web superior in some cases. The answer is not any of the reasons I've given or any you will find online. The real reason is that the web has a universal API. No matter what web page exists out there, they must all implement the GET command. ALL OF THEM! On top of this, all web pages use HTML. It's a universal data format that has meaning. If you see a certain tag, it means something. As bad as some people think HTML is, you cannot deny what it has made possible.
Now tell me what universal API ALL desktop apps have! None! Zero! Zilch! Nada! They don't even export any functionality. You cannot send a command to any desktop app unless it is specifically built to handle this. But there's no common API or set of data structures. So that's the void. Extra API's and data structures. These other desktop apps that use the Internet implement new commands like RSS and P2P using protocols like bittorrent and Gnutella.
Just having a standard API and set of data structures for desktop apps would change the entire desktop application market. This would decentralise things, so big companies would be in a tough spot. Back on the Amiga, this actually happened. Large companies would leave completely and go into markets that didn't work this way (the PC). I'm convinced this is why the PC doesn't have interoperability between software.
With the Amiga, all GUI components were automatically published so that external scripts could control the app. Usually, all the functionality was also published so you would have more direct commands. Then you could write scripts to do repetitive tasks. You could even take the output of one app and send it to another app. Eventually, people wrote their own applications to replace these scripts and started selling them. You still had to buy the applications that did the work, but you could buy only the tools you needed. If you were to buy all the tools, it would cost much more than the big company's version. But you never needed all the tools. So it ended up being much cheaper.
At first, the tool companies were furious that others were profiting by making apps that used theirs for functionality. After a while, when sales were going up that was clearly due to outside factors (as they were claiming the extra sales were because of their own doing), there could be no denying that these configuration and auto-scripting apps were helping business. These small businesses actually displaced larger ones. But then the Amiga died out (for reasons not mentioned here) before it saw the full extent of the web.
I don't believe that just having a common interface is enough. I do believe that it would be a good start. And I also believe that if someone invents a platform for interoperability at the desktop level, the web won't stand a chance. It will happen. It's just a matter of time. Unfortunately, I see nothing anywhere near what I foresee or would like to see. Not even close. Outside of what I'm trying to do with Project V, I'd say it would take about another 10 to 20 years before this would come to fruition. Right now, people are caught up with adding functional programming to existing languages as well as the coming multicore crisis. This will last for several years. Then I'm sure something else will preoccupy people's minds. After a little more of this, programmers might want to finally solve the real problems why software is getting more complex.
What will come after the web? Interoperable desktop apps that can run anywhere. The difference is that web apps are at the mercy of the protocol. Desktop apps are not. They can make their own and use hardware devices. If you can have this under one roof, you've got a recipe for success. Will this happen anytime soon? No! The best ideas rarely make it. I'm hoping what I'm working on will prove useful, but this article isn't about that. It's about trends and seeing the logical conclusion of those trends. In chaos, order always prevails. I believe something good will eventually come out of all this expanding software complexity.


Unregistered user # Friday, March 16, 2007 4:53:48 PM
Vorlath # Friday, March 16, 2007 6:46:59 PM
Unregistered user # Friday, March 16, 2007 10:39:35 PM
Vorlath # Saturday, March 17, 2007 2:26:04 PM
About the web, desktop apps have access to everything you mention. But like I said, the apps themselves don't have a common interface. So they are left out. I agree with some of what you say on this as I've said the exact same thing.
About REBOL, I've heard the name a couple times. But I'm not familiar with it and don't remember anyone who's owned an Amiga being familiar with it either. I'll take a look and see what it's about.
Unregistered user # Tuesday, March 20, 2007 7:47:04 PM
Vorlath # Wednesday, March 21, 2007 2:14:08 PM
In other words, I agree 100% with the premise. But I don't like the implementation.
Unregistered user # Wednesday, March 21, 2007 4:56:59 PM
Vorlath # Wednesday, March 21, 2007 5:13:57 PM
ALSO!!! You can provide your own set of allowed operations. That would be cool. Servers and clients alike can have functionality published and be usable by others. Then you can have truly global running software using all sorts of computers as nodes. Ok, I'm starting to dream again...
BTW, your explanation rocks in 360 degrees.
Vladasvladas # Thursday, March 22, 2007 4:30:52 PM
You may look at the source, and you will only see the initial small chunck of HTML. The rest is JS. All further markup is generated on the fly.
The project is on very early stage, and is concentrated mostly on the storage of fluid tagged data (by now).