Java is a valid language. Many would argue that it has an important role to play in "institutional" programming as it strives to maintain a persistent API that keeps legacy software valid in a volatile market.Java is a valid language. Many would argue that it has an important role to play in "institutional" programming as it strives to maintain a persistent API that keeps legacy software valid in a volatile market.
Part of Java's technique for long term stability is to only target the Java Virtual Machine, that is an "adapter" that makes all hardware adapters look the same, in much the same way that audio jack adapters allow your walkman headphones to be plugged into an old mono grampaphone and a modern Dolby 5.1 soundcard.
The orginal idea was to allow programs that could be downloaded to different devices, something that has only really be achieved on mobile phones.
Many non Java users just see it as a way to write programs with a GUI that is able to look out of place on a number of platforms.
And yet both the Java language and the JVM have individual merits that can be exploited individually, yet seldom are.
Using the Java language to write institutional code that will be around for years is a GOOD THING. But I can't see any reason why, once the code has been tested and validated for the JVM, that it could not be compiled to a native platform for maximum execution efficiency.
Likewise the JVM is a useful tool that need not be confined to running Java apps, indeed as far as the "universal download and run" concept is concerned there is no particular reason to confine it's use to running classes developed in Java. Compilers that compile to Byte Code exists for just about all languages but the only one that seems to get much of an airing is Jython, the Python interpreter for the JVM. And JVM is mostly viewed as a scripting tool.
One thing I would like to see is SUN recognising the differences and launching the JVM under an RFC as a universal low level environment. On the internet the JVM has been primarily viewed as a browser plug-in, which is a neat idea but requires a collaboration that is atypical of the IT industry. And yet, if we imagined the JVM as an RFC defined universal execution environment, we could see it being embedded into server applications so that clients can upload thier JVM macros to carry out tasks on the server.
Imagine if you could upload a script to your POP3 server to process your email before downloading. Many hackers who have access to hoted machines do that with ordinary system scripts, but that is very much a hacker thing. A universal environment would mean that an ordinary user could get a "class" from an anti virus or spam filter specialist and send it to thier POP server.
Some Java DB's have got close to this concept by allowing the invocation of stored procedures and functions that are in an external classpath, which obviously could include an uploadable area. But I think there is a lot more potential.
If we look at web based archives, wikis and forums, for example. Webmasters are forever changing the interfaces to accomodate all kinds of search and browse options. I fell they should be taking on the role of librarians, concentrating on archiving and catalouging the information in a consistent and permanent format. That way users could upload thier own "personalised" webservers with built facilities to access the server data in the way they want on the server (needless to say we would be talking about long term subscribers and not casual surfers).
And what site would be a prime target for an experimental testbed? Your looking at it right now!