On Thu, 2007-04-26 at 09:47 -0700, James Dennett wrote: > > All potentially interesting, but what it needs, IMO, is detailed > examples that motivate why a C++ user would want to read on, > and explanations of why Felix has chosen the approaches it > has.
This is hard for me! My personal motivation is: (a) I learned Pascal first, my main tool was Borland Pascal which was and perhaps still is the very best Integrated Language Development System ever created (b) When C++ got multiple inheritance, I grabbed the ARM and learned C++ (I had done a bit of C before that, but never seriously) (c) At the time I was doing my pure maths degree at QU, and the first thing I tried to encode was an abstract group and failed -- it cannot be done by OO due to the covariance problem. (d) In the interest of getting programmers a better language, and recognizing the need to be pragmatic too, I joined the C++ committee. I worked for over a decade on it, spending most of my time on committee matters instead of my business (which failed, partly because of this). (e) I achieved almost nothing tangible: I helped delay standardisation (the document was downright disgusting), I insisted on exception safe pointers which lead to the autoptr fiasco .. (f) .. and basically I learned that most of the committee didn't have the faintest idea about language design .. unfortunately including Bjarne. To his credit Bjarne was a master politician, and he has good intuition, but no concept of the important role of theory and modelling in language design. (g) In the end I quit, believing I would get further convincing people by *showing* them than trying to teach them. (i) but 5 years before I quit .. I discovered a language that could already do almost everything I wanted, namely Ocaml. (j) The one solid and crucial thing I learned from Bjarne and the experience in general was the importance and role of compatibility in language design, and how politics -- that is, people -- are an essential ingredient in that consideration (k) But I would want Felix to include a fair share of academics and theoreticians as well as pragmatists and coders -- something I learned from the Ocaml experience given all of that personal history, Felix tries to be BOTH a good academic language and an entirely pragmatic upgrade from C++, with an upgrade path something like: C --> C++ --> Felix --> (Oca)ML --> Haskell illustrating where I see it placed. Note that Felix today has considerable features NOT found in Ocaml, for example support for dynamic loading of shared libraries, shared memory multi-processing, fibres (fthreads), a simple integrated development environment and build system (the flx script + flx_pkgconfig) and quite a bit of 'scripting language' features like string interpolation .. heck, felix actually has *recursion* which Ocaml hardly supports at all! (and it's a FPL FFS!!) .. all whilst retaining, or even -- hehe! -- surpassing -- the performance of C/C++. Felix tries to retain enough 'flavour' of C++ to make it easy to learn for C++ programmers. At the same time, it fixes a lot of the design problems in C and C++, and provides many of the features a C++ programmer either wants -- or SHOULD be wanting if they knew any theory or had any experience with advanced languages. However the C++ community has repeatedly been attacked by everyone else, including even the C community and so they're very defensive .. and my personal style is aggressive, abrasive and annoying at best .. I am just not the right person to try to talk C++ people into using Felix. Just try to tell one of the people that like 'meta-programming' that it is a load of rubbish and that templates are one of the things Felix deliberately replaces (with parametric polymorphism and typeclasses) .. well of course I'm going to get off on the wrong foot, trying to explain what's wrong with templates and why C++ 'meta-programming' is a complete and utter joke. It's true .. but it requires a diplomat such as a professional teacher to actually explain it without getting people offside. Someone needs to explain, for example, how utterly and completely the lack of type recursion condemns templates. Felix is, after all, not only *intended* to let C++ programmers move on, without losing the good features of C++ (including performance and access to extensive libraries) .. the design process is intended to be public and allow working programmers to actually contribute effectively (much easier to svn commit than to effect changes via a paper to the ISO C++ committee .. ;( -- John Skaller <skaller at users dot sf dot net> Felix, successor to C++: http://felix.sf.net ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Felix-language mailing list Felix-language@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/felix-language