Examine for portability the following toolkits under these OSes: Windows NT, Mac OSX*, Unix-like.
*I sadly don’t have a Mac, although I would really love one. So a OSX binary of some form will have to pass.
GTK+ — C, C++, Perl, Python, Ruby, PHP, C#.NET (Java bindings also avail but seem to be gnome-centric)
Qt4 — C++, Perl, Python, Ruby, Java (C#.NET and PHP bindings seem to be questionable and only C++/Python and possibly Java bindings can be depended on).
WxWidgets — C++, Perl, Python, Ruby, Java, C#.NET
Swing and SWT would be considered if they were available under more languages !!!
Evaluate portable standard/add-on libraries to each language for the following capabilities:
String handling (they all do well in the language standard)
Regular Expressions (Only Perl and Ruby get this great imho)
XML Processing
Network programming — both sockets based API and protocol support (IMAP, POP, HTTP/S, FTP)
Database handling — must support MySQL, SQLite, and some form of flat file.
Basic compression and archive format support (e.g. tar; zip; gz; bz2; lzma)
Inter-Process Communication (IPC) methods and related process control (e.g. fork(), exec(), signal(), kill() type routine-families).
Ease of use and deployment
Goals:
Build up a standard frame work of toolkits/libraries/etc that are portable across both my general operating environment and the various languages I use
Attempt to standardize myself on few languages rather then rubber banding between various programming languages + sh/awk/sed/friends
Ensure full development environments are available to me under FreeBSD 7 and Windows NT 5.1 (e.g. I can code from either machine and not change tools)
At least one language for scripting/prototyping and one for more efficient execution when implemented in that language (e.g. 1 interpreted + 1 compiled)
and try to stay sane along the way without writing a few libraries in the process >_>