I’m slowly working on MTG Forge version 2. First I started version 2 in Java, then switched to Python because it seemed so cool, but now I’ve switched back to Java. Python is very, very cool but I keep thinking “in Java”, so one night I got frustrated and said to myself, just change back to Java.
For version 2.0 I knew that I wanted a better user interface, but I wasn’t sure how to draw simple graphics with Java. I switched to Python because I saw a very good user interface written with it. But learning a new language from scratch and trying to program a large program with it at the same time is a little bit futile. It is like me saying, “Why don’t I write a novel in Spanish.” I could write a novel in Spanish but it would much easier if I just wrote in English, a language I already know.
You, the user, won’t notice any differences between Java or Python. Most people just want something that is easy to use, which usually means having an attractive user interface. If you have used other free software, games or otherwise, you will probably notice that most of the time their user interface is a bit lacking and hard to use. As I have said before, writing a good user interface takes a ton of time and effort.
Most of the time one person, or group, will write the user interface and another person, or group, will write the rules engine. A programmer who is good with both the front end, the user interface, and the back end, the engine, is rare. As you might have noticed, most programmers and geeks have a hard enough time dressing themselves so writing a good user interface is pretty much out of the question.
Having a good-looking user interface is like a car with a nice, shiny paint job. The paint job has nothing to do with how the car runs, but it sure does help.