Cross-platform desktop development options: Introduction
Cross-platform development for desktop applications is becoming increasingly important. Chances are that your application user uses OS X, Windows, Linux or has a combination of these. For example – it is not uncommon for people to have a Windows based desktop and an OS X laptop.
In the recent years OS X platform really took off with the introduction of Intel based Macintosh computers. This makes the OS X platform hard to ignore.
As a developer – you have a few tough choices to make, but by far the toughest one is selecting the right development environment.
Wikipedia has a nice entry for “Cross-platform” which includes some of your development environment options
http://en.wikipedia.org/wiki/Cross-platform
We went through this “evaluation and selection” process recently and made sure we evaluated many cross-platform options carefully. Remember – once you commit to certain language or tool – it is very hard to change it later so make sure you weigh your options carefully.
Here is a list of more interesting options we have evaluated in no particular order
- Object Pascal with Lazarus IDE
- Object Pascal with Delphi IDE + wxForms on Windows + Free Pascal for OS X
- Microsoft Visual Studio + C# on .NET platform, Mono on OS X/Linux
- Java with Eclipse and NetBeans
- wxWidgets and C++
- Qt and C++
- RealBASIC
I have to say that we come with a small baggage. We prefer Object Pascal over other languages evaluated here so we evaluated more options that would enable us to use that route.
As you can see – we evaluated many different languages. Object Pascal, C++, C#, Java and BASIC. While thinking about a certain language – think about libraries/SDKs that are available for that language. Certain GUI platforms have bindings for different languages – make sure you understand what is available before you commit. You do not want to be spending days writing a PushButton class on your own.
The process of selecting our tool of choice was tedious, but it definitely paid off. I will try to summarize the process, tool by tool and hopefully help you in making your decision.
Next: Cross-platform desktop development options: Lazarus and other Object Pascal options