Perl is a memory pig. It trades space for time, and requires a large runtime engine (e.g. ActivePerl). The memory bloat is about 20x what a straight C implementation might be. While some of the language constructs would be very useful in the expression context, it would have little use in MC otherwise.
Like I said, I don't have a horse in the race for this really, and I do not disagree with any of those criticisms versus C in a general sense (though modern Perl is not about the crazy people with the shortest-program-ever code anymore at all). But I was responding to Matt here:
Traditional plugins for DSP, visualizations, input formats, encoders, etc.
It sounds like most people are saying just releasing the C++ interfaces (which we already do) is sufficient.
New types of plugins
This is a possibility for the future.
I understand the argument that Python or .NET are easy to program and well documented, and this advantage shouldn't be underestimated.
However, I'm also not thrilled about core (often performance-critical) functionality being tied to a big framework, both for efficiency and portability reasons.
And, besides, comparing to the performance characteristics of C wasn't my point. They already have a C++ interface. I don't think there was ever any discussion about replacing this or changing the code-base of MC itself! He was talking about enhancing it, in fact, asking about giving access to the internal JRiver toolset in some way (which I think, if done well, could be very powerful). But the discussion moved on to other potential new types of plugins, which Matt said could be a possibility. A new, second type of framework for MC.
Those same arguments you gave against Perl would apply to almost any modern protected-memory, interpreted, high-level language, to some degree or another, except specialty ones and those around the fringes (where you trade exposure possibilities for elegance and then what's the point?). Now, I can't authoritatively argue that Perl isn't comparatively much, much worse than Python, or Lua, or .NET, or Java, or insert-your-pet-language at all. I'm a decidedly uneducated programmer, and a hobbyist. I've done quite a few projects in C#, a little Perl, a little Java, and I did a whole bunch more as a kid in old versions of BASIC and then VB (and by VB6 I was actually writing object-oriented code that wasn't horrible VB hack-jobs and had some elegance). I've studied C and C++, but if you're getting into it late, as a hobby, with a full-time-job, that really feels like looking at the past...*
And memory is cheap.
Darn cheap. Who cares. Drop a massive $24 and buy yourself another 4GB of RAM if you're limited and you want to run a little widget here and there. Compared to the massive bloat everywhere else in your browser and on the website you visit and
in Flash are we splitting hairs?
All I was saying is that, as a possible
addition, it seems like that
for "one of those kinds of interpreted languages" Perl does not have some of the negatives associated with those other alternatives I listed, and might be worth considering. If you're going for that kind-of system, it does have
some things going for it, despite a somewhat tarnished name.
And, even then, that's only if it makes sense to go with any kind of "traditional" or "semi-traditional" second programming interface. As I mentioned, putting more efforts into building out the web-framework-based API also really seems like it should get a
lot of consideration as well.
* I should add...Not if you plan to develop professionally or for anything where performance really matters. Then, obviously, I agree C/C++ is still usually the best choice, unless inherant cross platform support is a core design goal. But I think Matt's goal was to make it more accessible to hobbyist, non-professional expert users, who do have programming experience, but aren't pro programmers working in their spare time. People like us on the beta team. The endgame is to try to expand the number and capabilities or the plugins (the MC ecosystem, to use a weasely phrase).
And I agree that Perl is not without substantial issues of its own. Do you support Perl 5 or 6 now, for example? I don't think any of the options are a slam dunk.