Newsgroups: comp.lang.dylan
Path: cantaloupe.srv.cs.cmu.edu!rochester!cornellcs!newsstand.cit.cornell.edu!news.kei.com!newsfeed.internetmci.com!EU.net!Germany.EU.net!news.maz.net!news.ppp.net!news.Hanse.DE!wavehh.hanse.de!cracauer
From: cracauer@wavehh.hanse.de (Martin Cracauer)
Subject: Re: More dumb questions
Message-ID: <1995Nov30.104051.4149@wavehh.hanse.de>
Organization: BSD User Group Hamburg
References: <acd55a08010210042589@[198.112.74.135]> <48qjrt$a0s@ns.taligent.com> <ppotts-2211951440570001@198.11.57.140>
Date: Thu, 30 Nov 95 10:40:51 GMT
Lines: 40

ppotts@frymulti.com (Paul R. Potts) writes:

>I sympathize. I'm a C++ developer that came to Dylan with *no* experience
>in dynamic languages. It turns out there are a lot of things that
>Lisp coders are quite used to thinking about, practically unconsciously,
>that go against just about everything I know about programming.

>Example: the way lists are implemented, and why they insert at the
>front, and why there aren't primitives to access the end. Reason:
>they are implemented as simple linked lists. As a C++ programmer, I'm
>used to working with opaque classes which could hide implementation
>details and I wouldn't know if the list class was using a hash table,
>array, or whatever to implement. So, to a Lisp-head, I seemed stubbornly
>ignorant when I kept asking "why?" "why?" "why?"

I don't think this is typical for C++ programmers anymore. Since the
apperance of STL, the differences between lists, arrays etc are
concepts that are taken to the programmer to support him in choosing
the best for the purpose. What operations are possible, efficient or
impossible on specific containers in STL is pretty clear and the STL
enforces thinking about it.

Older class libs "hide" this implementation "detail" and therefore
make efficient use of the classes impossible.

>I hope when Dylan implementors write their docs, they will keep this
>in mind and try to target static-language veterans with special sidebars
>and notes.

Of course. It is not obious, however, what the exact knowledge of the
typical programmer of a given language is. For the example given here,
I think generic knowledge of container construction is most important,
which does not really belong to a language tutorial.

Martin
-- 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Martin Cracauer <cracauer@wavehh.hanse.de>  - BSD User Group Hamburg, Germany 
"As far as I'm concerned,  if something is so complicated that you can't ex-"
"plain it in 10 seconds, then it's probably not worth knowing anyway"- Calvin
