Sun To Choose GPL For Open-Sourcing Java
An anonymous reader writes, "Sun is about to announce its plans for open-sourcing Java SE and ME, according to CRN — and they're going to use the GPL, not their own CDDL or another less-restrictive license."
great! i'll believe it when it happens, though...
"A witty saying proves nothing." -- Voltaire
Another thing Microsoft can't own.
Most of the stuff on
Is the reference on everything *Java*, when pundits talk about Sun and its impending change of the Java license...or is it only what we Joe Users download in order to play games and read real time stock chart information which is the Java Runtime Environment (JRE)? A slashdotter seeks clarification. Thanks.
I don't need to test my programs.. I have an error correcting modem.
I need to find my socks.. It feels like the ground all of a sudden got cold.
Almost as if hell itself has frozen over.
Hmmm... Java and KDE4?
QT, another propriatory software product with GPL release.. And one that is aiming for commercial use in embedded devices.
QT and Java SE for KDE?
Qtopia and Java ME for your next cell phone?!
Seems like a marriage made in heaven to me.
Is that a typo? "and they're going to use the GPL, not their own CDDL or another *less*-restrictive license."
I mean, I know some people have a mad on against the GPL, but it ain't what you'd call restrictive. The only thing it does is mandate that all derivitve works also have to be GPLed.
"Mission Accomplished" -- George W. Bush May 1, 2003
I'm shocked! I don't like Java much, but this is great! I think Java on GNU/Linux will really take off now and take the lead on .NET. Just wonderful news :)
I'll believe this when I see it.
Hopefully the release of the Standard edition code under a GPL license will incent more developers to make the platform better. J2EE is great, but are there that many people who still write Java desktop apps or web Java applets? Even the better Java apps appear to be ridiculously slow and cumbersome, particularly under Windows (but even on Linux boxes).
On the other hand, is this Sun's way of wiping their hands clean of everything besides their only Java moneymaker (J2EE)? They must realize that desktop Java has seen its day, and this might be a way to save some development resources while they continue to restructure in light of recurring market share losses.
Crack - Free with every butt and set of boobs
The thing is that we're not talking about Java "the Platform" here. We're talking Java the "Reference Implementations". Basically, anything derived from Sun Java will need to be GPL, which will keep the GPL crowd happy. It fills a niche that currently has no viable contenders.
When you look at the other Java implementations, you have the Apache-licensed Harmony, and commercial implementations from IBM and BEA.
Java can only be helped by this because it removes one of the major objections Linux backers have against using Java.
This won't be embedded in a lot of things because of that. It seems like LGPL makes more sense for this, since Java is often embedded in other apps. Firefox isn't GPL. Can they mix and match without changing the license? Maybe, maybe not; LGPL would have made the question unambiguous.
For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
I don't really trust Sun to do what they are saying they will. I have an ominous feeling about this, as if I were walking into an ambush of sorts. Does anyone have any suggestions on what tag I should use for this story?
Now we can clean up some of the garbage that's in the jdk. I've been developing Java for a few years now. I was really interested in Java 6, so I downloaded the source from dev.java.net. I was shocked at how hacked together some of the classes are. Specifically I was interested in the new "standard" ORM classes in java.sql. The code was error prone, inefficient (for Java geeks, it had repetitive reflection calls all over the place) and just plain bad design. After writing my own implementation of most of the new java.sql classes for my own use (and using the supposedly new standard java.sql.DataSet interface) they apparently pulled all the new java.sql classes from Java 6. Hopefully they get a better community process to go along with their new license.
It would seem that the GPL was chosen so as to try to dissuade those who might want to fork the source code. While commercial, closed-source forks are out of the question now, it's also unlikely that we will see a separate, open source fork.
Prominent GPL'ed projects have rarely been forked. One major case was that of GCC (forked into EGCS), but that was a rather severe situation. The development of the FSF's GCC branch had stagnated to a horrible extent before the fork was made. This likely won't be the case with Java, since Sun will likely update it on a contining basis.
Had they chosen a far less restrictive license, such as the BSD or MIT license, we likely would have seen several prominent forks. As we can see from FreeBSD and Dragonfly BSD, and NetBSD and OpenBSD, the BSD license promotes forking. The same is true for the MIT license, as shown by the X.org and XFree86 split.
A forked version of Java would likely have been the most beneficial thing to have happened. Java needs a branch that has the cruft removed, both from the VM and from the class library. A new class library is needed, taking full advantage of generics and the other Java 1.5 features. The VM needs some major upgrades, notably in the area of garbage collection, memory usage reductions, and speed improvements. The backwards compatibility requirements currently forced on Sun seem to have prevented this from happening.
If they use a different licence there will be people that will bitch about it without ever reading it and then hold a grudge for years afterwards.
"Sun Set" Haha. Sunset. That's funny. (ftfa)
Hey guys, nice going with the tags, there's still an article that isn't marked as tagged "itsatrap" yet!
1 7214
http://it.slashdot.org/article.pl?sid=06/11/07/16
For those who have already started complaining about the license in this thread - why don't you spend a few years writing your own Java clone, and giving it away under BSD or whatever?
It's great that Sun is finally doing this, but can you imagine where Java could be if Sun would've done this a LONG time ago? With the rising popularity of .NET, it seems a little late.
first idiot...
Next fight: which version?
Engineering is the art of compromise.
Looking closely at this bunch, they'll probably cut something quite valuable out from Java as done with Opensolaris and sun4m, where they cut that one just because they couldnt run dtrace. Never mention that it's been adapted to other architectures, or that it could be simply cut out. KCF is another matter. Never mind that only their competitor carried support for machines of longer timeframes and only recently dropped support, leaving something usable for those machines.
Twitter supports and protects racists - by smearing their critics with the "Hate Speech" label.
OK, first remark - I want to see this as an official press release on Sun's website, with a link to the code. Then I'll be confident it will really happen.
Second remark - I think the GPL is a good choice for this. Consider what Sun might gain from open source Java under any license:
1) Excellent integration with Linux, *BSD, and any other platform out there they haven't integrated into fully yet (except maybe Windows). They would get all the work done for free, too - distributions would be chomping at the bit to work long and hard on making everything work Just So.
2) Much better realization of cross platform "write once, run everywhere" goals. Well integrated Java everywhere can only help this.
3) Possible improvements as people get a chance to fix anything that's been annoying them for the last several years.
All very logical reasons to open source, IMHO - Java is already freely downloadable. Sun owns the Java trademark, so they have no fear of forks which mean anything in terms of threatening Java mind share - Java has to be one of the most publicly recognizable programming language brand names in the world. Sun will always provide the "only" Java, whatever else out there might run Java programs.
Now, what does GPL do for them, that other licenses might not?
1) Credibility - rather than inventing Yet Another License, making things simple using already established (and I think functional for this purpose) licenses.
2) Prevents commercial forking. Whatever open source Java becomes, it is unlikely that someone would try and compete commercially against Sun when Sun has the commercial code base and original developers. Any work any commercial developer did in competition (that they want to distribute anyway) would have to be offered free to the world under GPL, and even if Sun can't use it directly the ideas alone would be enough to allow them to keep up and maybe get there first in some cases.
3) Allows maximal code sharing in the open world. GPL has its own momentum, as a sort of "logical end point" - free except for the ability to become non-free. That would seem to make a lot of sense to me for Java, particularly since I would expect (like OpenOffice) that most of the best code would come out of Sun and be copyright Sun. Sun can put out what it wants, and still license commercially if they so choose.
Downsides for Sun primarily seem to be the "radical" image associated with GPL in some circles (yes that's a disadvantage if you want to look like a reasonable, sane business to some PHBs) and the inability to combine developments based on GPL Java back into their commercial Java without discussing it with the author. But since this very restriction is also a reassurance to the community in some ways, it might not be all bad.
Anyway, I will watch developments with interest and look forward hopefully to the day when Java on Gentoo can be well integrated and smooth.
"I object to doing things that computers can do." -- Olin Shivers, lispers.org
Great news.
Major contributions would not come to Java if it wasn't GPL. IBM doesn't want anybody (read Microsoft) to take any VM technology and put it into .Net. The GPL prevents this from happening so IBM can contribute to Java. Same thing happened with Linux. Much of the stuff that companies contributed to the kernel would not have happened if it was BSD licensed, but MS could use it commercially.
IBM Java is going away.
But can they? Do they? How much of their income is highly Java-related?
...are we scared yet?
Now that the dirty hippies have access to the code - it is theirs to destroy much like the numerous number of projects they already have.
Thankfully to my future java-controlled shower to accurately control water pressure and temperature, I will soon be a clean hippie. And because it's java, I'll be able to be clean anywhere!
Thanks Sun! you rock!
Take the cheese to sickbay, the doctor should see it as soon as possible - B'Elanna Torres, "Learning Curve"
I wonder what the angle will be - maybe they'll GPL the class libraries without a linking exception and claim you can't use GPL-incompatible software with the GPL version of Java? Or maybe they'll limit it to GPL2 to attempt to drive a wedge in the community? Or not open the class libraries at all? If it's really an honest 'GPL2 or greater' of the runtime and class libraries without any tricks, it will be a really amazing step by Sun, and to me, make up for their funding of the SCO attack. I can't imagine this happening though, so I'll have to wait for the actual announcement. If it does happen, the first order of business will likely be to port Beagle and F-Spot to Java to avoid Novell's implied claim that Mono is patent encumbered and Microsoft will be suing.
This is great news! I hope people realize just how much Sun is doing for Free Software in particular by taking these steps. It will soon be possible to run a complete enterprise-class Java development or production environment on a Free Software stack on a Free Software system. No more fiddling with GNU Classpath and GCJ.
The complete package is almost - if not - on the same level as projects like GCC and GNOME.
Not to mention, it is very exciting to consider what this new truly democratic "Java Community Process" will produce in advances in JVM technology and the Java language itself.
Sun was making some missteps... for instance how badly EJB sucked up to 2.1.
Now we have POJO's implementing enterprise beans in 3.0. We have strong standardized support for security and cryptography (ala JCA/JCE, JSSE, JAAS). JDBC is a snap. We have excellent documentation and books available from J2ME to J2EE....
Between Britney Spears being available again and the Repubs losing House and Senate... I'd say it was a good day.
Their big concern is forking, right?
They have no qualms of people seeing the code, submitting code, compiling on their own, etc? They want to port to all systems, etc.
There seems to be a huge void here. We need a license that covers this scenario and specifically prevents unauthorized forks. Change the code on your own machine. Submit upstream if you wish, but you can't distribute unofficial builds, or fork the code.
If such a license existed, it might be considerably more likely to see more open-source codecs, open sourced Flash players, plugins, video drivers, etc.
Sun has said forever that the code is basically out there already, and they had no qualm making it open-sourced over than the fork issue, and the only reason for this lengthy delay was coming up with an appropriate license. So why just settle on the GPL?
I'm confused.
http://blindscribblings.com - Tasty pop-culture in conceptual fashion.
For me, this is a really good thing. I use Java quite a bit for my own hobby programs - which I release under the GPL if I release them at all (most of them are just once-off utilities or quick hacks to test out an idea for an algorithm and wouldn't be much use to anybody else) so this isn't going to really cause me any grief at all. What I'm curious about though is that there were some questions about GPLed programs written in java, because of some ambiguities in what constituted linking, a derivative work, etc. due to the nature of the way Java goes about compiling byte code. I'm not sure if this was ever resolved, but if not, couldn't we be facing the same sort of situation wherein Java applications would be considered a derivative work of the GPLed JVM and therefore have to be released under the GPL?
Famous Last Words: "hmm...wikipedia says it's edible"
If its the class libraries (i.e. java.*) this is VERY good news.
If its just the virtual machine and not the libraries, its less usefull (since the libraries would remain non free)
Isn't it much more likely that the difference in performance between a J2SE app and J2ME app has to do with the differences between the J2SE platform and the J2ME platform, rather than the "mindset" of developers.
How about these authors stop with the inane articles about what might happen when they honestly have no clue.
The phrase "more better" is acceptable English. suck it grammar Nazis
holy fucking shit
My thoughts exactly
I am d3matt
I was in an I-hate-Sun mood again this week. Ah, well, now I'm feelin' the GPL love - props to the boys.
What happens to GCJ and Fedora now?, I wonder.
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
Imagine Java not as a plugin, but as part of your browser.
Better; part of your browser that _cannot_ be integrated into non-GPL browsers. They still have to run it as a plugin.
This has mind-boggling implications in terms of patents that apply only to browser plugins (ahem---Eolas).
I've always wished for a Firefox with Java + Flash integrated (does that even make sense?). I don't feel that plugins give as good of an experience as native browser controls.
WhiteWolf666 an exBush supporter. All you new-school,compassionate,save the children Republicans can rot in hell
Java (the VM), class libraries, etc. will still have the same distribution restrictions they always have (effectively none). But implementations of the VM, and changes to it, are now free for anyone to make, and integrate into projects that are GPL compatible.
A static VM obtained from Sun will not require source distribution when included in your product, since Sun maintains that. So anyone using Java now won't notice the difference.
It's open source, and there's no way it can be used AS THE BASIS of a 3rd-party product that isn't open source without Sun's permission, which is how they want it.
Who loses? If you want sole modification/closed distribution rights, you can get a source license directly from Sun, just like you do right now.
THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
That's not how most Java developers interpret the GPL. But unfortunately, Sun will never be able to educate everyone about how they interpret the GPL, so this misunderstanding will live forever.
... kill off any related library development?
I mean, doesn't that just cover sun.* and java.*?
THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
---
You cannot GPL Java, if you do, then ***ALL*** the business applications
that are created using Java will have to ***PAY*** a license fee to use it.
PERIOD.
---
Put the crack pipe down and go back and read the fucking license. You're full of shit and there's a danger that some of the more gullible slashdotters might believe you.
L
... then this will be one of a few good moves Sun has done in many years. Hope it's true.
brb
...the MPL and CDDL are more restrictive than GPL, and those two licenses are the ones I would have immediately associated with Sun.
Apache, BSD, Artistic, and others don't give Sun enough control to ward off competitors trying to pull a fast one. At least GPL makes the core relevant to GPL-related projects (which is a large universe, currently devoid of official Java).
THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
A no-forking license would not meet the Open Source Definition, so many developers would shun it. Forking provides an important check against mismanagement; some prominent projects have only survived due to forks (GCC comes to mind).
Anyone one remembers this: http://www.infoworld.com/article/04/04/30/HNsolari sgpl_1.html
I wonder what impact a pure GPL licensed Java will have on commercial software. Doesn't it mean that any Java software linked against the Java SDK library will also need to be GPL compatible? A LGPL license for Java make much more sense to me.
I think C# is where it's at now. The only thing java is good for is webapps, which that's a huge market. Java application development for desktop applications is another matter. Only apps built around it years ago still use it, but would be better off dumping it for C#. C# can *co-exist with your old C/C++ codebase. You can also easily extend your language support. Not to mention ease of porting applications.
Looks like Matlab is screwed.
I'm holding out for the port to GLslang. Take that stack-based VM and turn it into a 64-register-sliding-window monster that can multithread directly on your GPU. Hooah!
THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
Another example of a very, very large fork was GnuEmacs/XEmacs.
It is not unprecidented, if someone had good reason to do so. However I don't think it would happen because pressure enough to seek a fork of that size would at least try to work through the JCP java standards body to add what they were seeking. And many things people would like to do with Jaqva can be done as libraries, fewer things need to modify the language itself or the bytecode structure.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Sun already said that they won't be releasing some parts that they don't own, so people shouldn't act surprised when the source is incomplete.
This means that Java would be able to be included in linux distos by default, rather then requiring the user to set them up.
Klingon Software is not released, it escapes, inflicting terrible damage onto the enemy as it does
Why is it bad? It's the same as any other commercial software like, say... microsoft windows... you start using it and then you are locked in and have to pay taxes to the software company for the rest of time. If you open up and GPL all your software (instead of locking it down) you can then sell support for your product, you never pay fees... I think its that people like you are scared of having to do some support work and would rather write once and live off profits for ever... nope, thats not how the economy works, eventually it crashes all down, just like the old soviet union.
Does it go on forever?
... you're honestly complaining sun dropped support for a piece of hardware that's what? 15 years old now? Darn them and trying to innovate by not wasting time on old hardware! You act as if they didn't remove it from Solaris10 before they even released opensolaris...
Do you really think it will come to that? That if Sun should choose GPL for opening Java that they wont have thought of that? Do you seriously think that they will place Java under GPL and then yu can call their CEO and tell him that this will kill java because of this and that and what it means and hel go "Oh f***. For all our billions of $$ and all our lawyers we didnt think of that. WE R TEH NUBS :
When in danger, whewn in doubt! Run in circles, scream and shout!
Actually, J2ME is a primary Java moneymaker for Sun, also. I work for an enterprise IT weekly (InfoWorld) and my colleagues and I always end up rolling our eyes whenever we are invited for a big press chat at Sun only to be regaled for half an hour with stories about running games on Java-powered cell phones. We could care less about games, but it's obviously a big issue for Sun and something they want their shareholders to know about.
Breakfast served all day!
The fifth paragraph reads, "Santa Clara, Calif.-based Sun declined to comment on its open-source Java plans and licensing choice" That doesn't sound like a definitive answer to me. The ONLY thing that is actually said is, "...using a GPL license is very much *on* the table..." (q.v. http://blogs.sun.com/jonathan/entry/busy_week1 ). This does *not* commit sun to *anything*.
I don't have to go tell Sun's CEO anything... if they GPL Java they will kill it. Period.
Therefore, I am forced to conclude that either the article is not entirely correct and Sun will actually be using a licensing policy _SIMILAR_ to the GPL (maybe the LGPL), or else Sun is incompetent. I am equally prepared to believe either.
File under 'M' for 'Manic ranting'
stfu
Seems a little cold around here here to be April 1 already....
Blessed are the pessimists, for they have made backups.
Look again. Java hasn't been touted as an 'embedded' architecture for years now. Point me at an embedded processor that runs native Java 'byte code.' And, no, the one in your 1997-era 'Java Ring' doesn't cut it.
IOW- your shower head has an 'open' application layer.
I thought the GPL only counted linking, like how C programs link to librairies when they compile... Bytecode however isn't linked, is it? I mean, I can compile a java program under one JVM, run it under another... its a bit like running an MP3 under a GPL Mp3 player, and compiling to bytecode is a bit like encoding an MP3...I don't think it counts in this case. I will admit I am no expert in how this stuff work, however.
As for your OOP questions, yes it is a problem that code and data is mixed, but at least things are divided up as objects. Procedural programming tends to be very messy, not organizing anything anywhere (and lets face it, inheritance, abstract base clases etc. are *very* nice - good luck writing the additional code for similar functionality in pure C). Generic progrmaming separates data and code, but is harder to code (also, at least in C++ its compile-time only; for run-time data/code binding, you need dynamic types).
Also, when you have only one code for one type of data, OOP is not problematic. For example, a "Window" class contains the only code that actually manages system windows (also, here we have a common use of abstract interface classes for cross-platform support; write a derived class for Win32, one for OSX, one for X11... in C you have to deal with function pointers, good luck with that). It is a wholly different thing than linked lists, for example, where you *do* want to separate data from code.
Its a pity that Objective-C didn't win the C successor race. While its syntax sucks hard, its way of handling objects is much more flexible.
This sig does not contain any SCO code.
The linking that happens with the JVM is all dynamic linking, but it's still linking. To use the mp3 comparison you mentioned, it would be like making an MP3 that uses snippets of other MP3's in addition to its own stuff. You need permission from the copyright holder to do that the purpose of the work is something other than what would qualify as fair use.
File under 'M' for 'Manic ranting'
Make sense. Then, however: is there anything that stops developers from compiling using a proprietary SDK, then users from running using a GPLed JVM?
Seems to me that it was just reciting simple facts, basically paraphrasing what the COPYING file says.
hopefully.
website makers don't even bother to put non-flash options up any more.
p.s. saa-weeet.
If you need text styles to communicate then you don't have a message.
I don't think so, but it would require any commercial developers to invest in a commercial license. This would not be well received at all, as Java has previously always been freely available for anyone, even commercial developers, to develop software as they desire.
File under 'M' for 'Manic ranting'
Yes, but there has always been third party implementations, such as the IBM and the BEA (I think?) ones. Sun's implementation is only one among many. And the third party ones were free too.
How do the linking restrictions of the GPL apply to Java bytecode that isn't (by default, without a custom classloader, 99%+ of the time... etc.) traditionally linked as we think of it in C/C++ (and most other languages)?
For those of you not familiar with it, Java goes hunting for all code at runtime based on the fully qualified (package + class) class name, and resolves methods and fields based on name as well... the code that gets executed at runtime can be completely different than the code compiled against, so long as the method signatures match. That's the crappy, its 11pm and I'm watching the daily show version.
So if I distribute my non-GPL binaries, and GPL'd libraries seperately, am I in violation? What if I use Java WebStart and the user's client downloads the GPL'd libraries from their distribution site? And if I just distribute my binaries and make the user hunt out the GPL'd libraries on their own?
I'm honestly curious.
--
Phil
Like a strip club operator offering free beer so the exiting patrons will stay and watch his remaining 300 pound stripper with halitosis...
I'm sure the three Java developers left will rejoice.
And one of those is a Microsoft Mole anyway.
This is essentially what dynamic linking is, which can be done in C or C++ as well (for example, dynamically linking to the standard library). The provisions in the GPL about linking apply equally to dynamic linking as they do to static linking.
File under 'M' for 'Manic ranting'
On the Sun's Java website there is an interview with James Gosling. A bit of an interesting read.
However, a GPL license would require those making changes to the core Java platform to freely release their code.
:) ).
"However" ? I truly think they know what they are doing here, and choosing GPL is the best possible choice IMHO. They wouldn't want anyone to take it up and make commecrcial closed forks, and they will require contributions and changes to be made public. This is great and I think it will greatly benefit us all. Another good move from Sun (fyi, no affiliation here, sadly
I am putting myself to the fullest possible use, which is all I can think that any conscious entity can ever hope to do.
the.problem.with.java.is.that.I.got.bored.with.the .long.syntax()
even when it's has a GPL licence I won't be using it through choice.
Eh... I've been following this Java opensourcing with some interest, but I've not seen definite announcement yet. Know what I'm reminded of? Certain Lt. Kynnysmatto in Star Wreck 4.5: Weak Performance...
"Warn the enemy that we're about to return to fire."
"Warn the enemy that we're about to activate the twinkler banks."
"Warn the enemy that we're activating the twinkler banks now."
"Sir, the shields are down to 47%."
"That is less than 50%. Very well, we are no longer warning the enemy. Return fire. All twinkler banks and light balls... feuer."
That said, I'm extremely happy that they chose GPL. If it worked for OpenOffice.org it will work for Java =)
When you develop some Java code, you inevitably rely on the Java standard libraries, and when you use "javac" (your usual choice), you inevitably *link* your program to those libraries.
Now if Java is to be GPLed in the future, does that mean, we all have to GPL our applications too, or switch Java environment? And to what would we switch, as there aren't really alternatives??
If Sun releases both the Java VM, and (more importantly) the Java class libraries under the GPL, it will be huge, because important packages will now be able to include Java functionality out of the box
Example: Distros can ship Firefox (a.k.a. Iceweasel/Firesomething/whatever) with a Java plugin. On every architecture. Running OpenBSD. And it'll be reliable, because weird OS-specific bugs will actually get fixed.
Another example: Debian et al. can start shipping OpenOffice with Java support.
If Sun plays its cards right, it will have eliminated the so-called Java trap, which can only serve to render Java more ubiquitous.
That said, I'll believe it when it happens.
http://outcampaign.org/
``Gnome/Java Qt/Java''
How about SWT?
Please correct me if I got my facts wrong.
Let's wait and see until they release something. Given Sun's history, this may well be the "genuine GPL(*)" (*) with Sun enhancements. And I don't think anybody can say yet with certainty that the GPL is the right license.
Keep in mind that Sun's Solaris release was done in such a way as to be incompatible with Linux (of course, open source Solaris also has turned out to be largely irrelevant).
If Sun Java is GPL'ed does that mean all the applications that need jre to run would need to be open-sourced in their entirety or is it just the parts of the program that need java? I am using Maple 10 on gentoo here. I am pretty sure the gui part and possibly other parts are written in java.
As someone who tested the JDK and negotiated long and hard with Sun over open-source license for J2EE, I submit that the code is worth little without the test suite, and the code would be relatively easy to write with the test suite.
So, if Sun keeps the test suite under a non-open-source license, this would at best mean some patches for annoying bugs. Only if the test suite goes, too, could we get real alternatives.
But these could be huge in the the mobile space, where mobile Linux + mobile Java could be rapidly developed for lots of devices. not LAMP but LAVA. Yum!
His name is Dark Helmet.
http://outcampaign.org/
If this happens, all the major distros (like ubuntu etc) would bundle JVM, JRE .. J* with the iso. Just when I was hoping distros would get snappier every release, things like these come in the way! :( :(
IMO, java is a better server side language. Please don't use it for desktop applications!
Sent from my desktop computer
Sun is already shipping in particular XML stuff licensed under the Apache License 2.0, which the FSF believes is incompatible with the GPL. Considering that Jakarta is such an important pool of code, what are they doing about license compatibility?
Only in the UK, where archaic laws about direct connections to the water main have created a national* dependence upon cisterns and ball valves, could you use something as slow as Java to control what Londoners laughingly call a shower. In other countries, where water heaters are fed straight from the main, you'd have no chance. Every postcard arriving in the South from abroad enthuses about the wonderful high-pressure showers, even if it does mention in the next sentence about how the locals could do with using them occasionally .....
* OK, it's not "national" -- it's only in the Thames Water area that you're not allowed to connect anything to the main. But as everyone knows, nothing outside of the M25 officially exists; hence, plumbing textbooks refer to the regulations in force in London as though they were in force nationwide. Here Up North, we are allowed to have flow heaters (as long as they draw combustion air from outside, or are electric -- 230V means you can get up to 11.5kW. Above 50 amps, you need stupidly thick cables, or else they start getting hotter than the heater) and combination boilers (a gas-fired central heating boiler with an integral expansion vessel and PSI meter for the primary circuit, and an additional heat exchanger to allow it to function as a flow heater; popular in the Outer UK and Italy). Mains-fed water storage heaters are very rare, usually only being found in industrial applications where heating several hundred litres of water at a time makes sense. Cistern-fed water storage heaters, either electric or indirectly heated by a central heating boiler, are common because they're cheap to install (at the low pressure provided by a cistern, 1 millibar per cm. of static head, they can be made from sub-millimetre copper); though the fuel used in heating hundreds of litres of water then to go cold will eventually outweigh the cost of a flow heater.
Je fume. Tu fumes. Nous fûmes!
What, in the same way that all the applications running on linux have to pay linus a license fee too?
By writing a java program you are not creating a derivative work of java itself, you are using java for it's intended purpose. It's like creating a piece of C code that is compiled using GCC.
http://spamdecoy.net - free throwaway anonymous email - avoid spam!
Tell me where we are not allowed to have Mains fed power showers/combi boilers, etc in the Thames area? (That is what you are implying).
The very "freedoms" you guys have had, have been certainly available in the London/Thames water areas too.
Have a nice day!
Indeed, sounds odd to me too - thames themselves sell/recommend combi boilers:
e nt/Section_Homepages/Multi_Download_000207.jsp
http://www.thameswater.co.uk/UK/region/en_gb/cont
The problem with Java on Linux isn't just the license, it's technological: poor platform integration, slow GUI, etc. Java applications feel foreign and violate HIGs on Linux and on other platforms. And neither Sun nor SWT have been able to fix that.
Java will continue to be what it is--a cross-platform tool for some market niche. The window of opportunity where it could take over the world has passed.
Thinking about it, this is probably pretty much useless. GNU Classpath and other open source Java libraries have a special exception to the GPL, see here. That exception is there because without it, the only software that man people could run with an open source Java implementation would be GPL'ed software. Realistically, that would make an open source Java implementation largely useless, since so much Java code out there is not under the GPL.
If Sun's source code is released under the plain GPL without that exception, then it is largely useless. Sun's JVM and libraries could be reused as part of FOSS implementations, but FOSS Java already has better implementations anyway. The big parts of Sun Java that would have been useful are Swing, but those can't be incorporated into Classpath if Sun doesn't have the exception.
My guess is that Sun has deliberately chosen not to include the exception, in an effort to appear open but deliver little of real value.
This move comes just in time. With Microsoft being in bed with Novell, it makes me just a little uneasy about the future of mono. Plus, it will be nice to have Java included in free distros such as Fedora.
Paid Q&A/Research
Nah, never happen.
Am I part of the core demographic for Swedish Fish?
I agree with you to a certain extent that the LGPL is more appropriate than the GPL, but only in terms of the runtime components of Java (particularly the libraries). The GPL is definitely the best choice for the compiler and all the other tools.
As long as the runtime libraries are LGPL'd, it would still be possible to develop non-GPL Java applications.
So release it already? I never liked java so far, but maybe you'll find a blake ross or something.
rhY
I hold very few opinions. I hold information based on observation and fact. If you wish to disagree, please use facts.
I had to comment on the '!itsnotatrap'-tag. Not it's not a trap? Please, please, don't use double negation! Why don't you just write itsatrap. That would be just so much less confusing. :-)
I demand the Cone of Silence!
I still have problems with Threading on C++ - Java Threading and synchronisation is fairly good and consider that most of our CPU will be multi-core in the years to come, I think C++ need to sort it out
I am more of a Java guy but are they addressing threading in C++?
What kind of Slashdot user are you? Next you will be saying that GNU/Linux is NOT the best thing since sliced bread, and CLI's are NOT the wave of the future once we have converted the unwashed masses to our geekdom. Hand over your non-x86 architectures!
---- "XML is like violence. If it doesn't fix the problem, you aren't using enough."
GPL does not care or talk about linking. It cares and talks about derivative works.
If you question is: if I compile HelloWorld.java against a GPLd java.lang.Object (or any other part of the standard class library), does the resulting bytecode need to be GPLd, as well? Then the answer is no.
Since the resulting bytecode is not a derivative work of the specific standard class library you used to compile against[1], GPL or any other copyright based license, can't magically propagate to cover it.
If you base your work on someone else's work outside the scope of standard libraries, then, of course, you need to comply with the GPL for that work. But that's the case anyway, regardless of the license of the VM you are running on, or the license of its class libraries.
[1] For details, see the respective specifications, and read about copyrightability of interfaces.
I have a question, what happens when some developer decides to extend one class or implement some new functionality using one or more of the existing classes in the API, will he be under obligation to release this as GPL'd code?
Check out the difference between the LGPL and the GPL. AFAIK, under the GPL, if you link (dynamic or static) with a GPL library (and license the library under the GPL), and distribute the resultant software, then you need to provide your source code under the GPL.
In other words, if you distribute software using a GPL jar, you have to give up your source code. So, if all of Java is released under the GPL, if java GPLs its standard jars, and if you decide to distribute your software with GPL'd java, then your software is GPL'd too.
Sun probably would continue to also offer Java under an alternative license in this case, much like how MySQL dual licenses their JDBC connector.
This dual licensing would force Java to be controlled by Sun. They would not be able to dual license code they didn't have copyright of. If a non-Sun developer wanted to contribute code under the GPL license and not give Sun control of the copyright, I would guess that Sun wouldn't allow its inclusion.
Ubuntu, for example, downloads the restricted modules whether you like it or not--the aim is to make installation "just work." They do not download 3d-accelerated binary drivers, but instead modules that are necessary for operation of certain machines.
That's why gNewSense exists.
I don't know the exact details, but yeah they had some kind of deal, which MS went back on by "embracing and extending" their implementation of Java, meaning that applets written for the MS VM wouldn't work in the Sun one. Sun did sue (and, after years of stalling, MS eventually agreed to remove their VM from Windows/IE), but the damage was already done.
I'd be interested to know if the OP's orginal comment would have applied to this. If I understand correctly, GPL code could never be incorporated into Windows.
you made me look! dammit dammit....
Not to mention that:
Solaris 8 dropped support for sun4c (and sun4 i guess, not sure when that was dropped)
Solaris 1 (SunOS 5.0) dropped support for m68k sun3 machines
etc...
Hardware moves on, there's not much point continuing support for modern software running on old hardware that can't be purchased anymore... Those machines which are still around, will still run the old versions of solaris they've been running for years.
And when it comes to machines still supported by opensolaris, you have the ultra-5 and ultra-2, which are dirt cheap and readily available on ebay for an absolute pittance, and will easily outperform any old sun4m boxes.
http://spamdecoy.net - free throwaway anonymous email - avoid spam!
Actually, this is much more like Fark. I think they own a trademark on the "poorly photoshopped Admiral Ackbar" meme.
There are a number of free and open source thread library - like OpenThreads (which comes with OpenSceneGraph, www.openscenegraph.org) and Qt's thread library (www.trolltech.org, GPL for non-commercial use) which you can take a peek at for learning purposes. I've been a c++ developer for a good year now and I don't find it that difficult (I'm an engineer, but the compiler is my design tool ... )
The article doesn't say. Will Java be GPLv2 or GPLv3?
E pluribus unum
These days the most commonly used tags (besides yes and no) are itsatrap, fud, notfud, and duh. They occur so frequently (check this out for yourself) that they are all useless for searching. Furthermore, when somebody tags something fud, some other genius usually immediately tags it notfud. Furthermore, often neither tagger seems to understand what "fud" stands for. Furthermore, you can't usually tell whether the fud tag applies to the article or the post announcing the article, which often takes an opposite point of view.
I find the entire tagging mess so annoying that it is having the effect of discouraging me from reading slashdot altogether. I wish it would go away.
C syntax is a horrible mismatch with object-oriented programming.
No matter what band-aids you apply to it.
Objective C is the least worst compromise, and it's not even a close second to fully embracing Smalltalk-like syntax.
All of the additions and modifications to the project get their own copyright enforcement, too. Copyright term in the U.S. is (life of author + 70) years or for corporations it's 95 years from publication or 120 years from creation.
A popular GPLed project may contain little or none of it original code five or ten years after its initial release. Take Linux for an example. How do you think the Linux kernel will look 70 years after Linus Torvalds is dead? Will Linux 1.0.0 sources really be useful to close-source a clone of whatever people are running by then? 1.3.5? 2.0.14? And 95 years from now, do you think IBM will be kicking itself over letting support for eight-way SMP out the door? Will the Linux kernel be relevant 70 years after Linus dies? There's a good chance he'll live another 40-60 years anyway. Maybe even longer.
Is Sun going to care that someone in 95 years can use public-domain Java v.whatever-is-current-now source code in a closed-source application? They'd be allowed to anyway, if anyone could find the source at all, because the copyright is up at that point whether it's GPLed or not.
So, in 95 years, someone can legally release today's Java as their own product. Will you care?
Imagine the kernel module that enables different java processes, of different users, to use just a single VM. This will immediately reduce the strain off servers running J2EE apps in different containers, or let me run a few instances of eclipse along with tomcat and other java software.
So when do we get to see java.ko?
See his keynote at the recent Oracle OpenWorld 2006.
- overview/keynotes.html?pageregion=ocom_hp_a_lr_3_k eynote_102406
Select his video and then forward to 16:00 min into the talk. He says "most likely the same license as Solaris"... i.e., CDDL. Not GPL.
http://www.oracle.com/openworld/attendees/program
> When it comes to desktop development, Java is about to get creamed. Once libraries like wxWidgets, which allows for cross-platform GUI development, support the garbage collection of C++, Swing will be history.
Java never got into the desktop enough to even be in a position to get creamed. Thank goodness for small favors. Swing is a curse. (SWT less so, but nevertheless SWT is still Java with its dog-slow cold startup time and initial JIT compile time.)
Actually, no. Your work is only covered under the GPL if either the source code form is derivative of a GPLd work, or the executable form. The license itself does not mention the word linking at all.
In the context of using the standard class library, the source code using a particular GPLd or otherwise licensed implementation is not derivative, since your code is written to the specs. The source code 'System.out.println("Hello World")' can be licensed as you wish, regardless of the license of system, out, or println of the implementation you wrote it on, or run it on, as it's not a derivative of that particular implementation.
In addition, the bytecode resulting from compiling the fragment above is not derivative of the particular implementation it's compiled against, due to the way both the bytecode format, and the compilation of Java programs works. The resulting bytecode does not contain copyrightable material from the standard class library it was compiled against, and accordingly, can not be a derivative work. Practially speaking, if you compile your HelloWorld program against a GPLd or MS EULA licensed or LGPLd standard class library, the resulting bit stream will be exactly the same, regardless of the interna of the class library implementation. There is nothing copyrightable that 'escapes' from the GPLd imlementation into your bytecode, carrying the licensing obligations forward.
Outside the scope of a the core class library, the GPL and LGPL have different effects, due to the 'based on' part of the definition of derivative works in copyright laws. For the core class library, and the bytecode case, the license of the class library doesn't matter for its users, for the derivative work question, and that's all the GPL cares about.
Hmmm, Java SE and ME.... What about Java 2003 Enterprise and Java XP? Any announcement about those?
OOP suffers from a variety of problems, many of them related to efficiency, but not so much efficiency of execution (though that has proven problematic as well) but also efficiency of conceptual treatment. The fact that data and code are welded together at the hip does nothing for either, and particularly makes decomposition of objects syntactically ugly at best (I'm looking at you, Python) or outright infeasible without writing so many additional decomposition methods that you end up wasting time all over again. I realise that this isn't supposed to be an issue in the world of proper object delineation and class hierarchies, but that kicks code reuse right out, unless you happen to be doing the exact same thing all over again. More work for less result; bad news!
... unless you break open the objects, which starts the merry-go-round of ugliness again.
Procedural programming also is a poor comparison to object orientation. If you want to compare with the most recent and powerful and flexible methodology that came out before OOP, it would be modular programming, which is a hell of a lot less messy, and just doesn't happen to involve the code/data binding. Conversely, take functional programming, which allows you to feed rather arbitrary blobs of data back and forth, if necessary along with functions to manipulate that specialised blob of code.
I don't think inheritance and abstract base classes are nice. They create truly heinous dependency problems, and make refactoring a nightmarish business. As someone who has written seriously functional chunks of assembler, I can testify that maximum separation between bits of code allows for the most elegant and correct treatment of special cases imaginable. In OOP, you layer class definitions on top of each other, and pray that you can fit everything into your is-an or has-an structures.
I don't see what you have against function pointers. They tell you precisely where a bit of desired code is. Push, pop your return data and you're done. Mind you, I'm not holding C up as a paragon of anything much; it's basically a macro assembler that got too big for its britches, but cross-platform code does not require that kind of detail (nor a Javaish level of abstraction). Have your platform-dependent functions with consistent interfaces, and away you go.
Java, as a beast, manages somehow to capture the worst of these worlds from within VM execution. Its cross-platform behaviour is ugly at best. The OOP syntax is horribly complex with an only dubious addition of power over any other OOP system I've seen regularly used. You can break open objects with suitable method writing, but it's a pain and ugly to boot. You can pass around objects for re-use, but they're basically black boxes which are limited to what the original programmer wrote
I have yet to see a real, live case of OOP solving anything significant by its nature. I have, however, frequently seen it cause problems.
"So anyone using Java now won't notice the difference."
Not true. Firstly, if Java is GPL, it'll be possible to have it included in my preferred Linux distributions as a standard supported feature.
Secondly, if Java is GPL I can download it and use it at work, because the GPL is a standard license that has been approved by the legal team--whereas I am specifically forbidden from agreeing to Sun's current license.
GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
I'll believe this after I see an implementation.
OTOH, have you checked out Digital Mars D? ( http://www.digitalmars.com/d/index.html ) It offers many of the featurs you are claiming for the new C++, and a useable version is available NOW.
I'm not a great fan of either Java or C++ or C. (I dislike both pointers and restrictive licenses.) That said, the great strength of all three languages is in their libraries. It's essentially impossible for any individual or moderately sized company to put out a new language, because of the lack of libraries. The general solution is to enable the calling of C libraries, but this isn't usually an easy matter.
If the new C++ spec is as different as you are implying, then I would expect that it will be YEARS before it has a respectible number of implementations. (I am NOT impressed with the "elegance" of the STL...quite the contrary. OTOH, my interest is not as much in make - every - CPU - cycle - count effenciency as in power of expression and flexibility. Object persistance is as important to me as any other single feature.)
That said, wxWidgets does look rather nice, and it seems a good fit for many user interface tasks. Also probably much faster than Swing (I haven't times it, but when I did time Swing it was SLOW!!!).
How does the new C++ handle splitting processes off to run on a different processor? This could be quite important in the coming decades, and I know of NO current language that handles this well. A Dataflow language would appear to be the optimum, but Prograf appears to have died, and the other such languages I've encountered were special purpose. Io handles this by running the separate processes as separate tasks, and communicating via IP ports, I'm not sure how much intrinsic overhead this has, but it might be significant, and is certainly clumsy at the moment. This should be automatically instigated by a co-routine call or some such. That way it could be optimized when hardware allowed it.
I suspect that you've not encountered many new languae releases...if you had you would be a bit less optimistic that they will live up to all the hype.
I think we've pushed this "anyone can grow up to be president" thing too far.
Most Java developers I know interpret the GPL in exactly this way. Most avoid using GPL licenced code in anything they write, and only use the LGPL stuff. It is one reason why nobody I work with will touch MySQL - preferring to use postgresql or even buying Oracle / Sybase licences.
If you are currently jumping through hoops to get java to work on your platform, you'll notice, because it'll get easier. I was address an Anonymous parent comment (which you probably couldn't see) that was complaining that the GPL would somehow restrict his existing source rights/access.
THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
Phones.
like, say... microsoft windows... you start using it and then you are locked in and have to pay taxes to the software company for the rest of time
Damn, so that's where all my money's going - I've been paying a fee to MS all these years!
Oh, wait, no I haven't, it's a one-off payment...
It's official. Most of you are morons.
Any ARM chip with a J in its name incorporates Jazelle, which allows it to run Java bytecode natively. Other chips support Thumb-2EE mode, which does things like null pointer and array bound checking in hardware, and is designed as a target that it is easy to JIT compile Java bytecode to.
Any modern 'phone has a J2ME runtime environment, often accelerated by using one of these features. Last week Erisson released their J2ME stack under the Apache 2.0 license.
I am TheRaven on Soylent News
How can these people definitively say that Sun is going to GPL Java? They have no citations of anything worth believing in that article, just links where our good ol' Sun CEO is toying with the idea of maybe using the GPL.
Threading is a horrible abstraction for parallel programming. The debugging complexity of your code scales exponentially with the number of threads. It's okay if you're just targeting 2-8 CPU machines, but it really starts to suck beyond that. For real parallelism pick a language based on the CSP formalism, such as Erlang, where it's easy to write code that scales to 1,000 or so nodes (beyond that is a bit more effort, since you start running into Amdahl's Law).
I am TheRaven on Soylent News
How does the new C++ handle splitting processes off to run on a different processor? This could be quite important in the coming decades, and I know of NO current language that handles this well
Try Erlang. Creating a new process looks like this:
You can then send messages to the process identified by P like this:Receiving messages is handled by a receive block, which does prolog-style pattern matching. Creating a new process has almost no overhead (a little under 400 bytes of memory used), and the latest version of the VM fully supports SMP architectures and will distribute your processes (note: Erlang processes are not the same as OS processes) among them. You can also spawn processes on remote machines if you are deploying on something like a cluster.With Erlang, it's quite easy to write code that scales to 1,000-way parallelism.
I am TheRaven on Soylent News
My only complaint is JVM/Java app load times. You launch an app and you wait. A simple app has a load time comparable to starting MS Word, and starting a Java equivalent to MS Word (Eclipse, for a broad comparison of a big, comprehensive app) takes an eternity.
SUN's take on this is security. Everytime you construct an object from a class for the first time, you are invoking a class loader which does verification of the byte code.
Sometimes it isn't just application startup -- launching a JFileChooser for an initial time can sometimes take forever to come up, but then it is responsive with subsequent invocations.
But if they solved the startup time, perhaps making a JVM part of the OS startup, that would go a long way. Anyone here use Matlab in recent versions? You are using a Java Swing app, or at least for the GUI part. Matlab is the state-sponsored religion in engineering at the U, and when I demonstrate to a class bringing up an editor window in Matlab and we wait for that edit window to pop up, I tell them they are looking at Java Swing in action.
True, it is possible to write bad Swing apps (what was that example, populating a GUI widget with 10,000 entries?), but by an large I am impressed with Swing -- not as snappy as a native app, but fully comparable to a VB, wxPython, Matlab, whatever GUI. But oh those long load times.
I've looked at Erlang, but I've never really tried it. Certainly it has separate processes that are easy, but I've always suspected that it would be unacceptably slow. Currently I only have a dual processor, so the possible improvement is minor. OTOH, in a decade things will be quite different...and I don't know just HOW different.
I think we've pushed this "anyone can grow up to be president" thing too far.
...except that Microsoft's version of Java stripped away all cross platform code by the time Java Studio v6 shipped within two years. They put direct Windoze system calls into their Java to kill the "write once, run anywhere" threat. That's what got them sued and rightly so. Breach of contract, it was... and fscking everything up.
Most of the stuff on
Oh, wait, then MS forces you to upgrade your system if you want to maintain system security and stability... How??? Well, I shouldn't have to explain that to you. After all, your slashdot id is low enough to warrant me giving no explanation whatsoever, other wise all I'd be doing would be feeding a fat ugly troll.
Does it go on forever?
Oh, wait, then MS forces you to upgrade your system if you want to maintain system security and stability...
;)
Security I'd almost give you, if I wasn't sat behind a hardware firewall and savvy enough not to use IE or Outlook and to not download and run untrusted executables, but stability? You think my XP install gets more unstable with passing time and the only way to stabilise it is with a patch?
Sure, some people's installs do, but that's not due to a lack of patches...
We have machines at work running NT server that are stable and that have never been compromised, despite that being several generations out of date. By your logic, they should be permanently rooted and crashing all the time.
Software isn't like people, it doesn't get progressively more infirm the older it gets. I'll forgive you not realising that, given your high uid...
It's official. Most of you are morons.
A graduate of Pope High School in Marietta, Georgia, in 1998, he lives in Atlanta and claims to attend Georgia State University. Andy Zebrowitz is a co-founder of the Mirrorshades project and, in his own words, "a writer, actor, and co-founder of Dixie Flatline and the Panther Moderns, a theatre troupe specializing in gothic and fetish drama performances at nightclubs in the Atlanta area."
He frequently abuses his position as a helpdesk monkey (technical director) at a VoIP provider to harass his employer's customers by publishing their personal details on the internet and creating libelous websites about them. For this task Zebrowitz has created a posse of IRC lusers, including Yaroslav Shirokov aka Slava aka Mutatorr of Alpharetta, Georgia, and Bryan Allen aka bda aka harb, a network security administrator for Drexel University until he was fired for incompetence.
One such harassment case is that of VoIP customer and fellow Atlantan internet dipshit Steve Milano. Outraged at being treated like the information age peasant that he is, Zebrowitz posted Milano's name and helpdesk emails in his Kuro5hin diary. Unfortunately, the offending diary entries were later deleted by Kuro5hin administrators. However, the myriad websites Zebrowitz and his lackeys set up to defame Milano can be found by doing a simple Google search.
When not fighting his imaginary internet foes, Andy can be found staring at disco balls or posing with swords in parking lots.
Mr. Zebrowitz is of the Jewish persuasion.