[plt-scheme] Re: How difficult would creating a collaborative multi-user online virtual world application be in PLT Scheme?

From: Benjamin L.Russell (DekuDekuplex at Yahoo.com)
Date: Fri Jun 12 00:38:18 EDT 2009

On Thu, 11 Jun 2009 15:40:47 -0700, John Clements
<clements at brinckerhoff.org> wrote:

>On Jun 11, 2009, at 1:30 AM, Benjamin L.Russell wrote:
>> Unfortunately, Smalltalk is an object-oriented language.  If possible,
>> I would like to see something similar in a more functional programming
>> language such as PLT Scheme.
>It's not my intent to dissuade you from contributing to PLT Scheme,  
>but I would caution you against lumping Smalltalk in with languages  
>like Java and C++; Smalltalk is the "real" OO (cf. Matthias' talk),  
>and includes most of the features you'd expect to find in a functional  
>language. In fact, Smalltalk's syntax for introducing a closure is  
>lighter-weight than Scheme's, and allows a fairly natural-looking if  
>that's a function rather than a special form.  Honestly, calling a  
>language "OO" doesn't really mean much, these days (cf. Shriram's  
>"post-linnean" stuff).

Actually, I never "lump[ed] Smalltalk in with languages like Java and
C++"; in fact, if you read my post "Re: A question regarding a
thesis.," dated "Wed, 10 Jun 2009 21:35:17 +0900," on
comp.lang.functional (see
you will see that I have specifically distinguished between Smalltalk
and such languages as Java and C++; _viz._:

>[S]ome languages (such as Smalltalk
>and Ruby) are pure object-oriented languages, whereas other languages
>that claim to be "object-oriented," such as Java and C++, are really
>procedural with some object-oriented features (see under the section
>"Some Real Life Examples" in "What is Object-Oriented Software? An
>Introduction" (http://www.softwaredesign.com/objects.html) for a more
>detailed explanation of this difference).

Rather, my concern comes from the fact that, being more used to
thinking functionally than in an object-oriented manner, functional
programming lies more in my comfort zone.  The idea of a "comfort
zone" for functional programming is perhaps best expressed by Paul
Hudak in the following portion of his post regarding another
functional programming language, Haskell, in his following post,
entitled "a regressive view of support for imperative programming in
Haskell," dated "Wed Aug 8 14:20:39 EDT 2007," on the Haskell-Cafe
mailing list, as follows (see

>Functions are in my comfort zone; syntax that hides them takes me out of 
>my comfort zone.
>Well, you could argue, monad syntax is what really made Haskell become 
>more accepted by the masses, and you may be right (although perhaps 
>Simon's extraordinary performance at OSCOM is more of what we need).  On 
>the other hand, if we give imperative programmers the tools to do all 
>the things they are used to doing in C++, then we will be depriving them 
>of the joys of programming in the Functional Way.  How many times have 
>we seen responses to newbie posts along the lines of, "That's how you'd 
>do it in C++, but in Haskell here's a better way...".

This issue is not specific to Haskell, but common to other functional
(and semi-functional) programming languages as well.  It relates to
being used to thinking in a particular paradigm (even though some may
argue that paradigms in general are silly and meaningless, that issue
is separate from the issue of being used to thinking in one).

Smalltalk, as a pure object-oriented language, indeed has certain
advantages over impure object-oriented languages, such as Java or C++,
but it usually takes more time for a functional programmer who is used
to thinking in purely functional concepts to learn to think in
object-oriented concepts (even pure ones) than to learn a different
functional programming language using functional concepts.

Hence my search for a suitable language that would not require
learning a different paradigm.

-- Benjamin L. Russell
Benjamin L. Russell  /   DekuDekuplex at Yahoo dot com
Translator/Interpreter / Mobile:  +011 81 80-3603-6725
"Furuike ya, kawazu tobikomu mizu no oto." 
-- Matsuo Basho^ 

Posted on the users mailing list.