Sun Microsystems has announced the release of an open-source version of its Java Development Kit for Java Platform Standard Edition. Sun has contributed the software to the OpenJDK Community as free software under the GNU GPLv2. Sun also announced that OpenJDK-based implementations can use the JCK (Java SE 6 Technical Compatibility Kit) to establish compatibility with the Java SE 6 specification. OpenBSD has already started importing the release.

"""
ah brilliant, can't wait for the wave of updates from the community, Java is gonna kick some serious ass.
"""

Don't be overly optimistic. I thought the same thing when Netscape open sourced their code.

The problem is that you can't dump a huge, complicated code base on the community and expect them to just take off running.

The Mozilla guys wasted a year trying to understand the code base before deciding to start from scratch on a lot of it. It took loooooooooong years to get to Mozilla 1.0, during which time they had actually *regressed* from the usability of the 4.x code base. And MS took advantage of that time to reduce the Netscape market share from 70+% to as close to naught as makes no odds. It's *really* hard to recover from that.

Nowadays, we cheer when we think FF might have reached about 10%-15% market share again.

Don't expect open-sourcing to be a panacea. Especially considering that the Java Community Process or whatever they call it was already *pretty* open, even if the code was not open source.

Sigh. I hate language purists. Maybe someone ought to tell them that the contemporary English vocabulary consists largely of French, Latin, and other non-English words. Less than 25% comes from 'original' old-English.

Moral: English changes, like it or not. Also, don't do the thing you're complaining about as you're complaining about it, it just shows that you're wrong to complain about it in the first place.

Could I get that again? And in slow motion this time?

Anyway... there is a clear relationship between nouns and verbs so if one was truly a "language purist" one would appreciate the mechanics of languages. Driver=noun, driving=verb. The driver is driving. Did the verb stem from the noun or opposite. What was it called before it was called 'driving'? Did people object about a driver beaing used as a noun. I'm using google therefore I am googling. Seems perfectly acceptable to me. One could perhaps call a person using a seek engine for a googler?

Funny that everyone is complaining because someone said that grammar isn't being applied correctly. When it's to do with language people are quite happy to change and adapt to the situation in hand.

The rules of grammar are a standard to follow so that everyone can understand what is being said. If this was about IE and web standards you all be modding up lucke for pointing out how standards should be stuck to.

Maybe your double standards exist because you don't really care that much about the language as long as you can use it... sort of the same way not all web sites stick to web standards, because they don't always make sense.

No it's not. At least not in Denmark. I'm not aware of any democracy where there is such a standard to follow. There are guidelines to make it easier but no standards (standards are something you _have_ to follow). Most so-called language standards are not standards but merely an interpretion of how the language is being used at that time the "standard" was created.

Besides that the two situations cannot be compared.

Two persons are still speaking the same language even if they dynamically enhance the language. They will often understand each better when they do so, rather than sticking to a government body's static interpretion of the language.

However with software and hardware the situation is completely different. Even small violations of a standard can make a driver incapable of communicating with the hardware - or make it impossible for the client to communicate with the server. A slight variation in standard implementations can often result in situations akin to one speaking Old Norse (the Danish Tongue (dǫnsk tunga in Old Western Norse, dansk tunga in Old Eastern Norse, dansk tunge in modern Danish) and the other speaking Thai.

Besides that people have the option to clarify their statements if other people don't understand a word. Even if we invent new words on the spot we are still talking the same language.

A language's nature is to evolve dynamically. Creating a "standard" for a language is merely in order to be helpful and not something one _must_ follow. A standard in software is different since a small variation equals a completely different language.

"""
Most so-called language standards are not standards but merely an interpretation of how the language is being used at that time the "standard" was created.
"""

Back when I was in high school (many moons ago), one of my English teachers would often say that dictionaries are "descriptive" rather than "prescriptive".

I whole-heartedly agree that is the way it *should* be.

Grammar guides should be the same way.

And yet dictionaries and grammar standards are frequently used to demonstrate that users of a particular word or grammatical expression are *incorrect*.

This is particularly irritating when the person wielding the dictionary or grammar manual is using out of date information. e.g. "irregardless" is a perfectly good word today. And the phrase "begs the question" (confusingly) can mean either "passes over the question" or "suggests the question". (The word "beg" is now its own antonym).

Amusingly, I was sitting next to a crotchety old guy one evening at a meeting, when someone used the word "irrelevant". I heard him utter under his breath, in an irritated way, that there was no such word as "irrelevant"! :-)

Couldn't agree more. It's one of my pet hates. The word "Google" is now a verb in the same way.

Ah, so you're into "axe grinding", well, could Americans stop saying, "Xerox'ing", or "Klenex" and many others?

Sorry, when a business/organisation/product becomes the defacto standard for a certain thing, it becomes a verb; You don't 'search' anymore, you Google, Google is now the defacto standard, the Microsoft of the search world.

Thom, I think that you will find that it is not hard to write in English and have no words that do not come from Old English or at least words with Germanic roots*. Your thoughts are true in some ways, but not always. The thing with English is that there are often two words for any bit of it. This then makes folks think that the "Latin/French" words have taken over. Well, as you can see, they have not.

* the bug bear being that old Norse roots often look like Old English ones.

However, there you go, a readable paragraph with minimal Latinate influence.

While we're at the pedantry-fest, can I just point out that Scotch refers to a drink, or a boiled egg wrapped in sausage-meat and breadcrumbs considered a delicacy in some proletarian locales. In any other instance, it's 'Scots' if you please!

Look up the words I used in my first paragraph. I think you'll find that none are anything appart from of Germanic origins, save the words "French*" and "Latin".

* Though technically the word "France" and the word "French" come from the "Franks" who were a Germanic tribe.

> English as we know it right now is a mix of several
> languages: Old English, scotch, irish, and Germanic
> roots mainly; but there are a lot of inheritance
> from another languages:

No, you are wrong. Old English consisted of a number of dialects. The dialects were spread over large areas. Northumbrian, Kentish, West Saxon and Mercian. The dialect areas still exist even till today in England. Though England has a nasty habbit of having a different dialect every 25 miles or so.

There is no such langusge as "Scotch". There are three languages in Modern Scotland. Scots Gaelic, Scots and English. Both Scots and English are related to Old English directly. Scots Gaelic is a dialect or Irish Gaelic. Most of "Scots" dialect is pretty much English, but it uses a few hundred distinctly Scots words and a very different overall pronounciation. But if you've ever heard a Geordie speak (Newcastle, UK) it's not too dissimilar overall.

Irish Gaelic/Scots Gaelic are both Celtic languages. Welsh is also another language we have here. You can count the number of Celtic loan words on two hands.

Old English is a Germanic language. There is a language called Frisian that is spoken in costal reagions of Holland, NW Germany and S Denmark that is directly related to Old English. It's sort of the old folks we left behind, so to speak.

Latin and French were very late in the game. Much of the French in English is actually from a Northern dialect which was quite different to what we would now call French. We somtimes borrow a word twice from French, hence Waranty (Norman French) and Guarantee (Central French.)

So, um, no, I was correct. I know what I am talking about ;-) Off topic as it is (sorry)

Honestly, I haven't thought that my comment would spur such a discussion, with some pretty interesting comments too.

Although I don't necessarily share the view of that newsforge poster, I have to admit that now that I have given it a bit more thought, I do find an "open source" verb strange in that way that it's composed of two words. I can't recall similar verbs in English, although it's 2 AM here, I might be missing something.

Anyway, if I looked at "Sun Open Sources Java" without knowing the context, I'd probably have a hard time figuring the message it conveys. Celestial body does some strange thing regarding opening/source to an island, eh? Looks more like a collection of random words ;-)

well maybe open source wasn't a verb... languages are constantly changing and developing through common usage. If your use of the language clearly communicates your message then it has succeeded in its primary function. Considering the international effects of the internet and the popularity of sms messaging i'd say the language purists are going to be in for a bit of a bumpy ride as it seems to me that languages are changing more rapidly now (on a global scale) than ever.

Once upon a time, neither were host, fool, switch and many others. Verbification happens. Just as we can outsource something, we can open source something.

More on topic: I'm pretty curious to see what happens with GCJ, Kaffe and others now. Will they fold?continue on their own way? Appropriate bits and pieces (seems like that could be harder than at first glance), appropriate Sun's stuff wholesale? Harmony of course can't do the last two. Wonder if that had anything to do with Sun's choice of license.

OTish again. Harmony is an Open Source java, yet can't use (if they wish to retain the same Apache license throughout their codebase anyway) Sun's GPLd stuff. Could we more properly say that Sun Free Softwared Java? (verbifying again)

I'm pretty curious to see what happens with GCJ, Kaffe and others now.

I can only speak for Kaffe (since I run the project) - it's going to continue on. The people on the mailing list want it to continue on. It's still probably the easiest virtual machine with a JIT to port to exotic platforms.

And Dalibor Topic (the top Kaffe developer) is only the OpenJDK governance board now! :-)

Of course it's a verb, if it's used as a verb. Good or bad, that's for history to say.
I remember when I was young that the word "kodak" was sometimes used as a verb - as in "to kodak something".
History wasn't too kind on that one; let's see what it has to say about "out-sorce" and "open-source".

Yeah. I thought that article was useless filler when I read it last year and my thoughts on that matter haven't changed.

"Open-source" makes a very handy transitive verb, thank-you-very-much. It improves the clarity and conciseness of the language. And if overly-pedantic grammar experts don't like it then they can email me and I will tell them in private just what they can do with their silly complaints. ;-)

Maybe I'm being a tad optimistic, but hopefully this will lead to advancements in Java IDEs that will offer developers a chance to build applets in as straightforward method for non-programmers as it is to build Flash.

So maybe (hopefully) there's a good chance Java can reclaim some lost ground against Adobe and make things that much more awkward for Microsoft's Silverlight.

With Java 6 browsers still grinds to a complete halt for 10-20 seconds to load an applet (3Ghz 1G ram PC). There is precisely 0% chance of it ever competing with Flash online until a JRE is recoded from the ground up to start up instantly and install seamlessly.

Now with .net updgraded along with vista this is the ideal way to compete. As its GPLv2 it means every 'everything must be free free' distro can also include it!

my only hope is the gplv2 doesnt inspire a million forks

As long as they don't procrastinate in regards to merging contributors contributions to the project - I don't see any forks happening. But that is my one fear; if they make access and contributions difficult, a group will simply peal off, and develop a project without layers upon layers of bureaucracy - and both projects will be weaker.

Hence the reason I'm not particular excited about the idea of having multiple versions of OpenSolaris - you're just asking for trouble in the long run as each diverge off in different directions resulting in incompatibilities.

Yes, but the only one that works worth $(%@ is the sun one. Most (and by most I mean all.. I am just covering for some exceptions that I probably dont know about) of the open source ones that exist currently (and before sun open sourced theirs) are pretty much garbage.

Which is wierd, considering that Apple's proprietary, closed-source JVM runs much more natively and fast (on OS X), in fact, faster than Sun's own JVM on Windows or Linux.

Why can't the open-source JVMs work just as well on Linux?

I'm hoping that this doesn't turn out like Mozilla's XUL architecture, which, despite being open source for most of the early 2000s, has gotten regressively slow with each new release of Firefox, in comparison to closed-source browsers like Opera and IE.

I've studied SUN announcements very carefuly. That means that anyone can take JDK source code, change it, recompile and distribute under GPL v2. Who would want to use those derivates, that is another matter.

Mayby some Linux distributions would choose to link JDK with different or newer version of some library, or so.

A question for Java developers: Does there exist an IDE for Java that can make building a GUI app as painless and quick as building an app in .NET? My experience from a few years ago was that, whilst Java is fantastic for server based apps, it kinda sucks for rapid desktop application development. If there's still a problem here it would be great if the community can address it.

The latest version of Netbeans is brilliant. Before it was an absolute pain for anyone used to MS style GUI creation. Now you just drag & drop components and matisse magically takes care of all the container stuff for you but you still get all the power of Swing. Components automatically align and space themselves removing a lot of drudgery of VB style drag & drop.

i'm hoping to see Javafx become more prevalent. now that java is opensourced I think relying on closed proprietary plugins to get rich media content isn't in anyones best interest. What if adobe decides to take out a new version of flash with more features. Will the Linux plugin get updated or will it get postponed until two versions later like flash 9. Do we really want to rely on a technology that we have no control or say over, silver light is definitely not the way to go. \

What is needed is a front end to this technology. Something that an artist can use and if its free and opensource, you can bet users will use it. maybe something built on the eclipse framework with extensions for animation.

i'm hoping to see Javafx become more prevalent. now that java is opensourced I think relying on closed proprietary plugins to get rich media content isn't in anyones best interest.

Yes! The web was intended to be an open platform with open standards. Accessability and access for all should be the standard. All operating systems should be welcome and easily able to implement the standards of the web. Proprietary, closed plugins need to fade away. I, too, hope that JavaFX succeeds. I am a developer and I am going to jump all over this. It is especially important that it be easy for developers to use. This will greatly increase the possibilty of market penetration. As I've said before, Sun is rising!

Why that? You can still produce proprietary products with GPL'ed Java. Just like you can create proprietary products with C# in monodevelop. Or GPL'ed products with C# using Visual Studio and Microsofts .Net "framework".

You can only create GPL products with Mono (and now, with Java); derivitive works of a GPL program must be released under the same license (that's the entire point of copyleft). Have you read the GPL yet?

By your logic anything compiled/written with gcc/g++ c/c++ would have to be open source.

It means exactly that; since the work is derived from the GPL program, that means it is a derivative work. That's not 'by my logic'; that's what the law says.

People have been creating proprietary programs with GCC for decades, and AFAIK no one has ever challenged their right to do so, not even Stallman. So forgive me, but I'm going to continue to doubt your views are correct when apparently every lawyer in the world disagrees with you.

BTW, taking your argument to it's logical conclusion, everything that you create in Visual Studio must also comply with it's license, right? i.e. belong to Microsoft. Therefore, it isn't possible to own proprietary software that you compile in Visual Studio either.

BTW, taking your argument to it's logical conclusion, everything that you create in Visual Studio must also comply with it's license, right? i.e. belong to Microsoft. Therefore, it isn't possible to own proprietary software that you compile in Visual Studio either.

Erm... no. I'm not arguing that all software must be licensed under the compiler's license. That's goofy. I'm just pointing out what the GPL says. The GPL requires derived works to be put under the GPL; the Visual Studio EULA does not require derived works to be put under the EULA. Many (most?) Microsoft EULAs go out of their way to define works made using those products to be the property (and thus, the responsibility) of the creator.

Yes, but what in the world makes you think that compiling an unrelated program in a compiler makes it "derived" from that compiler? It's generated, not derived. To derive from that compiler, you'd need to take code, or at least algorithms or ideas from it, and at that point it doesn't matter where you compile it, it would still be a derived work.

the Visual Studio EULA does not require derived works to be put under the EULA

I have to admit, I've never read the VS EULA. Still, I'm quite certain they don't allow you to create a derived work from it - you can't copy the VS installation CD and add a couple features to it, then resell. Obviously, though, they let you do whatever you want with programs you create yourself. Just like every other compiler...

Do you understand what a compiler does? It's basically a translator. If I wrote a speech in German, then had some program translate it into Russian, the speech still belongs to me and I can do whatever I want to with it. Just because the translator was GPL software doesn't mean my speech somehow gets infected and I then have to release it under the GPL as well. If I create a picture in GIMP, or a document in OOo, or a webpage in Firefox I don't have any obligation to release those under a certain license either.

Using a compiler to compile your code IS NOT a derivative work. Even linking in GPL libraries (thus the LGPL) is not a derivative work. So these arguments are specious. You can create GPL works with C#, and you will be able to create closed-source products with java. You just cannot create a closed-source _VERSION_ of java (as the previous poster mentioned). The good news, is since C# is an open standard (ISO), you can produce an open-source version of the C# language, and thus we have Mono. Nevertheless, you can most certainly create a closed-source Mono project if you want, but obviously most would use C# to create closed-source projects.

As an example of an excellent open-source C# application, you just have to look at SharpDevelop. It is an excellent GPL C# application.

But, if the Java standard classes are GPL'd, and my Java application uses these standard classes, doesn't my application have to be GPL'd?

No linking to a library and extending a library are two different things. I think this is the reason for the LGPL. You can link to a library in a closed-source app. I assume this will also be true for using Java standard classes in your application.

No because the license is GPL with the Classpath exception except for the Hotspot VM which is licensed under GPL only though.

The Classpath exception is:

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.

With entire JDK and class libraries under LGPL someone could release competing and proprietary version of JDK that includes SUN's own code. This way, SUN made sure that all other JDK's that include SUN's code will be under GPL.

SUN is protecting their intelectual property, and in the same time enabling Linux and other vendors to create optimized and integrated binaries under GPL.

.NET integrates with Windows, and now Java integrates with Solaris and Linux.

Good question. I did a little research. It looks like the Classpath exception is less restrictive than the LGPL.

The LGPL seems to require two additional things:

1. It must be possible to link the program to a new / modified version of the LGPL module being used. So if you statically link the LGPL module you would have to provide your object or source code to the customer.

2. The software linking to the LGPL module can be licensed under any terms BUT the terms must allow for modification but the customer and reverse engineering for debugging the modification.

Incorrect. You can create proprietary products with mono. It is only the IDE which is GPL.

GCC is GPL'ed too but that doesn't mean applications compiled with GCC becomes GPL. You can create proprietary products using the basic GNU libraries.

You can also create proprietary products with GPL'ed Java. You can claim otherwise as you want to but Sun and FSF have already made clear that it doesn't touch derivative works because of an exception clause (not unlike the way GPL is used for fonts). Heck, you can create proprietary products using GNU Classpath because of that.

Actually, that's false. If you modified the Runtime, then you would have to release the modified runtime as GPL, but anything you write with it is not GPL. Any linking to the runtime is done exactly then, at runtime.

Haven't tried Netbeans for a while but do you still get the problem where if I dropped a button on the form, the button would expand to occupy the entire form? It's little things like this that spoil Java GUI IDEs.

That is the way java behaves. It is mostly based on layout managers to remove the requirment of manually coding all of your widgets to move properly when the window resizes. You can change that behavior by using null for the layout manager I believe.

Actually, once you get the hang of the various layout managers, coding a gui by hand isnt really that time consuming at all.

Haven't tried Netbeans for a while but do you still get the problem where if I dropped a button on the form, the button would expand to occupy the entire form? It's little things like this that spoil Java GUI IDEs.

Just use a different layout manager. The gridbag layout lets you put you controls in cells - columns and row. If you want pixel-level layout like other IDE's use, then use the Matisse Gui-builder in Netbeans 5+. I think it allows that kind of pixel-level layout.

However, I would discourage pixel-level layout. I believe it is better to learn to use layout managers, such as FlowLayout, CardLayout, GridbagLayout, etc. You will generate much more elegant interfaces that scale across many different kinds of devices (Desktop, Web, Cell, Mobile, etc).

The new GUI builder (Matisse) in Netbeans basically takes care of all the details to do with layout managers etc. It shows you guides that snap your buttons, text boxes etc for sizing placement setting standard gaps etc between components that snap your component into place.

By default the interface it produces scales when you size the window.

Combining Matisse and JRuby or JavaFX (F3) turns the Java / JRE into a powerful RAD environment. I will be very surprised if we don't see an explosion of such cases within a year.

I'm shocked that this one hasn't come up yet, because I know there are a lot of people that have been waiting for a 64bit native java browser plugin. If you check the posts on Sun's forums, this has been a request for many years, and they stated that it'd finally be there in the 1.7 Java after they had released it as open source.

Right now I'm using the gcj-webplugin, which seems to work ok, but has a few bugs in it still.

as well as binary plugs for the remaining few instances of encumbered code.

In other words, that is code that Sun licensed from someone else or that is patented, and their lawyers have decided it isn't legal to release under the GPL. Hopefully the community can rewrite most of it soon.

>anyway gui development is not a big part of a software >development...

GUI development is a big part of software develpment if there are many user interfaces and some of them are complex. To the user, a pleasant looking and easily mastered interface matters a lot.

I think the statement you made that I don't understand what's going on is probably true. Perhaps Java GUI development was never meant to be RAD which is why you say there is a learning curve to writing Java GUI apps. I am so used to the Windows way of doing GUI development (cf. Delphi and WinForms, even VB) that I am surprised how much work it requires to create a decent looking Java GUI. I think the extra learning curve in Java explains why many Java GUIs apps look pretty bad (there are a few which look good, eg Eclipse and Azureus) because the programmer has relied heavily on the layout managers which often do a poor job (eg controls too close together or even jammed up against each other) and hasn't had the time to tune the look of the interface.

One misconception among the Java community and OSS community in general is that layout on WinForms and Delphi does not require pixel accurate placement. When a button is placed on a form, we don't specify the x/y coordinate, we position it where we want the control to be with the mouse, then set the alignment and anchor properties. These environments, rather than having layout managers (although Winform does have to an extent) these environments use the concept of alignment and anchor properties. These features allow windows to be resized, with controls adjusting accordingly. I know many balk at this approach but the vast majority of user interfaces are developed this way.

I would love to have the ease of Windows GUI development on Java but I don't think it is quite there yet, if it were we would see a lot more GUI applications written in Java than we currently have. Maybe with the release of GPL Java we will see some changes here.

The above link is for the preview release of Netbeans 6 but 5.5 is also very good. Netbeans is far better than it was with with versions 3.5 and 4. With v5 things started improving.

JDK comes bundled with the Java DB (Derby) so you have a database built into the VM if you need it just like Mac has SQLite. Sun is finally getting it the JDK/JVM and development tools are finally focused on making things easy for the developer and attractive to the end user. The mindset has clearly changed.

The relevance to the topic at hand is what it has to say regarding OSS licenses, that many of the languages are successful due in part because they are available under an OSS license, but specifically NOT GPL. To quote, "While each of the successful dynamic languages have chosen different specific licenses, it is far from accidental that none selected the more extreme GPL license used by the Linux kernel. All of the successful language communities have deliberately picked licenses that fit equally well with corporate requirements for non-viral licenses and the Free Software Foundation's goals (although clearly not the tactics, given the license differences). In general, the language communities view themselves as on the "liberal" side of the open source debate (inasmuch as any large group can be described as having a consistent opinion), and aren't compelled to pick sides on the morality of proprietary licenses. This approach has served them well, with significant successes both within the Linux and Windows communities. "

Given that, why did Sun use GPL rather than another OSS license? Did Sun choose GPL for a particular technical reason, or to score brownie points with the most religiously fervent OSS believers, or what?

Mostly is far more lenient than GPL because of the Classpath exception. Everything except the Hotspot VM has the exception.

So I think the reasons are: -

1. Prevent forking without having to give back.
2. Through the Classpath exception give just about every group what they need.
3. Brownie points as you stated.

Personally I had no problem with Java being closed but opening Java up does make Java attractive to a larger group of developers and this could even end up unifying the .Net competition. I think Mcnealy was mostly right when he said that there are only two developer ecosystems left .Net and Java.

Perl, Ruby, and Pike _are_ licensed under the GPL. So the "white paper" (haha) is just spreading nonsense and conjuring theories to fit not the facts but someone's agenda. Hopefully not too many suckers fall for this baloney.

Isn't Activestate associated with Microsoft? Figures... We would not want to favor licenses incompatible with their "ecosystem". <smirk>