27 Dec 2003 itamar   » (Master)

IBM seems to finally have a 1.4 JDK for Linux PPC, currently the only full 1.4 JDK/JRE available for PPC. While I dislike using proprietary software, I want to try running Freemind, a free software outliner.

Writing free software for proprietary platforms like Java (unless you make sure to test with gcj or kaffe), and even more so Mac OS X or Windows, is a far cry from writing for free platforms. It will often end up forcing your end users to use proprietary systems so they can run your software, and the underlying APIs you use are not under your control (and may be removed or canceled) until an open source reimplementation comes along.

The history of mTropolis, a multimedia system that competed with Director, is instructive (copied from here):

Originally a private company, mFactory, the creators of mTropolis, were bought by Quark, makers of Quark Xpress. Not long after Quark bought mTropolis, and only weeks before version 2 was due out Quark announced that they were killing mTropolis. Due to a Herculean effort by an extremely dedicated product manager version 2 was eventually released. Currently mTropolis is still used by several hundred die-hards and its capabilities have been increased by the development of third party mods. Unfortunately, mTropolis remains in limbo to this day.

What this doesn't mention is that a group of users tried to buy mTropolis from Quark, and Quark refused to sell it.

There a number of ways to deal with this:

  • For Java/C#, test and make sure your code runs on free platforms (kaffe, gcj, mono).
  • Use a cross-platform open source platform (e.g. Python) or write portable C or C++, implement a portable backend, and write OS specific bindings integrating with each OS. Abiword and Mozilla are good examples of this.
  • Only use libraries that run on multiple OSes (e.g. GTK2, which runs on Windows and X11).

Of course, for platform-specific coding you're pretty much stuck if the platform is proprietary.

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!