Tournament Directing Software Platform Discussion
This discussion arose on the Tournament Directing Software Requirements page, when "multi-platform" was mentioned:
Bignose: I'll be writing for the GNU/Linux platform but I will choose tools that can allow the program to run on Windows and Mac also.
Migeru: A related point here is to make it open-source, with a text-based interface on top of any Windows/Mac GUI. A graphical toolkit that is supported across platforms (e.g. QT) should be used for the GUI.
- Bignose: Thanks, it was always a goal to make and use free software for this project. I omitted it simply because I had mentioned it already in the discussion that led to the page, but hadn't noticed that it wasn't listed as a goal. Fixed now.
Velobici: Rather than use QT or any other graphical toolkit and language that compiles to a binary format, I have been looking into writing the code and UI in Java 1.3. The purpose is to replace WinTD, the program most often used for running tournaments in the United States.
- Bignose: Java is a poor choice for programming free software, since the JDK and JRE for anything but very primitive versions of the Java specifications cannot exist as free software. The Debian Java FAQ, at http://www.debian.org/doc/manuals/debian-java-faq/ch2.html, explores the issues of free software Java implementations in some detail. (In short, since about Java 1.1, Sun has attached increasingly restrictive licenses to the Java specifications that make it impossible to implement in free software.)
- is that URL correct? where is the information related to free software Java implementations?
Velobici: Sun Microsystems has devoted a considerable amount of effort to aiding both Linux and FreeBSD port the Sun Java tools to both platforms. Sun has also helped the Blackdown group. In these cases, Sun has made their Java implementation source code available to the teams involved. This cooperation between Open Source and Commercial software organizations is a good thing. Just as the cooperation of other organizations (Oracle, Peoplesoft, Netscape to name a few) with the Open Source software community is a good thing. The acceptance of Open Source operating systems by commerical software vendors is an important step in getting Open Source operating systems adopted by an increasing number of our employers.
Bignose: Since many people seem to have an opinion or want to suggest a specific GUI toolkit, I'll just say that I fully intend to keep the UI separate from the functionality that actually manages the tournament. That way, it will be possible to have several different interfaces: text-mode, GUI, web, whatever people want to write -- all accessing the same functions for running a tournament.
However, since the majority of users will likely want a GUI, that will be the first interface I write. As for what toolkit to use, I'm familiar with Python, and the wxWindows toolkit (via the wxPython extension) easily allows for native-toolkit GUIs in different operating systems. I like them all, they seem appropriate, they're familiar to me, they're all free software, so it's unlikely I'll be choosing another platform for the GUI I write.
Others can write whatever interface they like, using their tools of preference -- my main goal here is to write the functionality, as free software, so that we can stop re-inventing the wheel every time someone wants to make a program to manage a tournament.
Blake: Actually, I think curses (pdcurses, ncurses, whatever) would be a good choice. "TEXT!" scream the masses! It's evil! :P But no, text based programs can be very convenient. In fact, I have often wondered about the merits of creating an IGS client implemented using curses; and, for a tourney director's "helper" app, it seems doubly appropriate. It would increase portability, avoid Java, and would run really, really fast--even on that old 486DX2 you still have sitting around the office somewhere. :) Always good to resurrect old computer equipment. Also, there's just something about the aesthetic of a glowing CRT with a few function-key menus and some text windows open that just screams 'I am smart!' :P
If you want a curses IGS client, igc is apparently still obtainable: ftp://www.joy.ne.jp/welcome/igs/Go/igs_clients/Unix/