I'm sorry, but conversion to managed C++ is sometimes, which is all too
often, a joke. No multiple inheritance, no templates. You can conditionally
compile your code in managed/unmanaged blocks, but that is extra trouble.
I am increasingly frustrated and disappointed by Microsoft. I am not
reflexively anti-Microsoft - I am grateful to them for providing an
affordable, reasonably reliable platform on which to begin working on real
computer music at home, at a time when I could not afford a Unix workstation
and Linux did not yet exist, at least not in a usable form. Furthermore,
they have radically improved all their software over time, and I find Visual
Studio by far the most congenial development environment in spite of
experience with others.
However, Microsoft has always lagged the ISO C++ standard, and their work
with .NET, while superior to Java in some respects, and supplied with a wide
variety of very well implemented libraries, is nevertheless sadly behind the
state of the art in languages and appears to be oriented towards corporate
developers who are not highly educated in computer science. For example, the
.NET framework includes "delegates" which, if they had been implemented more
efficiently, would have enabled a certain amount of real functional
programming to be done in .NET. But they just didn't bother (I have to
assume they know, because all the MS people I've met have seemed very
competent). Similarly, they didn't provide an abstract enough implemention
of the dynamic proxy idea, which is practically hard-wired into the remoting
framework, unlike Java's Proxy class, which can much more easily be used in
Also, I have come to appreciate the benefits of open source, directly as a
result of my experience in computer music. I have become convinced (I sure
didn't start out this way!) that software is like academic research, not
like art works or inventions, and should be open to free redistribution in
the same way. This of course is opposed in many ways by Microsoft.
I would not have been able to make more than a few licks of music, and the
software I would have been able to make would have been feeble in
comparison, without the open source libraries that I referred to in my post.
And that's even assuming I could have afforded to pay licensing fees for
alternatives (Numerical Recipes, Intel math kernel, and so on).
ISO C++ remains a seriously advanced programming language, especially taking
recent developments in template metaprogramming into account. Also,
languages such as Ocaml and other current functional programming languages
are much more advanced than .NET.
----- Original Message -----
From: "Chun-Yu Shei" <***@cs.indiana.edu>
Sent: Friday, February 21, 2003 10:41 AM
Subject: Re: [music-dsp] [OT] Modular design and feedback
Post by Chun-Yu Shei
Well, I suppose all those open source libraries could be compiled using
Visual C++ .NET and used (but it might be a big mess). You might have to
convert each C++ into a "managed" C++ class that's garbage collected and
Post by Michael Gogins
In my experience, which included some timing of similar algorithms coded in
different languages, .NET code runs somewhat faster than the Sun Java
virtual machine, but the Sun JVM runs about 3 times slower than optimized
C++ code; I would guess that .NET code runs about 2.5 times slower than
optimized C++ code.
Also, and this should not be forgotten, using C/C++ opens the up the vast
cornucopia of existing, highly usable open source libraries such as
PortAudio, libsndfile, boost, Loris, FFTW, STK, iiwusynth, etc., etc., etc.,
almost all of which is written in C or C++.
dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
Post by Chun-Yu Shei