Java to be Open Sourced in October
thePowerOfGrayskull writes "Sun is now stating that the Hotspot JVM and javac will be open-sourced in October of this year, with the rest to follow by the end of 2007. There is still no word as to which license it will be released under. For those who haven't seen it yet, Sun has previously opened a public developer community site for soliciting feedback and providing updates about the process."
"Source code for Java already is available and has been for 10 years", said James Gosling. I guess Open Source means they want free developers.
Long live the programmer-letariat!
"While the Copyright exists, there can be no freedom. When there is freedom there will be no Copyright."
Depending on the license that they choose, OSS purists can now utilize Java in their programs. OpenOffice.org ran into some issues when it began using Java to power some of its components. Hopefully the license under which this is released will be acceptable.
Information wants a fueled airplane waiting at the hangar and no one gets hurt.
Is this "open source" as in "open source"?
Is this "open source" as in Apple's "public source" Darwin project, where they're basically going "you can see and compile all the code, but no way are you going to be redistributing this as any kind of commercial project"?
Is this "open source" as in Microsoft's "shared source" projects, where it's totally not open source at all except in a PR sense?
Is this "open source" as in Sun's Solaris "open sourcing", where it's open source in all technical senses, but it's under an unbelievably elaborate license which exists for no reason except to engender GPL incompatibility and keep Linux from benefiting from the source release, which effectively scares everyone away from the project?
Cuz really, unless "Java to be Open Sourced" really means "Java to be Open Sourced", it won't make a difference, acceptance of Java will continue to be held back by the perceived closedness of the Java language and real linux-unfriendliness of the Java runtime, and languages like C#/Mono will continue to make inroads until Apache finishes their Harmony project.
They better do it fast. Sadly for Java, .NET took almost everything good about Java and fixed lots of its quirks and gotchas. And with Mono, OSS people are giving it a chance too. With dynamic language support being heavily invested in both platforms, having outside contributors is critical.
Now that Java can be redistributed legally (tell that to the slackware guy, he has always included it by default), and will be open sourced soon, it can fight back.
Open Source Java Web Forum with LDAP authentication
Don't use the "d"-word here. ;)
The Internet is full. Go Away!!!
If they had done this right 5 years ago, .NET would have been stillborn and Sun would be the worlds leading application platform vendor. That's a desirable and advantageous position for a hardware vendor to be in. Instead we're 2 months before a release and we still don't have enough details to consider java for future projects. With the benefit of hindsight, the best business decision Sun could have made back in 2001 would have been to relicense the java source code like they were being asked to.
Apache seems to be banking pretty hard on it.
Slashdot is proof that Sturgeon's Law applies to mankind.
It's definitely the class libraries that make Java "java". The language is straightforward and there are decent JVM workalikes, but developers write their code around the class libraries. The problem I've always found with Java is the bloat of the class libraries, so I'd like to see open source distributions make lean and mean Java variants.
A perfect Java distro would maybe drop all the deprecated methods (will Sun ever do that? Java 1.6 is a good opportunity...) and unbundle some of the least-used stuff like the CORBA and RMI stuff. Heck, even Swing and AWT should be optional packages. Why couldn't Java be structured sort of like a Java Web Start install, pulling in libraries only if needed. Almost everything is connected to the internet these days and good caching of libraries from trusted sources would be a decent way to get full functionality with a smaller initial footprint.
To quote Mono's FAQ page:
The Mono Project is an open development initiative sponsored by Novell to develop an open source, UNIX version of the Microsoft
Personally its a rather nice language.
Oh, as far as:
Unless you know something the rest of us don't, this strikes me more as spreading FUD then anything else.
This space for rent. All reasonable inquiries will be entertained at proprietors discretion.
well.. yes, java is still the most used platform in business and it is getting bigger. who is "we" you are talking about anyway? "we" here use java in all big applications and very happy about it.
Exactly. Free Software has plenty of JVMs and compilers. Heck, the Free Software world has too many JVMs and compilers. What's needed are Java compatible class libraries under a license that is both amenable to proprietary and Free Software developers.
At this point Sun is simply trying to draw support away from the various Free Java implementations. Sun knows that if the Free Software implementations ever become popular that its chances of controling Java long term are essentially flushed down the toilet. Sun reacted too late with Solaris, and it is desperate to keep Java from suffering a similar fate. So it is doing everything in its power to keep people away from Free Software Java-alike systems.
If Sun were serious it would A) concentrate on releasing the Java class libraries, and B) it would have given Java developers some guidance on the license that it will be using. Everything else is just fluff.
Not sure how stating either of those makes someone a zealot, but, whatever.
It should have been earlier, and it may well be too late. I respect Sun's problems with making the system open, and they've certainly experimented a great deal with different levels of openness, but I think they ended up making the wrong decisions. Not making Java Free Software earlier helped proponents of alternatives such as Mono, and this in turn gave .NET more traction.
GCJ isn't going to go away. It's more than just a JVM, after all, and people are only beginning to see its power. But I can see GNU Classpath disappearing if the official Java libraries are available under a GPL-compatible license.
You are not alone. This is not normal. None of this is normal.
Add operator overloading (and I mean PROPER operator overloading, not some find-and-replace garbage) to the JDK v6, and you've got a language that (despite being slower than C++ in some cases) towers over C++ in so many ways - garbage collection, easy exception handling, a huge standard library...
Mod parent up.
The patent FUD concerning Mono is now dead, and Mono is included in Fedora are Suse distributions. I am sure Novell would have invested considerable effort in analyzing potential issues. Mono is a from scratch implementation. And no surprise, Miguel appeared in the Microsoft Technet Video explaining Mono last week and it was on slashdot.
Here is a nice article by Paul Graham on SW Patents, which was Slashdotted earlier. What he says makes a lot of sense: But I doubt Microsoft would ever be so stupid. They'd face the mother of all boycotts. And not just from the technical community in general; a lot of their own people would rebel.
Life is a conviction.
What is this "native executable" you speak of? To quote morpheus, "Do you think those are instructions you are running?" Pretty much every so-called native program you run is passed through the ld.so interpreter that relocates the binary and loads shared libraries. Grep the kernel sources for "ld.so".
./ it.
The only reason you have to ship a JVM with your app is because a) Microsoft intentionally sabotages compatibility (by strong-arming Dell, etc not to ship Java) and b) because Linux distros can't legally ship it because of license restrictions. Java apps work fine on a Mac without shipping their own JVM.
With a JVM installed as a standard system component you run your Java programs just like any other program. You just double-click or
Mono has convenient language syntax with C#, but that's it. The CLR bytecode cannot be interpreted well, so hotspot like optimizations are far harder to do. It's a VM trying to be everything to everybody, so it's not really great at anything. It's startup time is far slower than a gcj'd Java program and it's throughput is much less than a hotspot'd one. The only real benefit is that it is oss.
I doubt if this will change anything:
.Net Fx due out this month.)
.Net.
1. In the application space, there are much more productive languages and tools. Think Ruby, Python. And extreme performance has never been a Java forte either.
2. Core language capabilities are obsolete now. Bruce Eckel's famous piece The departure of the hyper-enthusiasts captures this nicely. And looking at the C# 3.0 spec, with lambdas, automatic type inference, monadic comprehensions and lots of functional programming goodness, Java is left way behind. MS is also way ahead in adding dynamic languages support to the platform (Microsoft supported IronPython v1 for
3. I think Gosling needs to move on. After he said Ruby/PHP are just scripting languages, and they just generate web pages, and lack the "power" of Java. [Which "power"?]
4. With Vista MS would have finally killed Java's Run Anywhere promise. It will still run, but it will look totally out of place. The new eye candy, and the good communication foundation (WCF) is better and easier accessed through
The only reason to have Java is for compatibility in a "Legacy" Java environment. Kind of the same reason why we still have mainframes. These days I cannot think of a single reason why someone would go with Java, other than interop.
Life is a conviction.
I know, I shouldn't feed a troll....
You are the reason they were reluctant to make it (fully) open source.
You obviously are confident you know more about what makes a good language than the designers of Java do. Have you read even one paper at jcp.org? Have you looked at the people who make up the JCP? IBM, Apple, Cisco, Intel, HP, ATI, NVidia, Creative Labs, Google (!), Apache, Apogee, Namco ... you really think you're smarter than their combined intellect and months of discussion? Trust me, you're not.
I'm sure you and a lot of others are already giddy with excitement over the idea of making a "better Java" with const and operator overloading.
When you understand the "less is more" principle, you'll begin to understand why all your pet features don't belong in the language.
The Internet is full. Go away.
Yeah. The individual usually is smarter than the group.
Badass Resumes
10 years ago, Sun promised ANSI and ISO standards for Java plus open source implementations. What did we get? No standards, a lot of FUD (yes, FUD from Sun) about how they can't because of MSFT, proprietary and closed implementations, costly compatibility tests, bloated APIs and implementations, and threats of lawsuits.
Now that FOSS implementations are mature and nearly complete, Sun is trying to undermine them by finally open sourcing Java (at least in name--in practice, the license will probably be a sham).
The sooner Sun goes out of business, the better for everybody. Microsoft at least makes no secret about where they stand on FOSS, but Sun pretends to be a friend to FOSS but keeps spreading FUD about FOSS and keeps stabbing FOSS efforts in the back.
Unless you're posting that from an AT&T Unix console, you're benefitting from people who had the hubris to think you're wrong.
The road of progress was paved by people who thought the current way of doing things was dumb, and who set out to find a better alternative. This is generally regarded as a good thing (except by people with a vested interest in the old ways).
Dewey, what part of this looks like authorities should be involved?
To me the real question is "When will Sun be releasing the various TCKs?" The conformance suites are what is needed to validate any of the java implementations and call them "Java" in the eyes of Sun (and their lawyers).
As James Gosling has said -- the source to the JVMs and libraries has been available for 10 years. But the TCKs aren't available in source or binary form.
Invalid Checksum. Retrying.
But Java would be so much better if it was more like $MY_FAVOURITE_LANGUAGE! For example, it's lacking some features found in PHP like being mixable with HTML code and not using namespaces! And it should have the syntactic goodness of both Ruby and Haskell! Speaking of Haskell, why doesn't Java use type inference everywhere? Forcing the user to give a type only makes things complicated. Also, function declarations should not look like String foobar(int blah, int fhqwhgads) - foobar::Integer -> Integer -> String is much better for a completely nonspecific reason that everyone with two brain cells to rub together could see (just as he could see that such declarations should be optional since they could be inferred by the compiler). Also, Java should run on Dotnet and use FLTK as the main GUI toolkit.
And Javadoc should translate all source code comments into Esperanto.
USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
There are a lot of embedded CPUs that have "Java Acceleration" built in. I'm specifically concerned with ARM's Jazelle -- as found in ARM926ejs CPUs like the one in the Nokia 770, for example, and all ARM v6 CPUs -- but there is also Atmel's new AVR32 (Linux port is in the MM tree) and there are a few other processors that do the same thing.
But you can't get specs on how to use that stuff ... and if you ask the
chip vendors, the answer is that it's Sun's fault. To get specs, you must
sign agreements with Sun. That's for basic stuff like how to preserve the
relevant processor context, and how to enter or exit the "execute Java bytecodes"
CPU mode, and of course exactly what bytecodes exist. (They just accelerate
the bytecodes ... some things need to punt to runtime code.)
What that means is that for example GCC can't use that CPU acceleration by having its Java runtime (GCJ/GIJ) build on it ... one assumes that this
means a performance penalty for at least the bytecode interpretation parts
of almost every Java runtime environment, though
of course it would be interesting seeing how things like HotSpot affect the
performance numbers. (The CPUs that have Java bytecode acceleration are by
the way not ones that normally have big CPU caches, high clock rates, or
very much memory to waste on the stuff HotSpot does.)
So my question: Is this "Open Sourced Java" going to cover ARM's Jazelle? And the AVR32 Java acceleration? And other chips?
Or is it going to be the same-old, same-old? Folk working with embedded systems want to know... the big system bloatware that that Sun ships is not especially useful. Finally loosening the reins on the bytecode acceleration hardware would be a much more useful step.
ARG. Are you on some kind of medicine that makes you slow? Java is just as fast as any other language once you consider the quality of programming. A perfect C program is faster than a perfect Java program at the same task. Of course, a real world C program is never perfect, so you are VERY likely to see Java software which has better performance than natively compiled software.
Of course, how would you know? You're somehow morally opposed to software that runs 30% slower than some hypothetical ideal.
<sarcasm> I never run software that was written in C. I only run software written in Fortran, because the lack of pointers lets the compiler squeeze 2% better performance out of the code. I always decide on which software to run based on some esoteric implementation detail which doesn't effect me at all rather than how well the software solves the problem it is designed to solve. Where I work, getting things done is job 2! (Job 1: Making sure my computer isn't bogged down.) </sarcasm>
You are aware that the Java trademark prevents third party distributions from being referred to as Java, are you not? If someone hacks features into the language, they can't legally call it Java. Simple as that.
LRC, the best-read libertarian site on the web