Fortress: A Next-Generation Programming Language Brought to You by Sun Labs

“Fortress: A Next-Generation Programming Language Brought to You by Sun Labs” is the first session I attended at Java One 08. Being that this is my first time at Java One, I was pretty excited to see how both this session, and, the entire conference, would pan out.
Per her introduction, her background is big into parallelism, and like everyone else on they team, she is an old Lisper.
The focus of her talk was the top 10 ideas in Fortress. Apparently the original tag line for Fortress was that “Fortress will do for Fortran what Java did for C”. That makes sense since they were funded by the high performance computing people, but it isn’t the catchiest tag line.
Here is her top ten list for Fortress language features:

  • 10. Contracts. Requires, Ensures, Invariants.
  • 9. Dimensions and Units as fundamental types.
  • 8. Traits and Objects. Probably borrowed from Smalltalk.
  • 7. Functional Methods. I didn’t get this.
  • 6. Parametric Polymorphism.
  • 5. Generators and Reducers.
  • 4. Mathematical Syntax. One of the driving forces of Fortress to make a PL familiar to Mathematicians.
  • 3. Transactional Memory. She thinks it is “cool beans”.
  • 2. Implicit Parallelism
  • 1. Grow able. The big idea. Designed from the beginning.

Fortress is a hodge podge of cool language features; all of which are very cool (STM and concurrency were her favorite).
The last feature was the most exciting. I expected the entire room to say “ooohhhhhhh” at that moment, but no one did. I suspect no one had a clue as to what she was talking about. I would love to have syntactic extension facilities in Java. Since one of the background goals (my assumption) is to research language features that would eventually show up in Java, we’ll have to see what happens :).
While I got the impression that the presenter gave this presentation as the result of choosing the smallest straw; it was one of the top presentations out of the entire conference.

Chicago Lisp 5/16 Meeting

The next Chicago Lisp meeting is coming up this Friday, 5/16/8. Here are the relevant links:
Chicago Lisp Information Page (for now check here first)
Chicago Lisp Homepage (eventually this will be the master information site)
I will be heading down for this meeting, and presenting at it, so if you would like to carpool let me know!
Addendum 05/21/08:
Here is the presentation and source material from my talk. This is the 25lb version of the presentation; it is not light advocacy stuff, rather, it is just a lot of crunchy bits that are meant to be discussed interactively.
Addendum 05/27/08:
Peter posted a great recap of the presentation.
080516chicagolisp.jpg
Addendum: 08/17/08
Here is an updated presentation and materials, v2.01.

Monar 0.0.1 released

Monar is a free interpreter for R6RS Scheme.

Currently it covers a little of R6RS core scheme, utf-8 I/O, quasiquote, apply , regexp , traditional macro, 30bit fixnum , simple port , simple CGI and format.

And Wiki works on Monar@FreeBSD+Apache.

http://monar.monaos.org/wiki/LambdaWiki

Downloads and More Information


Source code and Monar documentation can be found on the web at:

http://code.google.com/p/monar/

(via comp.lang.scheme)

A Lisp Joke that gets it right

Here is the classic programming “how do you shoot yourself in the foot” joke, brought to Lisp by someone who “gets it”!

TASK: Shoot yourself in the foot.

LISP: You shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds…

(via DaniWeb)

What every Subversion user must know about Git

Subversion is perfect (simple concept, lots of books, good tool integration, and easy to use) but for the fact that it doesn’t support:

While the former should be addressed in version 1.5, the latter is anyone’s guess.

The problem is that Subversion is just so good that eventually you will will want a distributed mode with Subversion.

Fortunately, Git supports distributed operation against Subversion repositories!

If this gets you “on the Git bus”, check out this:

An introduction to git-svn for Subversion/SVK users and deserters.

(Thanks Geoff for the links)

Addendum 05/03/08:

Tonight I tested out setting up cygwin from scratch to use Git, and in doing so confirmed what I knew and discovered what I didn’t!

You must use the following packages:

  1. Git 1.5.5.1-1
  2. Subversion 1.4.5-2
  3. Subversion-perl 1.4.5-2

Failure to install the subversion-perl bindings results in the error: = Can’t locate SVN/Core.pm in @INC

Thank you ycdtosa for the pointer!

Addendum 05/03/08:

If, like many of us, you haven’t fully cut over to cygwin, you may receive the following error message when you attempt a commit:

You have some suspicious patch lines=

Here is both an explanation of and a work-around for the error.

To solve the problem, you need to edit .git/hooks/pre-commit and comment out the following lines:

=if ($) { bad_line(“trailing whitespace”, $_); }=

Before tonight, I figured that I would never have the need to use dos2unix ever again! Based on one of the commentors replies, though, I expect that further research on the operation of Git is required on my part in order work between CR and CRLF environments:

Git from some time has core.autocrlf and crlf attribute, which should help in mixed UNIX (LF) and Windows (CR LF) environment