This week's book giveaway is in the Java 8 forum.
We're giving away four copies of Java 8 in Action and have Raoul-Gabriel Urma, Mario Fusco, and Alan Mycroft on-line!
See this thread for details.
The moose likes Meaningless Drivel and the fly likes Perils of GPL'ed java Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Java 8 in Action this week in the Java 8 forum!
JavaRanch » Java Forums » Other » Meaningless Drivel
Bookmark "Perils of GPL Watch "Perils of GPL New topic
Author

Perils of GPL'ed java

Abhishek Misra
Ranch Hand

Joined: Sep 26, 2005
Posts: 68
It is finally done. Sun choose the most restrictive of all licenses. I see it as a step back rather the step forward. To appease the open source community Sun is risking the industry support which Java has. Most of the people as they know GPL are really hesitant to use Java anymore because of the fine prints in GPL of making your product open source as well.

Before people panic. Sun has releade GPL + classpath which is close to LGPL so not that bad. I would still have preferred LGPL.

" The Classpath exception was developed by the Free Software Foundation's GNU/Classpath Project (see http://www.gnu.org/software/classpath/license.html). It allows you to link an application available under any license to a library that is part of software licensed under GPL v2, without that application being subject to the GPL's requirement to be itself offered to the public under the GPL.

Back to top

Q:
Why do you need the Classpath exception?
A:
If an application is distributed with an implementation of Java such as the JDK under GPL v2, that application could be subject to the requirements of the GPL that all code that is shipped as part of a �work based on the [GPL] program� also be GPL licensed. Accordingly, a GPL license exception is needed that specifically excludes from this licensing requirement any application that links to the GPL implementation. The Classpath exception accomplishes this. Without the Classpath exception, a Java SE implementation licensed under GPL v2 could not practically be distributed with non-GPL licensed Java applications. This could present a serious barrier to adoption, for example by OpenSolaris or GNU/Linux distributions if left unaddressed. "

[ November 13, 2006: Message edited by: Abhishek Misra ]
[ November 14, 2006: Message edited by: Abhishek Misra ]
Joe Harry
Ranch Hand

Joined: Sep 26, 2006
Posts: 9243
    
    1

"Most of the people as they know GPL are really hesitant to use Java anymore because of the fine prints in GPL of making your product open source as well."

What the heck are you talking about??


SCJP 1.4, SCWCD 1.4 - Hints for you, SCBCD Hints - Demnachst, SCDJWS - Auch Demnachst
Did a rm -R / to find out that I lost my entire Linux installation!
Abhishek Misra
Ranch Hand

Joined: Sep 26, 2005
Posts: 68
Read this specifically :
"You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License."

GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.

1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.

You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.

2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.

b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.

c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.

In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:

a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software
interchange; or,

b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,

c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.

If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.

4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.

5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.

6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.

7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.

8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.

9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Program does not specify a
version number of this License, you may choose any version ever
published by the Free Software Foundation.

10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.

NO WARRANTY

11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
Jim Yingst
Wanderer
Sheriff

Joined: Jan 30, 2000
Posts: 18671
This has nothing to do with SCJP, so I'm moving it to Java in General - Intermediate.


"I'm not back." - Bill Harding, Twister
Paulo Pontes
Greenhorn

Joined: Dec 06, 2004
Posts: 20
The VM or the compiler being GPL doesn't imply that your applications must be GPL.
Abhishek Misra
Ranch Hand

Joined: Sep 26, 2005
Posts: 68
Paulo it does mean that your app be open sourced. But it is not that bad. They have added the classpath exception to the license which will allow to link with jre without opensourcing your product.

This is from FAQ section of Sun java website

The Classpath exception was developed by the Free Software Foundation's GNU/Classpath Project (see http://www.gnu.org/software/classpath/license.html). It allows you to link an application available under any license to a library that is part of software licensed under GPL v2, without that application being subject to the GPL's requirement to be itself offered to the public under the GPL.

Back to top

Q:
Why do you need the Classpath exception?
A:
If an application is distributed with an implementation of Java such as the JDK under GPL v2, that application could be subject to the requirements of the GPL that all code that is shipped as part of a �work based on the [GPL] program� also be GPL licensed. Accordingly, a GPL license exception is needed that specifically excludes from this licensing requirement any application that links to the GPL implementation. The Classpath exception accomplishes this. Without the Classpath exception, a Java SE implementation licensed under GPL v2 could not practically be distributed with non-GPL licensed Java applications. This could present a serious barrier to adoption, for example by OpenSolaris or GNU/Linux distributions if left unaddressed.
[ November 13, 2006: Message edited by: Abhishek Misra ]
Tim LeMaster
Ranch Hand

Joined: Aug 31, 2006
Posts: 226
Well you are free to embrace the Microsoft FUD about GPL infecting your software requiring you to GPL anything that comes near it.

However the truth is much less sinster, the classpath and public portions of the API are released under GPLv2 with the classpath exception - meaning you can link an application under any license to this code. Using the standard Java API will not force you to GPL your software.

However if this scares you away from Java and into the hands of Microsoft I say Good Bye and Good Luck with the shared source license :roll:
Phil Rhodes
Ranch Hand

Joined: Dec 27, 2003
Posts: 65
Yeah, it has a linking exception, this is no problem. It's not even 100% certain that a java VM under a pure GPL license can only be used to run GPL'd programs... but with the linking exception, it's guaranteed that you can use the VM to run anything you want.

For 99.9% of java developers, this license switch is a total non-issue.


A+, Network+, SCJP, SCWCD<br />preparing for SCBCD, SCEA, CompTIA I-Net+
David McCombs
Ranch Hand

Joined: Oct 17, 2006
Posts: 212
You are making a bigger deal of this then necessary.

Python is open source, yet you can make proprietary software with python.

How about writing C code and compiling with gcc and linking to its libraries? The compiler is GPL, yet your code has no restrictions on it. now if Sun used a license similar to the free QT license, then you might have something to complain about.

Your java code runs in a JRE, but how is that the same as linking to it? Are all programs running in Linux GPL, or even open source in general? The act of linking to the libraries in the API will not force your code to be open source.

Much ado about nothing.

My biggest concern is probably bigger in my mind then reality: I am concerned about the possibility of forking. If we get to the point where a certain bunch of bytecode will only run with a certain JVM. That would be bad, but not necessarily inevitable.


"Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration."- Stan Kelly-Bootle
Ken Blair
Ranch Hand

Joined: Jul 15, 2003
Posts: 1078
How is this new? They've been announcing plans to do it for years and slowly been releasing different parts under things like the JRL. Furthermore, I don't think you (the OP) are even close to interpreting the license correctly. The compiler and JVM being under the GPL does not require any applications compiled by the compiler and run in the JVM to be under the GPL itself.
[ November 13, 2006: Message edited by: Ken Blair ]
Jeroen T Wenting
Ranch Hand

Joined: Apr 21, 2006
Posts: 1847
Originally posted by Paulo Pontes:
The VM or the compiler being GPL doesn't imply that your applications must be GPL.


It does. Strictly speaking every class you create is derived from Object and therefore must use (if Object is released under GPL or even compiled with a compiler released under GPL) be released under GPL as well.
The same is true of everything that uses or is compiled against a GPL licensed library.
The classpath exception only partly lifts that restriction.

Furthermore, any access to GPL licensed sourcecode opens a company to lawsuits demanding they release their entire codebase under GPL as well because people inside the company have been "inspired" by that GPL licensed code and therefore they have effectively incorporated it.
While no such lawsuits have so far been successful to the best of my knowledge it's only a matter of time before one does succeed (or rather a matter of selecting the right judge and greasing the deal well enough).

Most companies I've worked with in the past refuse for those reasons to have anything to do with any GPL licensed code or any binaries produced based on such code.

I too see the future of Java as a platform for commercial development as dim.
Though there will for the foreseeable future be work still it will ever more be in moving existing Java based systems onto different platforms with less restrictive licenses.


42
Jeroen T Wenting
Ranch Hand

Joined: Apr 21, 2006
Posts: 1847
Originally posted by David McCombs:

How about writing C code and compiling with gcc and linking to its libraries? The compiler is GPL, yet your code has no restrictions on it. now if Sun used a license similar to the free QT license, then you might have something to complain about.

Your java code runs in a JRE, but how is that the same as linking to it? Are all programs running in Linux GPL, or even open source in general? The act of linking to the libraries in the API will not force your code to be open source.


If you compiled any single GPL licensed library into that binary of yours you'd be damned into releasing your entire codebase for that application under the GPL as well.

Same with a GPL licensed Java compiler, and the classpath exception isn't going to help much.
Tim LeMaster
Ranch Hand

Joined: Aug 31, 2006
Posts: 226
Java based systems onto different platforms with less restrictive licenses


I'm pretty surprised to see such dark opinions here. I see this as a very positive measure - we have an open source JVM, J2EE container, and a compiler. The public facing APIs have the classpath exception which Sun chose because that is the route GNU Classpath went instead of LGPL.

and the classpath exception isn't going to help much


Really, why not? That is precisely what it is designed to do. In my opinion Sun chose the GPL so if someone wanted to fork the JVM (or compiler or J2EE container) - they couldn't close source it and try to gain from the work of others without giving back.
Phil Rhodes
Ranch Hand

Joined: Dec 27, 2003
Posts: 65
You can still create proprietary software to run on Java, you people are making way to big a deal out of this. Besides the classpath exception, I believe Sun has already said that they will continue to do binary releases of the JDK under terms that are suitable to developers of proprietary software.

I mean, stop and think about this for a minute: Sun *want* to encourage Java adoption, not discourage it. And they have very smart, very well paid lawyers analyzing this stuff... I'm sure if they thought that their license would disallow anything but GPL'd code to run on the JVM, they would not have done this.

Anyway, anybody who makes a decision to walk away from Java based on this announcement, on the strength of some arm-chair laywering, is an idiot. If you're really worried, hire a legit laywer to review the license and/or contact Sun and review things.
Jeroen T Wenting
Ranch Hand

Joined: Apr 21, 2006
Posts: 1847
The exception won't help much because it is still GPL with all the dangers of getting sued that entails.
The financial damage from that (and even more importantly the damage done to your corporate image when being dragged through the dirt by the press) is very real, whether you manage to win in court on a technicallity or not.

For that reason many companies WILL abandon Java in favour of platforms with less restrictive (and less dangerous) licenses, like C#.
These platforms have the added benefit that they can't change on the whim of a few anonymous people somewhere around the world who think it would be a jolly good idea to change something that breaks your entire codebase between one minor release and the next (which is a constant threat with OS software, I've had it happen 3 times in the last year alone with various packages, forcing a decision to either stick with an old release and maintain it yourself or rewrite your entire codebase to get a fix for a single bug you like).
With a rigid system in place at the supplier, that is far less likely (Java up to now for example can be almost relied upon to run classfiles that are years old, that's unlikely to last much longer when everyone and his niece can make changes to the runtime and compiler to do whatever they like).
Ernest Friedman-Hill
author and iconoclast
Marshal

Joined: Jul 08, 2003
Posts: 24168
    
  30

Given the level of informed discussion we're seeing here, let's go have this enlightened discussion in "Meaningless Drivel."


[Jess in Action][AskingGoodQuestions]
David McCombs
Ranch Hand

Joined: Oct 17, 2006
Posts: 212
Originally posted by Jeroen T Wenting:


If you compiled any single GPL licensed library into that binary of yours you'd be damned into releasing your entire codebase for that application under the GPL as well.

Same with a GPL licensed Java compiler, and the classpath exception isn't going to help much.


That is why the LGPL exists. There is absolutely nothing stopping me from writing and compiling a C program with GCC and releasing it as a proprietary program.

It will help because the libraries are not GPL, and it doesn't matter what license the JVM is under, you program doesn't link to it.

The "viral" rumor is FUD paid for by MS.

I think minus the few problems that might creep up, open sourcing Java is the best defense against .net.
David McCombs
Ranch Hand

Joined: Oct 17, 2006
Posts: 212
Originally posted by Jeroen T Wenting:
The exception won't help much because it is still GPL with all the dangers of getting sued that entails.
The financial damage from that (and even more importantly the damage done to your corporate image when being dragged through the dirt by the press) is very real, whether you manage to win in court on a technicallity or not.

For that reason many companies WILL abandon Java in favour of platforms with less restrictive (and less dangerous) licenses, like C#.
These platforms have the added benefit that they can't change on the whim of a few anonymous people somewhere around the world who think it would be a jolly good idea to change something that breaks your entire codebase between one minor release and the next (which is a constant threat with OS software, I've had it happen 3 times in the last year alone with various packages, forcing a decision to either stick with an old release and maintain it yourself or rewrite your entire codebase to get a fix for a single bug you like).
With a rigid system in place at the supplier, that is far less likely (Java up to now for example can be almost relied upon to run classfiles that are years old, that's unlikely to last much longer when everyone and his niece can make changes to the runtime and compiler to do whatever they like).


Less restrictive licenses like C#?

You think if someone adds or changes something in the java library it will be distributed as official? Python is OSS, yet all the problems you are talking about have yet to happen or even in danger of happening. Same with Perl.
[ November 14, 2006: Message edited by: David McCombs ]
Gregg Bolinger
GenRocket Founder
Ranch Hand

Joined: Jul 11, 2001
Posts: 15292
    
    6

Easy there, pilgrims. We're all friends here. Everyone take a deep breathe.......there, all better now.


GenRocket - Experts at Building Test Data
Tim LeMaster
Ranch Hand

Joined: Aug 31, 2006
Posts: 226
Well I am attempting to have a well informed discussion but thats another topic.

change on the whim of a few anonymous people


Alternatively, it can change or disappear from the market entirely on the whim of a faceless corporation.

http://www.softwarefreedom.org/publications/Sarbanes-Oxley.html

According to this source the Free Software Foundation (FSF) has never used a GPL violation to seek major damages. The FSFs stated policy is to ensure compliance. To my memory the FSF swings into gear when someone has examined a commerical binary and found very similar segements (string dumps or other markers) to GPL software.

Actually I find the notion that the producers of GPL software have high power lawyers just waiting to sue someone pretty funny when compared to the actions of Microsoft and the like via the Business Software Alliance.
David McCombs
Ranch Hand

Joined: Oct 17, 2006
Posts: 212
Originally posted by Gregg Bolinger:
Easy there, pilgrims. We're all friends here. Everyone take a deep breathe.......there, all better now.


Sorry Greg and anyone I might have offended. I meant it more in a light manner then it might have come across.
Phil Rhodes
Ranch Hand

Joined: Dec 27, 2003
Posts: 65
Originally posted by Jeroen T Wenting:
The exception won't help much because it is still GPL with all the dangers of getting sued that entails.
The financial damage from that (and even more importantly the damage done to your corporate image when being dragged through the dirt by the press) is very real, whether you manage to win in court on a technicallity or not.



That statement - at least in the USA - is absolute FUD. And that's because you can be sued by anybody, at anytime, for anything already. Java being GPL now means NOTHING in terms of additional risk of being sued. Nada, zilch, zero. A SCO could come along tomorrow and sue your company for violating their copyright or patent, nothing changes because of this.

And since you can be that Sun will maintain pretty tight control over the official release of the JDK, no how, no way will anybody be at any MORE risk than they already are. However much you trust Sun now to not ship something that endangers your company, you can continue to trust Sun that much tomorrow.
Jeroen T Wenting
Ranch Hand

Joined: Apr 21, 2006
Posts: 1847
You can however not trust others (read IBM) to do the same.
They'll shortly have their own incompatible implementation and ship it with all their machines (several million a year), calling it something that makes their customers think they're running Java when they're not.
Guess who has the marketing clout to determine what's Java and what isn't when it's IBM versus Sun?

Our customers will simply demand we conform to what they think the standard is (and they think anything IBM does is the standard because that's what IBM tells them).

That's the danger of forking, in the past IBM would have to conform to the Sun standards at least at a language level, they no longer have to.
Gregg Bolinger
GenRocket Founder
Ranch Hand

Joined: Jul 11, 2001
Posts: 15292
    
    6

Originally posted by Jeroen T Wenting:
You can however not trust others (read IBM) to do the same.
They'll shortly have their own incompatible implementation and ship it with all their machines (several million a year), calling it something that makes their customers think they're running Java when they're not.
Guess who has the marketing clout to determine what's Java and what isn't when it's IBM versus Sun?

Our customers will simply demand we conform to what they think the standard is (and they think anything IBM does is the standard because that's what IBM tells them).

That's the danger of forking, in the past IBM would have to conform to the Sun standards at least at a language level, they no longer have to.


As I understand it, IBM or [insert vendor here] still has to comform to the VM specification to call it Java. I don't think anything has changed there because the langauge went open source? I don't know for sure.

Also, with Java being open source, does that mean I could go in and add all the keywords I want and release it? What part of Java exactly is open source?
Deepak Bala
Bartender

Joined: Feb 24, 2006
Posts: 6657
    
    5

What part of Java exactly is open source?


Thats exacly what I would like to know too. I cant understand what this fuss is all about.


SCJP 6 articles - SCJP 5/6 mock exams - More SCJP Mocks
Ernest Friedman-Hill
author and iconoclast
Marshal

Joined: Jul 08, 2003
Posts: 24168
    
  30

IBM has had their own JDK and JVM for many years. It's absolutely compatible with Sun's. I can't imagine what would make them switch to an incompatible fork of Sun's code, when they have their own perfectly lovely JVM already which they've always kept in lockstep with the official release.

Are you reading this stuff off a Microsoft blog somewhere, JW?
Tim LeMaster
Ranch Hand

Joined: Aug 31, 2006
Posts: 226
http://www.sun.com/software/opensource/java/faq.jsp#j

Please read this. The Java brands and logos are registered trademarks of Sun Microsystems. They make it very clear that just because the JDK, compiler, classes, etc are open sourced doesn' mean something can call itself Java Powered, Java Compatible without passing the tests for these brands.

Forking the JVM and releasing it as JoBobs Java Virtual Machine without Sun's permission seems like a quick way to get yourself in hot water with Sun (reference the Microsoft JVM debacle). You think IBM would have much luck where Microsoft didn't even have a chance?

Actually I think (read personal opinion) IBM will do one of three things in order of decreasing likelihood:

Business as usual - continue to license Java from Sun and release their version of Java - which meets the Java standards and passes testing to use the Java brand.

Open source their own version (GPL compatible) - this would allow them to use code from the OpenJDK project - and of still meet the standards and pass the testing.

Drop the IBM Java and just go with the OpenJDK project - I don't really see this happening.
Gregg Bolinger
GenRocket Founder
Ranch Hand

Joined: Jul 11, 2001
Posts: 15292
    
    6

I'm still not completely clear. Is the VM (c code) open source now? Or is it just the JDK (API) that is open source. Can I go into the c code and change the way GC works? Or can I only go in and change all the Swing models to use Collections instead of Vectors? Or both? Couldn't I have done this anyway, before Java went "open source"?

I mean, if other vendors have been allowed to create a Java VM already, what does open sourcing Java mean; ie, what's all the fuss about? I don't see anything that has really changed except the name of the license.
[ November 15, 2006: Message edited by: Gregg Bolinger ]
Ernest Friedman-Hill
author and iconoclast
Marshal

Joined: Jul 08, 2003
Posts: 24168
    
  30

When this happens (next spring), the significantly new thing is that you'll legally be able to modify the JVM and distribute the results (respecting trademarks as appropriate, as is pointed out above.) Right now, as you could have for some years, you can get the VM source and modify it to your heart's content; you just can't redistribute your changes without paying a hefty fee.

We're not going to see forks left and right. The JVM is a terribly complex thing, and the collected brain trust of the entire open-source community has never produced a JVM that works well enough to see wide usage. The existing open-source VMs work only well enough to be satisfactory to folks who have an I-only-run-free-software chip on their shoulders.
Tim LeMaster
Ranch Hand

Joined: Aug 31, 2006
Posts: 226
What is opensourced?

At openjdk.dev.java.net you will find

The Hotspot JVM
1500 C/C++ header and source files
250,000 lines of code
Not included - the class libraries - you have to provide a bootstrap JDK and a JDK for class libraries

The Java programming-language compiler
the compiler source with NetBeans project metadata


At glassfish.dev.java.net you will find

A open source Java EE 5 application server

In 2007 Sun will release the unencumbered source code modules of JDK 6 and 7. This will include the class libraries (licensed under the classpath exception so you can use them and not have to GPL your code). Code that cannot be open sourced due to licensing (encumbered code) will be released as a binary plugin.
Jeroen T Wenting
Ranch Hand

Joined: Apr 21, 2006
Posts: 1847
Originally posted by Ernest Friedman-Hill:
IBM has had their own JDK and JVM for many years. It's absolutely compatible with Sun's. I can't imagine what would make them switch to an incompatible fork of Sun's code, when they have their own perfectly lovely JVM already which they've always kept in lockstep with the official release.

Are you reading this stuff off a Microsoft blog somewhere, JW?


So typical. You don't agree with someone THEREFORE that someone is in league with Microsoft...
Not nice! (or rather not meant to be nice).

IBM has been trying to take control over Java away from Sun for a decade. Until now they couldn't do it by forking, now they can.
With their massive marketing clout to get their (now legal) variations accepted by millions of end users as the real thing, and their huge consultancy department spreading it to corporate boardrooms, it's almost inevitable.
Gregg Bolinger
GenRocket Founder
Ranch Hand

Joined: Jul 11, 2001
Posts: 15292
    
    6

Originally posted by Jeroen T Wenting:


So typical. You don't agree with someone THEREFORE that someone is in league with Microsoft...


I think it's more a case of your rather avid fondness of Microsoft, or maybe it's more of a non-dislike of Microsoft and the fact that some of the statements being made sound like something a Java competitor would spread as fud. Being that Java's main competitor is .NET, you do the math.

I don't think EFH meant anything nasty by his question. I think he was seriously wondering if you were reading the information you are stating or if these are just assumptions you are making.
Paul Clapham
Bartender

Joined: Oct 14, 2005
Posts: 18155
    
    8

Well, I am going to be interested to see what if anything IBM does. But they are somewhat constrained by people like me. I bought a system that's written in Java by people who had never heard of the IBM iSeries, and I plunked it down on our iSeries and it just worked. If IBM starts distributing JVMs that don't work the same way as Sun's JVM then there's going to be hell to pay.
Jeanne Boyarsky
internet detective
Marshal

Joined: May 26, 2003
Posts: 29287
    
140

Originally posted by Paul Clapham:
If IBM starts distributing JVMs that don't work the same way as Sun's JVM then there's going to be hell to pay.

At least intentionally. I'm sure the IBM JVM has had bugs at some point. So has the Sun JVM. People expect APIs to work in a certain way so I can't see a dangerous intentional fork. What I can see is proprietary extensions to the JRE. Just like WebSphere has extensions. But they are clearly labeled as such so you know what you are getting into.

Incidentally the IBM JRE is not GPL. So from the point of view of those large companies that are afraid of GPL, there are still options.


[Blog] [JavaRanch FAQ] [How To Ask Questions The Smart Way] [Book Promos]
Blogging on Certs: SCEA Part 1, Part 2 & 3, Core Spring 3, OCAJP, OCPJP beta, TOGAF part 1 and part 2
Jeroen T Wenting
Ranch Hand

Joined: Apr 21, 2006
Posts: 1847
Originally posted by Paul Clapham:
Well, I am going to be interested to see what if anything IBM does. But they are somewhat constrained by people like me. I bought a system that's written in Java by people who had never heard of the IBM iSeries, and I plunked it down on our iSeries and it just worked. If IBM starts distributing JVMs that don't work the same way as Sun's JVM then there's going to be hell to pay.


Most of those people would however also contract the software from IBM, at least initially...
They'd get Java software written specifically for their non-standard implementation and will when wanting more software from other sources demand that new product also be written against that IBM implementation.
Marcus Green
arch rival
Rancher

Joined: Sep 14, 1999
Posts: 2813
Think about this carefully,

Is it likely that the armies of lawyers and technologists at Sun Microsystems have released the Java technologies under a licence that is going to undermine most of the financial underpinnings of the multi billion dollar business that is Java software development.

Or is it more likely that they have changed the license but that it will still be possible to create and sell Java software under proprietry licenses and extract financial gain for the copies of the software. Which is more likely?


SCWCD: Online Course, 50,000+ words and 200+ questions
http://www.examulator.com/moodle/course/view.php?id=5&topic=all
Paul Sturrock
Bartender

Joined: Apr 14, 2004
Posts: 10336

People! People! You are missing the really interesting news: we can now have a JavaRanch logo of a certain famous penguin wearing a cowboy hat.


JavaRanch FAQ HowToAskQuestionsOnJavaRanch
Ernest Friedman-Hill
author and iconoclast
Marshal

Joined: Jul 08, 2003
Posts: 24168
    
  30

Originally posted by Paul Sturrock:
People! People! You are missing the really interesting news: we can now have a JavaRanch logo of a certain famous penguin wearing a cowboy hat.


Hey, that's cool!

But are you serious? Duke is a penguin? I always thought he was a Star Trek insignia.
Jeroen T Wenting
Ranch Hand

Joined: Apr 21, 2006
Posts: 1847
Originally posted by Marcus Green:
Think about this carefully,

Is it likely that the armies of lawyers and technologists at Sun Microsystems have released the Java technologies under a licence that is going to undermine most of the financial underpinnings of the multi billion dollar business that is Java software development.


Which billions in Sun's revenue (and especially profit) are you talking about?
Those are the only billions Sun would be interested in (certainly their management and shareholders who are the ones in ultimate control).

Most likely management saw an opportunity to save some money by having non-paid external parties write their code for them, then sell that code.
Pretty much the same reasoning other companies use for trying to sell Eclipse...
Marcus Green
arch rival
Rancher

Joined: Sep 14, 1999
Posts: 2813
No I am referring to the revenue generated by Java applications by 3rd parties. Are you suggesting that Sun is to undermine the entire commercial Java market, i.e. require that every Java application be free under the GPL to save the cost of salaries of the Java developers.

So that the Oracle Java tools must be GPL, including the JVM at the heart of the database system, Oracle JDeveloper, the Borland Developer Tools, the WebLogic and WebSphere tools, the Sybase tools, etc etc. Are we going to be able to get the source code and redistribute those tools under the terms of the GPL in the near future?.
 
wood burning stoves
 
subject: Perils of GPL'ed java
 
Similar Threads
How do I choose the appropriate license for my application?
Question about MySQL...
How do I choose the appropriate license for my application?
Problem to run ICEfaces sample application
Licenses of libs which can be used in commercial application