Saturday, June 05 2004 @ 01:14 AM CEST Contributed by: bart Views: 4019
Quite a few years ago now, SUN came up with this really cool idea, make a language and a runtime environment that are portable to almost any platform, and that would allow transfering binaries between platforms and run them directly by means of using bytecode.
The problem with JAVA is that while in theory it will run on any modern platform, and with proper licensing, you can build it on most platforms (given you have a working JAVA implementation to bootstrap the build.... isn't that a bit odd?)... the reality is that unless SUN decided to make binaries available for a platform with an end-user license, there is no practical way of getting JAVA on a machine.
Now, SUN of course has such binaries for Windows, Solaris and Linux and some other systems, but for example not for FreeBSD/OpenBSD.
On the other side, it is quite possible to reliably and automatically build JAVA on a FreeBSD machine provided you have the sources.
The real problem is that such a version that is built from source can not be distributed, resulting in having to rebuild the same thing and wasting half a day for each and every customer that needs JAVA. This is not very usable in a production environment.
Now, this concerns FreeBSD so you'll say: switch to Linux. That sounds like an option if not for the fact that I run into a similar problem.
First of all, few Linux distributions seem to have managed to include a JAVA runtime environment at all, in all other cases I have to download it from SUN. More problematic however is that when maintaining a Linux machine, you may end up having to install newer versions of libraries, which at times introduces compatibility issues. It is however not trivial to just recompile JAVA and link against the new libraries.
I understand why SUN wants tight control but I also see why it is very clearly not a good thing in the world as it is now.
If SUN wants JAVA to last, and insists on not making an Open Source version, they should at least ensure they don't obstruct actually using it, and stop putting up all kinds of silly restrictions on distribution and recompilation of the runtime environment, esp. for a relevant server platform.
Failure to do so may result in one or both of two things:
An alternative Open Source JAVA gets created over time
JAVA becomes irrelevant
Bottomline, bothering the end-user or server admin with their development issues and strategy is a very unwise policy, and SUN should really look into keeping it away from the end-user if it doesn't work in the advantage of the end-user.
This is even more true when looking at server-side JAVA, since it is a more centralized thing, it is easier to replace with something else, and good alternatives do exist already.
My personal server is fast enough to build new JAVA versions regularely, so I have the FreeBSD JAVA runtime installed there from a local build. The same applies to my workstation, but I find it extremely silly from SUN to expect people to let their machines spend a night on a recompile just because they need a specific fix or feature, and do so on each individual machine. (for comparison, I use a dedicated PC for recompiling my local FreeBSD builds, this is an Athlon XP 2600+ which can build the 3 differently optimized versions that I use in less then 6 hours. That is less time then a single build of JAVA takes on my server. If I could use that for building and distributing JAVA for my network and customers that would simply save me days if not weeks in CPU time each time I need a new release, and it would be a lot less bothersome.
At any rate, I hope SUN fixes this before it has become utterly irrelevant, it would be a waste of an otherwise very usefull tool, and would remove one of the last strongholds they happen to have in the software market.
The recent settlement between SUN and Microsoft doesn't bode well for getting a solution for this.
This is however a 1.3.1 version which doesn't support native threads, and which doesn't take advantage of a SMP system.
While it shows that the FreeBSD team are doing their best to get a usable JAVA distribution, it also goes to show that SUN is the one responsible for bogging thigns down.
The same peopel who made this outdated release possible are also makign it possible to compile a modern JAVA release on FreeBSD... but they lack SUN's blessign for distributing it.
Authored by:
sven on
Thursday, November 30 2006 @ 01:56 PM CET
Sure, Sun had a great idea. Refrigerators and stoves running Java. Really cool, but letīs look at the reality, and take a look at the Java TV API (JSR 927). A cool idea too, and much more useful than haveing a stove running Java. Java on a Set Top Box.
There are some flaws however. Currently Iīm working on Set Top Boxes using the ST chipset and running embedded Linux (st-linux). The Java TV requirements are J2SE (Java 2) and JMF (Java Media Framework).
Basically, for embedded devices (such as set top boxes) there are four java Flavours available:
1 - J2ME CLDC
2 - J2ME MIDP
3 - Personal Java
4 - Embedded java (Personal Java without AWT)
Personal and Embedded Java are basically Java 1.1.8 VMīs
For st-linux we can use CEE-J (skelmir) which is a personal java. As the curious reader may observe, there is absolutely no way we can create a middleware based on the Java TV api for a set top box.
Letīs look at enhanced TV Broadcasting. In this example a dope named Ricky wants to watch a basketball game. During the game, Ricky brings up the "Real Time Scoreboard" which is a Java TV API application.
A manager looking at this example will probably say "Cool, I want that on my set top box". The geek watching will probably say something like "To do that in Java requires SWING".
Java still is in the same spot it has been for quite a while, write once and run in some places.
As jjgm@slashdot points out in his slashdot post, there is a binary JAVA distribution for FreeBSD. It can be downloaded from The FreeBSD Foundation.
This is however a 1.3.1 version which doesn't support native threads, and which doesn't take advantage of a SMP system.
While it shows that the FreeBSD team are doing their best to get a usable JAVA distribution, it also goes to show that SUN is the one responsible for bogging thigns down.
The same peopel who made this outdated release possible are also makign it possible to compile a modern JAVA release on FreeBSD... but they lack SUN's blessign for distributing it.