I have been programming in couple of languages lately Java, C++, PHP, Python, and even .NET on Windows. Among them I noticed that Java and .NET applications are very close to being portable. The end user will just have to install Java or the .NET framework and run the executable and the application just works.
But when it come to deploying applications for Mac or Linux, things gets a little bit tricky with C++/PHP/Python. Ideally Java would be the way to go but it also has some limitations. Because a Control that is already done and available in .NET may have to be created from scratch on a Python/Java app. So, even though I love to program in Python, I end up choosing .NET because it is already done. But it leads to a situation where I leave out a great number of Mac/Linux users.
C++ is the ideal solution for making Cross Platform applications but static linking and library dependencies gets ugly real quick. And frankly end users don't like installing Qt or updating their environment variables, etc... because they just don't have the knowledge or perhaps the courage to do so. So, what I am after is a universal solution... that might achieve the following:
- Cross Platform Solution
- Depending on the User's OS it automatically installs the required libraries in one shot
Some of the solutions that really mimics this behavior are Vagrant or Composer for PHP. The script reads the dependency definitions and grabs everything so when you execute the application everything is already present.I don't see anything like that for desktop development. I would love to have a solution where upon executing a script it automatically installs Qt5, WxPython, Python, whatever my application needs.
InstallShield, etc... would be overkill... any open-source alternatives?