I read about Peter Naur passing away today, and found myself spending a long time learning about BNF [0]. This re-opened a question I've thought about awhile, but never really had a chance to discuss with full-time developers, core language developors, and CS theorists. I've worked some with C, Fortran, Python, and some Julia, and have seen some of the superficial tradeoffs (e.g. antipatterns in Python being slow, C having a steep learning curve).What at the deeper level separates languages? What keeps languages from implementing things
A) Fast
B) Simple syntax
c) Ubiquitous across architecture?
I imagine sometimes it's a core dev issue, like Python's UTF-8 implementation between 2 and 3.
More than a specific language issue, what kinds of tradeoffs are faced in the design of a language?
Looking forward to the answers!
[0] https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_Form