It's Like Déjà Vu All Over Again
"You could probably waste an entire day on the preceding links alone. But why take chances? We also give you Paul Snively..." — John Wiseman, lemonodor
Peter makes an excellent point. Modern C++ has evolved to become an increasingly multiparadigm language... [It's Like Déjà Vu All Over Again]
I read it differently. Hmm. That's an interesting take on the comparison.
In any case, the problem here is C++ supports multiple paradigms by piling feature on top of feature. Functional C++ is interesting. If I had to use C++ I would consider this library. (Assuming it works with Managed C++, I don't know either one.)
I would stop short of saying Functional C++ is strongly reminiscent of a real functional language, though. And most Managed C++ programmers are not going to be using Functional C++.
Should programmers use Functional C++ with Managed C++ instead of plain C#, for example? Too complex.
With respect to C++, I think it's even worse than you say it is: C++ not only supports multiple paradigms by piling feature on top of feature, it supports multiple paradigms largely by accident (here I'm thinking precisely of the advanced template metaprogramming techniques that make an FC++ possible).
Nevertheless, FC++ (and other potentially more impressive libraries, such as Phoenix) do exist. C++ is popular and sometimes its use is mandated for a particular project. If some of us on such a project are very familiar and comfortable with the functional programming paradigm and can easily solve a problem with FC++ or something like it that would be an excruciating mess without it, shouldn't we use it?
As for FC++ and "strongly reminiscent," that's not what I said: what I said was that F++ demonstrates that C++ is becoming multiparadigm, and that multiparadigm C++ and needing to be familiar with your runtime environment in the case of Managed C++ seemed to me strongly reminiscent of an Algol-inspired-syntax functional language like Objective Caml or Haskell, and this was the sense in which Peter's comment made sense to me.
Funnily, of course, Peter has since posted to indicate that this wasn't the direction he had in mind, but rather just that Managed C++ is as powerful and underappreciated as Lisp is. :-)
But hey! It got a heck of a discussion going on, with you, Peter, I think Simon Fell if memory serves me correctly, Roland Tanglao, and other smart folks who know a lot more about .NET and the CLR than I ever will chiming in.
And it got a few more folks to look at FC++, which makes me happy.
9:45:48 PM Google It!
I'm a Mac guy in a three-Mac household, and I've gotta say John nails this one. We're talking about a 1 GHz. processor, 10G drive, 256M RAM machine with the form-factor of the iPod for ~$1500 (worst report I've read) or ~$1000 (most reports I've read). The only reason touchscreen technology didn't work before is the "gorilla arm" problem—a non-issue for a portable device. LCD is high-res and crisp enough.
Should it be a WindowsXP device? No, but that's not the point: it's high-powered commodity desktop hardware that you can take literally everywhere you go as long as you have a pocket or purse. You don't think that changes things? Think again.
9:26:56 PM Google It!
(And tonight I'm not getting back to Snively and Cohen yet, dang.)
Yeah, slacker!
Okay, tonight let's talk about my favorite genre -- science fiction.
Jack Vance and Neal Stephenson are my two favorite living authors.
There is One God, and Neal Stephenson is His prophet. Feel free to quote me.
One of Koontz's novels has a nice time travel.
"Lightning." Better still, it leads you down the primrose path of believing that the setting is the near future and the Russians have invented time-travel before us... until it is revealed that the setting is today, and the time-travelers are Polish scientists under the thumb of Nazi Germany. Very, very clever play with the distinctly Slavic-sounding, hence similar, Russian? Polish? names.
I find Koontz very hit and miss. High marks for strong, credible, non-cardboard female protagonists—this is clearly a man who loves women—and for a firmly-rooted sense of family and community. Unfortunately, these same qualities mean that Koontz risks lapsing (and frequently does lapse, IMHO) into treacle. We can only have so many competent, driven single mothers with their brilliant-but-troubled children placed at risk from Some Force Larger Than Themselves which they overcome with Grit, Determination, Intelligence, and No Small Amount of Luck.
But then, it's certain very few folks are up to Stephenson's caliber.
To put it mildly. As one reviewer of "Snow Crash" said, no one else will be able to write a comedic cyberpunk virtual-reality epic, any more than anyone else will be able to write a whale-hunt epic; the position is taken.
I rate a lot of Orson Scott Card very high too, but with weak spots.
I still don't know why people got so excited about the Ender series. Talk about starchy political preaching. But I think the Alvin Maker series is one of the most important fantasy series in American literature, and I am not an Alternative History fan.
I agree about the concentration of good treatment of certain values.
Progress, deep complexity, surprise, lack of fear. Lots of things.
Interestingly, I would argue that these same qualities are those espoused by any myth, and in particular by all three major world religions. In particular, I've never felt that the Jews have gotten sufficient credit for positing a progressive cosmology—which they passed directly on to their daughters, the Christians and Muslims—vs. the cyclical ones of the ancient east and mediterranean.
9:13:09 PM
A new release of the Swiss Army Howitzer of C++ development. Somehow I don't think Andrei Alexandrescu is really familiar with the tone of the Loki myths; his library isn't perverse and malicious. Far from it. Highly recommended.
8:50:05 PM Google It!
Well, certainly, given the option, give me virtually any language over C++, with the possible exception of Perl! But we sometimes lack options. One of the reasons that I appreciate FC++ is as an extremely powerful "glue-building" mechanism between C++ APIs that I may not have source for. There are some excellent examples of precisely this style of use in some of the papers at the FC++ site.
Now that I've defended FC++, let me encourage anyone who cares enough to read this and who agrees with Roland (as I do!) to immediately visit <http://www.mozart-oz.org> and dig in.
8:40:19 PM Google It!