LozzerJP
LozzerJP

Reputation: 856

What languages can be used to develop cross-platform, portable apps?

What languages can be used to develop cross-platform, portable apps?

(For those who commented on the vagueness of the question, I need this because I want to develop a database-driven corpus analysis tool for researchers who might need to use the tool on a university system which doesn't have runtimes (like Air) installed, and also prevent users from installing anything at all.)

It seems possible with JAVA, but to be honest, I'd prefer to avoid JAVA because it is so verbose (I usually program in Perl and Python).

Adobe Air looks very interesting (and Silverlight?), but it seems that you can only wrap up the Air runtime installer into a package with the app for deployment. You can create a silent install for the Adobe Air runtime with the distribution tools, but I can't find a way to make an Air app run as a truly portable app (when the Air Runtime is not already installed).

I have tried Python (with Qt) and Perl (with Tk/Tkx) and can create cross platform apps that can be packaged into a self-extracting executable (on Windows) that copies the contents to some temporary folder and runs the app from there. These are the best options I have now, because the user doesn't need to know what's going on. They just double click the executable and the program runs (with no install step). But, getting Qt working on OS X is quite difficult, and Tk seems too limiting for modern GUI development.

I have also tried Real Studio (previously called Real Basic) and Runrev Live Code (previously called Runtime Revolution). Real Studio produces exactly what I want, but the language has some critical bugs that make development, in my case, impossible. Live Code uses a quite unintuitive language for any regular developer (they say it's easy to learn!), and it's also rather limited in functions.

I have been investigating this problem for a long time. Any advice would be very welcome.

==Update==
I've looked into the problem more and I have now figured out how to generate completely standalone (portable) apps using a 7zip SFX package containing my code and the Java JRE.

On the Python front, rapid developments on Qt and Pyside now make it easier to get Python + Qt applications working on Windows, Linux, and OS X. These can be wrapped with the PyInstaller tool that also works on all three platforms.

Upvotes: 1

Views: 1817

Answers (3)

thSoft
thSoft

Reputation: 22650

JavaScript. :) Of course, then browser-dependency comes instead of platform-dependency...

Upvotes: 0

Rob Kam
Rob Kam

Reputation: 10258

C is used for developing portable applications.

In GCC, the GNU Compiler Collection, C is available for a variety of platforms, and GCC also supports cross compiling.

Upvotes: 0

Brian Clapper
Brian Clapper

Reputation: 26201

If the JVM is appealing to you (e.g., because of the cross-platform UI), then you have other choices besides Java, including:

  • Groovy, a dynamically typed JVM language
  • JRuby, a pure JVM port of Ruby
  • Jython, a pure JVM port of Python
  • Scala, a hybrid functional/O-O language with a powerful type inferencer, terser syntax than Java, compile-time type safety, and other features.

All of the above will interoperate nicely with existing Java libraries. All will allow you to use Swing UI components directly. All will run anywhere there's a JVM.

Upvotes: 1

Related Questions