(Hope this is not to off-topic)
What are great programming languages to know in order to get up-to-speeds with spaCy/Prodigy/Thinc?
I don’t intend to start a big “war-of-the-languages”, more input from you of the what and why
I wrote up some thoughts about Cython here: https://explosion.ai/blog/writing-c-in-cython . You might also find my talk from PyCon Israel interesting: https://www.youtube.com/watch?v=yJR3qCUB27I
thanks for the input. Gives me a feel for what to write in the “requirement” section of the job ad.
This is an interesting question! In general, I think it’s definitely good to focus on Python and the language features itself, rather than some specific framework or API. This is also part of our philosophy: in our libraries, we try to not steal the control flow and let the user write regular Python code. For instance, instead of just providing you a
fit() or a
train() method with a bunch of arguments, you can write your own training loop. Instead of a method
doc.get_all_verbs, we encourage you to write
[token for token in doc if token.pos_ == "VERB"].
Prodigy implements a similar philosophy: Instead of writing recipes in a Prodigy-specific config language, you can write pretty straightforward Python functions. And instead of making the user implement a specific “Prodigy stream” object, you can pass in a regular Python generator that can do whatever you like, as long as it yields dictionaries.