Boo!

November 29, 2007 at 9:41 am | Posted in GIMP, Programming | 4 Comments

There seems to be no end to the .NET languages that can run on top of GIMP#. Yesterday I implemented my first plug-in in the Boo programming language. According to the homepage: “Boo is a new object oriented statically typed programming language for the Common Language Infrastructure with a python inspired syntax and a special focus on language and compiler extensibility.”The plug-in is the usual average color filter. I had some minor struggles linking the plug-in against GTK#. However you can use -pkg:gtk-sharp-2.0 as a command line option to the Boo compiler (booc), although this is not documented.

And the performance of the plug-in? Well, it’s exactly the same as the Nemerle and C# version. I suspect that the overhead of the actual calculation of the average color is minor compared to iterating through all the pixels of an image. I will try to verify this later. It still surprises me that the IronPython version is a lot slower. One thing I noticed is that this plug-in does ‘something’ at startup that takes quite a lot of time. Once it starts calculating the progress bar shown in GIMP increases about as fast as in the other languages.

To summarize: on top of GIMP# I know have C#, Java (IKVM), Python (IronPython), Boo and Nemerle running. Next targets are IronRuby and Visual Basic. You can still vote for your favorite GIMP programming language here.

To be continued…

About these ads

4 Comments »

RSS feed for comments on this post. TrackBack URI

  1. “IronPython version is a lot slower”

    Which is not that surprising since compared to the other three languages you cited (Boo/C#/Nemerle), IronPython is the only one who is not statically typed ;)
    Boo being the only one with the possibility of mixing static typing and dynamic typing (through use of duck type or -ducky compiler parameter).

    “However you can use -pkg:gtk-sharp-2.0 as a command line option to the Boo compiler (booc), although this is not documented.”

    Thanks for the report, I will get it fixed by tonight :)

  2. “It still surprises me that the IronPython version is a lot slower.”

    It is not that surprising considering IronPython is the only languages from the 3 you cited (Boo/C#/Nemerle) which is _not_ statically-typed.
    Boo is the only language in this list which can have both static-typing or dynamic-typing (with the use of duck type or -ducky compiler parameter).

    “you can use -pkg:gtk-sharp-2.0 as a command line option to the Boo compiler (booc), although this is not documented.”

    It was documented on the man page (man booc) but not with “booc -help”, this is now fixed in SVN :)

  3. Thanks for the info. And very nice that the ‘problem’ is already fixed in SVN! I haven’t played that much with Boo yet, but it looks like a very nice language to me. Writing a GIMP# plug-in in Boo was very straightforward.

  4. Boo is FAR more than your quote from its website… ;)
    After participating Rodriguez (…did I write that correct…?) presentation yesterday in Madrid I tend to think of it as “the meaning of life” for developers :P

    .t


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Blog at WordPress.com. | The Pool Theme.
Entries and comments feeds.

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: