Svein Ove Aas said:
Gerry said:
Claims? What claims? Those are good programmers who answered my survey
by saying they went looking for a better way and found it.
[Followed by some claims by two guys. Guys who may be eminent in the
computing field but whose primary work seems to be writing and
consulting. Guys who therefore have a vested interest in language
churn and silver bullets.]
What exactly did they *build* with their various flavour-of-the-month
languages?
Anybody else's irony meter pinging its glass casing? Lisp, with roots
40+ years old and a decade old ANSI standard being referred to as
"flavour of the month"!
But didn't one of them write about how great and productive Perl was for
a couple of months before he decided it was actually crap and went on to
Python or something?
Again, I don't have a clue what software he developed during these two
months of fevered Perl productivity...
The search for something better goes ever on.
Hopefully he'll end up with Lisp eventually, but maybe he's happy as he is.
I had a brief romance with Python myself before I found Lisp, but that means
nothing at this point; I'm *sticking* with Lisp, as, apparently, are
everyone else.
People tend to stick with Common Lisp because there is nowhere else to
go without compromising something. Not having access to the source
code as a data structure is a very, very bad hit to have to take, so
that rules out the vast majority of languages.
Before I got into Lisp, I was quite a bit into meta-programming. I'm
one of those guys who used Lex and Yacc countless times. It was hard
for me to complete a project without some custom language being used
in it somewhere.
In Lisp you can just integrate the custom language into the program,
and nobody thinks it's a big deal. Other Lisp programmers accept and
understand what you have done as a matter of course.
You are allowed to think along the lines: how do I extend the language
so that it meets the challenges of my current problem?
After a while, you really get used to this.
Once some great programmer said that no matter what language he works
in, he thinks in just one language.
Programmers who think in Fortran tend to believe that all languages
are basically just syntactic sugars for the same thing. They prove
that to themselves by continously encountering success in testing
their ability to write Fortran in any language they encounter. Lisp
just appears as Fortran with parentheses.
The Lisp programmer's internal language isn't Fortran, with its
imperative statements, loops and variables. The internal language is
an empty abstract syntax tree, to which that programmer is willing to
assign any semantics whatsoever.
When you think that way, then languages which don't let you encode
those semantics just get in your way, because you have to do the
translation of your internal language in your head, and then use your
fingers to spit out the translation. You have to do the tedious job of
the compiler that you are not able to write. In Lisp, you write that
compiler, insert it into your program, and then write in the real
language in which you conceived the solution. Other people then see
and understand your language directly, instead of having to guess at
it by reverse-engineering a hand-written translation.