4 ms·
I think what Prolog, SQL, Lisp, or even J really offer is cheap exploratory development. I am tremendously productive sitting in front of a REPL with access to
by tom_b 15y ago
I think what Prolog, SQL, Lisp, or even J really offer is cheap exploratory development.
I am tremendously productive sitting in front of a REPL with access to data. Even with my Ruby hacking, I tend to be playing with 1 to 4 lines of code in irb while building my scripts and tools.
I have not had the opportunity to build a big production system with any of these languages though. I wonder if some of the reason the OO enterprise languages work and hang on is that they facilitate understanding and communication between developers.
I hate the amount of boilerplate code that seems to wrap around code examples I see in Java and C# sometimes. I was looking at a tutorial just yesterday that boiled down to declare an array of values, use a matrix of these other values, and apply these functions to the matrix until convergence occurs.
The amount of jumping I was doing between different Java class files and static functions was completely an impediment to the point of the tutorial, which was to demonstrate the logic of the process. OTOH, I was able to jump around and follow the points. But I really think it could have been more aptly demonstrated in a few lines of code in another language.
Thinking of this interview with Arthur Whitney and this topic:
"BC To ask a slightly broader question, what is the con-
nection between computer language and thought? To
what degree does our choice of how we express software
change the way we think about the problem?
AW I think it does a lot. That was the point of Ken
Iverson’s Turing Award paper, “Notation as a Tool of
Thought.” I did pure mathematics in school, but later I
was a teaching assistant for a graduate course in computer
algorithms. I could see that the professor was getting
killed by the notation. He was trying to express the idea
of different kinds of matrix inner products, saying if you
have a directed graph and you’re looking at connections,
then you write this triple nested loop in Fortran or Algol.
It took him an hour to express it. What he really wanted
to show was that for a connected graph it was an or-dot-
and. If it’s a graph of pipe capacities, then maybe it’s a
plus-dot-min. If he’d had APL or K as a notation, he could
have covered that in a few seconds or maybe a minute,
but because of the notation he couldn’t do it."
http://mags.acm.org/queue/20090203?pg=12#pg16 http://mags.acm.org/queue/20090203?pg=12#pg16