Origins of Python in Type Design

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?
Tagged:

Comments

  • And then there was RoboFog, a customised version of Fontograper 3.5 modified by Petr van Blokland, Just van Rossum and Erik van Blokland in 1995, that was the first font editor to include Python scripting. This introduced many type designers at that time to Python.
    I assume everyone followed the same path after that...?

    Just Van Rossum is a type designer. He was the one of the first to do really programmy things with fonts.

    His brother Guido invented Python.
    Somehow I think I was anticipating this answer.
  • Thomas Phinney
    Thomas Phinney Posts: 2,888
    An opinion formed from relatively short and shallow involvement: It feels like there's not more room in this small community for more than one scripting environment. There are tools out there written in other languages (C and JavaScript), but the bulk of public tools are all Python, without a good reason to use anything else (for scripting).

    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.
  • I'm doing some research about this relationship between type design and Python. 

    Ben Kiel said:
    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. 

    Any other thought about why Python is suitable for type designers?
  • 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.

  • My opinion, based on trying out a few different programming languages- Python is the easiest to get things done with in the shortest amount of time. There is nothing in font design that needs the higher processing speed of C to justify the steeper learning curve and longer development time. When you are writing in Python, you can tweak variables in real time, no need to recompile. That makes Python much more supple to work with. The only downsides of Python are on the end of the product developer (FontLab, RoboFab), so - not my problem :)
  • Belleve Invis
    Belleve Invis Posts: 269
    edited August 2017
    There is nothing in font design that needs the higher processing speed of C to justify the steeper learning curve and longer development time.
    Ah, you definitely did not handled east asian fonts...
    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.
  • Thomas Phinney
    Thomas Phinney Posts: 2,888
    edited August 2017
    There is an issue that I found recently and have been trying to help track down, where if:
    • I have Preferences > Open & New Fonts > Detect Element References on, and
    • I have three screens connected

    Then:
    • it takes an absurd length of time to open a large CJK font, and
    • I don't see the progress bar to be able to abort the operation

    Interim solutions:
    • turning off “Detect Element References” allows the font with 64K East Asian glyphs to open in a few seconds
    • disconnecting my additional screens allows the progress bar to show up