Thanks for keeping us updated. It has been an interesting journey.
Most Recent
Forum Legend
Following
New Comments
Locked Topic
Pinned Topic
https://github.com/scalachessgui/scalachessgui
- chess GUI written in Scala, running on the Java virtual machine
Java is rightly criticized for being too verbose and making to many concessions for maintaining compatibility with its older versions. Yet the virtual machine concept which allows platform independent coding and close to assembly level byte code execution, its rich supporting libraries like Apache commons, and its very advanced JavaFX GUI platform are still too appealing to simply drop them for the problems with the language behind them.
The way out can be to switch to Scala, which is a language that is fully compatible with Java ( can use all existing Java libraries and code ), compiles for and runs on the Java virtual machine yet is a flexible and advanced modern language that incorporates elements of object oriented and functional programming in a coherent way.
It comes with an incremental compiler and build tool called sbt ( simple build tool ). This is very handy since it can detect source code changes and recompiles the code automatically, unlike conventional build tools it uses the Scala language itself in its build files and with its plugins it can package the program in a Java compatible jar containing all its dependencies ( very useful trait, that was not present in the Netbeans IDE when I finished dealing with it ). Also unless you have a high end computer the Netbeans IDE has become too complicated and slow to startup and run, this is not the case with sbt.
With Scala you have to pay a one time price by learning some concepts and way of thinking that were not present in Java, however once you have paid that price you can feel in paradise, since coding has become much more flexible and less verbose ( enthusiats say that you need ten times less lines of code to express the same thing, which is true in many cases, but even if - as moderates say - on average you need half ot the lines and more importantly less special characters and unnecessary restraints, then you are already much better off ).
By now I have managed to rewrite my old Java GUI ( http://www.chess.com/forum/view/general/lets-write-a-chess-gui-from-scratch-in-java ) almost entrirely in Scala ( the result you can find in the link above ), I only kept the engine adapter and base32 encoding from the old code.