gnu/linux, programming, interviewsNovember 27, 2006 1:09 pm

GPL Java: An interview with lead Kaffe developer Dalibor Topic

Dalibor Topic, lead Kaffe developer and Classpath contributor, kindly agreed to take part in an interview, conducted by email. He uses his insight and expertise to give us the inside on Sun’s GPL’d Java.

He talks about OpenJDK’s effect on Kaffe, Classpath, etc., his views on Mono, his opinion of the Sun code, and more…

Could you describe your involvement with the Kaffe and Classpath projects?

DT: I contributed my first few patches to Kaffe back in 2000, after hearing about a free VM.

I really joined the project in earnest in early 2002, helping Jim Pick bring back a slightly dormant Kaffe project back into action, and stayed around since, taking over the duties of a co-maintainer.

Since Kaffe users wanted to use it to run current versions of applications like XML processors, and Kaffe’s class library had not seen much maintenance work for a while, I looked at GNU Classpath as a class library implementation provider with interesting parts to integrate into Kaffe’s own class library to make such applications work.

Thanks to the Classpath team working quickly on implementing more and more of the standard class libraries, soon there was a strong incentive for Kaffe to start merging its own class library with Classpath’s, and that’s how I really got involved with Classpath. We migrated Kaffe gradually over to Classpath’s class library. In the course of that work, several Kaffe developers started working on Classpath directly, and the rest is history.

I’ve got to particularly point out the work done by Mark Wielaard, the GNU Classpath maintainer, and Tom Tromey, the gcj maintainer, that made it so straightforward for Kaffe to become a part of the GNU Classpath community.

Could you describe any other Free Software projects with which you are involved?

DT: In general, I’ve tried to make sure that whatever patches came up in the context of Kaffe porting and development went upstream to the projects we use code from, so you can probably find my name on bug reports and the occasional patch going into GNU Libtool, GNU Gettext, etc.

In my other life, I work on a Free Software theorem prover, SPASS, from the Max Planck Institute for Computer Science in Germany.

What was your first reaction when you heard about Sun releasing Java under the GPL?

DT: I was very happy, and excited that the rumors turned out to be true.

We have won the "struggle to liberate Java" in the finest possible way: with Sun deciding to come with flying colors in support of setting Java free, and taking the leading position in that movement that they deserve, as the creators of the platform.

I’m very pleased with Sun’s execution of it all so far. For example, they’ve been very responsive to resolve questions about the licensing model from Java community members, who may not be familiar with the way the GPL or the Classpath exception works. They’ve done a great job on the FAQ for the OpenJDK project.

Now that there has been some time to think about things, and look at the detail, how has that reaction changed, if at all?

DT: The reaction has not changed, I’m still very happy and excited!

Have you had a look at any of the released code?

DT: Yes, I’ve played around with building HotSpot and javac.

I’ve found a handfull of small compiler warnings to fix, and ran pscan on the code to look for the simpler issues to fix. I’ll fax in my contributor agreement to get my first patches applied upstream.

What did you think of it, and how does it compare with the Kaffe/Classpath code?

DT: I looked at the small C portion of the HotSpot code, where I found the warnings I wanted to fix, and I like it. It’s reasonably easy to find one’s way around it, in particular using the new OpenGrok interface to the code at http://opengrok.neojava.org/hotspot

I’m pretty impressed by how warning-free the code builds on my system. There is a bunch of nice batches of code I’ll have to look at reusing inside Kaffe eventually, though since Kaffe is written in C and HotSpot is written in C++ that’s not necessarily going to be trivial.

It’s hard to compare HotSpot or javac code with Classpath, since they implement different things. On the other hand, compared to Kaffe, HotSpot code shows a lot more maintenance and implementation work going into it, and looks better documented. It is without doubt a great, unique contribution to Free Software.

If Sun hadn’t done this, how long do you think it would have taken the Free Software community to create a full Java implementation and VM?

DT: I think we would have been able to finish implementing 1.5 support in GNU Classpath next year, and many VMs using GNU Classpath already support the features introduced in 1.5.

But by then Sun would have released 1.6 already, and we’d have had to play catch up with the reference implementation of Java again. So, I’m happy the way things turned out, that we can work on Java 1.7 together.

In addition, there are many other interesting problems in the Java space, like deployment and modularity where being able to work together on Free Software solutions should help get the kind of input that helps improve the results for everyone.

Which of the Free Software implementations do you think held the most promise?

DT: It’s hard to pick a single one, since Cacao, gcj, IKVM, JamVM and JikesRVM, for example, all have a lot of good work going into them, partly because some of them are very promising research platforms, and partly since they have a very dedicated community behind them.

Kaffe is noticeably absent on this list, not since I don’t think it has a lot of promise, but since I think it’s more important to bring the projects we work together and share code with into the limelight. A lot of people have heard about Kaffe, and I think they should know about all these other nice Free Software runtimes as well. No single runtime can fit all sizes, and I regularly recommend that people check out those other projects as well. They may find a better solution for their specific problems.

As a Kaffe co-maintainer, I’ve been more focused on encouraging innovation to happen outside the Kaffe project, and bringing code from other projects into Kaffe, rather than trying to position the Kaffe project as the place where things need to happen.

My idea has always been that a diverse community of free VMs is the healthiest one, so I’m glad we’ve achieved that around GNU Classpath.

What is the most valuable aspect of Java for the Free Software community?

DT: There is a huge amount of Free Software written in Java that’s now going to be more readily accessible to users and Free Software developers. That means being able to package more software written in the Java programming language into GNU/Linux distributions, for example.

Do you think that we are more likely to see all Free Java development now focused on Sun’s version; or will we see Kaffe, GCJ, and others thriving because of the released code?

DT: I think we’ll see a bit of both. I hope that Sun will see some good contributions coming from this step, and will continue to build up an enthusiastic and passionate community around the code, like they’ve started with project Peabody, which encouraged community contributions.

I expect that Sun will see most contributions starting to pour in once the class library code is released, as most Java developers will be more familiar with Java, than with C++, or C.

Nevertheless, the way Sun is doing it, starting with the VM and the compiler, allows them to establish the necessary structures, and make sure everything is in place when the rush begins. ;)

I also think that Kaffe, GCJ, etc. will thrive along with OpenJDK, moving toward more unique niches, while at the same time looking at ways to share code with Sun’s implementation; in particular class library code, but probably more bits and pieces over time as well.

We’ve always had a strong culture of giving back to where we take from around GNU Classpath, so I think it will all work out well.

Do you think much of the code and innovation from Kaffe, Classpath, GCJ, etc. will make its way in to Sun Java?

DT: I don’t think that will happen instantly, since Sun’s implementation, being the reference implementation, will very likely be maintained in a much more conservative fashion, than the more experimental free runtime projects.

But, since some of Sun’s class library may have encumbrances from third parties, I hope we’ll see the community outside Sun step in to help write replacements for that code. Some of the current work on GNU Classpath done by Roman Kennke and the rest of the team may help with that, for example.

That being said, I’d expect that new technologies coming from outside Sun, which the Java developer community desires to see in the JDK, will continue to go through the JCP and then into the JDK, eventually.

Have you ever looked at Mono/C#? If so, what did you think of it?

DT: Yes! I’ve actually seen Miguel de Icaza talk a few times, he has a great way of presenting his ideas, so I naturally went and checked out Mono a little bit.

Mono is a fun project. Miguel and the team had looked at Kaffe, and decided to try to write a better system, and afaict have done a very good job on making Mono into a nice, feature-rich runtime. Some of the ideas in Mono would make sense to introduce in Kaffe as well, like using glib for solving some of the standard problems when writing portable C code.

But one of the most impressive things about Mono is not the code, IMHO, it’s the dedicated community of developers trying to turn Mono into a better platform for development of Free Software on the GNOME stack then the alternatives.

What, to your knowledge, have Sun released under the GPL now; and how useful is that to the Free Software Community?

DT: They have released the JavaME reference implementation as PhoneME, the test harness for it as jtreg, the javac compiler, the HotSpot VM, and the Java Help library. In addition, Sun also added the GPL with the Classpath exception as a licensing option for the JavaEE reference implementation, project Glassfish.

In terms of ‘is there a full Free Software Java implementation from Sun’ the answer is now a clear yes for the ME and EE standards, with a significant part of the reference implementation of the JavaSE standard being released through HotSpot and javac. Until the class library arrives as Free Software in Q1 2007, that leaves some time to experiment with hooking HotSpot and javac into GNU Classpath, for example, and that’s what some developers have set out to do.

On the other hand, the ME and EE implementations are useful immediately. The Ubuntu GNU/Linux distribution is working on packaging the EE implementation for the next release, afaik, and I’ve already seen a build of PhoneME for OpenEmbedded’s port to the Zaurus PDA device.

Java Help and javac also play a role regarding packaging efforts around Sun’s Free Software IDE NetBeans, since NetBeans depends on those projects.

How useable is what they’ve released now? They describe it as an "early
build" of 1.7. Is it a very unstable version?

DT: I can’t judge the stability of the builds, as I’ve mostly just played around with the source code, rather than the binaries. I know that GNU Classpath developers have made Sun’s javac work on GNU Classpath, and used it to find a bug in GNU Classpath’s regular expression handling code, so that was quite usable. I’ve also seen someone post a build of the PhoneME JavaME implementation for OpenEmbedded on the Sharp Zaurus PDA, so I guess that’s quite usable as well.

Sun say that they will release a "JDK based nearly entirely on open-source code". For those of us who will exclude the resulting non-free parts, do you think the JDK will still be useful?

DT: Definitely. It is not clear at this point how much encumbered code, if any will be left over by the time the class libraries are released. If there are any such parts left over, we’ll have to write Free Software replacements for them, or improve the existing ones until they are good enough to replace the encumbered parts.

But for a lot of Free Software written in the Java programming language, those encumbered parts may not be necessary to use it, so the unencumbered parts will be a very useful contribution on their own for users of such software.

Sun say they are going to make the source for JDK 6 available once they’ve released a full JDK 7 as Free Software. Do you know whether the JDK 6 code will also be under the GPL?

DT: I don’t know. I guess it will be, if any possible, since the differences between JDK6 and early JDK 7 won’t be very large.

I could imagine distributions having an interest in taking the freed JDK 7 code and filling in whatever gaps were left over in a GPLd JDK 6 source code release, and then certifying their builds of that as Java(TM) 1.6 compatible, for example. 

Do you think Free Software developers will embrace the JDK, and implement the parts that Sun have been unable to Free?

DT: That’s already happening in the context of GNU Classpath, to some degree. Sun has explained in the FAQs that the problematic encumbered portions of code lay in the areas of graphics and font rasterizers, and that’s where the commit activity seems to be happening in the last days. GNU Classpath could always use more volunteers for work on the class library, of course!

I think Free Software developers will embrace the JDK as a strong Free Software platform. The wealth of Free Software commons available on the Java platform shows that many Free Software developers have enjoyed working with the platform despite the drawback of having to rely on non-free software until suitable Free Software implementations around GNU Classpath became viable. Now that Java is being liberated, I’d expect it to be used by even more Free Software developers than before, as "the Java Trap" is a thing of the past.

In particular, I’d expect more Free Software developers to look into re-using libraries written in the Java programming language in their own projects, be they Java-based, or not. Java 7 should bring a push towards making the JVM a ubiquitous platform for all sorts of programming languages that need some kind of a runtime, and Sun has hired the JRuby lead developers to help bridge the gap between Ruby and Java using the JVM as the middle ground.

How much of a worry is the trademark on the name "Java"? Do you think Sun will cause problems and be over zealous with their control?

DT: In order to maintain compatibility, Sun only lets implementations that pass the certification process use the Java brand. That has not been a problem for the existing Free Software runtimes, since they avoided using Sun’s trademarks.

I don’t think that’s going to be a problem in the future, either. Sun has created a way for independent implementors to certify their implementations as compatible, and I’d expect those Free Software implementations that want to tap into the marketing power of the Java(TM) brand to certify. Apache Harmony, for example, is an implementation that’s been created with the explicit goal of getting an independent open source implementation Java(TM) certified.

There are certainly things I can imagine happening that would make the life easier for distributions wanting to certify their own builds as Java(TM) compatible, for example, like making the compatibility test suite, the TCK, readily available to such users, so that they can walk through the actual scholarship process faster. That’s probably going to be an interesting subject of discussion once the full JDK has been released.

But, given Sun’s very good execution so far, and the desire of all people involved in liberating Java on Sun’s side to do the right things the right way, I am not afraid of Sun being overzealous at all. They’ve been just plain great since we started talking on how to make this happen.

Of which Kaffe/Classpath achievement are you most proud?

DT: It’s the tightly knit community of Free Software developers around GNU Classpath, for sure. There is even a scientific paper describing the "permeable development" model we’re using to help each other benefit as much as possible from sharing.

That, and showing that there is a demand for Free Software runtimes for the Java programming language, and creating the circumstances which led to cooperation between ASF and FSF to address license compatibility issues in GPLv3, and connecting people worldwide working on liberating Java behind a common backbone in form of GNU Classpath, and many other things that only became possible because of that tightly knit community around the project …

But it’s really the people behind it all that I’m most proud of having the opportunity to work with. GNU Classpath is a really special project in that respect, I think.

***

I would like to thank Dalibor for taking time out to answer these questions. His position gives him a unique insight, and it was generous of him to give us the benefit of his expertise.

Related posts:

Other Interviews:

Links:

Wikipedia pages on the Free Java projects:


GNU Free Documentation License

Copyright (c) 2006-2007 Michael J Kaye.

Permission is granted to copy, distribute and/or modify the content of this blog post under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
gnu/linuxNovember 23, 2006 6:36 pm

Bruce Perens: Petition against Microsoft-Novell patent agreement

I haven’t posted about the Microsoft-Novell deal before now, because I wanted the dust to settle and to try to make sense of it. The dust has settled, but it still makes little sense.

One thing seems clear, though; that any hope of some good from it, is in vain.

Bruce Perens has written an open letter to Novell’s CEO Ron Hovsepian, and has invited anyone, who feels the deal is a bad thing, to add their name in protest. There are a lot of names already, and the list is growing quickly.

From that page:

Novell and Microsoft’s software patent agreement betrays the rest of the Free Software community, including the very people who wrote Novell’s own system, for Novell’s sole financial benefit. Join Bruce Perens in signing an open letter to Novell’s CEO Ron Hovsepian.

The deal

Novell have signed an agreement with Microsoft that excludes Novell’s customers from any legal action brought as a result of patent-infringement. Said patent-infringement would allegedly occur through their use of GNU/Linux.

Surely that’s a good thing? Aren’t they just looking after their customers?

The issue is that Microsoft are obviously trying to legitimise their claim that GNU/Linux infringes their patents, and Novell’s action seems to do this. Whether it would have any affect in a legal case remains to be seen.

Money

Novell’s reasons for this are simple. Money.

The agreement means that Microsoft will pay Novell $348 million upfront. Novell, in turn, agrees to pay Microsoft at least $40 million, over the 5 year term of the agreement, on a percentage of its revenue from open source products, ‘for use of Microsoft’s patents’.

The agreement also requires Microsoft to spend $12 million a year to market GNU/Linux’s interoperability with Windows (that’s all we need).

You don’t need a calculator to work out who, in the short term, benefits financially from this deal.

You could excuse Novell’s behaviour by pointing out the fact that they have a new CEO who’s only been in the job for five months, and that he just doesn’t understand the situation, but this is a mighty big mistake to make for a rookie.

The simple fact is that Novell have been losing money, and they’ve decided to sell their souls to get out of their predicament. Ironically, SUSE Linux was the part of their business that was making money, and that is the market they have just alienated.

Microsoft’s reasons

Novell have since publicly stated, much to Microsoft’s ire, that in making this deal, they have not agreed that GNU/Linux infringes Microsoft’s patents. However, it remains that Microsoft have been using this deal to add weight to their patent claim, and said that other GNU/Linux vendors may face legal action.

Microsoft have seen the threat from GNU/Linux, and are now seeking to kill or control it. Their normal tactic of buying their competitors doesn’t work with GNU/Linux, and they’re now flailing round trying to find a way to make it property (intellectual or otherwise); to make it something for sale.

*** 

I hope that the EU are watching this very closely, as they look at software patent laws.

Links:


GNU Free Documentation License

Copyright (c) 2006-2007 Michael J Kaye.

Permission is granted to copy, distribute and/or modify the content of this blog post under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
gnu/linux, programmingNovember 20, 2006 6:56 pm

Java now Free Software (GPL) - part 2 (reality check)

Duke, the Java mascot, in a contemplative poseOk, the smoke from the party-poppers has cleared; the haze from the cheap punch has faded; so let’s have a look at the detail of Sun’s move in the cold light of day.

This follows on from Java now Free Software (GPL).

The video announcement

[EDIT: This paragraph corrected, as a result of Dalibar Topic’s comment below]

This is a bit of a niggle. When you go to the announcement page, the video of the announcement (almost an hour’s worth) is presented in a proprietary format. Sun didn’t seem to get the irony of this at first, but Dalibar Topic, who is a developer on Kaffe, Classpath, and others, did some excellent work in transcoding it to OGG Theora. Sun now have a link to it on their page, and have been good enough to provide it under a Creative Commons license. Read about how he transcoded it using Free Software here. There is a DivX/XviD version here, but that’s a much bigger file.

What exactly is being GPL’d?

This is the big question; and is often the killer with this sort of announcement. I really hoped that it was going to be simple - that is was just going to be what it said on the tin - but, of course, it isn’t.

Now, as I mentioned in the last post, I’m not as familiar with Java as some of you might be; so I’m trying to keep track of which parts mean what. You’ll have to bear with me.

From the more detailed page of the Sun announcement:

  • Open-Source Java SE: Today Sun is releasing the source code for the Java HotSpot virtual machine, the Java programming language compiler (javac), and JavaHelp online help software. Release of a fully buildable Java SE Development Kit (JDK) based nearly entirely on open-source code is expected in the first half of 2007.
  • Open-Source Java ME: Sun is first releasing the source code for Sun’s Java ME Feature Phone implementation based on Connected Limited Device Configuration (CLDC), which currently enables rich mobile data services in more than 1.5 billion handsets, and the source code for the Java ME testing and compatibility kit (TCK) framework. Later this year, Sun will release additional source code for the Advanced Operating System Phone implementation for based on the Connected Device Configuration (CDC) specification and the framework for the Java Device Test Suite.

That should mean that we have a Free Software Java VM now. And a JDK "in the first have of 2007".

You will notice that they say they will release a "JDK based nearly entirely on open-source code". Quite what this means, we’ll have to wait and see. I have heard that they are working to free problem parts, or reimplement those they cannot. Presumably, these are parts that involve license agreements with other companies. I sincerely hope they can make a fully functional JDK with just Free Software, otherwise things could be rather soured, especially when it comes to inclusion in GNU/Linux distributions.

It’s interesting to hear that the Playstation 3 runs Java ME. It’s possible that may provide an inroad for Free Software to interoperate with Blue-Ray drives.

Sun say will also GPL Project Glassfish, an implementation of Java Enterprise Edition (EE), in the first half of 2007

Sun have talked a lot about freeing Java, but what version?

The version released as Free Software is version 7. The current release is version 5.

Now, Sun’s FAQ is a little vague on the matter, but there may be some good news:

"We’re open-sourcing these components from a very early build of JDK 7. In order to prepare these components to be open sourced, we not only changed the license text but we also simplified the build process in order to make these components more easily buildable outside of the full JDK source tree. JDK 6, is nearly finished, hence we’re releasing these components from the JDK 7 tree. The only other differences between the JDK 6 and 7 versions of these components are minor bug fixes and enhancements that have already been integrated into the JDK 7 tree. When we open-source the full JDK we’ll make the sources for both JDK 6 and JDK 7 available. The community will have both a stable release - JDK 6 - on which to focus quality improvements, and JDK 7, the next feature release where all the action will be for innovation and new capabilities."

It says that once JDK 6 is released, the source code will be made available. It does not say that it will be GPL’d, but it is sort of implied. It also seems to say that JDK 7 is virtually the same as JDK 6, apart from "minor bug fixes and enhancements". That may mean that the code they have released can build into a usable JDK. I hope that my interpretation is correct.

Trademarks

Sun, of course, own the Java trademark. That’s why Free Software implementations, such as Kaffe, have been careful to avoid the word altogether.

The way I understand it is that, unless a VM is an official release from Sun, it can’t be called a "Java VM". This is a shame, but, again, is understandable. I just hope that this won’t lead to a situation like the one between Mozilla and Debian, where Debian can’t call the Firefox in their distribution "Firefox" because they exclude non-free artwork and make some minor patches, and has led to the GNU IceWeasel fork.

Interestingly, Sun have also released the Java mascot, "Duke" (who you can see at the top right of this post), under the Open Source BSD license. This means that the likes of Debian would not be put in the same position of having to exclude non-free artwork. "Duke" is still trademarked, but it neatly sidesteps the Mozilla/Debian issue. I would really like to know whether they did that in response to the Mozilla/Debian situation. If so, it would show how much they’ve been listening and want to get this right.

Even in the Free Software world, when modifications are made to a piece of software, they are normally contributed back to the main project. Forking is unusual, but is also a good thing. It’s what you do if you want to take a programme in a different direction. But you generally give it a new name, even if it holds a part of the original name, to show its heritage; and this is enforced by the GPL. I wish companies involved with Free Software would pursue name issues using the GPL, and not with trademark legislation. I hope Sun are listening.

The license

Why the GPL? Surely the LGPL would have made more sense.

The released applications are licensed under the GPL, but the libraries also use the Classpath Exception. This allows you to "link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice…" This choice cleverly sidesteps the poorer reputation of the LGPL, while actually being friendlier to proprietary software companies. Given Java’s position in the market-place, and its commercial use, I don’t think we could ever have expected it to be straight GPL’d.

Classpath, GCJ, Kaffe

Jonathan Schwartz (Sun CEO), in the video announcement above, said, with reference to Classpath, GCJ, Kaffe, and similar projects:

"Now’s the time for us to get together and try to figure out how do we do the right balancing equation. Because we don’t want to do any redundant work with you, and we don’t want you doing any redundant work with us. And we’re more than happy to put all of our efforts together."

This attitude is reflected, in a much more qualified way, by some developers in these projects. When talking to Newsforge, as quoted on Linux.com, Mark Wielaard of Classpath, GCJ, and Eclipse says:

"There are lots of issues that we will have to look at. Can we combine GNU Classpath, GCJ, Kaffe, Cacao, JamVM, IKVM, etc. with the liberated Sun code immediately in such a way that we have an even better free platform really soon? How does the platform coverage compare between Hotspot and other [runtime environments]? What kinds of innovations can we carry over or must be kept separate? And how do we move the whole research field and GNU Classpath community projects (20+ now) forward without needing to rebase everything on some new code base?"

It would be nice to see these projects, including Sun Java, working together to take the best from each, and giving us the best platform possible. There is an argument for Sun taking the time to learn a great deal from these projects. Free software generally contains far less code than its proprietary counterparts. This makes it easier to maintain and debug. Sun may have an opportunity to learn how to take out some of the bloat.

Conclusion

I started this follow-on post expecting it to be quite negative. I had read rumours about some of the details, and thought there were going to be some serious downers. But having done my own research, I’m still quite positive about what Sun have done. There is some doubt about how complete the JDK will be, but they seem to be working to free as much as they can. It’s a shame we have to wait for some large chunks to be release, but to get as far as they have this quickly is actually quite an achievement.

Jonathan Schwartz seems genuinely enthusiastic, and that gives me some hope that there isn’t going to be too much of an anti-climax next year. His hounding of Rich Green, about whether he would GPL OpenSolaris, was interesting, even though it looked rehearsed.

I am cautiously optimistic. Actually, perhaps against my better judgement, I’m more optimistic than cautious. I shall be watching developments closely.

Links:


GNU Free Documentation License

Copyright (c) 2006-2007 Michael J Kaye.

Permission is granted to copy, distribute and/or modify the content of this blog post under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
gnu/linux, programmingNovember 17, 2006 12:19 pm

Java now Free Software (GPL)

Duke, the Java mascotOn Monday (November 13th, 2006), Sun announce that it is releasing Java under the terms of the GPL2 license.

This is a few days old now, but I wanted to take the time to look at it and think about the implications. Being a programmer, this is significant news for me. I’ve concluded, however, that the effects may be too far-reaching to predict.

This post will concentrate more on the positive. The next post will talk about some of the finer details of the licensing, and exactly what is being released and when. I would recommend reading that one too, to get a balanced reaction. This post, then, reflects my hopes of what all this means.

Java and GNU/Linux

Distribution

The obvious effect is that it will be possible to include Java in GNU/Linux distributions.

This is a frustrating gap that has existed for many years now. There have been a number of projects try to fill it, but with limited success. Most are worthy of acknowledgement for their achievements, but have fallen short of providing a full implementation of the Java standard. What will be interesting to see is whether their achievements are significant enough to make it into the Sun Java codebase, as an improvement to the existing product.

Cross-platform

It will be possible for GNU/Linux to participate in the wealth of ‘run anywhere‘ Java software. As I said, some projects tried to provide a Java run-time for GNU/Linux, but they were unable to create a complete implementation. You could never rely on them to run a Java programme without problems. With a full implentation, any Java programmes that do not feature OS-specific code will run quite happily.

Developers

The Java platform now gains a great number of GNU/Linux developers; with their expertise and bug-squashing determination.

These developers may also decide that Java is a poweful language in which to write their configuration tools. It could lead to a more feature-complete GNU HURD OS, if appropriate cross-platform tools are written.

Java and .NET

I think it is reasonably obvious that Sun has made this move in order to compete with .NET.

Microsoft developed .NET in response to Java’s success and ingenuity, but with their marketing power and platform dominance they have seen fast adoption of the technology.

Sun have gained a good market-share with the GPL’d OpenOffice.org, and I think they want to hold on to their Java market-share by using the same tactic.

Also, .NET has been finding its way into the Free Software world by way of Mono. A number of applications, that run on Mono, have found their way onto the GNOME desktop and into GNU/Linux distributions (Tomboy, Beagle). It seems ironic that software using a technology invented by Microsoft could be used with Free Software, but software using technology from the company who own the most successful Free Software office suite could not.

[EDIT: The following paragraph was changed because of an inaccuracy pointed out by Joe Shaw. See the comments below.] 

One of the reasons for this was Microsoft’s decision to create an open ECMA standard, with which the core .NET framework would comply. There is now some doubt over the long-term viability of Mono, given Novell’s (the owners of Mono) decision to sign an agreement with Microsoft that excludes their customers from prosecution for software-patent infringement, due to their use of GNU/Linux. If only because it makes Novell less popular in the Free Software community.

I am a C# (.NET) programmer (it pays my wage until I find a career in Free Software). I like the technology. Microsoft have done a good job in designing and implementing it. I’m not going say that isn’t the case, just because it’s Microsoft. But, of course, I want to use and develop Free Software, so my focus was on Mono.

Sun’s move changes that, and especially because of their courage in making that move. I have programmed in Java, briefly, before. I liked Java as well; but for different reasons. Java is more mature, and more flexible. .NET is subject to Microsoft’s hand-holding mentality. That does often make things a lot quicker and simpler to do, but it is also very frustrating; especially for a capable programmer who wants to do something his way, but is subject to Microsoft’s preferences. There is a huge volume of Java knowledge out there, much of which is made available by the Free Software community, and Java gives you the flexibility to use it.

I think what I’m saying is that I’m now much more drawn to Java. I liked it before, but I couldn’t write Java for Free Software operating systems. I can now, and I have a great deal of respect for Sun’s decision - I think they deserve a good response from Free Software programmers. I shall be looking at it closely, and will probably try to use that platform for Free Software that I write.

To be continued…

This post is starting to get quite long. I shall talk about the "Classpath Exception", the current status, and some possible pitfalls in my next blog.

I’ll leave you with a quote from Richard Stallman, a video of which was featured in Sun’s announcement. I realise I’m doing their marketing job for them, but they’ve pulled off quite a coup by getting something like this out of him:

"I think Sun has… well, with this contribution… have contributed more than any other company to the Free Software community… in the form of software. It shows leadership. It’s an example I hope others will follow."

Links:
GNU Free Documentation License

Copyright (c) 2006-2007 Michael J Kaye.

Permission is granted to copy, distribute and/or modify the content of this blog post under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
the blogNovember 9, 2006 12:39 pm

What is “Free Software”?

I think it’s worth being quite specific about what is meant by "Free Software".

The "Free", in this term, refers to freedom ("Free as in Freedom"). That is, when translated to French, it is "libre" (liberty), not "gratis" (price). In fact, it has been proposed that the term "libre software" be used to avoid the confusion. This hasn’t been adopted en masse, but is used by some. I capitalise the initials of "Free Software" to emphasise it as a proper noun with a definition and set it apart from software that is only available gratis.

Four Freedoms

The best source of a definition is the originators of the term - Richard Stallman, and the "Free Software Foundation".

Their definition can be found at the FSF web site (worth reading), and is often called "The Four Freedoms":

  • The freedom to run the program, for any purpose (freedom 0).
  • The freedom to study how the program works, and adapt it to your needs (freedom 1). Access to the source code is a precondition for this.
  • The freedom to redistribute copies so you can help your neighbor (freedom 2).
  • The freedom to improve the program, and release your improvements to the public, so that the whole community benefits (freedom 3). Access to the source code is a precondition for this.

[EDIT] Took out the ramble about Firefox and IceWeasel, and wrote the following.

The essence of this is that you must be able to see the source code. And you must be able to change it in whatever way you wish, and let others reap the benefits of your improvements or crash because of your bugs. There should be no restrictions on your freedom to do these things, other than to ensure you cannot prevent others from having these freedoms.

These freedoms are embodied in the GNU General Public License (GPL), which is quite thorough about protecting these freedoms for those using derived works.

I believe the GPL says that a work derived from the original must be clearly marked as such, and not misrepresented as being the original. This should help companies who want to preserve their reputation, without restricting people based on trademarks.

The GPL does not say that you cannot charge for distributing an application, whether it be yours or anyone else’s. Many companies have been successful in distributing Linux CDs for a fee. Nor does it say that fee should be nominal. However, anyone who pays a fee to receive the programmes may distribute them for free, or for a fee of their choosing.

In order to protect your freedom to access the source code, the GPL does stipulate that source code must be available at no cost. This does, of course mean that you can download the code for free, and compile it yourself.

This leads to a more service-based industry. Many companies make a good sum, by providing technical support, or further development of Free Software. In fact, have made their success in providing these services for proprietary software. Rather than limiting the industry, it shifts the focus, and even levels the playing-field.

I hope this has been a reasonably clear explanation. If anyone would like clarification on any issue, or has any corrections, please leave a comment.

Links:


GNU Free Documentation License

Copyright (c) 2006-2007 Michael J Kaye.

Permission is granted to copy, distribute and/or modify the content of this blog post under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
the blogNovember 8, 2006 12:47 pm

Digg

After some fiddling, I’ve managed to work out how to put a "Digg This" button on this Blogsome blog.

You will see the button at the bottom of this post. There are some WordPress plugins to accomplish this, in quite a sophisticated way, but these aren’t available for Blogsome blogs.

The Digg Tools page has instructions on how to ‘integrate digg in your site’ (I also got the button graphic from here), but they are very general. After some experimentation, I found that if I use the following hyperlink, based on their instructions, it seems to work:

http://digg.com/submit?phase=2&url={permalink_link}&title={the_title}&bodytext={the_title}&topic=linux_unix

There are some minor things I still need to work out. I use the title for the "bodytext"; what I really want to do is use the "Excerpt" that appears on the RSS feed. I’ve also hard-coded it to use the "linux_unix" topic, which won’t be quite suitable for all my posts. I think I may be able to get round this by using "Custom Field" feature when making a Blogsome post.

They talked about having to "URL encode" the permalink and title. I didn’t do anything to do that, but it just seems to work. 

Hope you find this useful. You could always "Digg this story" if you do ;-)  


GNU Free Documentation License

Copyright (c) 2006-2007 Michael J Kaye.

Permission is granted to copy, distribute and/or modify the content of this blog post under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
gnu/linux, ubuntu, gNewSenseNovember 7, 2006 12:29 pm

An Ubuntu gNewSense

gNewSense LogoIt’s amazing how much I’ve learned since starting this blog.

Last week I talked, in the "Fire and Ice" post, about how Firefox is not wholly Free Software. In that post, I detailed the attempts by Debian and Ubuntu to exclude the non-free parts of the package, so that they had a Free Software distribution. This week I have learned about a new GNU/Linux distribution, sponsored by the "Free Software Foundation", that aims to only include 100% Free Software. That project is gNewSense, which released version 1.0 on November 2nd, and it removes the non-free parts of Ubuntu.

Why?

I have been quite shocked to find out that the standard Linux kernel contains binary-only "blobs", to enable the use of certain hardware. This seems clearly to be in violation of the GPL, and is unquestionably not Free.

gNewSense have created a distribution based on Ubuntu, but they have removed these blobs from the kernel. They have also removed the restricted repositories, and they do not use Canonical’s proprietary Launchpad system for bugtracking, translation, etc. It should be noted that Canonical state that they intend to release Launcpad as Free Software in the future.

This is important for those of us who believe in software Freedom, and who use GNU/Linux because of that Freedom and not because of the price. I am really quite concerned that I hadn’t heard about these "blobs" before now, and it seems that they are tolerated for the sake of popularity. Popularity, of course, is important to increase the clout of Free Software, but sacrificing Freedom in the process is hypocritical and does not encourage hardware manufacturers to participate in that Freedom.

Problems

Of course, if you remove those blobs, then some hardware won’t work. It becomes necessary to research a purchase before you make it. Wireless cards seem to be the most problematic. However, this has been an issue with GNU/Linux for years. I always research hardware compatibility before buying. Of course, this has improved in recent years, but I’m disapointed to find out these blobs are why.

If you would like some resources to research compatibility, have a look at the links at the end of this post.

Why Ubuntu?

  • Ubuntu is Debian-based. Debian was probably the closest to being a 100% Free GNU/Linux distribution.
  • Ubuntu addresses many of the criticisms directed towards Debian. It is desktop-oriented, easy to use (even for new users), and is released often, with the latest software versions. In fact, Ubuntu could possibly be criticised for sticking too rigidly to their frequent release schedule.
  • Debian is renowned for being one of the most stable operating systems in existence, and Ubuntu inherits a lot of that stability.
  • Ubuntu is very popular, which should lead to rapid recognition of gNewSense.

Current Status

The newly released gNewSense 1.0 is based on Ubuntu 6.06. It’s a shame that it’s behind, but it’s understandable considering it’s basically been a two-man band. I like Ubuntu 6.10, especially Upstart, and I hope they can release gNewSense based on that version soon. In future, I hope they can work in Ubuntu unstable until the Ubuntu release, which should reduce the lag.

I have read that Debian plan to address the issue of the Linux blobs, and that should filter through to Ubuntu. It remains to be seen what role gNewSense would have at that stage.

gNewSense is sponsored by the "Free Software Foundation", which is not only an endorsement of their aims, but a boost to their chances of success.

– 

I hope that gNewSense is a resounding success, and I certainly intend to move to it from Ubuntu. Hopefully it will stir people into action, experience heavy development, influence the removal of the Linux blobs, and prove the power of Free Software.

Links:

Hardware Compatibility Links:


GNU Free Documentation License

Copyright (c) 2006-2007 Michael J Kaye.

Permission is granted to copy, distribute and/or modify the content of this blog post under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
business softwareNovember 6, 2006 12:42 pm

OpenOffice.org extensions

OpenOffice.org logoIn version 2.04, OpenOffice.org have made the interesting move of stepping into the Firefox extension model. I’ve known office suites to use plugins in the past, but this looks like an attempt to duplicate one of Firefox’s most extensive and powerful features.

There are only a small number available so far, and they haven’t yet done a proper web site for them, but the programming model looks very powerful and flexible. For the moment, you can find a list of available extensions at their wiki.

The list includes a blogging extension that I’ll have to try out and on which I shall have to report back soon.

This seems like a very clever strategy to enable the community to add the small number of features that are available in Microsoft Office but which are still not in OpenOffice.org (of course, OO.o has some features that MS Office does not). However, what I would like to see is OO.o become trimmer (it’s just so big), and some of the more esoteric features moved into extensions.

If developers take to these extensions, it has great potential. Not only to make a more streamlined, feature complete replacement for Microsoft Office, but also to add the sort of innovative functionality that has become the trademark of Firefox extensions.

This demonstrates the power of "eating one’s own dog food" (a subject about which I shall blog more fully). I tell people that Free Software is so good because "it’s written by the people who use it":

  • A programmer wants to do something, so he or she downloads a programme that covers that topic
  • It’s missing a feature that he or she wants, so the programmer implements it. Of course, this person implements it in a way that works best for them, and flows in the way that feels most natural to them.
  • The programmer sends their patch to the software maintainer and other people use that feature.
  • They in turn refine it to make it more flexible and easier to use for them.
It’s very user-driven.

That’s how we get the interactivity with web sites that Firefox gives us today, and the elegance of other Free Software.

I hope that this is what we see with OpenOffice.org extensions. If so, it’s an exciting prospect.

It should be noted that OpenOffice.org is licensed under the LGPL, so the extensions can be proprietary. Check before you download.

Note: The term "OpenOffice" is trademarked by a company other than Sun. The correct name is "OpenOffice.org", but is often shortened to "OpenOffice". I shall try not to do this.

Links:


GNU Free Documentation License

Copyright (c) 2006-2007 Michael J Kaye.

Permission is granted to copy, distribute and/or modify the content of this blog post under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
gnu/linux, ubuntuNovember 3, 2006 5:04 pm

Young Upstart

As promised this will be the first in a series of posts about Ubuntu 6.10.Ubuntu logo

Probably the most talked about feature of the new Ubuntu is Upstart. This is an event-based, asynchronous sysvinit replacement. Most users will just notice that their computer boot and shuts down faster (significantly faster in my case).

Upstart is being developed by an Ubuntu developer, Scott James Remnant, but it’s hoped that most other distributions will also use it in future.

Oldskool init

From Wikipedia:

init (short for "initialization") is the program on Unix and Unix-like systems which spawns all other processes. It runs as a daemon and typically has PID 1.

The functionality diverged considerably between BSD and System V. The usage on most Linux distributions is compatible with System V, but some distributions, such as Slackware, use a BSD-style and others, such as Gentoo Linux, have their own customized version.

Given that Upstart was largely designed to replace sysvinit, and retain compatiblity, I shall cover it briefly here.

Runlevels

sysvinit uses "runlevels". The initialisation process involves starting services and performing tasks required for each runlevel, before moving on the next. Most machines will continue until reaching the multiuser runlevel, which on Debian and Ubuntu happens to be 2.

Order

This process requires that things are done in a predefined order, and relies on hardware being in a suitable state before things can move on.

Upstart

Upstart was designed to solve two main problems. Boot/shutdown speed, and modern hardware flexibility. It also aims to do this in a compatible manner, allowing affected programmes to run unchanged.

Speed

This problem is solved by making Upstart asynchronous. That is, it will perform number of tasks at once, rather than doing everything in a linear fashion. The difference is quite noticeable.

Flexibility

When System V was written, you could rely on hardware being available at specific times during the boot process, and that disks were always there. Today’s computers are far more flexible. You may want your home directory to be mounted on an external USB hard disk; your network card may be a wireless USB dongle; a network drive may only be available when you are within range of a Wireless Access Point.

Upstart tackles this issue by being event-based. When certain hardware is available, or a subsystem is running, then it will perform appropriate tasks - such as mounting the external drive as /home when the USB subsystem is up.

This should mean that unnecessary services are not started, which should mean a reduced memory footprint, and improved performance. Also, Upstart restarts services if they crash, reducing the need for reboots.

Compatibility

One ingenious aspect of Upstart is that it has been designed to be compatible with sysvinit. This means that it’s almost a drop-in replacement, but still gives the increased performance and flexibility.

Upstart has its own format for tasks, but achieves the compatibility by also supporting sysvinit scripts.

Future

Ubuntu also hopes that Upstart can replace cron, atd, and inetd.

Cutting Edge?

Is Upstart cutting edge?

Upstart uses a very different approach for the initialisation process. It also surpasses other attempted replacements, such as Initng, in features, ingenuity, and success.

Yes, I would say that Upstart is cutting edge. 

I look forward to seeing the further developments of Upstart, and its adoption by other distributions.

Links:


GNU Free Documentation License

Copyright (c) 2006-2007 Michael J Kaye.

Permission is granted to copy, distribute and/or modify the content of this blog post under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
the blogNovember 2, 2006 12:47 pm

Blog Move

NOTE: This covers the move to Blogsome, and will be the last post that also appears on Blogger.

[B]logsomeAfter raving, yesterday, about Beta Blogger, I’ve decided that I can’t resolve the fact that this blog is about Free Software, but is run on the proprietary Blogger software.

For that reason, I have moved over to Blogsome (cuttingfree.blogsome.com). This gives me a free (as in price) host, that runs the Free (as in freedom) Wordpress software. This looks to be very powerful (moreso than Blogger), but lacks the drag-and-drop template editing. So far, I much prefer the Wordpress WYSIWIG editor, and the software definitely seems more suited to a power-user.

Wordpress is very actively developed and is constantly updated. Perhaps I shall blog on what aspects, if any, may be called cutting-edge.


GNU Free Documentation License

Copyright (c) 2006-2007 Michael J Kaye.

Permission is granted to copy, distribute and/or modify the content of this blog post under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.