Jikes

This page contains various historical documents from the Jikes days.

Jikes for Gnu/Linux. I spent the first week of June 1998, reading the various GPL licenses.I then drafted this proposal. It was approved by IBM management and resulted in the posting of the Jikes binary for Linux on alphaWorks in mid-July 1998.

We communicated with our users in those days using a Notes Domino database that was web-accessible, Users could see our notes, and could respond to them. That database still exists but is no longer web-accessible. Much of what follows can be found in the Notes database, and I will endeavor to have it brought back online if that is possible.

Following the alphaWorks posting of Jikes in binary form we received requests for the source. Here is a question I posted asking for user input: Should IBM Release the Source Code for Jikes?.

The single best user response was from Bjorn Ekwall: Bjorn’s response.

Following the user comments I prepared a summary: User Comment Summary

I submitted a proposal to IBM management to release the code for Jikes in early September. It was approved on September 9th. The key step was to draft a new license, as all involved agreed some language was needed to protect IBM’s patent portfolio. Unfortunately, I seem to have lost the actual proposal submitted to management.

As I recall much of the proposal was based on the user input. The additional arguments included:

  • Releasing Jikes will encourage Java standardization;
  • If IBM is ever going to seriously engage in open-source activity, then to establish credibility IBM needs to release some code that is respected and perceived to be of value.
  • Moreover, unless an existing license is acceptable, IBM will need to draft a new one that is recognized as a true open-source license;
  • IBM will need to run the project from a URL that ends in “ibm.com” to show we are willing to maintain a project by ourselves as we would expect anyone else to do;
  • By example IBM can demonstrate that it understands and respects the open-source “rules”;
  • That if this is going to happen, it will most likely come from Research. Indeed that is part of our job, to look into the future and take action when we see a benefit to IBM going forward;
  • That Jikes was accepted and was a good candidate.

The major concern in releasing Jikes was not the code for Jikes itself, but that we knew we would also have to release the code for the parser generator that Philippe had perfected in over a decade of work. It’s known as JikesPG. It has technology much more valuable than Jikes itself; for example, it is used in many IBM products and is also the parser generator used by Eclipse. JikesPG still has not received the recognition it deserves.

Following the release of Jikes as open-source on 7 December 1998 I posted the following: Jikes is Now an Open Source Project !.

Several users submitted comments in the next few days. I hope to include them here in the future.

Jikes Coupon. This “news report” was released a few days after Jikes was announced as open-source.

Jikes was included in Red Hat’s Linux distribution in the fall of 1999, and was the first open-source project when IBM opened the developerWorks site. Jikes has since been included in SUSE, Debian, FreeBSD, and many other standard Linux distributions.

Some of the history of Jikes can also be found in the book Rebel Code by Glynn Moody.

I gave a number of presentations about Jikes during 1999. One of the first was at a seminar at the Fashion Institute of Technology in January, 1999. One of the attendees, Stephen Adler wrote a detailed trip report about that day than includes some mention of Jikes; see An Ode to Richard Stallman (The report includes an interesting e-mail I had forgotten about until I recently re-read Stephen’s detailed report, which cites it; see Dave’s e-mail.

My daughter Jennifer prepared a wonderful scrapbook about those days. I will try to scan and post some of the key documents as time permits.

Afterword

Philippe and I worked on Jikes until the end of 1999. I had figured that taking Jikes open-source would buy us at least another year to work on the project, though the whole year of 1999 was such fun that I put that thought on the back burner, and the announcement that it was time to move on came as a disappointment, though I fully understood.

Jikes was IBM’s “poster project” throughout 1999, showing that IBM could release valuable code as open-source, and run a project based on the code from a URL ending in “ibm.com.” We won an award for that work, but of course the greatest award was the work itself, the four years that Philippe and I worked together. It remains the most productive and most fun time I have yet had at IBM.

We could have continued to work on Jikes on our own time, but Philippe indicated he was going to move on, as he didn’t want to work on Jikes unless he could give it his full attention. I was of mixed feelings. However, early in December of 1999 Sun made various noises indicating they might seek to standardize Java through ECMA. I had hopes, but as events developed I realized it was unlikely Sun would actually do this, so I decided to move on myself. Sun had taken the fun out of Java.

Almost seven years have passed since that December, and Sun is still making noises about standardizing Java and even releasing it in open-source form.

But it is too late. Sun blew it. They had a chance to create a true industry-standard, yet they held back. The greatest loss was to the Java users. Sun and IBM have collectively invested scores (hundreds?) of millions of dollars on Java, refining the class libraries, improving dynamic compilation, improving garbage collection; but that investment has remained locked behind a proprietary wall. The moment has passed, as we can all see in the increasing attention now being given to dynamic languages such as Ruby, C#, etc.

Looking back, there were several reasons to release Jikes:

  • It made sense for IBM to do so;
  • I took it on as a challenge, to see if I could get it done;
  • But most important, I took it on as I wanted the world to appreciate and share what Philippe accomplished. Though I wrote some of the code, primarily in the back end bytecode generator, the design and the bulk of the code were his sole work. It was one of the most magnificent pieces of programming I have ever witnessed. On his own he wrote the best Java compiler to date, beating the teams at Sun, Microsoft, and I’m sure other places as well. Nothing has yet touched it in performance.

I took great satisfaction in that the project continued on after we left. I had worked to build a community and they were able to take over the project.

Though it is dormant now, Jikes still gets several thousands of downloads each month. Open-source is free, but users show their appreciation by giving you something much more valuable than money when they download and use it: they give your their time.

During the course of the Jikes project we received constant support and encouragement from Research management. Many of the folks then in our management chain have since left Research and achieved very senior leadership positions in IBM; for example, Ambuj Goyal, Danny Sabbah and Lee Nackman. Philippe and I are profoundly grateful for their help, as well as the help we received from IBM colleagues and many others outside IBM.

One of the greatest –and unexpected — benefits we enjoyed was the chance to work with many people who were not part of Research, the “rest” of IBM. They are a great bunch, and the exposure we enjoyed due to the project gave us a much deeper appreciation for IBM’s most important — and when all is said and done the only meaningful — asset: its employees.

Jikes Coupon

First published in Jikes Open Source – a report from Dave Shields on 11 Dec 1998:

Jikes Masthead


Jikes Open Source – a report from Dave Shields

Dec 11, 1998, 15 :34 UTC

Jikes News: 11 December 1998

Phone call with Bruce Perens re Jikes License, Jikes Parser Generator

I was a participant in a conference call with Bruce Perens yesterday, along with an IBM manager and attorney. In the words of diplomacy, “It was a frank and open exchange”. We discussed Bruce’s concerns about the Jikes License and also the question first raised by the Debian group about releasing the source for the Jikes Parser Generator.

At the end of the call, Bruce said he would prepare a report on the call and submit it to slashdot. [ Link added by Linux Today - lt ed ] He graciously offered to send us a preliminary copy for our review. We declined, as we trusted his judgment. We also said we would not write our own report, lest confusion result from two reports trying to relay the same news.

Jikes Mailing Lists

I apologize for the delay in setting up the Jikes mailing lists, and I appreciate the support of slashdot and LinuxToday in posting my notes on their sites, so I could honor my pledge to have all discussions in “full public view”.

I ordered a new 6 gig disk for the server machine (100 Mhz Pentium, 32MB memory) a few weeks ago. I had two 1 gig disks. A colleague suggested I should wait for new disk to arrive, as what I had might not suffice to manage the mail lists. The disk arrived yesterday morning. I had a lot of meetings that day, but did find the time to install the disk and did a fresh install of RedHat 5.2.

I’ve asked for some help in setting up the system. Though I’ve used Unix for almost two decades, I’ve hardly ever had the opportunity to log in as root. Indeed, I’m still such a newbie in this area that when I log in as root I still feel a rush — it’s like sitting in a Ferrari and putting the pedal to the metal. Away we go!

Unfortunately, I have proven very adept at doing a great deal of ecological damage to a pristine Linux landscape in a short time. My specialty is reducing /etc/aliases to rubble — think of the oft-shown TV footage of an old building being demolished by a few pounds of dynamite.

I’ve asked for help doing things right, and hope it will arrive soon. If not, I’ll steam on and promise to be more careful. I will make a best effort to be able to accept subscriptions early next week.


The Jikes Coupon

I drive my daughter Jennifer to school every morning. Ever since the start of the school year, she’s been the object of a constant flood of news and concerns about releasing the Jikes source code. She has always been a rapt listener; indeed, I boasted to a friend recently that my daughter was “THE world export in open source licensing issues in the 14-and-under age category”.

We both share the same birthday — December 8. My favorite present was a set of six Jikes Coupons. Here is the text of a Jikes Coupon:


Jikes Coupon

This coupon entitles David Shields to 10 free minutes of Jennifer’s undivided attention to talk about Jikes or whatever he sees fit. During this time, Jennifer may not think or say in any way, “Oh, gosh, here he goes again.” Even phrases such as, “We’re playing with the big boys” will be tolerated with a pleasant nod and smile.

I realized that I had mistaken a pleasant node and smile for keen interest and concern. However, I have learned a valuable lesson and it forms the basis of my new policy when asked about open source licensing issues.

While I had a role in drafting the Jikes License, now that it is out it has become the responsibility of the IBM attorneys, and only they have the authority to effect changes to it. My making statements about it, especially misdirected efforts to interpret it, can only lead to confusion. So from now on, when asked to speak about these matters my response will be silent and simple — a pleasant nod and a smile.

I have great confidence in our attorneys. I know they want to do the right thing. I have found them to be quite pleasant, and have even seen them smile from time to time.


Congratulations to Rob Malda

I know that all fellow members of the slashdot community join me in congratulating Rob Malda on completing the work for his undergraduate degree. Sengan informs me Rob is getting a B.S. in Computer Science, and also a B.A. (or perhaps minor) in the Arts. I regret that I do not know the name of his college. I know he is eager to resume hacking.

Newest Member of the Jikes Team: Vadim Zaliva

We posted the source for Jikes at 1PM EST on Monday, December 7th. I received an e-mail the same day 9:13 PM from Vadim Zaliva (lord@crocodile.org) that included a patch file. He also posted the patch in the “Discussion Area” for Jikes Source at the alphaworks site.

Philippe is on vacation, and I didn’t get a chance to speak to him after we published the source until late Wednesday afternoon. He asked me if I had seen the patch at alphaworks. I said I had gotten an e-mail but hadn’t had time to look at. He said he was “flabbergasted”. Though the patch contains only a few lines, it shows a good understanding of much of the compiler structure. I view this as our first success story, and I am sure there are more to come; I view it as a joint tribute to Philippe’s design and Vadim’s demonstrated skills.

At the end of the call, we had the following exchange:


Philippe: Dave, this guy is good. Think he could come work with us?

Dave: Philippe, he already is working with us — and for free!


I asked Philippe to report in full on the technical knowledge displayed, but he has some personal business, and I have gone ahead here, as I did not want to delay recognizing Vadim’s work. We are pleased to welcome him aboard as the first contributor to join our project since we released the source (there are other contributors I wish to name for work done before we released the source, and I’ll try to provide details on our web site early next week).

It’s hard to express a “pleasant nod and a smile” over the internet. It’s also hard to express a hand shake. My daughter Jen designed a great masthead for the Jikes web site using a masthead design tool built by Chet Murthy and others (Chet is the guy who used to do the libc5 builds — I told him he had done his last build late last week). Unfortunately, IBM requires a uniform look-and-feel on its web pages, and I am not able to use her work, though I will put up a copy elsewhere on the Jikes web site soon, and am enclosing a copy of it along with this note, and hope that slashdot and LinuxToday can find a way to display it as a sign of welcome — both to Vadim and to all the future contributors that I expect to meet soon via the Jikes mail lists.

dave

Jikes for Gnu/Linux

This is the proposal to release Jikes in binary form for Linux that was approved by IBM management in June 1998:


Jikes for GNU/Linux

Philippe Charles

David Shields

16 June 1998

We propose distributing the Jikes Java compiler for the GNU/Linux platform as a dynamically linked “work that uses the library” as described in the GNU Library General Public License.

What is Jikes?

Jikes is a Java compiler, written by Philippe Charles and David Shields of IBM Research, that translates Java source code to bytecode. It performs the same function as the javac compiler written by Sun. However, Jikes was written from scratch in C++, not based in any way on javac. Versions of Jikes for AIX, OS/2, Solaris Sparc and Win95/NT are available for no charge from alphaWorks.

Jikes has always emphasized full conformance to the language specifications as published; indeed, PC Week has twice published articles remarking that “Jikes is better than javac” in this regard. See
PC Week (December 22, 1997): PCW Labs’ top 10 tech trends: It was the best of information technology
and PC Week (April 14, 1997): IBM, Netscape Up Web Ante.

What is GNU/Linux?

According to Linux Online :

Linux is a freely-distributed operating system originally created by Linus Torvalds. Developed under the GNU General Public License, the source code for Linux is available to everyone. As a
result of this availability, other developers have taken the Linux source code and created a variety of different Linux distributions that have slightly different functionality from each other.

According to the Overview of the GNU Project:

The GNU project has developed a complete free software system named “GNU” (GNU’s Not Unix) that is upwardly compatible with Unix.

The initial goal of a free Unix-like operating system has been achieved. By the 1990s, we had either found or written all the major components except one–the kernel. Then Linux, a free kernel, was developed by Linus Torvalds. Combining Linux with the almost-complete GNU system resulted in a complete operating system: a Linux-based GNU system. Estimates are that hundreds of thousands of people now use Linux-based GNU systems, including Slackware, Debian, Red Hat, and others.

There is some support for Java on Linux; see, for example, Java Linux and and JDK 1.1.5 Linux Port Status.
Sun maintains a java “BugParade” on its Java Developer Connection Site. The most popular item, with 2414 requests (as of 1 June 1998) is to “provide fuller support for Java on Linux”. (The next two most popular items have 589 and 407 requests, respectively.)

Commercial software is available for GNU/Linux, as shown in a list of popular software from one Linux vendor, LinuxMall:Linux Top Forty, April 1998 , which includes Applixware Office Suite 4.3.7 and WordPerfect Personal Edition.

IBM currently distributes several software products for GNU/Linux, including Jikes Debugger, SNACC for Java and Webbin from alphaWorks. These are either written fully in Java or include source for
parts not written in their Java, so their distribution raised no licensing issues.

IBM also distributes Object Rexx for Linux;
the license can be seen by attempting to download Object Rexx
. The central part of this product is compiled with GCC and is made available in dynamically linked form.

Why IBM Should Provide Jikes for GNU/Linux

We believe that it is to IBM’s advantage to make Jikes as widely available as possible, even for non-IBM platforms, though in the long run IBM will probably support Jikes only for IBM platforms. We test Jikes using the Java Compatibility Kit (JCK) from Sun and the Modena Test Suite. However, we have found these tests to be of limited value. We need to reach out to real-world users to find bugs, providing a level of support, such as the Jikes Discussion Database, and quick responses to bug reports, that encourages users to take the time and effort to report bugs.

There are other intangible benefits. Jikes has been favorably reviewed in the press, and has come to be known as “the IBM Java compiler” (see also Usenet references to Jikes). Jikes demonstrates IBM’s commitment to Java and to open standards, and so encourages more people to use Java.

GNU/Linux is a particularly attractive platform. We have received numerous requests for Jikes on this platform. The port has already been done by Claudio Fleiner of IBM Zurich, and is available for IBM internal use.

GNU/Linux is widely used in the academic community. Today’s students are tomorrow’s customers and software developers. GNU/Linux also attracts the sort of technical enthusiasts who are more likely to take the time to report problems.

Jikes is the fastest Java compiler known to us on all platforms except Win95/NT. The only currently available compiler for GNU/Linux is Sun’s javac, and Jikes is much faster (and Sun has yet to commit to full support for javac on GNU/Linux). Jikes’ good performance should attract users.

Approval to distribute Jikes for GNU/Linux would also make it possible to port Jikes to other GNU platforms. For example, we recently received a request from IBM Raleigh to port Jikes to the HP platform.

Licensing Issues for GNU/Linux

We will build Jikes for GNU/Linux as a dynamically linked “work that uses the library” using GCC. Using GCC on Linux is comparable to using any non-IBM compiler. Here is a quote from the section on GCC on the GNU web site:

GCC is short for the “GNU C Compiler”. GCC was developed by GNU to provide a free compiler for the GNU system.

It is permissible to compile non-free programs with GCC. Compiling a program with GCC and distributing the binary does not require you to make the program free software or release its source code. This is because the run-time library included with GCC comes with special permission to link it with your compiled programs without restriction. The legal rules for using the output from GCC are the determined by the program that you are compiling, not by GCC.

Though the compiler output may be freely used, program execution usually requires the use of facilities provided by libraries.
A program can be linked dynamically, so that all the individual object files produced by the GCC compiler are combined into a single file, with references to library code left unresolved until the user actually executes the program. This is the technique we will use for the Jikes compiler, making it a “work that uses the library”.

GNU/Linux libraries are distributed under the GNU Library General Public License. The license defines “work that uses the library” and the need for dynamic linking. Here is the relevant license text:

5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a “work that uses the Library”. Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.

However, linking a “work that uses the Library” with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a “work that uses the library”. The executable is therefore covered by this License. Section 6 states terms for distribution of such executables.

When a “work that uses the Library” uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law.

If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.)

Proposal

We propose to distribute Jikes in the same way as IBM’s Object Rexx, namely as a work that uses the library,
made available in dynamically linked form. The source code for Jikes contains no code that is part of the GNU system, and the generated object code that we will be distributing uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), so that there are no restrictions placed on its use other than those IBM itself includes in the license agreement distributed with Jikes.

Should IBM Release the source code for Jikes?

Back in 1998 Philippe and I communicated with our users via a Notes database that was web-accessible. Following the release of Jikes in binary form in mid-July, I started the following thread on the database:


Date: Sunday, 7/26/1998 12:02 AM EDT (Modified: Friday, 7/31/1998 2:44 PM EDT)

Subject: Should IBM release the source code for Jikes?

Author: David Shields


Category: Questions

First, we wish to clarify why we put out Jikes for Linux. It was not part of a grand strategy, other than Lou Gerstner’s request
The release of Jikes for Linux has — inevitably — resulted in requests for the source, raising the question, “Should IBM release the source for Jikes?”. No proposal has been made, and no decision has been reached. However, this is an interesting question, and we believe it merits serious consideration.

We accordingly invite any interested parties to submit serious comments, for or against. Though in general we try to leave as-is whatever users post to this Jikes Discussion Database, we are in this case going to delete (without comment) comments we deem non-serious.

Bjorn Ekwall on Reasons for making Jikes an Open Source project

The most cogent — by far — user response was from Bjorn Ekwall. Indeed it formed the basis of my proposal to IBM management to release the source code for Jikes.


Date: Wednesday, 8/05/1998 3:17 PM EDT (Modified: Monday, 11/02/1998 4:59 PM EST)

Subject: Re: Should IBM release the source code for Jikes?

Name: Bjorn Ekwall


Category: Questions

Reasons for making Jikes an Open Source project.

IBM seems to have made a commitment to Java and Java-based applications. This makes good sense, since that would make it possible for IBM (as well as for everyone else) to create revenue-generating applications that can execute on a wide range of platforms, including the platforms of competitors. For this to succeed, it is vital that the Java implementations on all relevant platforms are fully compatible. It is also very important that the base tools, such as a Java compiler, have a very high quality.

Since the base tools thus must comply to a common public standard, there should be no reason whatsoever to look for any marketing advantages in keeping the compiler or its technology proprietary.

The real gains of making Jikes an Open Source product is that this will ensure/increase the quality of Jikes and help to make Java become (in reality) the global, platform-independent, environment it was originally meant to be.

THIS should be the real goal of IBM (and for all of us) since it would pave the way for the applications. And there is where you will find the REAL money…

The good-will of the developer community, as well as the good press that would surely follow after an Open Source announcement is just icing on the cake. If I have ever seen a win/win situation, this is it!

Greetings,

Bjorn Ekwall

My reply to Bjorn Ekwall

This was a comment I posted as a reply to Bjorn’s comment:


Date: Monday, 8/17/1998 1:17 PM EDT (Modified: Monday, 8/17/1998 5:08 PM EDT)

Subject: Re: Should IBM release the source code for Jikes?

Author: David Shields

Category: Questions

This is my favorite so far. It tersely makes a strong case.

thanks,dave

Followup on Bjorn’s note

I must have sent an e-mail to Bjorn because the Discussion database contains the following entry:


Date: Friday, 10/16/1998 2:31 PM EDT (Modified: Friday, 10/16/1998 2:32 PM EDT)

Subject: Note from Bjorn Ekwall

Author: David Shields

Category: Questions

To: David Shields/Watson/IBM


Subject: Re: jikes comments

You wrote:

Hi,

If you’re the Bjorn Ekwall who contributed the note to the “Jikes OpenSource” discussion, I just want to thank you. Your note was one of the best, and has been circulated widely inside IBM.

Yes, I’m the one. I’m glad that my comments were appreciated, and even more so if they will make any difference for the future directions of jikes’ distribution policy.

Greetings,

Bjorn

Summary of recent comments from our readers

After the number of user comments had died down, I prepared a summary. I took this summary with me while on vacation in Maine in mid-August, reading over all the comments, and using the collective input as the basis of my proposal to IBM management to release the source code for Jikes:


Date: Monday, 8/17/1998 10:04 PM EDT (Modified: Tuesday, 8/18/1998 9:16 PM EDT)

Subject: Summary of User Comments on the Open Source Issue ( July 26 to August 5, 1998)

Author: David Shields

Category: Questions

User Comments on Should IBM Release Jikes Source:

Topical Summary of Comments Received July 26 — August 05 1998

Following the announcement of Jikes for Linux on alphaWorks on 15 July 1998, there were a number of comments made at the site slashdot.org. This prompted us to invite interested parties to post comments on the issue of releasing the source for Jikes in the Jikes Discussion Database. Most of this note consists of a summary of the comments received from 21 users, organized by theme. However, one comment made such a strong argument using so few words that we include it here in full. It’s by Bjorn Eckwall:

IBM seems to have made a commitment to Java and Java-based applications. This makes good sense, since that would make it possible for IBM (as well as for everyone else) to create revenue-generating applications that can execute on a wide range of platforms, including the platforms of competitors. For this to succeed, it is vital that the Java implementations on all relevant platforms are fully compatible. It is also very important that the base tools, such as a Java compiler, have a very high quality.

Since the base tools thus must comply to a common public standard, there should be no reason whatsoever to look for any marketing advantages in keeping the compiler or its technology proprietary.

The real gains of making Jikes an Open Source product is that this will ensure/increase the quality of Jikes and help to make Java become (in reality) the global, platform-independent, environment it was originally meant to be.

THIS should be the real goal of IBM (and for all of us) since it would pave the way for the applications. And there is where you will find the REAL money…

The good-will of the developer community, as well as the good press that would surely follow after an Open Source announcement is just icing on the cake. If I have ever seen a win/win situation, this is it!

The remainder of this note consists of extracts from the user comments, as entered, but recorganized using cut-and -paste into themes.

encourage java survival

If IBM really thinks that Java is the way to level the playing field in the software industry, opening the source to jikes is the way to go. Just like such great systems such as Apache, Linux, FreeBSD, Emacs, Gnome, et. al are built on a great open source C compiler (GCC), a great open source java compiler could also jump start java development. Most of the great free software hackers will not use something to build their software unless all the underlying components are also hackable and free.

Perhaps IBM could make money by creating tools on top of jikes that add value such as VisualAge. Ultimately IBM will benefit from having more developers hacking on jikes and hacking in Java which will run on IBM platforms. I think ultimately many hackers have a sour taste in their mouth after their beloved operating system OS/2 lost support to Windows NT.

Java is at threat from proprietary extensions. Leaving legal debates aside, those that want to see the write-once, run-anywhere philosophy working (which is the whole point of the Java-on-a-VM exercise) need to regain the initiative. Opening Java up to the free software community will not guarantee success, but will improve its chances.

There is no benefit to IBM in holding on to the world best Java to Class compiler and Class->Native ahead of time compiler for Java, if Java is NOT as success in the software industry.

If the Jikes suite (esp class->native) is released under an open licence (GPL or like Netscapish) then this may be the catalyst that enables Java’s long term survival.

The benefit to IBM is that they can have thier cake and eat it to. They can embed Jikes based technology into Visual Age, mainframe systems etc, but have the bulk of development and improvements done by the free software community. In addition to ensuring Java hangs around for the long term.

IBM has a significant interest not only in Java, but in 100% pure Java. Someone else made the observation that if IBM were to “drop the ball” and start implementing a third-party bastardization of the language, the participating developers would keep them honest.

I think, however, that this same phenomenon is important in its own
right: by having hundreds of developers working on Jikes, IBM can ensure that the they have Java’s Best Compiler under their control, and that is a TREMENDOUS step toward proactively preventing third- party basdardizations from taking hold at all. (“If Java’s Best Compiler doesn’t support it, well, then it’s not really worthwhile to use.”)

If IBM can ensure that 100% Java is the standard, then they have gone a long way toward ensuring their long-term interests in Java in general. The FSF will work to ensure free implementations of the Java(tm) standard exist. Work in this direction includes Kaffe, Japhar, and GNU Classpath.

Whether IBM wants to help with those projects by releasing the source for Jikes I don’t know. Perhaps there is something to be gained by creating an implementation of the Java platform which works better than the reference implementation written by Sun.

The BugParade provided by Sun is a public announcement of all their faults and failures in providing an implementation of the Java platform. Couldn’t IBM do it better? Could free software, that is GPL and LGPL licensed code implementing the Java platform do it better?

From what IBM has done with Java, it seems that IBM believes that widespread adoption of Java is important. I would guess that is because IBM believes that this will lead to more software being available on the platforms it sells and that IBM can sell Java developent tools. I believe that IBM’s interest would be best served by distributing free source code for the lowest level of Java development tools. (I know this discussion is specifically about the Jikes compiler, but I believe that the argument has wider significance.)

Distributing the executable freely gets you widespread use. Distributing source code freely gets you _really_ wide spread use. With source code, users will not only use the development tools on the platforms that IBM has already ported to, they will port to new platforms. This is the best way to promote widespread adoption of Java.

By lowest level of tools, I mean a Java compiler, Java interpreter, and standard class library. As these are already available for free, its not likely that IBM could earn much from them, even if IBM’s products are better than others. The profit for IBM in development tools in in the higher level and higher value-added tools, like the Visual Age environment. Thus, IBM can promote the widespread adoption of Java, and reap the benefits, for little cost.

Finally, Java faces a threat of incompatible vendor extensions discouraging adoption in much the same way as UNIX derived operating systems have. If Open Source development tools become the tools of choice, this will provide better protection from this threat than Sun can provide by protecting the Java name through legal means. This may at first seem anti-intuitive, since with Open Source products, anyone can release their own version. However, Open Source licensing prevents the extensions from being proprietary. Also, IBM can prevent confusion by retaining the rights to the use of the Jikes (or whatever) name for official IBM releases.

Releasing Jikes source would provide a high quality Java compiler to the Linux community. Since Java is “Write once, run everywhere”, that means that Linux application developers would be turned loose to develop applications that would run (with speed) on any OS. Now, with that in mind, let me toss out on the table the phrase, “It’s the applications stupid.” We’ve heard that phrase many, many times. If there are applications for an OS, then the OS sells. In short, if you release the source for Jikes, you will enable millions of developers to write code that will run on any OS (read that, “not necessarily Microsoft’s OS”). Wah-Lah — you’ve harnessed millions of application developers!!!

Open source software is generally of higher quality and reliability than software developed under proprietary models. Speaking personally, I have more confidence in the quality of a peer-reviewed (open source) system than I do of a proprietary one. This sentiment will become more prevalent as the strengths of the open source model become widely known. By making the Jikes source code open, IBM can increase the confidence of customers in the quality and reliability of the product.

I personally love the Java language and the platform independence it creates. I think it is important for third parties like IBM create tools for java that conform to the sun standard. Otherwise we are left with our only choices being a corrupted MicroSoft compiler or a dog slow sun compiler.

By opening the source, you would allow groups like Debian or RedHat to put the Jikes compiler in their distribution along side gcc. This would drop it in the faces of millions of Linux users. Looks good for IBM, and gives them a rather large base of testers, users, and coders. Java is stymied on Linux because there is not a good free Java compiler. The closed source versions are either slow, buggy, hard to get, not updated frequently, or not available for the hardware/software you run on — or a combination of these. This was recently shown by the need to release a libc5 and libc6 version of Jikes. Had the users been able to compile it themselves, this would not have been an issue. Java is a great language and is very important for the software industry, and if I’m not mistaken, very important for IBM’s future plans. But there are forces who would like to see Java fade away as it presents a threat to them.

Ok. First of all, I really think Jikes (and it’s debugger) would be great candidates for opensourcing. Why? Well, Java is having a hard time earning respect as a standard, as Sun is seen as just as tyrannical as Microsoft. Unfortunately, developers don’t have a strong forum with which to harness control of the language. If there was a GPL’d compiler out there, you can bet that *it* would conform to the Java standard, forcing both Sun and Microsoft to get their act together. Both of them seem to be a little misguided. A GPL’d compiler would also provide an excellent forum for developers to present ideas of features they’d like to see in the language. If people like the features, they’ll start using them, even if they aren’t part of the standard. After a while, it’ll force Sun and Microsoft (as well as other vendors) to include these features in their products in order to maintain compatibility. At the same time, you can bet that new features which aren’t of interest to developers will fall by the way side, as most Java developers prefer to write Pure Java code which runs on all platforms’s. If you think about it, what is IBM in the Java business for? In my opinion, it’s not to make money from support tools, but to finally establish a platform which allows them to develop solutions across all systems, both their own and their competitors. Therefore, any move which helps to entrench Java is a good move for IBM.

enhance IBM reputation

IBM needs to regain their reputation and this along side the apache announcement sure would go
a long way. :)

If IBM does not make money by selling Java compilers, there is no
reason not to release the source code: it wouldn’t diminish revenue. In fact, using open source will make Jikes a better tool. That can only *help* IBM’s reputation, and it can only *help* IBM’s Java programmers

IBM has created a good product. Jikes by overwhelming response is a good piece of software. And by releasing the source code you will gain a huge group ( 4-6 million Linux users alone ) of followers/fans who will begin to appreciate IBM and their works again. The trick will be to do this, and still make a profit. I don’t know the answer, all I know is that it is in IBM’s best interest to at least SERIOUSLY consider it. The amount of PR and fanaticism they will gain ( e.g. Oracle & Netscape ) will generate a far larger profit then just selling Jikes in the stores. Thank you for your time.

So the issue becomes “what does IBM intend to gain from jikes?” Generally, there are two ways companies benefit from software they produce.

  • Selling the stuff. The company makes money from each copy sold, the money is coming from the customer.

  • Leveraging the product to sell other goods and services. The company makes money because customers will buy other things to complement their use of the software, the money coming from sales that would otherwise go to other companies.

Since IBM is not selling jikes, (and have made no announcements to the effect that they intend to.) we can assume that IBM intends to use jikes to attract customers to other products and services of theirs.

There are many ways of gaining leverage from a product, but they broadly fall into two categories:

  • To enhance the customer’s benefits from another of your products.
  • To detract from the customer’s benefits from a competitor’s product.

The best example of the dichotomy is possibly the competition in gratis browsers between Netscape and Microsoft. Netscape distribute their browser freely in order to increase the interoperability and profile of their server products. Microsoft distribute their browser freely in order to create compatibility problems for competing operating systems, and in order to prevent the adoption of open standards which threaten to level the playing field which their monopolies have tilted. This difference is illustrated by the decision on Netscape’s part to open the source code of their browser, and Microsoft’s refusal to do so. The difference in approaches comes from the fact that Microsoft posseses monopoly power in their chosen markets, and preventing compatibility is a way for them to stop other companies from competing on an even basis, while Netscape are forced to engage in open competition in order to sell their products, often against the monopolistic powers of Microsoft, and their enhancement of compatibility is intended to allow companies to compete on merit – circumstances in which they have a better chance of success.

What the IBM management need to ask themselves is whether IBM gain more from fair competition, or from limiting the competition in the marketplace?

In my estimate, IBM have a lot more to gain by opening up the market and using their superior resources, knowledge, experience, etc., than from shutting forcing the market to fragment along compatibility lines, giving competitors the chance to win marketshare in the boardroom, particularly as they come more and more into direct competition with Microsoft, the usual victors in such battles, but perpetual losers in terms of technical ability.

But the decision of course, is not mine. It is up to the IBM policy-makers to decide whether they wish to compete in a technology-driven marketplace, or to risk everything on becoming the biggest fish in a technologically stagnant pond.

It is, however, immediately apparent which is better for their customers.

By directly supporting the open source movement, IBM would generate enormous amounts of positive PR from the development community. This could be leveraged in recruiting as well as product marketing. IBM has a long-standing reputation as a bureaucratic and less-than-ideal place to work. This could be an important element in changing that image into IBM as a nearly ideal employer.

attract co-developers to fix bugs, improve integrity

The Open Source model is being recognized as one of the strongest peer review software development models. Or to quote Eric S. Raymond “Given enough eyeballs, all bugs are shallow.” (from The Cathedral and the Bizarre an excellent peice that emphasizes the credibility and success of the Open Source “bazaar” style of development.)

The Linux community is famous for its high quality bug-reports and I am sure IBM will find that even just releasing the executable will be a large asset. However, much of the community’s bug-squashing ability
comes from the Open Source axiom: “Given enough eyes, all bugs are shallow.” If IBM releases the source code to Jikes, as I hope they do, they will receive in return bug-fixes of several orders of magnitude higher quality. (It’s hard to beat a bug-report that actually includes the patch that fixes it).

By opening the source for Jikes to the developer community at large, IBM can leverage the efforts of a large pool of interested developers with minimal cost (same IBM quality, fraction of cost). Using either Torvald’s or Netscape’s development model, the Jikes development team would be responsible for arbitrating the inclusion of contributions from external developers. This poses several advantages for IBM. First, the external work is contributed gratis and can be many times the possible effort of the Jikes team for minimal cost. Second, many users of your product will no longer call tech support to tell you about a problem they are having and wait for the fix. Instead, a large group of your users will call tech support to inform you of the fix for a problem they found in your product. Many eyes make shallow bugs.

I think this would be a win-win situation for IBM, who would get help from the open source community with Jikes while at the same time giving all of us the peace of mind of knowing that we’re working with a product whose integrity we can verify by going directly to the source.

Jikes could become standard

IBM Should release the source code for jikes, because it will be quickly the de facto standard and reference for Java !! The first compagny who will do this will be quickly the standard, IBM has a very good chance of becoming this standard.

If Jikes were released in Open Source, it could become the standard simply because it would be the easiest to enhance, and integrate with other products. Would IBM like to see Jikes become the standard Java engine used for products like Netscape Navigator / Mozilla? Or to provide Java integration with ANY operating system?

By becoming the standard, and allowing everyone to use it, Jikes would ensure a single operating environment across all platforms, if implemented properly (say, by IBM specifically stating this as a direction, and making a public CVS tree under their control to direct it.) This would allow IBM and others to implement java applications without worry about compatibility issues that are currently cropping up in the Java community.

IBM is betting heavily on Java. Owning the standard compiler (for the commercial world), while leveraging the ability of volunteers who have good ideas and no commercial pressures is a win-win situation. Opening up Jike’s source code would make it a de-facto standard among the many 1st-class developers that run Windows at work, but Linux at home.

IBM as solutions provider

I have seen a gradual shift in IBM’s business strategy (or at least as I perceive their strategy) from being solely a hardware and software provider to a “solution” provider. Where the emphasis is not on supplying the end user with a license to a peice of hardware or software but to provide the user with the tools and experitise to be successful. Although keeping code closed does make sense if you are guarding the code as the deliverable, it does not necessarily make good sense if your deliverable is a “solution.” The goal of solution based client-need analysis would be to provide the end user with the best tools and environment for the client to be successful. If making the tools that you provide to your customers (or use in house to develop specific solutions for customers) open source makes those tools better, or provides better documentation, or makes the tools more standard then such a move could be deemed valuable.

I am under the impression that IBM tries to make money by delivering solutions and consultancy to big-name enterprises. If this really is the case, then the management should agree on source code being
released: IBM can deliver a better solution if it has better (open source) tools.

attracts users since they can maintain it

Additionally, open source products don’t “go away”. If the company that originally wrote a proprietary program stops selling/supporting it or goes out of business, the users are basically out of luck and need to find a different vendor. In the open source model, a user can deploy a system with a great deal of confidence that some support will always be available, even if the user eventually needs to support it himself. Customers will therefore have confidence that Jikes has enough independence from IBM to continue as a usable product, even if IBM loses all interest in it.

We see some very good technology in jikes, but we’d hate to see IBM suddenly stop supporting it and our time invested in it wasted. At least if we had the source we can hack it to support the lastest whiz-bang java features if IBM drops the ball and suddenly starts supporting some corrupted MS standard.

I would like to see the source to Jikes released so that I can have the peace of mind of knowing that if I encounter a problem when using the tool, I can potentially hunt down the problem. I know that when software is released under the GPL (or other “open source” license, although I prefer the GPL) it immediately becomes subject to tons of bug fixes and enhancements from individuals all over the Internet.

From my point of view it is better if IBM releases the source code. It is a question of stability, for me. I will use an open-source java compiler even if it is relatively lower quality than jikes because I can trust it will have an assured development in the future. IBM may choose at some point to stop developing jikes for linux. If the source is there, there will be some developers taking over, so my anxiety is removed.

Nevertheless, I trust IBM very much (mostly following IBM Systems Journal lectures) and I would choose an IBM backed open-source product (like Jikes) in favour of any other.

ports to new hardware

Releasing the source code for Jikes would allow people (like me) to port it to other GNUish operating systems (NetBSD in my case). Porting to a new system is one of the best ways to uncover subtle bugs. Jikes has the potential now to become not only the fastest Unix java compiler but also the most robust.

make it easier for IBM to attract new employees

Aside from what I mentioned in the slashdot comment referred to by David in the main article here, I think that IBM might benefit from giving access to the code by having an easier time to find and select employees in this specific area. First, if jikes is fast, runs on every platform and the source is available, CS students will be delighted with it. Those actually delving deeper in it might not only contribute, they might be willing and eager to work for IBM. Aside from finding potential new employees there is also the aspect of selecting them. This will be greatly simplified when they have already displayed their skills by contributing to jikes. Given that finding good employees nowadays is a very serious bottleneck this could be a valuable argument.

effect on IBM revenues

I can imagine very well that those willing to pay at all might still be willing to pay IBM for jikes if IBM claims to support it.

Under the GPl or LGPL, IBM will not be able to make as much revenue from the sale of Jikes, should you decide to sell it as a product.

There are a number of different ways to make revenue from software, and licensing is only one of those. By adjusting support fees, Jikes can probably generate total revenues similar to a proprietary version. The lower cost of development and the higher quality of the open source product (a point that your marketing and pricing should be quick to take advantage of) both alter this equation towards excellent profitability, even if some revenues are “left on the table”.

I am no GPL expert, but I think that, if IBM releases jikes source under GPL it can _still_, as the copyright holder, deploy object-only versions (e.g. for other platforms)–though not also, binary only, improvements that came from other developers. In any case, it can sell jikes versions + source + warranties (of sorts) on those other platforms in conditions which, comercially, are almost identical to closed source programs (you don’t ask for licence-money, you ask for waranty-money; you don’t have to waranty anything else than the fact that what you sell is version x.x of jikes; but you are likely able to sell much more subtantial warranties; for example, that the very version you sell passes a certain set of 10.000 tests). Most people who can pay will use the warratied version, you can be sure. Most people who can’t pay will still be able to use your software–and, when they will become richer, IBM would be “the first name that comes to mind” for a Java compiler…

I think that the reason for not giving the source code, in general, is the fact that some other company can take the source and make a different (slightly better) product and sell it in competition to you. But, if jikes is released under GPL, other contributors are bound by the GPL to give the source of modifications. Everybody knows that jikes is made by IBM. A competitor taking it and selling (restrictive licences for) changes would fill his public image with shame. This is probably why it never happened, to my knowledge, in the history of open source…

platform for experimentation

Releasing the source code for Jikes would make it an excellent platfform for experimentation. For example, professor W. Kahan has written a paper (“How Java’s Floating Point Hurts Everyone Everywhere”) with a list of suggestions for changes to the Java language which would greatly improve Java’s floating point handling. When I attended the talk, he had a few pieces of a compiler written. If he had something like Jikes to start from, it would be much easier to test these ideas; or to implement them as a suggested new standard.

Jikes is Now an Open Source Project !

Following the release of Jikes as open-source I posted the following:


Date: Monday, 12/07/1998 4:20 PM EST (Modified: Monday, 12/07/1998 4:23 PM EST)

Subject: Jikes is Now an Open Source Project !

Author: David Shields


Category: General Feedback

Jikes is now an Open Source Project.

Get the source from http://www.alphaworks.ibm.com

Our new web home (with new content) is http://www.ibm.com/research/jikes

We’re currently (7 Dec 1998) featured on the IBM Home Page: http://www.ibm.com

We’re also (7 Dec 1998) a featured story at http://pcweek.com

We look forward to working with you to make Jikes even better.

Now that Jikes is Open Source, we’ll also try to work through the accumulated backlog of problem reports. We apologize for our delay in responding to them, but we thought it more important to first get the source out so we could work together more effectively.

dave and philippe

One Comment

  1. Steve K
    Posted November 28, 2006 at 22:13 | Permalink

    Any chance of seeing an addendum now that Java was open sourced?


3 Trackbacks/Pingbacks

  1. [...] This is a brief history of the Jikes project. More can be found at my Jikes Archives. [...]

  2. [...] From my Jikes Archive: [...]

  3. [...] Charles and I worked full-time on Jikes for almost four years. We had time to discuss other issues, especially while waiting as our chief [...]

Post a Comment

Required fields are marked *
*
*

  • Pages

  • April 2014
    M T W T F S S
    « Jan    
     123456
    78910111213
    14151617181920
    21222324252627
    282930  
  • RSS The Wayward Word Press

  • Recent Comments

    daveshields on SNOBOL4 for Linux
    Walter Rutherford on SNOBOL4 for Linux
    David Plummer on SNOBOL4 for Linux
    David Plummer on SNOBOL4 for Linux
    Thomas A Naegele on SNOBOL4 for Linux
  • Archives

  • Blog Stats

  • Top Posts

  • Top Rated

  • Recent Posts

  • Archives

  • Top Rated

  • %d bloggers like this: