Has the use of C to implement other languages constrained their designs in any way?
Question: It seems that most new programming languages that have appeared in the last 20
years have been written in C. This makes complete sense as C can be seen as a
sort of portable assembly language. But what I'm curious about is whether this
has constrained the design of the languages in any way. What prompted my
question was thinking about how the C stack is used directly in Python for
calling functions. Obviously the programming language designer can do whatever
they want in whatever language they want, but it seems to me that the language
you choose to write your new language in puts you in a certain mindset and
gives you certain shortcuts that are difficult to ignore. Are there other
characteristics of these languages that come from being written in that
language (good or bad)?


Answer: I tend to disagree.

I don't think it's so much that a language's compiler or interpreter is
implemented in C -- after all, you can implement a virtual machine with C that
is completely unlike its host environment, meaning that you _can_ get away
from a C / near-assembly language mindset.

However, it's more difficult to claim that the C language _itself_ didn't have
any influence on the design of later languages. Take for example the usage of
curly braces `{ }` to group statements into blocks, the notion that whitespace
and indentation is mostly unimportant, native type's names (`int`, `char`,
etc.) and other keywords, or the way how variables are defined (ie. type
declaration first, followed by the variable's name, optional initialization).
Many of today's popular and wide-spread languages (C++, Java, C#, and I'm sure
there are even more) share these concepts with C. (These probably weren't
completely new with C, but AFAIK C came up with that particular mix of
language syntax.)

