Hi Nononsense
I've never used Kylix (or Delphi either) so I can't comment. There is a discussion today on
http://slashdot.org about Kylix. Apparently there hasn't been a new release since 2002 and there are no announcements about any new release, so caution may be advisable.
If you want a full gui IDE for development, then java is a good bet. Netbeans can be downloaded from
http://www.netbeans.org for free. It is a decent and stable development environment backed by SUN.
Alternatively for c++, qt (free from
http://www.trolltech.com) is used in the KDE desktop and also I've heard in Kylix. The code is portable to Windows and you can produce nice gui apps with it.
The TWS Java API just uses sockets for a TCP connection to the TWS, so a socket API would be no prob. The protocol is very simple and easily reverse engineered from reading the Java source or using something like ethereal to monitor the connection. The problem of course is that IB may change the protocol and update the API. The new API will work, but some implementation that reverse engineers the protocol may stop working.
As for PostgreSQL or MySQL I can't comment. I expect either would do the job unless there are some unusual requirements.
The only database I ever tried with VMWare was Ingress (underneath an X.500 server). There were no problems. Basically I think the only Windows software that's likely to be a problem with VMWare is applications that do funny things with the hardware. I see no reason why Windows DBs in general shouldn't work with VMWare, but it might be worth asking VMWare about specific products.
If you are using VMWare you can make portions of your Linux filesystem(s) availables to the Windows guest OS as Windows network drives (using Samba). This works very well. Samba is an excellent piece of software.
As for what I use personally, I am currently developing a technical market screener and charting pakage on Linux. Amongst other things, it can do decent backtesting of screening criteria using complex combinations of all the standard (and some more exotic) indicators. It's mostly wrtten in garden variety ANSI C (for performance) but charting is done in Java using the JFreeChart charting library
http://www.object-refinery.com. For the moment, it's just for my personal use.