Here the critical requirements as far as I see them:What is the programming platform of choice for such a project?
- Free to use, no royalties, compatible with open source
- OS independent, supports Win, Mac, Lin, Mobile(?)
- Standard/well used libraries for network communication and graphics display
- One or a set of languages that we understand or that we want to learn and that makes development easy (by nice design patterns)
- Used tools should be modern but widely utilized so the chances to attract talented programmers are high
1. Java
Combined with Swing (graphics) and Netty or Kryonet (network) we would get pretty much of the above. Creating installers is a hassle, the OpenJDK might have some incompatibilities with the OracleJRE and the language is said to be missing some features, being overly complex with Swing and being overly verbose. But I know it well (my best language currently) and it's OO allows some nice design patterns and it's common enough to attract other programmers. More or less I was decided on Java in the past time.
2. Python
With a graphics library (wxPython, pygame, PyQT, ...) and some network support (Twisted, ..). Python is a nice language, development is easy and I am getting better and better in it, although I am still much less professional than in Java. It runs on many OS and has sufficiently many libraries. Performance is probably not better or worse than Java. However I fear the libraries aren't that mature and my limited experience with it.
Extra: With PyjamasDesktop/PyWebKit one could develop desktop and browser applications simultaneously.
3. C++
C++ and a graphics library (SDL, wxWidgets, QT, ...) and some network support. Well for me it's too low level. I don't want to programme in a compiled low level language anymore unless I need to optimize a single task for performance. It's certainly possible but increases programming time considerably while giving enhanced performance which is probably not needed.
4. Browser of your choice/Server
With Javascript and HTML 5 as frontend compatibility is no problem anymore. Graphics and network come for free. The backend would have to be some sort of server in a language of your choice (either Java or Python). However I would only have access to standard webspace offering php and php is extremely cumbersome to programme.
5. Browser add-on
Probably Firefox and Chrome only. One could develop and add-on so graphics and network come for free probably but compatibility is limited and we would be dependent on the future development of the browsers.
So from all this the best choices are either Java or Python or a Browser/Server combination. Until recently I was convinced that Java is what I want (what I can), but since I learned more and more Python ... the matter is more open again.
Alternatives and comments are greatly welcome.