On 01/19/2011 01:26 AM, dsimcha wrote:
On 1/18/2011 7:46 AM, spir wrote:
Think at Lisp, for instance, probably one of the most simple languages
ever. This simplicity, precisely, forces to create tons of abstraction
levels just to define notions not present in the language --due to
simplicity-- but absolutely needed to escape too low-level programming.
This is on the semantic side. On the syntactic one, all of these
"custom" notions look the same, namely (doSomethingWith args...) (*)
instead of each having a distinct outlook helping the reader & decode
the code.
Great!
(if (< IQ 150) findAnotherPL haveFunWithLISP)
Ironically, from what I understand (correct me if I'm wrong since I've
never used Lisp beyond the toying stage), Common Lisp does most of the
work for you here, by putting all this abstraction in the standard
library. This works because, while the core language is simple, it's
extremely flexible. However, the standard library is for many purposes
part of the language and therefore Common Lisp has a reputation for
being "bloated" and "complex".
You are right. The core is simple, or rather "flat"' ;-)
What I actually meant is the myth <simplicity = facility> is _very_
wrong, especially in programming. But for any reason in everyday speech
(not only in english) "simple" tends to be used as synonym of "easy", I
guess. Very misleading.
I think the notions that should exist in a PL ('s core) are the ones we
humans use to think, more precisely to model. Engineers, designers,
artists, scenarists, researchers... programmers model. Thus, PL design
may be a field of applied cognitive science. But cognitive science is
very far to be there :-( (able to tell us anything sensible & useful
about how we model). In absence of any such fundament, we are left with
absurd choices, wild statements and irrational rationalisations (in the
common case) or plain pragmatics (in the best case).
[Sorry for the OT]
Denis
_________________
vita es estrany
spir.wikidot.com