[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)



> -----Original Message-----
> From: owner-ll1-discuss@ai.mit.edu
[mailto:owner-ll1-discuss@ai.mit.edu]
> On Behalf Of Anton van Straaten
> Sent: Wednesday, December 19, 2001 10:27 PM
> To: David Simmons; 'David Simmons'
> Cc: ll1-discuss@ai.mit.edu
> Subject: RE: Functional Paradigm popularity and Maths (Was: XML as a
> transition to s-expr)
> 
> David Simmons wrote:
> > I entirely agree with you. In my opinion, Smalltalk has largely
suffered
> > from the fact that it is "different" syntactically from the
mainstream.
> ...
> > It is one of the reasons why I extended and evolved Smalltalk from
the
> > outset of my work on the first commercial implementation version of
QKS
> > Smalltalk in 1991.
> >
> > It has been a driving force in the design and implementation of
> > SmallScript as new language based on a superset of classic
Smalltalk.
> 
> Glad to know it wasn't just me. :)  And I promise to check out
SmallScript.
> I have Squeak installed on my system, despite my syntactical aversion.
> 
> > > The parentheses are a short step from there.
> >
> > Sure. But why do I need them?

That was intended as a rhetorical question <g>, within the context of
the original posts's comments on their value/necessity in a language
learning process.

I understand and appreciate their purpose and value within a lisp
context.

> 
> That's been covered here already - because it provides some useful
> capabilities which might come in handy later - macros, code-as-data.
Both
> of these probably have more to do with limitations in existing
languages,
> that don't typically make it easy to read their own code, or redefine
> syntax
> in a hygienic way.  So perhaps in future, the benefits currently
provided
> by
> parenthesized syntax will be eroded, but there don't seem to be many
good
> alternatives at present.
> 
> If you then ask "why does a newbie need parentheses", I would say that
> perhaps they don't, but it depends on what you want to teach them.  I
> agree
> with Shriram: pure Scheme is the machine embodiment of an elegant
> mathematical formalism, that can be viewed as underlying all known
> computing
> operations.  Niggles about parentheses pale in comparison to the
sheer,
> mindblowing importance of this fact.  :O))

I agree with the former part of this paragraph. I don't agree with
latter "mindblowing importance" part. Valuable, absolutely. A
fundamental idea for certain problem domains, absolutely. 

Fundamentally important to all computer-science/software-engineering
problems, no. But then again, that is why we are having this debate.

To assert such universal importance, is tantamount (by analogy) to one
declaring a specific discipline and field of mathematics as being the
fundamental/essential or important element of all mathematics.

> 
> Because of this, if you want to teach computer science, as opposed to
> simply
> programming, Scheme is an excellent tool to do it with, even at an
> elementary level, as the PLT group seems to be demonstrating.  In that
> context, large codebases are not typical, good form is being taught,
and a
> helpful editor is being used, so I really can't see the parens as an
> enormous impediment.
> 
> If the question is whether a more natural language is possible for
humans,
> sure.  No-one seems to agree on what that should look like, though, so
in
> the meantime, we're in the thousand-flowers-blooming stage, and
probably
> will be for a long time to come.  After all, we don't all speak a
single
> natural language yet, and we've had millenia to get our act together
in
> that
> respect.
> 
> I can't speak for Common Lisp, but I'll readily agree that *standard*
> Scheme
> won't compete well with some scripting languages when it comes to
brevity
> and naturalness of expression.  "SchemeScript", anyone??  But with
macros
> and a suitable object system, you could probably implement something
like
> your:
> 
> >	filestream append('Hello'); flush; close.
> 
> as:
> 
> 	(send-multi filestream (append "Hello") flush close)
> 
> Part of the fun of Scheme, if you're into language design, is being
able
> to
> customize and develop your own little languages in it with very little
> effort.  That's also a big reason why no two Schemes are alike...

Some would argue the same for design in pure-oo languages. 

In such languages you can create your own classes and define all their
behavior. Which I would say, in turn, defines a new language. You can
pretty readily provide simple front ends to alter the syntax and grammar
as well, if that is desired. (* although not nearly as intrinsic and
efficient as scheme macro facilities *)

It happens to be a technique which is used by a number of Smalltalk's to
implement TCP protocol state machines, XML parsers, RTF compilers and
generators, etc.

>From my perspective, this little-language notion is what
dynamic-languages like Smalltalk have termed frameworks and components.
I.e., they are all "little languages", which are each unique to the
classes/interfaces of objects/components involved.

-- Dave S. [www.smallscript.org]

> 
> Anton