“The world of software is made slightly crazy because of the huge flexibility within any computer language. Once you have absorbed the idea of a compiler written in the language it compiles what else is there left to gawp at? But… a Java Virtual Machine JVM written in JavaScript seems like another level of insanity.”
I don’t know about the rest of you, but I don’t particularly care to have all my apps running inside the browser, so I think we should just make this VM a standard and run it at the OS level, instead of having every browser implement the VM separately. So you hit a website, and then it could run the application outside of the browser, and then you could create a shortcut to that app on your desktop or whatever, so you don’t have to launch a browser window to get to it. I don’t know how the security of this would work, but I’m sure some bright people could figure it out
Note: I HATE the concept of running every app in a VM as opposed to natively, but we’re obviously going the route of having everything run in the browser, so I’d at least like to be able to launch these apps and have them run like normal applications in the OS.
I think we are, eventually, going the route of accessing remote-running applications on a subscription basis.
That way developers handle all maintenance, security, and operating environment. This is the “cloud” concept taken to its logical ‘conclusion.’ It does have its advantages, particularly in collaborative projects. Version-control systems will need to become much more robust with a nice user-friendly front end as well.
The down-side is the strengthening of the license-model of software and the eventual demise of full-featured computer systems in the mainstream. Soon people will be leasing access to not just their applications, but also their data. Backing up will become a matter of copying your work to your own computer.
That said, however, this model will have a very slow up-take, and it will not be a very obvious transition. Already we are headed this way (look at google apps…).
The good thing about all this, however, is that Windows will begin to lose its strangle-hold as the operating system becomes increasingly less important to the average user – which will allow niche OSes to once again have true staying power and real competitiveness. Of course, we will still end up with interoperability issues within the cloud, however cost of entry to new applications should also be reduced for those who only need access for a single project or two…
Piracy will be a bit more tricky…
I love speculating…
–The loon
This will only work if people can choose where the data is stored.
There is a specification for HTML/JS applications which is gaining traction:
http://unhosted.org/
http://www.w3.org/community/unhosted/wiki/index.php?title=RemoteSto…
The user uses his/her email address to point to the storage provider and logs into the storage provider (ones per browser session) and then the browser based application can talk to the storage provider for storaging the application data.
Think of this as visiting the Google Docs site and saving your document at Yahoo or something like that.
They tried that with Java 15 years ago, but people didn’t like it, because of the usual it looks ugly, it’s slow, takes a lot of memory, doesn’t integrate with the system, it’s hard to develop, and blah blah blah.
They weren’t completely wrong back then; today things are a lot better. The fun part is that, since Java lost its appeal, people moved to uglier, slower, larger, less integrated, and harder to develop stuff like JavaScript.
Anyway, you can’t really do it outside the browser, as the “webapps” use HTML/CSS to render their GUI where possible (and I believe it’s a truly masochistic exercise in most cases).
To be fair though, Java is an implementation, not a standard. What we need is a standard like ECMAscript, and let the vendors fight over who will have the fastest implementation.
Why do we need a browser to render HTML/CSS? You could probably just have a webkit or other HTML engine running at the OS level that all apps can share. DOesn’t MS/KDE already do this with Triden and KHTML respectively? And anyway, I would imagine the VM standard would have guidelines for drawing more traditional controls (and things like native access to the underlying hardware), so hopefully they wouldn’t be so HTML/CSS heavy.
TBH I totally disagree with this.
Traditional GUI programming is a complete pain in the arse.
You almost always end up hardcoding one element or another.
HTML and CSS are damn easy to work with. JavaScript Event handlers almost work exactly the same in principle to Swing/Winforms etc.
Silverlight and Adobe flex use something very similar to CSS and HTML for the GUI … and it works fine … and fast.
Do you realize you just described Java?
No, I described a standard. Java is an implementation.
Edited 2011-11-23 01:15 UTC
Wrong, Java is a specification; Oracle’s JRE and JDK are implementations.
Please kill java on the web. It sucks!
http://www.codinghorror.com/blog/2007/07/the-principle-of-least-pow…
Does it run Minecraft?