Will Sun's Java Go Open Source?
Ritalin16 writes "CNet report that Sun Microsystems wants to send Java closer to the open-source world, yet keep it safe from harm. "Project Peabody" adds two licenses that make it easier for outsiders to see the code. But Sun stops short of embracing open-source. Sun's licensing practices for Java are closely watched. Proponents of making Java open-source argue that a different license and development process will help accelerate usage of Java, which faces ongoing competition from Web open-source scripting tools, such as PHP, and Microsoft's .Net line of tools."
and i would completly embrace an OSS approach. sun often have the consumer in mind and understand their products and the market well....
Hey, is anybody using the gnu java compiler much? How's the performance on java programs made with it? Obviously there'd be some positive side effects, but exactly how much could the community benefit from having Sun's compiler open-sourced?
"Sun has elected not to use an open-source license at this time because its commercial customers are concerned with "forking," or the creation of incompatible editions of the base Java software" Currently, Java seems to be close to, if not the lead in cross-compatibility. They do not seem like they want to lose their integrity as a stable cross-platform language.
Slightly off-topic, but what impact will Sun's open-sourcing of the JVM have? We already have several Open Source JVMs, Kaffe and IBM's RVM(Research Virtual Machine). Since the Java specs are anyway open, is there any point if Sun opens up the JVM implementation?
Why does everybody in IT have to be a fortune-teller. First, google is not going to create a global internet filesystem for the entire world and eliminate the computer. If you are a software developer. You only look 6-9 months ahead and google's take away the computer plan won't happen for 900 years. Second, Java is a simple language. Java mainly benefits from the amount of libraries and other tools that are already on the market. We have been looking at Java's source for the last several years now anyway. Nobody really gets excited. I would watch the language tools that are already out there, so don't wet your pants on java being open-sourced. Yay or nay, it probably won't effect the market too much. Geeks who live in dim-lit caves will probably have something new to play with, that is all
---- Berlin Brown http://www.newspiritcompany.
It would be great if the Java JDK were open-source, or at least distributed with a less restrictive license. Installing Java on "unsupported" platforms is a nightmare. Take FreeBSD, for example. First, I have to install the Linux version of Java, because for some reason, the native Java port requires the Linux version for bootstrapping purposes. Next, I have to manually fetch the sources for Java from Sun (since Sun prohibits redistribution other than from Sun's site, and the latest precompiled package for Java is for FreeBSD 4.x, which doesn't work under FreeBSD 5.3; not to mention that I can't really do anything with the sources other than compile them; the license is very restrictive). Finally, I have to compile them, which took me 18 hours to compile on my computer (I'm not trolling; the fastest computer I own is a 475MHz K6-2 with 64MB RAM; I'm poor). For Sun to advertise that programming in Java is about "writing once and running everywhere," I guess "everywhere" is defined by Sun's view on the world. The only reason why I compiled the JDK in the first place is because I need it for my upcoming classes.
It would be great for all developers if Java were open sourced under an agreeable, OSI-compliant license. Developers of "unsupported" platforms would be able to port the JDK to their favorite operating systems (and redistribute sources and binaries of the JDK, too), which would raise the number of developers using Java, which in turn raises the number of people using Java-based applications. Next, I don't think Sun has to worry much about Java being forked. Look at C, C++, Python, Perl, and Ruby. C and C++ are ANSI-certified, and Perl, Python, and Ruby are open source. As far as I know, there aren't any forks of C, Perl, and the other languages that I've listed.
In the meanwhile, I wonder how good are the free, open source interpretations of Java and how they stack up to the Sun JDK?
It seems to me there's a completely obvious solution to this: only allow patches against their version to be distributed, not already-modified versions. And don't let modified versions use the trademark. That way it would be completely obvious which was the real java.
I am trolling
Well, JPackage is interesting, but it's still a centralized repository. Look at the faq here:
http://www.autopackage.org/faq.html#2_1
Basically, centralized repositories (apt-style) do not give each publisher/software house the ability to control *their own distribution*. That, in my estimation, is the #1 reason why more companies don't distribute software packages. Sure, there's an issue of non-standard toolkits, etc, but the first obstacle to standardizing anything is the install. Autopackage provides the possibility of a single way to install AND uninstall applications on every Linux distribution. That's why it's important.
Sun should support this on Solaris, and distribute all of the software from the projects they underwrite (OpenOffice.org) so to help get things going.
Take some time to read through the entire site. I think it's the most important thing necessary for Linux right now. If I, with over ten years of experience using Linux, absolutely loathe installing applications and find it completely unnecessarily difficult, imagine how new and inexperienced users feel!
That is all off-topic, but Sun is still in some kind of trouble. There are so many things they could do with Java, but they aren't, so this is why the calls to open source are intensifying. They should let it go and see what happens, then pull in all the popular innovations back into the "standard" java platform. They have the ability, but I think they're missing the leadership to do it.
The final thing is that their overall concept of end-user experience basically sucks hard. One example is Java Web Start. While it's a really great idea, it's so awful from the experience of a user, that I refuse to use it. Another prime example is the default look of Java (not to mention the Java desktop). It looks nothing short of pixel vomit. Sure, some people create amazing applications with it, but unfortunately, most applications aren't going to stray much from the default. The result is a perception that Java apps look like trash. If JGoodies, for example, is necessary to get a decent look out of a java app, then why doesn't Sun support that? It's free (as in BSD free), so WTF? Instead they ship this bluish look with the same ugly icons. I almost fell out of my seat when I saw the new look and feel for Java 1.5. Perhaps slightly better than the defualt, but still FUGLY.
Why would they be worried about Mono? It's open source after all. :) I don't even think Mono is on the radar. It will always be held back by licensing concerns by the stain of Microsoft. Sure, everyone is going to blabber about how it's immature to reject something just because it's Microsoft. That's what MS does to everyone else, so I think it's appropriate to treat them the same way. ;)
I agree that centralized control is a good thing. Then we don't have to wait 10 years between changes versions of the standard like with c++. Also if standard people also implement the thing, they'll only include things they intend to implement. There won't be orphaned features in the standard that never get implemented like template export.
I've been using gcj to develop Hecl ( http://www.hecl.org/ ) with, and so far I've been pretty happy. I found one compiler bug, which I reported and which was then promptly fixed. At FOSDEM, I also had occasion to go visit the Free Java developer room, and the impression I get is that these guys are making enough headway that it doesn't matter what Sun does at this point. Redhat had something like 3 or 4 very sharp developers (Tom Tromey, for instance) working more or less full time on gcj and ClassPath. Sure, Sun has way more people, but for now, all the free guys have to do is play catch up with the spec, not surpass Sun. That comes next;-)
By the way, I don't think blackdown is actually open source in that it's based on the Sun code.
I'm curious - does the new Fedora actually ship with gcj and gij as 'Java'? That will be an interesting development to watch.
http://www.welton.it/davidw/
Lots of people use PHP instead of JSP, even for "enterprise*" applications.
*PS: The word "enterprise" in any software context is bogus.
--
the strongest word is still the word "free"
Actually, there are at least six forks of Python:
In practice, it's not much of a problem, I don't see why people are so scared of forking.
Psyco (JIT compilation of a sort)
Psyco is just an extension module for CPython, not a fork. And you can add Pyrex to that list - a fork of CPython which adds C data types.
--- Hot Shot City is particularly good.
Given than mono can run basically the same java programs as the free java VMs (since they all use GNU classpath and the lib implementation is the limiting factor) and it runs many .net programs out of the box, mono is much more viable than any free software java implementation.
One of the key thing that opening Java would give is the possibility to debug issues ourselves.
For example I have crashes with the official Sun's VM. I am unable to debug the problem properly without access to the code (and I won't do that with a proper license). For sun I have to go all the way to create a test case, which is not easy when it comes to isolate a problem in a complex application.
I am sure I would go faster with access to the code. Instead of spending time making a test case, which I am not sure Sun is going to have a look at.
Sneak teach kids Algebra using a game
... would be IBM's fork of Java. There would be enterprises that would adopt that, even if it was no longer called "Java".
IBM would soon "Eclipse" the Sun.
random underscore blankspace at ya know hoo dot comedy.
The problem is that Sun's Java is not installed by default in most Linux distributions. As a Java developer (also use Ruby, Lisp, and Python a lot) the best situation for me would be to have Java installed by default on Linux and Windows - like on OS X.
For server side Java (web apps), which is mostly what I do, it does not matter too much because setting up a JDK, Tomcat, etc. is easy enough. It is a different matter however for Java client apps. Java is not that bad anymore for GUI applications and it would be great to not have end users having to install a JRE themselves.
BTW, natively compiling Java applications with GNU gcj is really getting to be a viable alternative to running under the JRE. I have been playing with Java and SWT also - looks promising.
The missing part is the class library.
Just to give people an idea, in the current version of Java, there are 3,270 classes in the default class library. (!!)
This isn't doing any cheating, either, like counting classes in "sun." or anything like this, this is based on the list of classes given in "All Classes" for the JavaDoc for 1.5.0.
Mono has an ahead of time compiler, too, so that's kind of a moot point.
It's true that GCJ can currently generate code that runs faster than the code generated by the mono jit, but there are some considerations for that:
*) they need to fix their ABI and most things will get an additional indirection so it will get slower.
*) the code generated by mono is good enough for most tasks.
*) in real life code there are many factors involved: mono uses Boehm's libgc in a better way so many things have better memory use (we have fixes we submitted upstream for it, too). The standard library implementation is important, too, and C# allows for more efficient patterns than GCJ could not optimize (like using valuetypes, unsafe code blocks etc). For example you have the misconception that GCJ compiles code and doesn't use a 'slow' VM: this is not true: it very much uses the gcj VM, which may be fast, but it's still a VM.
So, overall, GCJ is an interesting approach, worth pursuing by people interested in it. It's still not an alternative to mono and it certainly doesn't prove that mono is not viable:-)
Man, if you're so sloppy as to do things like that, no programming platform will save you.
Personally, I love Java's exception model, I think it's the best I know, because it forces you to take into account every thing that may go wrong. When one uses a language that allows unchecked exceptions, one cares about writing the code and leaves the exceptions for later, which is never...
So what?
Most benchmarks show GCJ lagging behind the modern "just in time" JRE's in performance.
This is largely because GCJ is, well, quite poor... it certainly -could- be faster (in theory). The point is that, just because it's ahead-of-time compilation doesn't make it faster...
The devil is still in the details.
bash-3.00$ uname -a
SunOS panda 5.10 Generic sun4u sparc SUNW,Ultra-2
I didn't realize .net was standardized. I know that c# is and possible the 'virtual machine' equivilent.
.net framework are really quite impressive and are a huge technology leap for microsoft.
Personally i do prefer java. Although c# and the
There seems to be a wealth of compatible JRE's so it's hard to believe that the lack of an international standard has really hindered java.