All you who complain about the choice of language clearly have NO programming experience whatsoever. Use some JNI (which isn't that difficult) for the most crucial parts if necessary, and OpenGL for rendering and it would run just as fast as any other language.
Bad algorithms/datastructures makes code slow most of the time, so in that case Java is a much better choice than lower lever languages.
http://kano.net/javabench/data - The difference is either in Javas favour or basically no difference in everthing more advanced the a straight number crunching loop.
http://kano.net/javabench/ - Try for yourself. I'm going to do it now, just out of curiosity.
Edit: I didn't quite like these benchmarks. Including the startup time for the JVM? Nonsense. Second, they are still mostly number chrunchers, not real software. If one were to draw some graphics, using hardware through OpenGL, the performance would probably have been almost the same.
You criticize other people for having no experience programming and say that Java is a better choice than lower level languages, but I have to ask, do you program emulators? Because in my opinion emulators have done quite well without being written in Java, and really Java doesn't offer very much to improve programming emulators unless your mindset is heavily slanted towards it to begin with.
Emulators are also a lot closer to "number crunchers" than a lot of the "real software" you might be thinking of.
And using JNI completely defeats the purpose of using Java for this team, which is for portability.
I explained why a Java based recompiler has potential shortcomings and is inflexible compared to what you can do if you roll your own. You can take it or leave it. I'm not sure JPCSP will actually go that far though.
I don't think speed is the most important concern when the emulators are barely running demos. I like to make software work first, then run fast (and from the looks of it, thats exactly what the JPCSP team had in mind, looking at hildes reply in this thread)
My experience hardly meassures up to what you know. From what's worth mentioning, I've worked on a NSF-emulator/player, which was put on hold but it gave me at least insight into what emulation is.
About JPCSP, I really can't find information that they chose Java due to portability. I'm browsing through their forums but i can't seem to verify that claim at all (neither from hilde in this thread either). Introducing JNI for number chrunching parts (as the JPCSP admin said he might on their forum) doesn't hurt portability the slightest, as compiling it again is trivial. The system specific code could hurt portability, and using Java is one convenient way to avoid those problems.
But thats not the reason I would have to chose Java. It's just usually more convenient to work with higher level languages, less bugs, faster developement, thus more time over for important parts.
But OK, i came on too strong. Due to the nature of emulation, C/C++ is probably very suitable in many ways, but i still don't think it's a bad idea at all go work with Java on this project.