Joachim Durchholz:
And who worked out those "best libraries"?
Specialists.
Not application programmers.
Jo, did you ever teach CompSci in a comprehensive context, so
that it was (could be) useful to read some History?
Well, I've been formed as physicist, so some examples. Almost
whole CERNLIB has been created, implemented and analysed before
Eru Ilúvatar created the race of Specialists. The accelerator
users NEEDED intelligent code for their applications, and there
were no Wizards in the neighbourhood.
Quicksort has been invented by Tony Hoare between 1959 and
1961 (publication). When he studied in Moscow, he was offered a
work on a translation project, and needed a good method to process
dictionaries. It was thus an application project,
and in such a way TH became specialist!
Interesting story... The Mercury Autocode was less then useful to
reasonably implement sorting and TH, who in 1961 studied Algol 60
(in Brighton) found recursion. Partly thanks to him, the recursive
algorithms began to proliferate, also in numerical realm; you
might know that at the beginning Algol had no recursion, since
some specialists within its Committee were against, saying that
this was useless, only slowed down the programs. Well, the
anti-recursionists continue until today...
The first interesting "computer experiment", the dawn of simulation, with some new algorithms, is the FPUT work (Fermi, Pasta, Ulam, Tsingou, 1953). Will you call them "specialists" (surely of something) and not "applicative programmers"? Actually, the team had one true programmer, Mary Tsingou. All of you probably know who was Fermi or Ulam...
Monte Carlo: Nicholas Metropolis was a physicist. What "best libraries" invented by "specialists" could he look for, while participating in the Manhattan project?
The algebraic language Schoonschip with its wonderful rewriting system, is the creation of Martinus Veltman. Do I have to remind you what was his principal specialty? (and the successor of Schoonschip, Form was created by a physicist, Jon Vermaseren; Reduce: by Hearn, physicist as well).
Do you think that Stephen Wolfram began his carreer as a
specialist in computer science? Verify.
OK, I stop here.
> No cooking of specific (problem-oriented) data structures?
Domain objects, yes. But these are very straightforward; they may even be associated with computations, but that's just processing, there's usually no loops except for summation. Computing a histogram would be the limit of what you'd do there, usually.
Essentially, you map everything to primitives, records, lists, and maps, and that's all you need.As you wish, but don't forget love... You know, it can also be mapped to primitives. Will then it make you happy?
I am sorry, I don't want to be impolite, but I am afraid that you
don't master this subject. Such objects as Graphs in hundreds of
different favours find themselves beyond your "limits of
utility"?? Do you know what data structures are needed in, say,
robotics, in inverse kinematics?
Nobody codes a new ray-tracing engine anymore, unless for an ICFP contest.Do you really think that graphic/imagery/synthesis algorithms for the Film Industry people are primitive, assembly-style instructions, without loops etc., and everything stagnates? Ray tracing?? Do you know what organization of concurrency is needed in the implementation of real-time recursive radiosity? (and this is not so recent!)
Well, I wish you the best. But, please, learn something off your
present limits, you might find many interesting topics.
Jerzy Karczmarczuk