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…

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

Create a free website or blog at WordPress.com. | The Pool Theme.
Entries and comments feeds.

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: