C, C++, Java, Python, Mono (C#)
Cross-platform programming language, is still a little bit far away from me. Recently, I ported Prayer Clock to other programming languages. One of the reasons is to learn more programming languages, another reason is trying to solve the cross-platform problem.
C and C++, my most preferred language(s), with the help of GTK+, can perform well in Windows and Linux. But I didn’t tried on Mac OS X. This is because it needs to be compiled on the OS, rather then cross-compilation. That is why, I ported it to Java before. Though Java claims be WORA (write once run anywhere), yet running in different OS might produce “some” problems, such as minimize to system tray in Linux. And, running on Mac OS X also does not minimize to the system tray as expected.
Then, I tried to port to Python recently. Translate the source code from C/C++ to Python is interesting. Especially when I am using PyGTK, translating from GTK+ user interface is really easy, since it is a scripting language, with dynamic data typing. I tried to use Python since it is running with an interpreter, thinking it is possible to run as cross-platform. Yet, I haven’t tried the PyPrayer Clock on Windows and Mac OS X. But I found that, running PyGTK on Mac OS X is not that easy as it is in Windows.
So, next try, I choose to use Mono (C#). I choose it instead of .NET Framework because firstly, .NET Framework is a bloatware for me; secondly, I prefer GTK# rather than Windows Forms. Translating the source code is even more easier, since C# similar to C, C++, and Java. Since I am using GTK#, GTK+ can be translated easily as well. After finish compiled on Linux (Ubuntu), I tried to install Mono in Windows, and tried to run the pre-compiled binary (by Linux) on Windows. However, fail! I thought since Mono is using .NET Compatibility Class Library, there should have no problem, but, it is still a little bit far for me.