Pretty Perl

Contrary to popular belief and utter media ignorance, Perl doesn't just offer several powerful web frameworks (I'm totally in love with Sebastian Riedel's Mojo), it also has extremely powerful and underestimated GUI and graphic's bindings. Recently I toyed a little with the java-based "Processing" and while I was cursing several Java classes I was somehow too stupid to get up and running, I realized that I could have all the shiny and pretty shapes and animations in Perl the easy way. (What's missing is the overall well-rounded integration of Pretty Perl, sugarcoated with a nice GUI.)

Here's a little round-up of Perl all being pretty:

A reminder to everyone who forgot: The extremely powerful and flexible Image Magick still comes with the Perl API Perl Magick . Use it. If you need inspiration what to do with all the bitmap goodness, check out Mac-based "Pixelmator" which is a showcase of adding a GUI to Image Magick and make it an extremely impressive bitmap editor. (Why didn't the Open Source world do it with Gtk?)

Which leads us to the most impressive work the GtkPerl team has done over the years. Gtk2Perl is a must-install.

Another family member of GtkPerl is Cairo, the SVG library which also can produce PDF output and draw pretty things. ;)

Everyone wanting a basic browser written in Perl to get a look on Webkit-based rendering, can install Gtk2::WebKit which is a fully fledged Webkit view. If you have Flash installed correctly, it even does Flash out of the box. (I put a little example in my pretty Perl github)


gtkperlwekbit.png


If you're more of a KDE-kind-of-person: Yes, there is someone working on a new QtPerl version to support Qt/KDE 4.x.

Another really impressive library is "Clutter". Based on OpenGL and Cairo and that way bringing together the best of all worlds, Clutter can act as a canvas to be used in canvas-lacking Gtk. The Clutter module awaits your download.

While we're at it: Yes, there are Perl bindings to OpenGL - a project named POGL. If you're interested in the usal speed competitions between programming languages, read the POGL benchmark carefully. POGL is also available on CPAN

Another interesting library is libaosd which essentially allows no-fuss drawing directly on the screen. Of course, there's a X11::Aosd module on CPAN.


libaosdperl.png


If you need the average run-of-the-mill canvas to use with Gtk, today's choice  (besides Clutter) is the Goo::Canvas module on CPAN.

Last, but not least - if you're planning to re-write OLPC's "Sugar" desktop in Perl, you'll have to get the X11 modules on CPAN There's the traditional X11::Protocol and I just found a new X11::Xlib module

If you are more into classics: Yes, TkPerl still exists.

And I totally forgot the Wx bindings for Perl which many people prefer over native widget sets.

7 Comments

Pixelmator does not use ImageMagick, it's a GPU-powered editor which uses Quartz.

wxWidgets (and hence its Perl bindings) uses native widget set, whatever it is for the current platform, this is its whole point.

occupant: Well, at one time, it sure was, and I wouldn't be surprised if a good portion of it still is.

http://www.tuaw.com/2007/10/04/tuaw-interview-the-pixelmator-team/

Bummer, my bindings for the Enlightenment Foundation Libraries didn't make it!

http://search.cpan.org/perldoc?EFL::Elementary

What it looks like:

http://trac.enlightenment.org/e/wiki/Elementary

Speaking of Gtk2::WebKit, I'm dying for Wx::Perl::WebKit to become a reality so that we can drop WebKit into Padre and start competing with Adobe AIR.

Maybe they've changed it, but IM is still listed in the specs:

http://www.pixelmator.com/specs/

Doesn't matter, really - it would still be a not-so-bad idea to add a shiny GUI to IM.

Krita is using IM as well, btw. - but I think for image filetype support only.

Yes, because it's just a repost of something older to test the blog without just writing "hello, I'm a boring test" :)

I also forgot to mention the SDL-folks.

And there's a XCB binding now as well.

Leave a comment

About Su-Shee

user-pic I ♥ Perl.