Programming Languages YET AGAIN (was Re: How to add reports into Gnucash)
Mike or Penny Novack
stepbystepfarm at mtdata.com
Tue Aug 25 08:06:38 EDT 2009
> What makes Scheme less tough to learn is "The Scheme program
> language" book by R. Kent Dybvig's. Free available here:
> http://www.scheme.com/tspl2d/
> Furthermore instead of records or structures, think of the data
> processed as sets, that is the concept of collections, and the
> operators target all members of a set.
Unfortunately that's less helpful (doesn't make it all that much easier)
for procedural programmers, I base this on my own experience fixing up
the SQL (DB2) of my fellow programmers (tuning apps to run an order of
magnitude or so faster). They were simply unaware of how to use set
operations in place of procedural operations*. Similarly they were
unable to understand WHY things like my general purpose "select a set of
test data from the entire database so that the set contains at least one
example meeting these criteria" worked, why the GUTS of the program
worked -- so it was written so that they could simply modify the code
specifying what the criteria to be met were without understanding that
part of it**.
This is a "training" issue. By and large most never had the basics
"fundamental abstract data structures and their operations". Keep in
mind that some of the modern language variants (say C++) are specific to
NOT having to understand (the low level programmers don't have to
understand) what a list is, what a queue is, etc. by providing the data
types and operations on them bult in. Don't have to know how to code the
elementary operations. Can leave that to the few in the shop like me who
can. Well a "set" and "operations on a set" isn't different in that
regard. Going to be a big help having ever taken "Elementary Set Theory"
or some similar course.
Michael D Novack
* Example -- to select the largest (or smallest) from a set can be done
with set operations -- no need to sort the data first.
** Why simply setting bits according to what criteria the current case
being examined met and then performing a simple set operation determined
whether this case would add something new to the test set.
More information about the gnucash-user
mailing list