Reputation: 707
I'm looking to make an app and system that takes a bunch of user input for a command line program. This ranges from the programs/scripts they wish to run, the compiler to run it with, how to handle the results, etc.
I've been looking at various cross platform solutions for this and I'm looking for some suggestions.
Qt seems like one solution, however the build once and compile for all mentality doesn't really seem to be the case. I also am unsure of how accessible and easy it will be for a user to use the program on their machine. I'm unsure if there is a Qt runtime so to speak that a person needs to install ahead of time.
Silverlight is another solution. The fact that it is web based is great, however I've never been huge with Silverlight. Despite this, when thinking of who will use this, Silverlight might just be the way to go as it is an app that can be accessed anywhere.
Those are really the straightforward "This is a GUI and you do this with it" solutions. I'm pretty confident that I could hack something together with Django/Python and build a web engine. Yet the server running this code would have to be Windows based which isn't really an option. (The reporting feature of this uses a COM library extensively).
I may be over thinking this and trying to come up with an overkill tool here. Perhaps a PHP app will work? Can PHP run local command line interfaces, that is to say, local to the person connecting to the PHP page?
To elaborate a little bit more on the app. I already have a harness written that handles the reporting. The program/service I am interfacing with is HP Quality Center and the library I spoke of earlier is the OTA library. Programatically doing anything with QC really restricts you to Windows as far as the machine that reports to it. This harness allows pretty quick reporting of any kind of test in any kind of language to Quality Center. The idea with this tool is to allow people to send data to either a DB or a shared directory and have a listener on a Windows Machine constantly look for new data to report to Quality Center.
As a result there are several options, and I've listed above the ones that have initially jumped to mind. But I would really appreciate some input.
Upvotes: 2
Views: 579
Reputation: 9341
With Qt, you can either just throw the used libraries in along with your app, or link your app statically to the Qt libraries. It's not like Java where you have to install this huge virtual machine. I'm not sure why you say that "build once, compile anywhere" isn't the case. If you're just using the Qt framework (which is quite extensive) it's pretty rare to run into a situation where your code won't be cross platform (unless you're using one of the few platform-specific classes, which generally have the platform in the name).
Silverlight doesn't seem to have much of a future left. Microsoft has said that HTML5 is the way forward, kind of slapping their own product in the face. It's also not incredibly cross platform (Moonlight isn't really installed by default on most Linux distros, and isn't incredibly reliable anyways).
There's also Java, wxWidgets, GTK+, and some others. Personally, I'd recommend Qt. I've loved developing with it, and apps written with it aren't immediately obvious (if you can even tell!) not native.
It seems odd that you're wanting to build a "cross platform" GUI, but then say something about the tools only running on Windows? And a web server can't execute arbitrary commands on the machine that's running the browser (unless the browser is just connecting to local host).
Upvotes: 1