Skip to content

Paradigm Shift: Back to the Past, and No Small Talk About Smalltalk

by Benjamin L. Russell on August 25th, 2009

Those who have been reading my posts may have noticed this trend, but there has been a decided shift in the nature of my posts starting on June 18, 2009.

Specifically, prior to this date, the majority of my posts focused on Haskell, Scheme, and category theory, with a focus on purely functional programming. While I am still interested in purely functional programming, one of my other major interests is in creating a three-dimensional virtual world with some innovative functionality (I have something specific in mind).

At first, I was intent on finding a way to create such a world using a purely functional programming language. However, most purely functional programming languages do not have enough libraries to enable easy creation of such a world. Furthermore, in order to create such a world, most purely functional programming languages would require a rather sophisticated knowledge of linear algebra, which is one area of mathematics that my visiting discrete mathematics professor in college did not adequately cover, and which I have never had enough time to study fully on my own; by contrast, my favorite areas of mathematics are all related to set theory, recursive function theory (a.k.a. “computability theory”), and philosophical logic.

Therefore, I began searching for a programming language which would enable feasible writing of a three-dimensional virtual world without requiring explicit knowledge of linear algebra. Furthermore, since I was interested in programming language theory, I wanted a programming language that was at least based on a general-purpose programming language, as opposed to a domain-specific language.

After an intermittent search that lasted several months, I eventually came across a tool called “Cobalt,” based on Croquet, further based on Squeak, a dialect of Smalltalk. Unfortunately, Smalltalk is a pure object-oriented language, not a functional programming language, and after repeated attempts at approaching Squeak, the basis for Cobalt, I found the GUI-based interface rather difficult to get used to, having come from an Emacs-based textual environment. In addition, having come from a functional programming background, I found the concept of object-oriented programming highly counter-intuitive. (Apparently, I’m not the only person who has experienced this problem; similar arguments have been advanced by Paul Hudak [1] and Jonathan A. Rees [2].)

In short, I was encountering a paradigm-shift problem (with apologies to Shriram Krishnamurthi, who claims [3] that paradigms are ill-defined and hence significantly meaningless).

Here, I was faced with a dilemma: If I tried using a functional programming language, I would probably need to do a lot of work in writing the necessary libraries for the three-dimensional manipulation of graphical objects, which would additionally require learning linear algebra, which, between my full-time translation job and my busy weekends, I simply did not have enough time to learn. On the other hand, if I tried using Squeak, then every time I tried to learn the language, I would feel uncomfortable with the object-oriented paradigm, and with the GUI-based environment, and keep returning to such familiar programming languages as Scheme and Haskell, and to such development environments as Emacs.

After some thought, I realized that the problem with learning Squeak did not have to do with any inherent difficulty in Squeak itself; rather, I needed, at least temporarily, to unlearn functional programming and unlearn working in Emacs. In short, I needed to restore a blank mental slate. Well, where did I first learn functional programming and Emacs? Ah, that’s right: in college.

Although I couldn’t actually un-attend college, I could, in a sense, restore my mental state to just before attending college: What I needed to do was to go back to the past, mentally speaking, to just before college, and approach Squeak with a fresh mind. To borrow Scheme terminology, I needed to resume the continuation in the process of my life from just before attending college: Then it would be straightforward.

One night, just after midnight on Thursday, June 18, 2009, I was walking back home, reminiscing: Let’s see … what was I doing back then. Going back in time …

2007 (changed jobs again, and became patent translator),
2006 (became patent checker, then changed jobs, and became software project leader),
2004 (moved from Manhattan to Tokyo),
2002 (political difficulties at work; job further downgraded to English teacher),
2001 (WTC disaster in Manhattan, where I lived; severe downsizing at workplace resulted; job downgraded to Materials Coordinator),
1999 (became Localization Coordinator at Berlitz),
1997 (first moved to Manhattan from New Rochelle, NY),
1996 (began first major job as Systems Engineer in White Plains; moved to New Rochelle from Jersey City),
1995 (first moved to Jersey City from New Haven),
1994 (graduated from college),
1993 (took courses in recursive function theory, philosophical logic, and the lambda calculus, especially enjoying the lambda calculus; first exposure to Haskell in auditing a course on Haskell),
1992 (finished leave of absence and self-study of discrete mathematics; took a course in axiomatic set theory),
1991 (began leave of absence and self-study of discrete mathematics),
1990 (took a course on Pascal and hated it; embarked on Computer Science major; started learning Common Lisp and Scheme: hated Common Lisp because of all the funcalls and idiosyncracies, but enjoyed Scheme because of the relative simplicity and regularity of structure of the language; started learning Emacs; learned how much I did not know, and how stupid I was, and became chronically depressed),
1989 (moved from Tokyo to New Haven, and matriculated at college).

1989. Ah, there: Continue from the continuation of my life-process at that point: the early afternoon of August 31, 1989, just before leaving for Narita Airport to go to New York to take the bus therefrom to New Haven to begin my (dreaded) college studies.

No Emacs. No Scheme. No Haskell. No category theory. No chronic depression. Return of math phobia. Return of Japanese popular music. Return of a simple mind which is not depressed because it does not know how much it does not know. Return of interest in multimedia. Aha!

Multimedia: the missing link! At that time, I was very interested in the Fujitsu FM Towns, a Japanese personal computer modeled on the Macintosh, the interface of which was based on Smalltalk [4]! Proceeding to Smalltalk from this continuation would be relatively trivial!

Sometimes, one needs to move backward in order to move forward.

So I decided to resume my continuation from this point on, with a fresh mind.

Resuming continuation….

I awoke, as if from a trance.

The next day, I returned to my computer, continuing the continuation. Suddenly, this strange text-based interface on my screen called “Emacs” seemed like a monstrosity that some text-based hacker must have concocted just for the sheer challenge of mastering arcane keystroke-combinations. Yuck! There must be a way to do programming without having to master arcane keystroke-combinations.

Let’s see; where can I find a point-click-drag interface that allows me to program without having to use a textual editor … preferably, one similar to the graphical user interface of the Fujitsu FM Towns, based on the user interface of the Macintosh….

Aha! what’s this mouse-face-icon on my desktop labelled “Squeak?” Double-clicking on the icon labelled “Squeak”….

Hmm … a colorful background with illustrations. Sound. Multimedia. Point. Click. Drag. How intuitive: just like the Macintosh interface! Hmm … some research shows that it is an implementation of a language called “Smalltalk,” the interface of which was the basis for the Macintosh … what a coincidence … how curious…. I wonder who put it here….

Hmm … found a note here. It says, “Note to myself: Learn Squeak and Cobalt, and build a virtual world using Cobalt, using ideas described on the attached sheet.” Sure; why not?

[1] Hudak, Paul. “[Haskell-cafe] a regressive view of support for imperative programming in Haskell.” Online posting. 8 Aug. 2007. 25 Aug. 2009. <news://>. Also available at <>.

[2] Rees, Jonathan A. “JAR on Object-Oriented.” Online posting. 11 May 2003. 25 Aug. 2009. <>.

[3] Krishnamurthi, Shriram. “Teaching Programming Languages in a Post-Linnaean Age”. Cambridge:_2008 SIGPLAN Workshop on Programming Language Curriculum_ (2008): 81-83. <>.

[4] Kay, Alan C. “The Early History of Smalltalk.” Cambridge, Massachusetts: _History of Programming Languages: The second ACM SIGPLAN conference on History of programming languages_ (1993): 69-95. <>. Also available at <>.

  1. Boyd permalink

    Hi, I do think this is an excellent blog. I stumbledupon it ;) I may return yet again since
    i have book-marked it. Money and freedom is the greatest way
    to change, may you be rich and continue to guide others.

  2. Great web site you have got here.. It’s difficult to find quality writing like yours these days.
    I seriously appreciate individuals like you! Take care!!

  3. of course like your web-site but you need to test the spelling on quite a few of your posts.

    Many of them are rife with spelling problems
    and I in finding it very troublesome to tell the truth then again I’ll certainly come again again.

    • The shift of Microsoft away from the Win32 API to the .net platform (and the ascsioated presentation foundation) has not helped and would mean a dedicated development effort of sufficient intensity that we just can’t commit to it given the potential returns.What really killed it was this commitment to one platform. I remember reading a presentation by an old software developer and the things he learned: commit to standards and commit to open platforms. UNIX is open and it’s still standing. OTOH, these guys aren’t the only product Microsoft killed.

  4. This visual effect creates interest in what is ahead.
    Once you know how much you can spend on your new project, section
    it off into categories for the things you need. I’m a pigmented picture of a prince now grown;
    an occupant, not merely an heir to the throne – painting of a king.

  5. While you can still be in vogue and dress to kill, you can
    attract the men around you with your striking personality as easily
    as you can if you were a “no 10″. Rights advocates might have a bit of hope
    that now the medical community will finally understand gun owner concerns about privacy and loss of rights
    to an increasingly intrusive Obama administration’s efforts to dig as deeply into
    their personal affairs as possible, while cloaking itself in secrecy.

    Well, they are easy to use, they can use very light line,
    it is easy to adjust the drag and they are generally less expensive than other
    kinds of reels.

  6. The tools are in your hands to do anything you put your mind too.

    This is basically when you receive a commission for selling someone
    else’s product. If users have a dedicated workers at your location, they can often replace the part
    in only a few minutes and grab the equipment up
    and running again.

  7. You have to manage graphics suits to the website pages and add alt-text.
    You will need to be able to create close to a
    hundred pages or more of quality, unique content. It is a good idea to save this receipt, you might need it later.

  8. Can I simply say what a relief to discover somebody that really knows what they are talking about on the
    web. You certainly realize how to bring a problem to light and make it important.

    A lot more people really need to read this
    and understand this side of your story. I was surprised you’re not more popular since you
    surely have the gift.

  9. Dimensioni CWS is an experienced writer having more than a decade of experience in writing articles on Article
    writing services, Article writing company, content writing india, content writing services, article writing , content writing
    company India etc. s philosophy of linking is that website
    owners link to other websites because they like them
    and trust them. There are many websites and other profiles
    that offer this service.

  10. I blog frequently and I seriously appreciate your
    information. Your article has truly peaked my interest.
    I will bookmark your site and keep checking for new
    information about once per week. I opted in for your Feed too.

  11. It helps if the need and the company’s operation. Moreover,
    by expertise, possessed plant and equipment are subject to immediate termination or dismissal from
    the contractor could provide them with an effectual project management for you.
    They are regularly trained and detailed evaluation of what the General
    Assembly in 2008, where and when he dreamed this bill can help you find all
    the signals all the prices.

    • If you want to see an application built with Cincom you have to give them retalyios for each sale. I just can’t see putting up with that in this day and age. It’s like they’re stuck in the 80s.I would’ve loved to use Dolphin to build XP apps.Seaside is cool, I could see using it with Squeak, for web apps with really complex interaction. But for any site the might get huge I’ll use Erlang.Sad day.

    • and the hundreds of pages of renagdis i have to read and catch up on.recently, i was logged into my girlfriends online chat, and i found out that she was talking with another guy asking if he could get her some vodka to take to a hotel for a school event with thousands of coeds. she was going to attend. she told him that she and her friend (female) were going to have the a room to themselves in hotel and get totally f*cked up. When i read this, i was completely devastated. Nothing but horrific images came to my mind and i felt betrayed in a way because i have always trusted her, and we have had serious talks about drinking alcohol and about partying before. And to see this thing going on behind my back is devastating to me. the next day i tried to hint it out if she could tell me if she was planning something behind my back or is she was thinking of doing something. she kept denying it but i knew she didn’t want to admit it. i finally broke out and told her i knew about her plans and that i cannot trust her anymore if she was going to do these kinds of things behind my back. yet instead of feeling any sorrow for the promises she broke and heartbreak she caused, she gets mad at me for spying on her. i do respect her privacy but this time i felt suspicious of her and consequently caught her in the act. so she tells me that she does not want to hear or talk to me ever again forever. i took that comment to the heart and felt as if she was breaking up with me. so then i told her we were done . then shecompletely flips out on me and basically talks sh*t about me and how im not good enough for her. blah blah .. so then later that evening i asked if we could talk and work it this problem. and i apologized to her and everything (even though it wasnt my fault) and she wouldnt take me back. she decided we should just be friends for a while and take a break.i really love her and this is the first time we have ever crossed the line of breaking up, but i just want to fix things with her. but all she tells me is that its my fault for breaking up with her. and im the one being blamed for everything, when in reality, it was she that was doing things behind my back and she basically broke it off with me (by telling me she does not want anything to do with me anymore ever again) .. all i did was say we’re done and now im being blamed for everything.i have been trying to fix things with her and she told me that she wants a break (no communication, no texting, email, nothing whatsoever) until the time is right. after a day or two she sent me a couple messages saying hi and we talked, then the day after we hung out. and we ended up kissing, everything had gone great, romantic dinner, fun evening, happy conversations then the next day she emails me saying that she still feels that im a complete asshole for breaking up with her and that we should go on a break again. this really breaks my heart because i feel as if i have become a complete stranger to her and she calls me by my first name now as if im some random guy talking to her.. im just really scared that she wants to go on this break so that she could move on and forget about me. i really dont know what to do anymore. she keeps bringing up the fact that i broke up with her when in fact it was her fault and i only feel worse about myself for something i shouldnt even be getting blamed for. i really want this relationship to workout for us and i want to put all this mess behind us but she doesnt see it that way and she doesnt want to talk or see me anymore.i want to fix things with her but i dont know how. she wants space but i want to talk and fix things. i really believe we can both work this out by communication, but shes giving me the silent treatment. what should i do???

  12. is updated frequently with free advice about Google
    Ad – Words strategy, tactics, tips tricks and techniques for
    success in Ad – Words advertising. The website speed test at
    Secret Search Engine Labs will analyze how fast
    a page on your site is loading and give you tips on how
    to improve it. * Page SEO: Your page is optimized by various means which
    include, choosing the right keywords, placing them
    right, adding anchor text linking, adding call to
    action in various places on the page.

  13. Write more, thats all I have to say. Literally, it seems as
    though you relied on the video to make your point. You obviously know what youre talking about, why waste your intelligence on just posting
    videos to your weblog when you could be giving us something enlightening to read?

  14. Every weekend i used to visit this web site, because i wish for enjoyment,
    for the reason that this this site conations actually pleasant funny stuff

  15. You actually make it seem so easy with your presentation but I find this topic to be actually
    something that I think I would never understand.
    It seems too complicated and very broad for me. I am looking forward for your next post, I
    will try to get the hang of it!

  16. I’m no longer sure the place you’re getting your info, however great topic.
    I must spend a while studying more or figuring out
    more. Thank you for fantastic information I was searching for this info for my mission.

  17. My partner and I absolutely love your blog and find the majority
    of your post’s to be just what I’m looking for. Would you offer guest writers to write content for you personally?
    I wouldn’t mind creating a post or elaborating on a few of the subjects you
    write in relation to here. Again, awesome site!

  18. If you are going for most excellent contents like me,
    simply go to see this site every day as it presents feature contents, thanks

  19. Right away I am going away to do my breakfast, once having my breakfast coming again to read additional news.

  20. Gorące pozdrowienia i dzięki za artykuł – świetnie się go czytało

  21. This is also possible if they offer SEO as part of
    their service. Dream – Host is an online hosting company that offers products
    like domain registration, shared website hosting, Virtual Private Server (VPS), and public cloud services.
    The laws have been changing and many portals that offer services are finding it harder and harder to get their word out there.

  22. The CEO do not require to have pricey MBA degree to have an understanding of such very simple factor.

  23. Hello to every one, the contents existing
    at this website are actually amazing for people knowledge, well, keep
    up the good work fellows.

  24. Hello friends, how is the whole thing, and what you desire to
    say on the topic of this piece of writing, in my view its actually remarkable designed for me.

  25. Good day very cool blog!!Guy .. Beautiful .. Amazing ..
    I will bookmark your site and tak the feeds also?

    I aam glad tto search out a lot of useful information here within the publish, we need develkop
    more techniques in this regard, thank you foor sharing.
    . . . . .

  26. Can I simply just say what a comfort to uncover an individual who
    genuinely understands what they’re talking about on the web.
    You definitely know how to bring an issue to light and make it important.
    More and more people really need to check this out and
    understand this side of your story. I was surprised that you aren’t more popular since you most certainly have the gift.

  27. Apart from its irresistible taste, mango has a lot of health
    benefits that you may never think of. It is also best to
    limit intake of juices which are high in sugars and
    acid; they could lead to tooth abrasion and gum recession. If the Liver is
    sluggish or slow then the toxins will remain circulating in the bloodstream.

  28. Drip tips are less wasteful since yoou do not have too throw away
    your previous cartridge. Monday ‘ Friday: 8 AM ‘ 6 PM Centrral Time (closed holidays).
    The only effect slightly larger than the effect off media violence
    on aggression is that of cigarette smoking on lung cancer.

  29. Dry skin about the eyes is not a difficulty when you know how to treat it.

    Right here are many possibilities for treating dry
    skin about the eyes, from dietary and organic treatments to other options.

  30. I am actually thankful to the owner of this web site who has shared this impressive article at here.

  31. Een kans die je niet wil missen, dus neem de tijd
    ook om de retailers in de gaten te houden en te kijken wat jij nodig hebt.

  32. Their adorable comfy bird faces are somewhat some sort of trademark that can conquer all
    of the hungry green pigs. Once again Jane has smoked you on the Angry Birds Friends weekly tournament.
    Lots of land bound birds produce extremely one of a kind arrangements of shapes and color patterns
    in dimensions that are unrivaled.

  33. Next, make sure that you are using commonly-used terms to describe what your business does
    or sells. It all starts with finding local businesses that need your services and then building websites for
    them. This is the need to-do for any individual undertaking Miami SEO for their business, shop, or restaurant.

  34. It is a thickness not so small device dimensions 93 x 50 mm can be easily forgiven. On Google type in “Google my business” and follow the link at the top.
    Something else that you should be looking for is a directory that
    has some way of verifying their suppliers.

  35. Cela signifie pratiquement que les premiers films que vous verrez lorsque vous ouvrez l’application sont les nouvelles sorties en qualité 720p et 1080p.

  36. Or else, you might need to get one customized from an i – Phone development company.
    John Chelsea is an expert author of telecommunication industry.
    Many hikers and backcountry skiers have found them indispensable for
    providing another mode of getting information about unknown backcountry mountains and
    passes where the topographic maps may not tell the whole story.

  37. Right here is the perfect site for everyone who really wants to understand this topic.
    You realize a whole lot its almost hard to argue with you (not that
    I actually would want to�HaHa). You certainly put a
    fresh spin on a subject which has been written about for years.
    Excellent stuff, just wonderful!

Leave a Reply

Note: XHTML is allowed. Your email address will never be published.

Subscribe to this comment feed via RSS