C++ is an attempt to turn the *(C language) into a high level, _(object-oriented) *(programming language). It is worth no more than, and sometimes less than C to TUNES (ABI issues make inter-language work particularly nasty). Its object system is a poorly designed, ugly, class based hack, with poor support for multiple inheritance and no support for multiple _(dispatch). C++ is worthless. For any task, there is a better choice of language.
<BR>--_(seaslug)

Not everyone agrees with such flamebaiting language.  There are many systems programming tasks where C++ is a fine language.

See also _(OpenC++).

<ul class="links">
  <li>_("Bjarne Stroustrup"|http://www.research.att.com/~bs/), C++'s creator.</li>
</ul>

<ul class="links"><h4>Alternative syntaxes</h4>
  <li>Python-like formatting rules:
    <ul>
      <li>_("cugar"|http://www.boswa.com/misc/);</li>
      <li>_("Cython"|http://freshmeat.net/projects/cython/).</li>
    </ul>
  </li>
</ul>

<ul class="links"><h4>Books</h4>
  <li>_("Thinking in C++"|http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html) Bruce Eckel's very good introduction to C++.</li>
</ul>

<ul class="links"><h4>Critics</h4>
  <li>_("C++??"|http://www.progsoc.uts.edu.au/~geldridg/cpp/cppcv3.html)_(MIA) a critique of C++, _(Java), and _(Eiffel) with a (somewhat deserved) bias towards _(Eiffel).</li>
</ul>

<ul class="implementations"><h4>Compilers</h4>
  <li>_("GCC"|http://gcc.gnu.org): the famous GNU Compiler Collection, formerly the GNU C Compiler.</li>
  <li>_("The Intel C++ Compiler"|http://www.intel.com/software/products/compilers/c60l/index.htm): Known to produce faster binaries than GCC.</li>
  <li>_("OdinMP OpenMP C compiler"|http://odinmp.imit.kth.se/projects/odinmp) a compiler for shared-memory parallel programming in C/C++ using the _("OpenMP API"|http://www.openmp.org/).</li>
  <li>_("pC++/Sage++ Home Page"|http://www.extreme.indiana.edu/sage/) <cite>a portable parallel C++ for high performance computers. pC++ is a language extention to C++ that permits data-parallel style opertations using "collections of objects" from some base "element" class.</cite></li>
</ul>

<ul class="links"><h4>Libraries</h4>
  <li>_("Lisp Plus Plus"|http://www.interhack.net/projects/lpp/) a library of Lisp-like functions and macros usable in C++ programs.</li>
  <li>_("Boost C++ libraries"|http://www.boost.org/) a large repository of free peer-reviewed portable C++ source libraries.
    <br>In particular see _("Boost Lambda Library"|http://www.boost.org/libs/lambda/doc/index.html) a C++ template library providing lambda functions, function argument binding, and tuple types.
  </li>
  <li>_("Charm++"|http://charm.cs.uiuc.edu) a parallel C++ library, and AMPI, an adaptive MPI implementation, provide processor virtualization.</li>
  <li>_("GRETA"|http://research.microsoft.com/projects/greta/) Greta Regular Expression Template Archive, a fast flexible _(PERL)-compliant regular expression template library for C++.</li>
</ul>

<ul class="links"><h4>Tutorials</h4>
  <li>_("Introduction To Object Oriented Programming Using C++"|http://www.desy.de/gna/html/cc/Tutorial/tutorial.html).</li>
</ul>

<ul class="links"><h4>Other</h4>
  <li>_("Illinois Concert C++ (ICC++)"|http://csag.ucsd.edu/projects/concert/icc-plusplus.html) a high performance dialect of C++ which supports for parallel computation on shared memory and distributed memory machines.</li>
  <li>_("UC++ Project" | http://www.dcs.kcl.ac.uk/UC++/) an extension of C++, incorporating in an integral way active objects, which allows the language to be used for building parallel systems.</li>
  <li>_("FC++: Functional Programming in C++" | http://www.cc.gatech.edu/~yannis/fc++/) Higher-Order Polymorphic Functions in C++.</li>
  <li>_("FOG - Flexible Object Generator"|http://www.computing.surrey.ac.uk/research/dsrg/fog/index.html) a meta-compiler for a super-set C++ whith preprocessing facilities using meta-object concepts. It renders the C preprocessor obsolete, eliminates substantial lexical redundancy from C++ and generalises C++ so that patterns can be realised by using meta-functions.</li>
  <li>_("The Frost Project"|http://frost.flewid.de/) (_("at freshmeat"|http://freshmeat.net/projects/frost/)) a compiler wrapper that allows use multi-methods in C++ programs nearly as if they were a builtin feature.</li>
  <li>_("GNU E (ftp)"|ftp://ftp.cs.wisc.edu/exodus/E/) a _(persistent|persistence) C++ variant, the language for _("EXODUS"|http://www.cs.wisc.edu/exodus/), an Extensible _(OO) Database System Toolkit, wich as has been succeded by the _("SHORE project"|http://www.cs.wisc.edu/shore/), an High-Performance, Scalable, Persistent Object Repository.</li>
  <li>_("Prop"|http://cs1.cs.nyu.edu/leunga/www/prop.html) a pattern language, C++ extension, includes string matching, algebraic datatypes, SML-style _(pattern-matching), pretty printing, term and graph _(rewriting|rewrite).</li>
  <li>_("Template metaprogramming"|http://home.t-online.de/home/Ulrich.Eisenecker/meta.htm).</li>
  <li>_("TGC"|http://www.cs.rpi.edu/~schupp/entries/SOFTWARE/tgc/fgc_home/fgc.html) (Template garbage collector).</li>
  <li>_("Cmm"|http://www.op59.net/cmm/readme.html) - C++ with MultiMethods.</li>
  <li>_("FACT!"|http://www.kfa-juelich.de/zam/FACT/start/index.html) Functional Additions to C++ through Templates and Classes: multiparadigm programming with C++ (imperative, _(OO), _(functional)).</li>
</ul>

