I'm not so much a specific language fanboy as a
languages fanboy.
There are so many languages out there that are outside the C, C++,
Java and C# bucket that offer features that people in the
C/C++/Java/C# camp don't even know about.
I agree... Programming languages are amazing tools... just as natural
languages affects how we think, programming languages affect how we
code.
However, to bring this conversation back to a thread from a few weeks
ago, I find it interesting, and sometimes frustrating, that most new
languages that differ from C/C++ tend to target interpreters and
virtual machines.
Does anyone know any interesting and powerful languages that can be
used just like C? That can link to C libraries, and can be compiled to
native machine code, and can express the same low-level concepts as C,
but in a more powerful and intuitive way? In short, does anyone know
any languages other than C and C++ that would be interesting for audio
programming?
This list has made of aware of FAUST and some other interesting
examples of "meta-languages" that compile to C code. I do find this
interesting, but I would like a more common ground: something that can
be used in a more general-purpose way (like C), but is still useful
for audio, realtime programming, and maybe even operating systems
(like C).
I'm not one to argue against C or C++ actually, but having experienced
Python and other high-level languages, I find myself wanting to use
such a syntax for natively compiled code.
I suppose that one could argue that a lot of the power of these
interpreted languages comes from the fact that they are often
dynamically and loosely typed, which is much more difficult to express
in optimized, compiled code. It's precisely the strong typing and
well-defined memory usage that makes C useful for things like
operating systems and realtime programming. I do understand that. I am
only suggesting that maybe there is some middle-ground between the
likes of C and Python, that happens to not be C++. Anyone?
I have often wondered what I might do if I tried to design such a
language, but I think it's just too big a task. (For now anyways.)
And I would hate to re-invent the wheel yet again.
Steve