RLX

RLX is a rogue-like video game engine written in Emacs Lisp that is being ported to Common Lisp.

In addition to the fact that this is a game so it is just plain fun, the author uses emacs as an IDE for creating games using the engine.

What more could you ask for? Read more on about it on his blog.

Fortress 1.0 Released

Guy Steele’s latest programming language Fortress has been released.

The Fortress programming language is a general-purpose, statically typed, component-based programming language designed for producing robust high-performance software with high programmability.
In many ways, Fortress is intended to be a “growable language”, i.e., a language that can be gracefully extended and applied in new and unanticipated contexts.

(via PLNews)

Graphviz

Graphviz, or Graph Visualization Software, is a gem of a program. By specifying graph relationships in plain text files, you can create and publish graph diagrams (in just about any format) to serve any number of purposes including the visualization graphs (of course!) and anything else that can be represented by a graphs like UML, class diagrams, state machines, network architecture, system design, and even code! This is a perfect tool for any developer.
Here are some screenshots; but don’t be limited by what you see. Use your imagination!

Functional and Declarative Programming in Education (FDPE08)

This conference covers a lot of very interesting topics about the role of functional programming (FP) languages in education (follow the link for ample details). It sounds like a great conference!
(Its co-location with ICFP 2008 is yet another reason to attend, and as FP becomes more popular in the industry today, the question of how to teach FP to imperatively trained programmers becomes especially interesting.)

How do you find the perfect programming language?

For many years I sought “the perfect programming language”. Traveling aim-fully from language to language, I found that there are a number of aspects to enjoy when it comes to a particular programming language, but I never found one that was “just right”.
During that journey, I started out as a slave to syntax. I had to “like” the syntax. Even when I found a syntax I liked, I would find that the language would be too narrowly-focused. Most general-purpose languages force you to shoe-horn your solution to a problem into how the language creator wants you to solve it. Most programmers hate being forced to do anything; especially how to think.
Eventually I realized that there is no “perfect programming language”. Perhaps, though, there is a language that is “good enough”.
A lot of folks love the programming language Lisp. It provides all of the core language features you could ever need. On top of that, it lets you tailor the syntax to your pleasure.
From what I know about Lisp, it is “good enough”, and in the world programming languages, that is probably just about the best compliment you could give any language.

Emacs influence on Ruby

Who would’ve thought that Ruby’s block ‘end’ keyword was created to facilitate Emacs? Oh man!

When [Matz] was first starting out writing Ruby, he was coding the Emacs ruby-mode.el for it at the same time. He expressed some frustration with modes for other languages like Python and Pascal in which the editor could not look at a line of code and figure out where it should be indented to, so he resolved that Ruby as a language should not fall into that particular trap. With that in mind he chose the end keyword as a block delimiter so that it would be easier to write an Emacs mode for.

Where to start with The Lambda Calculus

When you first start studying functional programming, one of the things that people will ask you is “So; have you learned lambda calculus (TLC)?”.
The fact is that while you don’t need to learn TLC to learn about functional programming; you ought too study the TLC at some point.
In this great LtU thread on “where to get started with studying programming language theory”, Anton van Straaten posted a comment referencing two posts on the PLT discussion list detailing a plan on what you should study when it comes to TLC and the texts that you should use to facilitate those studies.