The Source for Java Technology Collaboration
User: Password:



Bruno F. Souza's Blog

Community Archives


Open Source, Standards and Compatibility: Software Freedom, is this a valid concept?

Posted by brunos on May 31, 2004 at 01:22 AM | Permalink | Comments (3)

I have been discussing for a long time how only open source is not enough for Governments. Although open source is a strong point of freedom it allows you to end up tied to a product, what may be not as bad as being tied to a vendor, but may bring you the same types of problems, specially if you are the government. But this is true for companies also.

In November 2002, me and several others from the Java Users Society, a large Java User Group in Brazil, created a long manifesto (Portuguese only), that tried to look into the discussion on open source usage by the Brazilian Government, from the point of view of the software developed by the government, that needs to rely on Open Standards and focus to be Multiplatform. This later turned into a well reviewd article, that better explained the ideas, and even featured concrete examples of the problems that you may face when all you care about is open source. Unfortunately for the time being both of these discussions are in Portuguese. Trying to explain a long article in a few lines is not easy, but the central idea is simple: open source is very important to the government, and to do it right, the government would be better off if it developed it's own software using open source software that are based on standards, and by developing multiplatform software, as a way to minimize lock in, and as such, maximize government freedom to decide it's technological future.

Maximizing freedom is usually not easy, and some difficult strategic decisions must be made. In regards to open source, it may mean for example, that the government will not use software that runs only on windows, or only on Linux (or any single platform), no matter how much this particular product's license says it is open source.

After discussing with the government for so long, and after seeing most of this discussion accepted in some very important areas of the Brazilian Government, we learned that governments really need a broad guarantee of freedom. Their systems, applications, data and software in general have such a long life, and may have such a large impact on a country's future, that by comparison, vendors and products need to be looked at as temporary at best. Although we have defended this idea for the sake of the Brazilian Government, I think this applies to most governments, and also to most companies that somehow develop software internally: minimizing the lock in for the software you write, will pay off in the future.

Now, someone that has also be giving a lot of though about this discussions, has come up with a name for this broad guarantee of freedom: Software Freedom.

In his recent blog, Simon Phipps explains that Software Freedom is more then the freedom for developers (that is guaranteed by open source), it needs to also guarantee freedom for users (deployers) and vendors. Simon calls for a combination of open source, standards and compatibility to guarantee Software Freedom. Although he has named it, and written a kind of manifesto, I think that the Sincere Choice movement has similar views, although they do not mention certification explicitly as Simon does.

At first, this seems quite a task. How can you guarantee freedom to the developer, if you tie him with standards and compatibility requirements? How can you guarantee freedom for the deployer if you cannot restrict what developers can do? How you can innovate if you tie up your own hands trough standards? Hard questions. Can they be answered? Are those things so contradictory that we cannot guarantee all types of freedom at once?

In the Brazilian Government discussion, we are proposing ways to to that based on policies. That is, software developed by the government has to use standards if they are available, and if not, standards need to be either chosen or defined. It has to run in multiple platforms, no matter what technology or language you use to develop it. And open source implementations of those standards will be the ones that will provide greater freedom, and as such should be chosen if available. Is this enough? Probably not. But it is a good start.

From a first look, it seems that guaranteeing Software Freedom is not something that could be done by licenses only. And there are other important matters like Royalty Free standards and patents policies that would probably play a role in the discussion (but this would extend a lot this blog...).

I hope this idea is something that the community at large sees as important. I certainly agree with Simon and his Software Freedom Manifest, and from my experiences with government and companies, I agree that something must be done to guarantee other perspectives of freedom that not only the developer's freedom.

Of course, this has a large impact on Java.. The Java Community is largelly in favor of certification and compatibility, and this is said to be one of the main reasons why Sun refrains from releasing it's Java implementation as open source. Would Simon's blog be an indication that there can be ways of open sourcing Java that maintain compatibility? Can this be accepted by the open source community? Although I myself think that no matter what Sun does, we should create and support an open source implementation of Java, like a combination of Kaffe and Classpath for instance, I also do value compatibility more then "open source just to be open source". And I think that Simon's proposition could be one that we, as a joint Java-Open Source community, should look and discuss open minded.

Fortunatelly, Simon will be in Brazil this week for the 5th International Free Software Meeting, and I will have a premium chance to discuss with him this ideas. Hopefully, we can have an open discussion with both the free software community members and the Java community members present at this large event, and understand if this can lead us anywere.

Discussing the Java Community Process

Posted by brunos on September 10, 2003 at 06:40 AM | Permalink | Comments (2)

The JCP is were we define the Java standards. It is an important process to guarantee at the same time that the technology evolves fast enough to keep it competitive, and also that it maintains the expected compatibility. To make this happen, the process has to reflect the needs and expectations of the full Java Community, not only the point of view of a few vendors.

But the JCP may be not what everybody wants. It may be that the process works in a way that you don't agree with. But we can't just complain. The JCP should be our process, so, we better participate, to make it better.

There's a nice discussion on the JCP going on in the Wiki of java.net, that proposes to Rethink the JCP. Do you have your ideas about it? Come join the discussion, to make the technology you use a better one.

The Strength of Java Users Groups

Posted by brunos on September 02, 2003 at 08:45 AM | Permalink | Comments (18)

One of the most influential computer communities in our days is clearly the Free Software Community. It is interesting to see how a community that started with the idea of developing a free source operating system, and has organized itself around software projects, turned into a worldwide force, both technically and also politically, with influences seen in so many places, from small to big companies, from governments to social projects. And it is a community created and grown by its users, and not only by companies or commercial interests.

What I notice, at least in Brazil, is that although the community is organized around free software projects, the impact that it has is in good measure caused by the strong work done by their Users Groups, that are responsible for promoting events, meetings and discussions. Although the projects are were most of the work happens, Users Groups give everybody a focus point, a "real world" support, that expands the reach of the community beyond the "virtual world".

Can we, in the Java community, learn anything from this example?

Many free and open source projects are developed in Java, and as such there's an overlap of those communities. The Java Community -- being formed by developers -- is also somewhat organized around software projects. And many see the Java Community Process as our "real world" existence. The JCP is the gathering that we have for defining our standards, were we as a community meet to agree on our differences. But the JCP is our technical, higher level community effort, it cannot reach the day-to-day developer, that's looking for learning, sharing and peer support.

Java Users Groups, on the other hand, are groups formed specifically for those community activities. This is the place were users, not companies, go to learn and discuss, and share experiences. Where people go to eat pizza, drink beer and talk about their use of Java, their success and frustrations.

JUGs can provide the capillarity to reach developers worldwide, and to expand the reach of our community. This, we are doing, and the list of nearly 500 JUGs on http://servlet.java.sun.com/jugs/worldwide.jsp shows that the Java Community is everywhere. And from our experience in Brazil, this listing is even far from complete!

But are we doing more then reaching developers? Being an active participant of this community, I have the feeling that we're not making the best use of our strength.

When I go to Free Software events, I see both the technical, project related debate, but also the political, ethics, government, organizational, educational and social discussions. Are we, in the JUGs, doing the same? Are we discussing the many other aspects of our technology? If we believe that "Java is Everywhere", and that it will affect our lives (and not only as technologists), I think we should be more active in discussing how will this happen.

How can we channel the efforts of thousands of Java developers that congregate in JUGs to improve our technology? Can JUGs drive a stronger participation in the JCP? Are we even happy with our role in the JCP? What's our opinion in the "Java and free software" discussion? Can we make a difference in reaching the 10 million developers goal? What about the use of Java in our schools and in our government? In short, how can we participate and help drive Java's future?

Some can argue that we already have a strong participation, since anyone can join and discuss in the JCP, we have forums like JavaLobby, and we can create and join projects and communities in java.net. There's even a strong presence of JUGs in java.net. All of this is great, and shows that we do have many tools to help us in our tasks. But I think that we can, and should, do much more.

JUGs are a fundamental part of the Java Community, and their importance is probably underestimated. There must be a better understanding of our community, and a better focus of our strength. And this is not going to work if someone try to do it for us, so, we better start doing it ourselves.





Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds