Will Sun Open Source Java?
capt turnpike writes "According to eWEEK.com, there's an internal debate going on at Sun whether to open-source Java. (Insert typical response: "It's about time!") Company spokespersons have no official comment, as might be expected, but perhaps we could hear confirmation or denial as early as May 16, at the JavaOne conference. One commentator said, "Sun should endorse PHP and go one step forward and make sure the 'P' languages run great on the JVM [Java virtual machine] by open-sourcing Java." Would this move Java up the desirability scale in your eyes? Could this be a way to help improve what's lacking in Java?"
"Open Source" covers a LOT of licenses.
What changes and how would depend upon which license was chosen.
There are two major reasons I do not run java programs if I can help it in any capacity.
1. Restrictive licenses make it more difficult to reasonably deploy than any competing technology in a linux environment.
2. JVM is fat fat fat, it uses way more RAM than is reasonable.
Other than these two issues, it would be reasonable to run java software on linux, even if I don't love the language, environment in some ways.
-josh
I think this could be an excellent idea, if only to allow for third-party JVMs.
I, for one, have always seen Sun's JVM as bulky and slow on Windows PCs, and this is a large reason that I don't advocate its usage.
"Will Sun Open Source Java?"
No, haven't they already said that? Like hundreds of times? And does it really matter?
"Sun should endorse PHP and go one step forward and make sure the 'P' languages run great on the JVM [Java virtual machine] by open-sourcing Java."
"No", who would run PHP on Java anyway? Why? Why would open-sourcing it help?
"Would this move Java up the desirability scale in your eyes?"
No, Java is already desirable in my eyes.
"Could this be a way to help improve what's lacking in Java?"
No, what is lacking?
People who complain that Java is slow, should be open-sourced, and so on have never seemed to had a clue.
> Would this move Java up the desirability scale in your eyes?
It would certainly bring it across the threshold to something I might be willing to install on my machine. I'm not sure I'd actually be interested in using it for anything, but at least it would no longer be in the "completely unacceptable" column.
Of course, I'd probably wait till it was "apt-get"able. But I suspect that an actually-Free Java(tm) wouldn't have to wait long to find a Debian packager.
Certainly couldn't do worse.
No boom today. Boom tomorrow. There's always a boom tomorrow. - Cmdr. Susan Ivanova
... and just do it.
.NET, so Java *will* be open source some day anyway. Sun needs to get at least J2SE out there before .NET runs on every electronic device available.
.NET is looking like the only alternative for managed coding on handheld platforms. (Cellphones are not yet good PDAs, ok?)
WINE did it for Win32 and Mono did it for
Now that Sharp's Zaurus has dropped Java,
SLM
main() {1;}
I still fail to see the benefits of "open sourcing" Java. How will it be improved? It's not as if the engineers at Sun are stupid and don't know how to engineer enterprise software. Don't you think Sun has heard that same complaint from some major league/big $$$$$ customers and done everything they could to improve said performance?
Even if they *do* open it up, Im sure the slashdot community will still hate them because they don't use a GPL variant license. Its a lose-lose situation for Sun, I don't get why they would even consider it. Is there a business case that will generate a 9-figure revenue jump from giving away the source for Java? I don't see it, but Im sure someone around here will happily clue me in.
Today, as far as I'm concerned, Java is:
1. gcj (the gcc that does Java-to-JVM and JVM-to-native)
2. GNU classpath
3. Kaffe?
I've never seen it do anything, either in a browser or in OpenOffice. Oh well.
(not that language which overloads "+" for string+number is sane; that ought to be a compile error)
No, Sun will not open source Java, they've repeatedly shown they have no interest in open sourcing Java (beyond the current incredibly restrictive license).
Even if they do, it won't solve the main problems Java has:
1. Massively bloated library. The current JRE I have installed has 77MB in the "lib" directory - those are simply ".jar" files that contain the core libraries!
2. Massively bloated VM. Thanks to the massive class library I just mentioned, it takes FOREVER for the VM to start, because it has to first load the class library. The VM takes something like 5 seconds and 5MB just to do a simple "Hello World" application. That's not right.
3. Massively broken VM. The VM is designed basically exclusively for use with Java. Yes, other languages can be shoehorned into the class format, but the VM is designed around Java's OO model. If your language doesn't use Java's messed-up "everything is a Java" model, combined with "except for static methods which belong to an object's static instance" - the class format won't work.
Java is simply too bloated and too slow to be useful as an open source application. Maybe if it was open sourced before it ballooned out of control, but now, I doubt there's anything useful outside of Java in there.
"Open Source" + "Sun Microsystems" almost certainly = "CDDL"
"Would this move Java up the desirability scale in your eyes?"
Java isn't the answer for everything. Either is C, C++, Perl, Python, Ruby, or PHP. Each language has it's strengths and weaknesses.
Nobody should be making decisions about what programming language to use based on whether it's open source or not. There are freely available implementations of those languages.
If you've got your company, that's another story, do what you want. If you're basing decision on open source ideology instead of what's best for your employer, you're not doing your job.
Is the employer always right? Hell no. But making decisions based on open source ideology instead of the right technical decision, you'll be no better than the managers "upstairs" you like to complain about.
Writing a fully compliant JVM takes a lot of time and a lot of effort, especially the class libraries. Sun spent years writing that code, and none of the JCP partners can be bothered re-writing it themselves.
IBM, BEA, Oracle, etc pay Sun to license their source code so they can release compliant JVMs.
So, it should be no suprised the the open *cough*IBM*cough* source community "demands" that Sun open source Java. Guess how much money a certain company would save getting free source code that they're paying to license now? In the same of "the open source community", they'd like nothing better than to get the #1 competitor's hard work for free so they stop having to pay them for it.
The Java spec is open for anybody the re-implement, the source code is viewable by all, and the JDK is a free download. Sun has stated that they won't stand in the way of Apache Harmony or any other open source project that aims for a full open source implementation of the JVM/JDK spec.
So what exactly is the problem?
This space left intentionally blank.
Two major development platforms are .Net and Java. One is fairly Open Standard but not open source - and gets demands for Open Source. The other is not even open standard yet people accept this. Maybe the real issue is people can imagine a world where Java is totally open but don't ever expect .Net to be so don't bother discussing it (The wonderful Mono efforts aside)
I am much happier with Sun's Java than most open source projects out there. It's very high quality. I know that I may offend some people, but I think it's higher quality than Linux (as an OS, not kernel). It's my opinion though. Sun managed to keep it standard is admirable. I think Sun also deserve to make money/own the property it created. Why not develop open source version of it instead of asking Sun to open source it? One answer I think is that Sun does not have enough resource to fix bug or bring out features quicker for something as large as Java. This is a good argument. I think it could be addressed differently than Open sourcing it. For example, manage the development better. Provide better incentive for users to submit bug fixes. Promote Java support service so that critical bugs a company needs to be fixed is fixed quicker (it's there, but maynot be promoted enough). I develop Java enough to know that it's very hard to have a perfect tool to test Java standard. For example, there's no clear spec for Gridbaglayout. What you see isn't enough to implement an exact replacement for what Java has. This is just a simple example to show that stardard is hard to make, hard to be changed quickly.
This brings another point about Java standard. I remember JSF has many bugs that it tooks months to years to be fixed because the standard was broken. I think Sun needs to be much quicker than now to address these issue. These big problem should be fixed in a couple of weeks, or couple of months (2). Most people don't wait for a technology for a year or two to adopt it. They use alternative tech. This is usually a one way street and Sun will loose those customers.
What changes and how would depend upon which license was chosen.
And equally on what community process is chosen.
I regularly look at the source for some Java library class and cover my face in horror. I'm sure I'd submit a patch a week just in code cleanup and adding unit tests -- if I thought they would ever accept anything. An open license is only the start.
I assume it means that Sun is better off persuading language developers to run the "P" of the LAMP stack on the JVM (instead of their own byte-code interpreters), growing with LAMP rather than competing head-on with it and losing market share to it.
If Sun is to do that, they should do it before Parrot and the language implementations for it are finished - so that gives them plenty of time.
There are a already lot language implementations that already target the JVM, Sun would not lose by throwing a bit of money at OSS projects that might improve them and add a few more.
I call bullshit - just because you don't know how to set up your machine properly doesn't mean java has language problems.
Great for you; I never got it to work properly (Ubuntu and SCIM/Anthy). I first had to add fonts to some java-specific list to get it to show CJK at all. When I run the app with Swedish locale it refuses to let me input Japanese (it does not listen to the SCIM server).
I'm sure I could get it working with enough effort - but after one frustrating evening I'm not going to bother. Java isn't alone out there; just about every Java app has good equivalents without the hassle (including the Kanji app I was trying to use). And I'm certainly not going to be using Java to develop anything knowing that potential users will have go through the same mess I do.
I should not have to "set up my machine properly" - most users do not have the technical skills to do so. I should be able to select "java" in the package manager (or rather, select the app I'm actually interested in) and it should all work - but it doesn't.
Trust the Computer. The Computer is your friend.
The P's and R (Ruby) are ran by an interpreter, which essentially interprets the text into machine language.
That comment is misleading. The text is never translated to machine code. The interpreter reads the code and the interpreter does the work according to the rules of the language. Java takes an intermediate step and translates the code to bytecode, which can be more easily interpreted. However, so can python.
Also, your performance analysis is lacking. Code size is a big factor here. A perl program may, in a few short lines of code, accomplish something that would take a lot more java code. If you have a complex text processing program, perl may well be much faster. That's because the few short lines of perl code call a lot of highly optimized C text processing routines. The java code may do more of the work in Java code.
So, when evaluating the speed of a language, you should ask yourself: "Does parsing take a significant amount of time for my application?". Java may be fast, but if it doesn't call into the optimized C routines quickly enough, it's going to lose to players like perl, python, and ruby.
Social scientists are inspired by theories; scientists are humbled by facts.
Personally I use Ruby (on Rails) these days for web development: convention over configuration is, imo, a much more important advance in the art than object-orientation was.
Bad analogies are like waxing a monkey with a rainbow.
You may not realize, but "libraries are the new language". Seriousely, what good is a cool language if you have to reinvent the wheel everytime you want to have something like a report printer with print preview - a bit upset on python, with which I'm fighting right now to get something nice for a business app, I would really like something like jasper reports for python. Drawing on the DC with wx sucks for more then one form, and using reportlab to generate pdfs sucks as well. I've settled on doing a mono-platform hack, generating html with simpletal and calling its print preview dialog through ActiveX.
I'll do the stupid thing first and then you shy people follow...
Like Sun do with the various flavours of the JDK.
I have on my machine at least four versions of Sun's Java runtime. I need at least four versions to run the various Java applications that I need. This is because Sun keep deprecating and eventually breaking API calls that were previously in favour.
Some will only run on 1.1.3
Some will only run on 1.3.1
Some will only run on 1.3.2
Some will only run on 1.5
Write once, run anywhere, yeah right.
convention over configuration is, imo, a much more important advance in the art than object-orientation was.
Convention over configuration is just another name for having sensible defaults, and nothing stops you from using that in Java. Indeed most Java frameworks have already added (or are working on) this.
Being bitter is drinking poison and hoping someone else will die
Fact: Java apps will ALWAYS use MUCH more memory than programs written in compiled code (whether it be C, C++, VB, Delphi, etc) due to the fact that it's interpretted (ie not byte code compiled). It has nothing to do with "class meta information," which can actually be higher in some other languages. Oh and the java reflection API is much more useful than for plugins (which you can easily do in C / C++ as well).
Even byte code compiled java (ie gcj) is much more memory hungry than a compiled C / C++ app, and it shouldn't be any surprise. The Java API is quite vast and interdependant, so even using small portions of it leaves a large footprint.
I don't see why it's a bad thing either. People who argue about one language over another just aren't knowledgeable enough. Each language is a tool, and is suited for particular tasks. Trying to use one language all the time is analogous to trying to use a hammer for all carpentry tasks. Java is a good language for certain things, not so good for others.
Maybe we'll finally see an AMD64 Java plugin for Firefox.
Oh, no! You have walked into the slavering fangs of a lurking grue!
I might be mistaken here, but isn't "open sourcing Java" meaningless?
Java is an open standard already.
What I believe is being discussed, is whether Sun should open source their Java Virtual Machine (JVM) - Sun's implementation of the Java standard.
why, oh, why java croaks on OutOfMemoryException when we have more than 8G of ram most of which is not being used
Because you are rank amateurs who are unable to read documents or use profiling tools such as jconsole or YourKit?
One commentator said, "Sun should endorse PHP and go one step forward and make sure the 'P' languages run great on the JVM [Java virtual machine] by open-sourcing Java.
You are free to write a PHP Interpreter which is Open Source and runs on a JVM
I frankly don't know if it benefits me, or anyone, if Java is OSS. However it would be horrible if we face what we currently have with C++, litterally hundrets of compilers where everyone implements his favorite subset of the language definition.
angel'o'sphere
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
Interesting...I've had the opposite experience. I spent time in the MS camp where there are a wealth of 'VB for dummies" books but everything beyond that comes from Microsoft itself, and you better have a MSDN subscription. With Java it seems there are tons of free online resources for specific questions, and there are also some very good books like "Thinking in Java" (perhaps a bit dated now) that get the beginner to the point of understanding all the basics, without being condescending the way, for instance, MSDN so often is.
Then again, given the languages you list Java may not be useful for what you do. If it might be, though, I'd give it another try...
Premature optimization is the root of all evil
hi again! ;)
"Having a rich and versatile range of libraries is a problem?"
nope. the problem is when you have a poor enough language without support for high level constructs and has to do literally anything with libraries. it's just a lot more tiresome than builtin language support...
"Convention over configuration is nothing new."
yeah, shame it's not used more often in the java world rather than the XML craze...
I don't feel like it...
You hit it precisely on the head. Linux and Java proponents tend to have a particular problem with being unsympathetic to n00bs
Unlike Linux, Java is very well documented, so having to interact with a community is not necessary to learn and use it (the language itself). There's plenty of books, as well as courses you can take (since it is so mainstream).
Once you start using 3rd party libraries and tools, then you might need to interact with the community. Just like any large online community dealing with tech, there's always a few assholes and elitists (it's people on the Internet, what do you expect?). If that's enough to push you away from a particular technology, you might as well give up on anything that requires interaction with people.
#!/
So basically, random individuals on the Internet (who had no connection to Sun I assume) made you lose interest in a programming language. I can understand if the developers of a product are pricks and that turns you off of a product, but I'm sick of hearing "I don't use it because people told me 'RTFM' or 'Google'". That happens everywhere on the Internet. That's what anonymous/semi-anonymous non-face-to-face communication does to people. Get over it.
So I take it you don't use Linux either because some big, bad forum jerks told you "RTFM" too?
#!/