The Artima Developer Community
Sponsored Link

Agile Buzz Forum
The Art of the Minimal

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
James Robertson

Posts: 29924
Nickname: jarober61
Registered: Jun, 2003

David Buck, Smalltalker at large
The Art of the Minimal Posted: Feb 14, 2004 8:19 PM
Reply to this message Reply

This post originated from an RSS feed registered with Agile Buzz by James Robertson.
Original Post: The Art of the Minimal
Feed Title: Avi Bryant
Feed URL: http://smallthought.com/avi/?feed=rss2
Feed Description: HREF Considered Harmful
Latest Agile Buzz Posts
Latest Agile Buzz Posts by James Robertson
Latest Posts From Avi Bryant

Advertisement
As part of my work for the trial run of the Master of Software Arts, I've been thinking a lot about minimalism as something to strive for in software. I have a strong bias towards solutions that involve a small number of primitives that can be easily combined, as opposed to a lot of sugar and special cases - which is why I prefer Smalltalk to Java or Python, Scheme to Common Lisp, and Objective-C to C++ (of course, I don't go so far as to write everything in Unlambda). Guy Steele's Growing a Language talk is worth mentioning in this context, since he gets the point across better than I ever could.

One of the artifacts I've produced while thinking about this is Sorrow, a compiler for a language that resembles the minimal functional language Joy. Sorrow integrates with Smalltalk in two interesting ways: in Joy (as in early Lisps), functions are passed around as simple lists of symbols, and in Sorrow they are represented by Smalltalk arrays. This means that Sorrow's syntax becomes Smalltalk's literal array syntax, and you can use an array with Sorrow code in it anywhere you would use a code block. The other is that the compiler translates the tokens in the array to Smalltalk 80 bytecodes essentially one-to-one, so that Sorrow code is directly controlling the stack machine implemented by the Smalltalk VM. In this way I think of it as a "minimal syntax" for Smalltalk (although it can't produce bytecodes that perform direct mutation or early returns).

Another is a proposal for a minimal solution to a problem domain that I've done a fair bit of work in over the last year, that of single-sign on across distributed, untrusted web applications. It's called MISO, for Minimal Integrated Sign On, and effectively it's a way to let people use public key cryptography to log into websites without having to carry an SSL certificate around with them - instead, they delegate their private key to a trusted host and let it work out the authentication details with the target site. The trick is coordinating the three way communication (key host, user, application) across HTTP without opening up any gaping holes. I'm sure I haven't gotten it right yet, but the only way to find out is to let other people see it and point out how dumb I am. It seems to me that there's a strong argument for being minimal here - the only way something like this is going to have the kind of exponential growth that makes it worthwhile is if everyone and her brother can trivially whip up something that'll talk to it, whatever platform their application happens to be on. MISO requires an HTTP client and a DSA implementation, which is more heavyweight than I'd hoped but a far cry from solutions like the Liberty Alliance.

Read: The Art of the Minimal

Topic: EfiQuations Previous Topic   Next Topic Topic: One more push on text settings in Bf

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use