3 ms·
This is definitely one of the bigger issues. Early on, GIMP adopted the Emacs development style of building a solid core of functionality in C combined with a R
by slondr 8y ago
This is definitely one of the bigger issues. Early on, GIMP adopted the Emacs development style of building a solid core of functionality in C combined with a REPL for a scripting language within which other features can be developed.
Unfortunately they picked Lua instead of developing their own language like Emacs did. Lua is pretty notorious for having an absolutely abysmal implementation and is very hacky itself. It's also unfortunate that the GIMP team didn't have the same hardline commitments as the GNU devs to code correctness (GNU will often delay project releases long past their expected drop dates just to make sure the code is maintainable and nothing is hacked together - see the year-long delay in the release of IceCat Quantum for a recent example of this). This situation got even worse when the devs decided to abandon the graphical toolkit the whole thing was written in in version 0.60 to invent their own, which didn't even include bindings for the scripting language they themselves were working in...it soon became quite a time commitment for any major feature to be implemented because the code base just wasn't designed with futureproofing in mind.
Eventually GTK grew out of scope for GIMP and became a GNOME project. Around this time large parts were rewritten again in glib when GIMP became a GNU thing. Add twenty years, and GIMP is essentially a giant steaming pile of hacks that never made sense in the first place, full of components that barely work on their own, much less together.
It's a sad state of affairs, especially considering the project had so much potential back in the day. It could have been the Emacs of photo editing, but poor planning from the get-go dashed that possibility.
- alexhutcheson 8y ago> Lua is pretty notorious for having an absolutely abysmal implementation Do you know of any blog posts or articles about this? I'd be curious to read more about what the problems with the implementation are.
- prokoudine 8y ago> Unfortunately they picked Lua instead of developing their own language like Emacs did. There was never any Lua in GIMP, you made it up. > Add twenty years, and GIMP is essentially a giant steaming pile of hacks that never made sense in the first place Hold on. So GIMP had "potential back in the day" when it was in fact a pile of shit code, but today in the age of proper GIMP code, it's a "steaming pile of hacks"?
- krapp 8y ago>Lua is pretty notorious for having an absolutely abysmal implementation and is very hacky itself. Is it? I've heard complaints about the language design, but never about its implementation. At least not the C API. It seems odd that a language "notorious for having an absolutely abysmal implementation" would be so widely used as a configuration/glue language.
- lucozade 8y agoNo it’s not. The reference Lua implementation is considered, quite correctly, to be a well written piece of cross platform C. The main alternative implementation, luajit, is considered to be nothing short of magical. Unfortunately, and I don’t like going ad hominem, as the scripting language for GIMP is not, and has never been, Lua, I wouldn’t recommend taking anything said in that comment too seriously. BTW the base scripting language for GIMP is a Scheme dialect called Script-Fu. I can’t comment on its implementation as I haven’t seen it.