two classes of programmers 
Author Message
 two classes of programmers

I think this image of first class programmers and second class programmers,
which has been invoked by both sides of the strong-typing debate, is a red

No matter how we design the language, some programmers will know more than
others, and they'll be able to achieve more.  It's not just two classes, but
a whole continuum (or maybe several dimensions).  I vaguely remember many
years ago not understanding Lisp macros.  I sharply remember, hardly any
time ago at all, not understanding Scheme continuations, and I still have a
hard time actually putting them to use.  So I'm somewhere in the middle, but
I've grown over the years.

One big step along the way is learning how Scheme is implemented.  This
step has sub-steps; I understand the metacircular evaluator pretty well
but I don't know anything about compiler optimization techniques.  The
relevance to the current discussion is that someone who knows what's
inside any abstraction (such as an abstract type) will be a step ahead
of someone who doesn't.  It doesn't matter whether that knowledge is
published, accessible at the Scheme interaction level but unpublished,
or accessible only in the implementation's source code; the distinction
is still there.  The only big disaster is if you *have to* understand
the implementation in order to use the feature at all.

It helped me understand continuations, by the way, when somebody told me
a little bit about how they're implemented -- that is, about what's
"inside" the abstraction.  But I'm not arguing that that would be
necessary for everyone.

The fact that the two-classes argument can be used both ways just means
that there are different paths toward greater sophistication, depending
on which roads the language makes easy.  Surely the most wizardly
programmer is one who is comfortable at all levels of abstraction, able
to chat about lambda calculus but also about generational garbage collectors.

The only thing that is to be avoided, along these lines, is to have such a
sharply vertical learning curve, as on the Macintosh, that there really are
only two classes instead of a continuum.  (In other words, you shouldn't
have to be a wizard in order to program at all.)  I don't think any of the
viewpoints within this group runs that risk.

Sorry if this is all obvious to everyone...

Fri, 29 Jul 1994 07:26:49 GMT  
 [ 1 post ] 

 Relevant Pages 

1. Two way communication between a python class and a C++ class

2. read two sets of data from two spread sheet files to two arrays problem

3. Smalltalk Programmers Needed! ( Two Permanent Positions)

4. Parable of two programmers

5. Creating a new control-class based on two or more standard controls

6. one data structure accessible from two classes - how?

7. implementing links between two classes in CLOS (without inheritance)

8. Two class-wide operands, but only one controlling

9. how to link two classes

10. Two versions of the same class

11. Another two examples of using changing classes

12. Two quick questions (class instance and shelve)


Powered by phpBB® Forum Software