All major font editing software support python as a scripting language. RoboFont is actually written in python from ground up if i recall correctly. How come this has become the font design go-to language and not something else? Were there some other attempts?
0
Comments
His brother Guido invented Python.
Somehow I think I was anticipating this answer.
Why "Robo"?: What I've been told is that the idea of grafting a 'machine' to Fontographer had echoes of the very popular RoboCop movie at the time. Hence, RoboFog (Fog being the file extension for Fontographer) and that just carried to RoboFab (Fab being FontLab).
I also like to think that because Python is a language that uses whitespace for control flow, it fits a typographic mindset. That's just my 2 cents.
In this episode Just van Rossum talked about Python and font development. It's very interesting
I agree. I especially agree because few type designers are programmers, and most type designers are not super technical in this way. Thus learning even one scripting language is a lot for them. Most don’t really want to, and even if they do, it will take them longer to learn another scripting language than it would somebody who is a programmer.
Ben Kiel said:
Any other thought about why Python is suitable for type designers?
Because historically, font design software supports Python? (For this "historically" see previous answers.) I don't think there is more than that to it. Python itself is not inherently "more" or "less" suitable than any other scripting language.
For comparison: to script Adobe InDesign, I highly prefer JavaScript from the set of supported languages. JavaScript is cross-platform where the other out-of-the-box supported ones are not (AppleScript and VBA), and it is 'suitable' in the sense that InDesign's DOM ("document object model") can be addressed as 'regular' JavaScript objects, properties, and methods. Other languages may not have such an interface and would thus be more cumbersome.
Tell you a story: Fontlab 6 cannot even load a full EA font before it uses all the memory.
I have to use some C for speed, and Node.js for the rest part.
Then:
Interim solutions: