The Artima Developer Community
Sponsored Link

Heron-Centric: Ruminations of a Language Designer
The Two Problems of the Joy Programming Language
by Christopher Diggins
February 10, 2006
Okay Joy has more than two problems, but two problems really stick out.


Achilleas Margaritas and I are designing a concatenative programming language as an alternative to Joy called Unimperative. So far we have identified two major problems with Joy, which we are seeking to address:

  1. The syntax is backwards. e.g. (5, 2, add, 3, multiply). Well at least from a Westerner's perspective. My apologies to my Arabic friends who may disagree. Unimperative will be flipping the syntax back around to the more common prefix notation (multiply, 3, add, 2, 5)
  2. There is no type checking. Type checking can be very useful for debugging and understanding code. It's kind of silly to be obliged to check documentation to see what a function expects to see on the stack. Currently we are discussing the precise syntax to use. I am trying to get Achilleas to agree on the following :
    let<List> second = (first, rest); 
    let<int> double = (multiply, 2); 
Any comments?

Talk Back!

Have an opinion? Readers have already posted 15 comments about this weblog entry. Why not add yours?

RSS Feed

If you'd like to be notified whenever Christopher Diggins adds a new entry to his weblog, subscribe to his RSS feed.

About the Blogger

Christopher Diggins is a software developer and freelance writer. Christopher loves programming, but is eternally frustrated by the shortcomings of modern programming languages. As would any reasonable person in his shoes, he decided to quit his day job to write his own ( ). Christopher is the co-author of the C++ Cookbook from O'Reilly. Christopher can be reached through his home page at

This weblog entry is Copyright © 2006 Christopher Diggins. All rights reserved.

Sponsored Links


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