Open Sources 2.0/Open Source: Competition and Evolution/How Much Freedom Do You Want?
"Free as in freedom" has been used many times to express the objectives of Free and Open Source Software (FOSS). Although the Free Software Foundation (FSF) has created a very precise definition of what "free" is with respect to software, freedom itself is one of those difficult things to define and agree on, especially since freedom always assumes some form of compromise. "Your Freedom cannot be so broad as to negate someone else's Freedom" is a common saying. And when we talk about freedom in software, it is normal to have different views on what it is and how it is achieved.
The notion of free software was born in the United States, from inside the software development community. Long before the birth of free software, collaboration among developers from different companies and universities was the norm. Once software started to be seen as a company asset, barriers were built to protect these assets, and it became increasingly harder for developers to collaborate on and share code. Better ways to facilitate and guarantee the necessary collaboration were needed. Free software, and later open source software, allowed this to happen: across company boundaries, via the Internet,and between people that didn't even know each other.
Most of the software in the world today is (or was) developed in the United States, but software development itself is a borderless activity. It happens everywhere. And although many have tried to apply software development in a repetitive "factory-like" format, it fortunately is still largely a creative activity that favors the best and insightful developers no matter where they are.
The Internet has put these developers in touch, connecting people and cultures without the same background as the FOSS movement's original history. Also, other ways of limiting freedom are affecting the ability of governments to reach their sovereignty and users and companies to decide their own technology future. Now, developers that believe in freedom in every country are trying to adapt and expand the ideas of the FOSS movement, to map to their needs and realities, and even to apply them in their legal systems.
The diversity of collaboration that resulted from FOSS is one of the greatest achievements of developers in the last several years. Discussing how the ideas and philosophy are being applied by diverse governments, companies, and cultures will strengthen freedom for everybody.
Livre Versus Gratis
It is interesting to look at the terms that were used for freedom—free and open—both highly overloaded. Many corporations and developers are still confused because "free software" is not necessarily without cost, and "open source software" is not necessarily related to open standards or the simple ability to inspect the source code.
Developers in Brazil had an easier time coming up with a term. Livre is the Portuguese word for free as in freedom, and gratis (from the Latin gratis) is the word for "no cost." No one doubts that "software livre" is a way to achieve freedom, not savings. Maybe because livre is so obviously a good thing, the idea of software freedom spread throughout the country, and successfully reached companies, developers, and especially government policy makers. On the other hand, Portuguese for open source—código aberto—is much harder to grasp, because it can have different connotations. This is reflected in the fact that the vast majority of the Brazilian FOSS movement uses the expressions software livre and free software, and much less frequently, open source, although most people do consider these interchangeable.
But why discuss terms now? Wasn't this debated over and over when the term open source was coined back in 1998? Haven't we had enough time already to sort them out and be clear on what we mean? Maybe we have, but that discussion took place in the developer community, where the terms were defined. Now, we're not talking only to developers, we're discussing with governments. And companies. And judges, lawyers, and politicians....But more important than that, we are now discussing more than free software, we are really discussing livre, liberdade, freedom.
Background for Freedom: The Market
Like many countries, Brazil has a tradition of aiming for independence and sovereignty in strategic markets. This brought excellent results in many areas, from oil extraction (today Brazil produces almost 100% of the oil it consumes), pharmaceuticals, energy, and also technology. Software development is seen as very strategic; in fact, the country's domestic development market is larger than India's export market. Unfavorable currency conversion means that software from outside companies, priced in dollars or euros, is usually much more expensive than similar solutions developed in-house or acquired from local companies. Also, because of a unique, complex tax system, much of the existing commercial software is not suitable to run in the country. Add this complexity to the low buying capacity of small and medium-size companies`, and you see why Brazil is not favored by international companies as one of the targets for software customization or translation. For commercial software, it is common to feature Portugal Portuguese translations over Brazilian Portuguese translations, even though Portugal has only about 5% of Brazil's population.
The Brazilian government develops large, countrywide solutions, mostly tailored to the needs of the poor, large, and dispersed population. The sheer size of those systems is enough to make the government the single largest buyer of software and the focus and target of most software companies, especially infrastructure software vendors. Moreover, extremely high inflation existed for many years, having been controlled only in the last decade—but not before it pushed the banking industry to invest heavily in technology, putting Brazilian banks among the most technologically advanced in the world. Because of specific legislation and finance standards, banks are also some of the largest investors in software development.
For historical reasons, Microsoft and IBM hold strong positions in this market, both in government and in private companies. Oracle is by far the largest database vendor. Custom software developed to run on those companies' platforms is a large legacy, which is used to justify most large expenditures in software; the result is an effective lock-in that is extremely hard to break. With the large amount of custom development, what mainly prevents vendor choice in Brazil are the government custom-developed, single-vendor solutions. Especially in the 1980s and early 1990s, when the country had rigid policies disallowing hardware imports, there was huge promotion of software product adoption, mainly in education. These included incentives—either explicit or unofficially hinted at—to use unlicensed copies, and donation of software to universities and schools at all levels. This created a large legacy of knowledge. Many use only Microsfot Windows and Office and don't consider any other options. The comparison of this strategy to that of drug dealers, who offer the first dose for free, was what recently made Microsoft sue a leading software livre activist.
Many older PCs still automate supermarkets, bank branches, and public offices and agencies. Many of those are doing their jobs perfectly running older versions of Windows, but Microsoft is pushing for software upgrades and more licensing. The lack of options has forced many companies to spend their budget on licenses for new OS versions, and on new computers able to run the new OSes—all just to be able to run the same preexisting applications.
Developing the Software Livre Movement
In this market, dominated by preexisting, international companies, the Brazilian-organized software livre movement started in the south of the country. Although there existed some prior activity, the initial work of Mário Teza and Ronaldo Lages joined users and system administrators interested in the GNU/Linux OS and started to organize the community. At that time, a discussion about the use of GNU/Linux was the main objective, but when this initial group was ready to launch its first event, it decided that it should be more than simply a GNU/Linux event and created the first FISL—Fórum Internacional software livre, the International Free Software Forum—effectively launching the software livre discussion in the country.
The moment was a turbulent one. On one side, the Internet shed a new light on the notion and importance of standards and the real possibility of avoiding lock-in. The desktop dominance of Microsoft was being heavily questioned—first because of the indisputable reality of security problems with Microsoft products, but also because of the possibility of multiplatform development raised by new technologies and products such as Apache, HTTP, CGI, Java, and HTML. In the middle of this, decisions in the United States on Internet governance and security technologies made clear, not only to Brazil but also to the whole world, how much the IT industry was relying on U.S.-controlled technologies. Microsoft being declared a monopoly and accused of power abuse, raised questions about how much trust Brazil (or any other country) should put in a single company, especially for such a strategic market.
Microsoft launched an astonishing campaign against software copying, or "piracy," that backfired by giving a clear demonstration of how important choice is. After many years of promoting the copying and usage of its software inside universities and companies, by sponsoring local "software protection" organizations, Microsoft initiated a fear campaign that included strong TV commercials comparing software copying with drug dealing and other major crimes. The company also encouraged police raids on large companies. The campaign was legal and was supported by Brazilian antipiracy legislation, but it was an obvious intimidation move. The message was clear: stop doing what we told you was OK when you were in the university. Revenue from licensing increased overnight, but the initiative backfired in an unexpected way. Many of the initial migrations to open source solutions were done for fear of investigation. Companies and, especially, universities, lacking the budget to suddenly buy hundreds or thousands of very expensive licenses (remember the currency exchange rates), and risking fines up to 3,000 times the license cost for each unlicensed copy, switched to GNU/Linux and OpenOffice in a matter of days.
These initial migrations were instantly successful. Part of the success stems from the Internet's inherent cross-platform nature. Furthermore, people were acutely aware of ongoing security problems with Microsoft products. Add the dependency that most companies and developers, and even the government, had on systems from these large corporations and the U.S. v. Microsoft lawsuit. All this came into play around the same time. The stage was set for the discussion of how dependency on proprietary software was affecting the Brazilian economy and, especially, its sovereignty.
At about the same time, state governments were using free software products to offer Internet access to the population. A project called Telecentros, led by Sergio Amadeu, the software activist recently sued by Microsoft and one of today's top software livre advocates in the country, proved that GNU/Linux, OpenOffice, Mozilla, and a full set of open source products could be easily mastered by the population, even by people who had no previous contact with computers. The reliability and security of these systems, the possibility of running on cheaper donated machines, full support for all users, and essential ease of use made the program a huge success. Three years later, the balance showed that what was spent implementing software livre in the Telecentros would have paid for only half as many systems if Microsoft products had been used. Although the cost savings were significant, the fact that users, the government, companies, and the country could now see a real choice instead of being locked in was the main achievement of the initiative.
Freedom is something that every politician understands, so many bought the idea early on. Walter Pinheiro and Simão Pedro were pioneers on the wave that swept almost all political parties and a large number of politicians. Software livre reached the legislation houses, first at state level and then at the federal level. Now the discussion has reached the courts, where the laws and decisions taken in favor of software livre are being questioned by those who oppose it; even open source licenses are being questioned.
In just a few years, this important discussion has basically surpassed the IT industry, reaching all levels of society.
We have gone from the simple use of FOSS operating systems to freedom in general, to patents and intellectual property, Internet governance, international standards, and relationships. By going further than the simple four liberties of free software, the discussion reached the music and cultural sectors, promoting the sharing of knowledge—all knowledge—and today, even the Minister of Culture, the famous singer Gilberto Gil supports the software livre movement. Not just for free software, but for freedom of choice—and of knowledge sharing.
Not About Price, but About Choice
Many people see the movement to FOSS as an ideological movement. It probably is. Every time freedom has been battled for, there has always been some ideology involved. Different people have always tried to get as much freedom as possible for their partisans, usually ignoring others' views of freedom. Eventually, we get to a middle ground, where freedom wins—not necessarily the myopic view held by the partisans on each side, but a more compromised freedom that can be held longer.
The main discussion is not about economics, but about choice. For too long there was no choice but to keep using the software provided by Microsoft. The Internet opened the possibility of another option, one that proved to be cheaper and more reliable, and one that guaranteed more flexibility and customization.
So, why not simply move to this new option? If software livre is all that it is claimed to be, why even in a government where so much uproar has been generated are there still purchases of new hardware, new licenses, and new versions of the old lock-in option? There are many reasons. A huge lobby has been set in motion to slow any adoption of FOSS. Microsoft is not the only one supporting this lobby, but is surely very active in it.
Microsoft started by giving licenses away—or making them a lot cheaper—to governments and schools. This is understandable. It reasoned that the issue driving the growing popularity of software livre was economics, so it tried to be even cheaper (by avoiding training and migration costs). Then there was some more intimidation. It is reported that companies which were promoting their plans to migrate to GNU/Linux and OpenOffice in magazines or events would receive visits or letters from antipiracy organizations and, eventually, a friendly visit from the police. Some companies do not allow employees and consultants to talk about what they are doing with FOSS, for fear of this antipiracy raid. There are reports from some inspected companies that officers concentrate only on Windows machines, ignoring GNU/Linux, Macs, Solaris, and so on. Either these systems and their companies are not entitled to receive protection, or maybe it is just that somebody else is asking for the inspection....
Microsoft surely did a lot of talking. Many Microsoft employees have been vocal about software livre, many times through half-true statements and fear, uncertainty, and doubt tactics. Microsoft's country manager for Brazil, Emilio Umeoka, even went so far as to directly criticize Brazil's president, saying that by supporting software livre he was taking the country in the wrong direction—an arrogant comment coming from the head representative of a company that was considered guilty in the U.S., Europe, and recently Brazil, of hurting competition and governments through its commercial practices. Recently, even Microsoft's Bill Gates. The intimidations may have gone too far. At the time the software livre movement in Brazil was promoting the fifth edition of one of the world's largest international FOSS advocate gatherings, the FISL, Microsoft decided to sue the highest authority of the Brazilian government's software livre initiative, the president of the National Institute of Technology (NITI) and one of the originators of the celebrated "Telecentros" project, Sergio Amadeu. An important representative of the software livre principles, Sergio has a deep understanding of the issues and knows that software livre is all about freedom. He has been promoting a carefully considered and reasonable strategy that aims to give to the Brazilian government the choice it needs to decide about the country's technology future. By personally suing Sergio Amadeu (or as Microsoft puts it, requesting explanations in court) for what he has said, Microsoft generated an uproar from people all over the world. Because of the weak basis of the suit, Sergio simply stood by what he said and ignored Microsoft's requests for an explanation in court or otherwise. Sergio said he will not be intimidated, because he's sure that he's doing the right thing for the freedom Brazil needs and deserves. Microsoft's actions show that it doesn't understand what is going on in Brazil. The country is reaching for an option. And the price of choice is not measured in the number of licenses you get for free. Software livre is a way to achieve choice.
The huge lobby against software livre does not come only from international vendors. Many software companies in Brazil don't understand how they will compete in the software livre market. They don't understand the business model and don't see the benefits of Yonchai Bentler's "commons-based peer production" model. It is not clear how they will compete nationally and internationally by developing free software. In fact, not only traditional software companies are at a loss: many in the software livre movement still see any ties with business as "evil" or at least as undesirable. Even those that understand that the only way for software livre to survive is to have a strong and viable software ecosystem around freedom are still struggling in how to create this ecosystem. This has to be addressed by the software livre movement, and it is refreshing to see that some of the most influential software livre entrepreneurs are already joining forces to expand their ability to compete and participate in this market.
Besides the strong lobby, there are other, more important reasons why a faster move to software livre solutions is hard, even when there's a will.
Choice Requires More Than Free Software
One of the main lock-in problems governments and companies have is the legacy custom software already in place. Although it is reasonably easy to move your Windows users to GNU/Linux and OpenOffice and your web site from IIS to Apache Web Server, it is a lot harder to move your internal applications from one platform to the other. And without applications, there's no user adoption, of course.
Every internal or custom system that is developed is tied to a specific infrastructure software product—be it an operating system, a database, a messaging or security system, a file format, or a runtime library, you're locked in. Unless you have this solution available in the system to which you are trying to move, you'll have a hard time porting or rewriting your software.
As Microsoft, IBM, and Oracle are the dominant players in Brazil, most applications that are developed are tied into their infrastructure products. Microsoft is the most obvious target of the software livre movement, since it is the king of the desktop and it powers many departmental servers where licensing issues are more visible. And Microsoft is the one that's pressuring for more licensing and more upgrades. It is really the main bully in the playground. But IBM mainframes, with thousands of legacy applications and huge Oracle databases, among all kinds of other systems, fall under the same reasoning that says choice is better. Being free to move away from those systems requires that applications are ported, and this takes time.
And once the decision to port the applications has been made, where do you port them? Is it to another specific (although software livre) OS? Does choosing any software livre solution promise freedom? Does limiting the decision to any solution that has a specific FOSS license simplify the question? Should we move to one of the great FOSS-licensed solutions (database, framework) that in fact has just a single company and no community behind it? Maybe we should put up some criteria, based on community side and adoption, that will help in choosing a high-quality FOSS product to tie our application to?
The fact is that once you choose any one product to port your system to, you're creating ties to it. If this is a software livre product, that can be a big help, but it is not enough to guarantee your freedom, your choice.
Governments and companies do not get locked into a vendor or a platform simply because they use closed software, but rather, because they develop their own applications tied to a specific product, be it a free product or a proprietary product. Once all applications are written to a product, and all data is saved into a product-specific format, to move to another offering (free or proprietary) is a big effort. And the longer the ties to that product endure, the more difficult it is to move. Vendors drive their customers to stay as much as they can. Although software livre makes you less dependent on a specific vendor (because you can make your own changes), it does not necessarily keep you from getting locked into a product....
That's why the best option is to guarantee that developed software be effectively free of product lock-in: custom applications are based on open standards, and all data is saved into open formats. That's why many of the most valuable software livre projects are not simply products. They are open source implementations of open, royalty-free standards. The powerful combination of FOSS implementations based on open standards is what gives us the choice we need.
The use of open standards that can be implemented as open source is a strong way of promoting software livre. Once applications are free from specific products and standards, it is possible to replace closed products for the FOSS implementations that have a real chance to compete and show their technical advantages. Defending software livre on technical merits is a much stronger argument to governments and companies. Keeping custom applications ready to benefit from FOSS implementations of open standards favors software livre even in the (quite common) case where the FOSS implementation is still in development.
How Java Technology Can Help
That's where Java technology enters the story. Yes, I know many of you complain that Java is not FOSS, and so how can it even be cited after so many arguments in favor of software livre?
Well, Java is as much software livre as HTTP is. Or as PDF is. Or, for that matter, as C is! That is, none of these technologies is software livre. They are standards. Some are more open or compatible than others, but all of them are books, pieces of paper, and web pages. Standards are not software livre. The fact that you have the GNOME PDF Viewer licensed as GPL does not make PDF software livre. It does not even make PDF an open standard (it is a royalty-free standard, but it is not open since it's controlled by, and only by, Adobe). Having GCC as a C compiler does not make C software livre. It means only that it contains software livre implementation of the ANSI C standard. In addition, just because they are standards, even standards having software livre implementations, does not mean they can be modified at will. Apache HTTP Server is the software livre implementation of the W3C HTTP standard, meaning that although Apache HTTP Server code is legally modifiable, you cannot modify it at will and still say it is compatible with the W3C-HTTP standard.
Then there's Java. As a standard, defined and controlled by the Java Community Process (the JCP), the Java standard can now also be implemented royalty free as software livre (under any FOSS license). Actually, Java is a set of standards. You have things like the Java 2 Enterprise Edition (J2EE), the Java Virtual Machine (JVM), and the Java 2 Standard Edition (J2SE)—several class libraries defined as separated standards. Even the class file format and the Java language are standards.
Until recently, the JCP rules did not really allow for a software livre implementation (although many initiatives were being developed). However, this has changed, thanks to the initial work of Jason Hunter on behalf of the Apache Software Foundation and supported by Sun and other JCP members. Since the release in 2002 of the JCP 2.5 rules, there have been no barriers for compatible software livre implementations of the many Java specifications. Because of the large number of Java specifications, "Java needs to be open source" and "Java is not free software" are usually meaningless statements, especially because of the fact that since JCP 2.5, many of these specs already have a FOSS implementation.
One of the important things that the JCP rules mandate is that every contribution made to a standard has to be licensed royalty free to anyone implementing the standard. This guarantees that the FOSS community will be able to implement all of Java. Many standards bodies (ISO and ECMA, for instance) do not mandate this, simply requiring the infamous Reasonable and Non Discriminatory (RAND) clause that is not necessarily reasonable for the FOSS community, and as such discriminates against it. Standards generated by those standards bodies can be, and usually are, encumbered by patents and RAND agreements, making them, for all practical purposes, impossible to implement legally by the FOSS community.
However, because of Java's very broad objectives, the Java standards are hard to implement. Different from other standards, Java tries to reach the binary compatibility promise: the ability to run your Java binary unmodified on any platform with a Java runtime. For this even to work, a compatibility test was created to guarantee that a Java implementation meets the standard's requirements. Technology Compatibility Kits (TCKs) are provided, requiring implementations to pass these tests to claim compatibility. Compatibility requirements and the sheer number of libraries and standards involved, coupled with Sun's quite restrictive licensing in its own proprietary implementations have delayed software livre implementations of Java.
This does not mean that initiatives don't exist or that we cannot have a software livre implementation. It is important to say that many Java standards already have a software livre implementation: servlets, JSP, JSF, EJB, J2EE, JMS, and JDBC are among the most important examples. What is missing is the very important underlying runtime: the complete JVM and the set of J2SE libraries. Many projects do exist to fill this gap and are under development right now. Several are quite capable of running much of the Java code out there, including some very complex applications. These implementations are far from perfect, but we're getting there.
Java Provides the Other Side of the Choice
But what does all this have to do with freedom and choice? We saw that software livre did wonders to provide freedom for developers and to allow developer collaboration across the Internet, pushing the whole practice of software development to a new level. Freedom was well served and well used.
It is understandable that developers need their freedom to expand, explore, and literally change the world. Now we're discussing freedom with not only developers, but also companies, users, and the government. We saw how these deployers are looking for freedom of choice. They want to be able to choose. They want—actually they need—options: the ability to choose different vendors, different implementations, different software houses, different licensing...in short, to not be locked in.
Going back to the many visions of freedom, the standards community sees freedom as the possibility to choose freely from multiple vendors, since usage of standards prevented lock-in. Standards are the way society normally defines its rules—we see this in very different markets, from water distribution to electricity, from TV to telecommunications—and this was applied to the software world. There were no explicit discussions about how developers would collaborate on code; on the contrary, standards usually hide the underlining implementation. And the focus was not on developer freedom: standards are actually restrictions on what a few developers can do, so a larger group of deployers and users can benefit from choice and option.
The free software movement was looking for freedom for the developer to collaborate and create, but more than this, freedom as an ultimate goal— a social good. Quoting the FSF, "for the Free Software movement, non-free software is a social problem and free software is the solution." The GPL puts all the responsibility in the hands of the developer, who has all the freedom, and only one very strict and strong restriction: the copyleft. Once-released code cannot ever be restricted, making it difficult (although not impossible) for developers to derive commercial benefit directly from the code they write. This is a strong compromise that free software developers accept for the benefit of all developers.
Then the Java community comes along, looking for another type of freedom, one that would free the developer to run his application on any platform. Actually, the main goal of Java was to free the user to run an application on whatever platform he chose, no matter what the platform the original developer was targeting. That was another type of freedom altogether, and it had to be based on standards to allow for multiple vendors. This view puts a restriction on a very narrow group of developers, the ones that deal with the creation of the runtime. They have to obey strict rules, for the benefit of the vast majority of developers, deployers, and users, from all platforms, who are then free to choose what they want to use and run.
At last the open source movement was formed, and promoted the discussion that although free software was good, having companies investing in and commercially benefiting from free software would be even better, proposed a similar but different view. Seeing freedom in a more practical way, which promotes developer collaboration, but they are willing to accept that not all software must be free, not considering proprietary software a social issue. Open source is referred to as a software development methodology, having dropped the political manifesto, and making the notion more usable and acceptable for the commercial market. The open source movement compromises the ideology and accepts that developers will benefit commercially from code they did not write, to achieve the benefit of allowing more companies and probably more resources to be applied to the evolution of software. This vision tries to achieve the much-needed critical mass that made FOSS the success it is today.
Are these freedoms incompatible? They can complement each other in very powerful ways, but freedom is always a compromise. We usually impose restrictions on a few to the benefit of a larger group.
Unfortunately, some people like to see things narrowly, creating unsolvable conflicts among these different freedom-promoting movements. As a Java developer, many times I have been excluded, ignored, and generally considered an "outsider" of the FOSS community. Many other Java developers feel the same way. All you need to do is mention Java in a FOSS discussion forum, and you'll be flamed. You see a lot of Java bashing at FOSS events. At a recent event, one of the main speakers claimed there are no good open source Java developers. How would developers from the Apache Jakarta project—who have implemented so many great FOSS projects, and so many FOSS implementations of the Java standards—feel about this? What about the developers who put a lot of effort on the Kaffe VM, the GNU Java Compiler, and the GNU Classpath? These are all great FOSS software projects highly respected implementations of the Java standards, done by top-level, committed Java developers.
Even FSF founder Richard Stallman has not proposed prohibiting the use of Java. In his essay, "Free But Shackled—The Java Trap," which seems to be misunderstood by many in the FOSS movement, Stallman actually recommends that developers use the already available free Java implementations and, more important, that they help improve them. "We do have free implementations of Java, such as the GNU Java Compiler and GNU Classpath, but they don't support all the features yet.[...]Fortunately, [the Java] specification license does permit releasing an implementation as free software[...]To keep your Java code safe[...], install a free Java development environment and use it," says Stallman.
Stallman is not only very clear on the importance of the free Java implementations, but he also gives us an important argument. He says, "In the early days of the Free Software Movement, it was impossible to avoid depending on non-free programs.[...]It was inevitable that our first programs would initially be hampered by these dependencies, but we accepted this because our plan included rescuing them subsequently." This was a reasonable compromise to make to reach a much more worthy goal. But Stallman continues: "The situation is different today. We now have powerful free operating systems and many free programming tools. Whatever job you want to do, you can do it on a free platform; there is no need to accept a non-free dependency even temporarily." Although Stallman uses this rhetoric to say that you should stick to the free Java implementations, the effect really depends on who he means by "you."
One of the powerful freedoms that Java brings is platform independence. As we have already seen, the main roadblock for companies and governments in Brazil to choose and migrate to the "powerful free operating systems" is the lock-in of existing legacy applications. This is a hard problem to crack, since we cannot move the systems until all needed code is ported. So, until we're able to expend enough effort to migrate all the existing applications, we have to keep adding to today's Windows system. Since a simultaneous migration is improbable, we then have to coexist both systems for awhile.
Here is where Java comes to the rescue. Applications can be developed to run on today's Windows systems, coexisting with any new software livre system that is introduced, thus making the eventual complete migration a lot easier. Certainly there are other technologies that allow you to develop cross-platform applications, but Java is one of the best options, not only technically but also in terms of available tools, information, and market penetration. Anecdotal evidence from the open source community on the number of non-Java applications that were developed on GNU/Linux but can run on Windows shows that platform independence is not that easily achieved. It is possible, but the large number of Windows-developed Java applications that can run on GNU/Linux is a clear statement that Java makes cross-platform deployment a much easier task.
There are many corporate and government developers who need to deal with a migration strategy, who need to start moving from Windows to GNU/Linux, or maybe to an open source Solaris. Many more are not planning to migrate now, but would like to have a number of choices in the future. So, if the "you" Stallman was referring to are those developers, they will be better off by accepting a nonfree dependency temporarily, to get the freedom of platform now provided by Java, and be able to move to a "powerful free operating system" when desired or needed. Moving Java software to the free operating systems should be easier, and promoting multiplatform development and standards for governments and companies is a powerful strategy to guarantee choice. Minimizing dependencies on software that cannot be implemented by the FOSS community is a clear road map to allow the migration.
In the meantime, we, the FOSS community, should stop pretending Java does not exist, and that freedom of platform is not important to users, and make the effort to accept, use, and finish the free Java implementation and tools, as Richard Stallman suggests.
The existing free Java standards implementations may lack functionality if compared to the full proprietary ones, but the huge amount of functionality provided is at least comparable, and in many cases is much better than that offered by other major open source implemented languages. There's no reason why lots of great software could not be developed and used on those free Java implementations, but as long as the FOSS leaders insist on downplaying the importance of Java, this important free software will be ignored both by the FOSS community and by the Java community at large.
When the FSF talks about usage of the term free software, it mentions that "to stop using the word free now would be a mistake; we need more, not less, talk about freedom." This is an interesting point. Although the FSF has its strong and idealistic view on what is software freedom, it is clear that its views of freedom are not the only important views, and that the freedoms we're talking about are not mutually exclusive. They may be different, and not everybody may want all of them, but they can be explored together. Platform independence is an important, easy-to-grasp freedom, that can go hand in hand with the notion of free software. The fact that we still don't have a compatible FOSS Java implementation should not be a reason to stop promoting the notion of freedom of platform.
Walking the Path
With such restrictions from the FOSS community, openly discussing Java and software livre seems to be easier said than done. However, we have a series of successful examples in Brazil that are helping put some light on the possibilities that Java and software livre can bring to developers and deployers.
We saw how Brazil has chosen the freedom path and some of the strong reasoning behind that. One of the pillars of that choice is, without a doubt, software livre: it has pushed the idea of technology independence to other levels, and has prompted the whole country to discuss freedom in other related areas, like the Internet, music, and information sharing. It has also captured all the attention, and many what are now discussed as a "software livre" initiative, although more related to freedom in general.
Because of this discussion of choice and freedom alongside software livre, other initiatives are strongly pursued. Standards, for example, receive special attention from the many government agencies. Serpro, the largest Brazilian federal IT agency, an organization with thousands of developers working in governmental software, has declared that one of its main responsibilities is to create, defend, and apply national standards. Standards are defined and then used to guarantee vendor independence, and then to allow the inclusion of FOSS solutions—if they exist and are stable—as a preferred choice for acquisition.
But even before software livre was ever discussed in Brazil, multiplatform applications became increasingly important in the quest for vendor independence. Microsoft lock-in was the main catalyst, because lock-in to any vendor is one of the main worries inside companies and the government. Add to that the almost mandatory requirement that every government's software must support GNU/Linux while still supporting the huge legacy of Windows systems, usually developed by Windows developers that had literally a few hours to start generating multiplatform code while still using their Windows machines....
Because of all this, from the start Java played an important role in guaranteeing freedom for both the Brazilian government and Brazilian companies. As early as 1996— long before software livre was actually considered a real option anywhere in the world—software companies and the many government development agencies saw in Java the opportunity to gain freedom from Microsoft lock-in. This was an important step: for the first time, Brazilian developers were even considering another platform for software development. The search for independence—platform independence in this case—drove widespread adoption of the technology inside the government. The government-owned Banco do Brasil (Latin America's largest bank), adopted Java in 1997, training more than 800 developers in their first Java training program. This is an early example of the search for freedom that happened before the OSI (and thus the open source definition) even existed, and long before any significant discussion of free software in the country.
Although many try to exclude Java developers from the FOSS movement, in Brazil it is sometimes hard to separate these two communities. Much of the development in the country is being done in Java today, including a large percentage of the FOSS development. Projects like JForum, JBanana, Prevayler, Bossa, eGen, Javali, Genesis, and Hotwork are just some examples of Java-based Brazilian FOSS projects that are in use throughout the country.
The early software livre movement was clearly driven by system administrators, security experts, web designers, social scientists, and politicians. They did one of the world's most effective pushes for the adoption of software livre and, if it had been only that, it would already be an impressive and fundamental contribution. However, they did more, and the software livre movement went far beyond the simple adoption push. They moved the software livre discussion into the country's hearth and involved politicians, lawyers, judges, social scientists, financing institutions, entrepreneurs, large- and small-business owners, and the government at large—in short, creating a viable ecosystem for software livre to flourish. Unfortunately, when it got time to discuss software development, they fell short. The push to use software livre was so strong that more concern was put into migration and digital inclusion strategies. Although there were very good FOSS developers and important projects, software development issues were given little attention initially. This is where the Brazilian Java community has been focusing its contribution, bringing software development back into the discussion.
Java is one of the most-used languages in the country and is the only one that is multiplatform and has strong support in both Windows and in GNU/Linux. So, it is understandable that most of the development discussion in FOSS happens around Java. There are many examples. Of the recent open source applications that have received financing from the Brazilian government, almost all are developed in Java, many running on top of free Java application servers like Tomcat and JBoss. At FOSS events in Brazil, it's easy to notice that most of the presentation proposals submitted that deal with development are Java related. Surprisingly, there's a lot less support and interest for important FOSS languages such as Perl, PHP, and Python.
Through the history of the software livre movement in Brazil, Java has played an important part, although at times it has been ignored and downplayed by many. Here are some other examples:
- Developed as a replacement of Lotus Notes and Exchange, Direto is a web-based email and collaboration tool that handles calendar, address book, and other functionality. Developed by Procergs, the IT agency of Rio Grande do Sul (where FISL is held), Direto runs on GNU/Linux and Tomcat, with lots of other FOSS solutions. The development was mainly done in Java, and at the time it was released, it was the first initiative from a government agency to release a free software product. Because of the work done by one of the most respected free software developers in the country, Ricardo "Gandhy" de Mello (a Java developer), Direto was at some point able to run, with some limitations, on a free Java runtime. Today it probably would run on today's much better free runtimes if anyone cared to try. Direto is a strong example of how we can get one freedom, and then the next.
- IRPFJava, the multiplatform income tax report application
- For many years, to submit your yearly income tax report (IRPF) electronically, receive all the benefits of faster tax returns, and easily handle the complex forms, a Windows machine was needed. As a result, the government received many complaints from Mac and GNU/Linux users who had to resort to friends or accountants. This was an example of a government application that forced citizens to use a proprietary product. Receita Federal, the agency responsible for IRPF, rewrote the application to support multiple platforms, specifically GNU/Linux. IRPFJava became the first federal application targeted for large public consumption that was focused on supporting GNU/Linux. As expected, the developers were still using Windows and had no knowledge of GNU/Linux or the Mac: they relied on Java to support those and the many other OSes that were used to submit the reports. As another good example that shows the possibility of freedom in steps, efforts are now underway to use the free Java runtime to run the application.
- Banco do Brasil, Caixa Economica Federal, Dataprev, Datasus, Procergs, and Serpro, to name but a few
- These are public companies and agencies, and are among the largest developers of software inside the Brazilian government. All use Java heavily to guarantee vendor independence, and many were doing that long before the software livre movement took place in the country. Most have chosen to use Java-based FOSS tools and products because it made commercial and technological sense, and these projects are promoted today as success cases of software livre adoption. To show their support for software livre, many of these agencies refer to their use of Java-based products such as Tomcat, JBoss, and Eclipse. In some of these places, Java-based tools are the only free software development tools being used. This is a clear sign of the importance of Java in software livre initiatives.
That is not to say that everything related to development that happens in the Brazilian software livre movement is necessarily related to Java. Far from it. The fact is that Java was there from the start, guaranteeing freedom inside the government, even before the software livre discussion turned mainstream. This should not be ignored or downplayed. And while most of the world is creating a chasm between Java and software livre, in Brazil Java is effectively being used as a lever to push software livre to higher grounds.
What to Do?
It is clear that Java and software livre work together. By combining these different approaches to freedom, we can have more freedom, not less. But many still feel that Java is not open source and try to leave Java out of this fundamental discussion, to the detriment of all.
There are many examples of initiatives to exclude Java as a development tool for FOSS projects, and even to exclude FOSS Java applications from FOSS events. I wonder how we can have a FOSS implementation of any standard if there's this kind of prejudice against standards that were not implemented as FOSS yet. Contrast this with the amount of effort put into providing drivers and even reverse engineering of proprietary patented software or protocols to establish links and integrate GNU/Linux and Windows, for instance. For the FOSS community, the effort to create a JVM provides a great integration strategy. The more code you write in Java today, the more you are able to run your applications in both Windows and GNU/Linux systems. Consider also the possibility of running your application on the recently announced open source Solaris OS, and you have more choice and more freedom. It's interesting, though, that for the most part, to run a GNU/Linux system you usually have a binary, but closed, standard underneath it: the Intel processor. Java is also a binary standard, although it normally sits on top of the OS. It is amazing that the FOSS community can't seem to see how allowing one and excluding the other is like throwing the baby out with the bath water.
The fact that many applications—lots of them under FOSS licenses—are written in Java means that more effort should be spent on having a 100% FOSS Java runtime available. Many people are working to enable this, but the general prejudice is still strong in the FOSS community, making it strong in the other direction from the Java community. These prejudices need to stop, and leaders from both camps need to come at terms and realize there's much to be gained from the joint pursue of freedom.
We Are Getting There
At a unique and historic meeting at the end of 2004, these two communities started to come together. Sponsored by Red Hat, the Free Runtime Summit joined companies and developers working toward a FOSS implementation of the J2SE standards, the last ones in the stack to have a complete open source implementation of Java. The meeting joined the leaders from the most important free Java projects—the GNU Classpath, the GNU Java Compiler, and the Kaffe VM—along with the JCP, the FSF, the OSI, the Apache Software Foundation, and the SouJava Java Users Group, and also representatives of several companies. The results of this important gathering are still to be seen, but it was discussed and agreed to move forward with the efforts of an implementation of the Java standards that have a FOSS license and that pass the compatibility tests. The meeting was a major step forward. For the first time, there's general agreement on the importance and viability of this implementation. This open collaboration and resolution of prejudices will prove very beneficial to both the Java and the FOSS communities.
The path Brazil has taken—going after freedom in its larger meaning, trying to bring together standards, multiplatform and software livre, to guarantee freedom of choice to developers, companies, and the government—is showing its viability day by day. The possibilities are promising, and we're working hard to create the freedom we need to innovate, to generate technology, and to strengthen our sovereignty. The Freedom to choose our technological future and to collaborate with the world will be our reward for the effort. That's the freedom we want, and we'll fight for that.
- "Why `Free Software' is better than `Open Source'"; http://www.gnu.org/philosophy/free-software-for-freedom.html.
- Richard Stallman, "Free But Shackled—The Java Trap"; http://www.gnu.org/philosophy/java-trap.html.