[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Functional Paradigm popularity and Maths (Was: XML as a transition to s-expr)
Well, ok. I have to jump in here a bit.
Alan Kay's goals for Smalltalk were to invent a language that "children"
could program. In that, it has been shown to be quite successful.
Children of ages 4 and up have been able to understand and write
programs and design objects in Smalltalk.
It takes just hours for most people to pick up Smalltalk and begin to be
productive.
Lisp requires one to think in terms of "lists" and "recursion". This can
be a very difficult cognitive barrier that is limited by the persons
(mental development -- abstract thinking) "age" and the corresponding
"educational" exposure (to abstract thinking) of the person involved.
For children, thinking in terms of conversations with "things" and
adding new "verbs" or "nouns" for those conversations is easier.
So just what are we saying...
-- Dave S. [SmallScript LLC]
SmallScript for the AOS & .NET Platforms
David.Simmons@SmallScript.com | http://www.smallscript.org
> -----Original Message-----
> From: owner-ll1-discuss@ai.mit.edu
[mailto:owner-ll1-discuss@ai.mit.edu]
> On Behalf Of Tim Hickey
> Sent: Tuesday, December 18, 2001 9:05 PM
> To: Don Blaheta
> Cc: ll1-discuss@ai.mit.edu
> Subject: Re: Functional Paradigm popularity and Maths (Was: XML as a
> transition to s-expr)
>
> On Tue, 18 Dec 2001, Don Blaheta wrote:
> > Quoth Ash Searle:
> > > I think an interesting and possibly unrelated question may be:
> > >
> > > If you could take a virgin programmer (of unknown mathematical
> ability),
> > > which programming paradigm would you teach them first? And,
why?
> >
> > Functional; if they really have had no programming experience, they
can
> > get up-and-running much faster in functional style. There's just
not as
> > many core concepts they need to understand to get started
(variables,
> > mutations, strings; they don't even need to understand functions at
the
> > very start, though that's more due to the REPL than anything else).
In
> > addition, if Scheme is the functional language in question, they
have
> > negligible syntax to learn to get started.
>
> I would agree. I teach Scheme to about 200 non-science majors each
year
> and they can go much farther than the Java class. Most of the students
> have no programming background (being from the humanities or arts or
> social sciences). In one semester they can write servlets, applets,
trace
> through fairly sophisticated functions (e.g., log-time
exponentiation...).
> They do have trouble with paren matching, but its more at the nuisance
> level than the conceptual. Also, when they write HTML they
> also have trouble making matches, its just that the browsers usually
don't
> complain and try to do something reasonable ... Trying to teach such a
> course in Java would create problems on several levels:
>
> * too much syntax for novices to quickly absorb (public static final
> Double ...)
> f(a) x.f(a) java.lang.System.out.println(...) )
>
> * too complex a model (objects, instance/static variables/methods,
> constructors, packages, parameter passing, ...),
>
> * too much effort required for conceptially simple operations
> (e.g. gui layout, servlet form processing)
>
> For servlets we use a servlet container that allows HTML to escape
into
> scheme (with <scheme> ... </scheme>) and the scheme also can escape
into
> html with <xml> ... </xml>) The students find this very easy and fun.
> I have only taught Scheme and Java at this level and so don't know how
> well Python, Ruby, or Perl would fare.
>
> ---Tim---