Blog article about Scheme usage in GIMP
This discussion is connected to the gimp-developer-list.gnome.org mailing list which is provided by the GIMP developers and not related to gimpusers.com.
This is a read-only list on gimpusers.com so this discussion thread is read-only, too.
Blog article about Scheme usage in GIMP | Michael Schumacher | 05 Sep 14:59 |
Blog article about Scheme usage in GIMP | Martin Nordholts | 05 Sep 17:57 |
Blog article about Scheme usage in GIMP | Ofnuts | 05 Sep 21:39 |
Blog article about Scheme usage in GIMP | Martin Nordholts | 06 Sep 08:55 |
Blog article about Scheme usage in GIMP | Ofnuts | 06 Sep 21:48 |
Blog article about Scheme usage in GIMP
Moin,
I've come across the following blog post in my feed: http://benjisimon.blogspot.com/2011/09/how-guile-and-scheme-could-really-win.html
The author obviously favors Scheme over other programming languages, and has a clearly defined goal for the level of Scheme support in GIMP:
"The API should be so smoothly integrated in with The Gimp, that you'd be crazy to choose any other language."
At present, this is not true - and possible reasons are mentioned in the blog post, too:
"And you can't exactly blame programmers for not embracing Scheme: much of the Script-Fu scheme code out there is written in poor style (oh, to see Scheme code indented like C code - my eyes, my eyes!). Additionally, the Scheme API is low level."
I guess both of these are valid - I'm seeing many examples of people applying concepts from other languages to Scheme (e.g. some go to great lengths to get the number of elements of a list, in order to use that number in a for loop which iterates over the list). I can only imagine how that feels for a real Scheme programmer.
There are suggestions on how to solve this, too. A "Scheme community" should do the following:
"1. Don't stop by delivering the low level C style API. Go beyond that and deliver a high level API, one that uses all the cool features that are highlighted in Andy Wingo's post on Guile. Don't just talk about how macros can dramatically change the life of a programmer, make some that do. Don't just talk about how call-with-current-continuation can add new looping constructs to a language, create some.
2. Make sure there's plenty of high quality examples available. Perhaps reviewing and improving the plugins that users submit.
"
The author doesn't elaborate on the community, so I'm not sure who he's addressing with this post - i.e. if there are people working on improving Scheme support in arbitrary applications.
I'm not aware of any plans to improve Scheme support in GIMP from our side, though - at least not in the direction of that blog post. Running scripts like plug-ins is planned, maybe introducing named parameters, but not an overhaul of the whole API. And IIRC not a move to a different Scheme implementation - more likely a move to a different language altogether.
I'd like to comment on the blog post, or see comments by someone else, but I'd like to clarify our plans for Scheme in GIMP first.
Regards, Michael
Blog article about Scheme usage in GIMP
2011/9/5 Michael Schumacher :
I'd like to comment on the blog post, or see comments by someone else, but I'd like to clarify our plans for Scheme in GIMP first.
If we look at what programming languages that are popular [1], we can see that the vast majority of languages in use today have a syntax where 1 + 1 is written "1 + 1" and not "(+ 1 1)". If we want to have a main scripting language that as many as possible can use with as little effort as possible, Scheme is simply not an alternative. For most programmers, Scheme is an odd language. In the long term I think it is inevitable that we need to replace Scheme with something that has a syntax that is more mainstream.
However, doing the switch is a huge task and we have other things that are more important to work on, so I don't see this happening any time soon.
/ Martin
[1] http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Blog article about Scheme usage in GIMP
On 09/05/2011 07:57 PM, Martin Nordholts wrote:
If we look at what programming languages that are popular [1], we can see that the vast majority of languages in use today have a syntax where 1 + 1 is written "1 + 1" and not "(+ 1 1)". If we want to have a main scripting language that as many as possible can use with as little effort as possible, Scheme is simply not an alternative. For most programmers, Scheme is an odd language. In the long term I think it is inevitable that we need to replace Scheme with something that has a syntax that is more mainstream.
I wholeheartedly agree with that.
However, doing the switch is a huge task and we have other things that are more important to work on, so I don't see this happening any time soon.
Haven't we got a quite nice Python interface already?
Blog article about Scheme usage in GIMP
2011/9/5 Ofnuts :
On 09/05/2011 07:57 PM, Martin Nordholts wrote:
If we look at what programming languages that are popular [1], we can see that the vast majority of languages in use today have a syntax where 1 + 1 is written "1 + 1" and not "(+ 1 1)". If we want to have a main scripting language that as many as possible can use with as little effort as possible, Scheme is simply not an alternative. For most programmers, Scheme is an odd language. In the long term I think it is inevitable that we need to replace Scheme with something that has a syntax that is more mainstream.
I wholeheartedly agree with that.
However, doing the switch is a huge task and we have other things that are more important to work on, so I don't see this happening any time soon.
Haven't we got a quite nice Python interface already?
Yes we do, which is nice, but Scheme still has higher status. In particular, the format of gimprc files etc are Scheme-ish, and the default batch interpreter is Script-Fu.
/ Martin
Blog article about Scheme usage in GIMP
On 09/06/2011 10:55 AM, Martin Nordholts wrote:
Haven't we got a quite nice Python interface already?
Yes we do, which is nice, but Scheme still has higher status. In particular, the format of gimprc files etc are Scheme-ish, and the default batch interpreter is Script-Fu.
The format of the gimprc files is not very relevant for scripts?
As to the default batch interpreter, if/when python plugins have sufficient appeal, people add python support (when they didn't get it out of the box).