Windows – Perl GUI programming on Windows

perluser interfacewindows

I'm looking for tools for Perl GUI programming on Windows for educational/in-house development, mostly science related.

My first choice was PerlQt. A friend of mine was developing with Qt and C++ so I expected getting some help from him. Also Qt has a GUI creator and Linux has nice integration with Perl.
Unfortunately, I failed to make it work on Windows.
I searched for other options and am still not clear after search. This is what I've got so far.

  • Perl/Tk: broad user base, good documentation, relatively low learning
    curve. But old look and may not be active. Yet some articles say it is rebooted now and has native look.
  • wxPerl: native look. But steep learning curve. Not all wx library is ported to Perl. Some like it and some hate it.
  • Win32:GUI: native look, can use all Windows API. Needed force install because one of the tests was failed. Still works but not sure it was installed correctly.
  • XUL::GUI: using FireFox engine, CSS typing.

I could managed to install them and succeeded to show "Hello, world". Yet, I can't decide which one to go and the online information sometimes looks contradict each other.

Would you compare the tools in terms of human efficiency (easy to read and write codes), computational efficiency and the availability of GUI builder?

Best Answer

For real cross platform GUI programming I would suggest Prima or Tk. Neither look great, but they work.

Still, I think you might be better served (hehe) by using a web front-end than a true GUI these days; this is easy using a web-framework. I would suggest Mojolicious though other people do like Dancer. My primary reason for suggesting Mojo over Dancer is that Mojo comes with lots of functionality in one tiny package. Then again, this is the reason that others would recommend Dancer, so that's a toss.

A final consideration is that Mojo comes with WebSockets out of the box. This makes it rather easy for your webapp to feel more like a true application, talking back to the server and getting responses without reloading.

Edit: I now have a good example of a desktop application written with a Perl/Mojo backend and a web-frontent: Azawawi's Farabi. It is a text-editor, geared towards writing Perl. It's GUI is the browser, making it a simple cross-platform editor. I recommend it as a starting point for similar tasks.