On 22/01/2013, at 5:19 AM, srean wrote:

> As long as it did not clash with what is meant by C++ "concept" it would be 
> fine.

There are only a limited number of words describing some idea.

Inevitably, in a programming language you pick one, and someone
complains it doesn't agree with the natural language interpretation,
or it doesn't agree with some other language's abuse of the term.

There are also decisions not to use multiple words when patterns
can discriminate (overloading) for example "fun" in Felix means
both "function" and "macro".

"const" are not actually const, and the meaning is unrelated
to "const" in C++ or "constant" as a concept in any other language.
[The term in Felix simply means there are no arguments]

"functor" is a common term in the C++ community which doesn't
care that  this is a total abuse of a word in a closely related
and vastly more important domain with a serious negative
impact on anyone trying to discuss language technology.
[This is much worse  than "vector" which of course isn't really 
a vector]

I personally find "class" in Felix appropriate: it achieves what a class
in OO purports to achieve, only Felix does it right. Class is a way
to obtain classification and abstraction.  That a class is a type in OO
languages is a proven design error. It is at the core of why OO does 
not work. 

Relating multiple types instead of just one not only fixes this
design fault, it is the Holy Grail of failed attempts to make OO work
correctly: multi-methods. That you lose state when going to 
multi-methods is a derivable consequence.

So actually in Felix "class" is what it should have been if Meyer et al
had not stuffed up their science. It satisfies the original goals
such as open/closed principle, information hiding, explicit coupling,
etc etc. OO implementations of classes do not.

So we're stuck between a rock and hard place: we either
use the term in its correct use and ignore mispractice,
or we kow-tow to the great unwashed masses and avoid
confusing them by using another term, which then becomes
hard to understand because it has no context.

Technically, in maths a class is an object of a partition.
However in Biology class is just one level of the taxonomy.
In OO, a class is none of these.


The issues here have been driven home to me by a FB post of Shayne
pointing at a blog which basically explains:

        success = dream + skill + market

I have some of the first two but market is wanting. I do not believe anymore
that C++ programmers want a better C++. They will not trade the
lemming community away for anything. So probably Python or Ocaml
or even Haskell programmers are a more likely market: people who want 
a good language and will trade away some of the quality in favour of
something that is industrially capable: the C++ binding technology
in Felix allows you to write Ocaml like code yet work in a C++
environment.

People in that market do not need much language documentation,
they already know what variant types and closures are. They do need
a fast and effective way to learn the library though: libraries, not
languages, are the biggest obstacle to working with a new programming
language: I know Java but don't ask me to write any Java code because
I don't know what's in the libraries.

Felix libraries are now capable of being self-documenting.


--
john skaller
skal...@users.sourceforge.net
http://felix-lang.org




------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. SALE $99.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122412
_______________________________________________
Felix-language mailing list
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to