Simple GUI application
I would like to know if there is a way to create a very strong GUI application with a graphical interface (it doesn't even have to look good) that will work on a fresh install of Windows Vista and OS X with no other installations the user wants . I would rather not use Java (just out of personal programming preference). I will use it, although this is the only way. In particular, I'm wondering if I can write a swing app with Scala or Groovy and run in windows without having to install them. Sorry if this is a stupid question, I am an Obj-C developer by profession.
source to share
You can package the Scala banners into your own, which should work as long as Java is installed (usually on a third-party Vista or OS X installation). If you are using Java Web Launch, no installation is required outside of Java itself. Plus, if you're going to install your own code, why not just copy along with the Scala jars?
If you really mean a fresh install - nothing other than what the OS provides - then no, I don't think so.
Edit: You always have javascript in your browser. I'm guessing this won't cut it for what you want?
source to share
If you really don't want to install anything (or carry anything in your app) then write your app as a web app (a javascript app perhaps). Then any user can launch this interface from any machine with a decent browser. But then it will require you to host the application somewhere.
If that's not an option, you can build your app as a single html / xhtml file containing a standalone self-modifying javascript app (like TiddlyWiki , which I use a lot). The user can then download it on their computer, point their browser at it, and voila.
If you are combining javascript with HTML5 (and if the user has an HTML5 compatible browser like safari), your application can use localStorage to save its state to the user's machine (thus no longer needing to self-modify to save state like TiddlyWiki does .)
But that would violate your rule of not downloading anything on the user's host machine. This is a chicken and egg problem that has no solution as each OS implements its own set of application libraries. To support multiple platforms should use a layer that abstracts the differences between operating systems, be it a vm (like JVM, Ruby or Mono) or a set of libraries (Qt, Gnome).
source to share
Scala and Groovy will have the same deployment problems as Java; they all require a JVM to be installed. Usually you need to install the JVM first (which is not included with Windows) and then install your program. However, Java is included in OS X.
You can use Ruby or Python and one of the cross-platform libraries (like wxWidgets) and compile them into an executable file that includes the entire set of runtime libraries (like all ruby and python).
source to share
I had success with XulRunner
There's also some guidance from these questions that I asked
Creating a Cross Cross Platform Application
Building a XUL app a-la SongBird
XULRunner is pretty cool when you get into it, but it gets confused at first (I thought) .. people on mozilla google groups are really nice and helpful though!
source to share