Ultimately, it comes down to ease of expression. If I can express myself in code at a level closer to the problem domain, then I'm going to be more effective, and my code is likely to be easier to maintain and extend. Paul Graham makes a big deal out of the way Lisp helped him while building the software that became Yahoo Stores, and he's right. These languages, applied properly, are a strategic advantage. I know some companies are using them with great success. And you know -- they're keeping quiet about it.
Luca Cardelli of Microsoft Research has a set of slides entitled “Transitions in Programming Models” claiming that we're in the middle of a “Cambrian explosion of programming models” of computation on WANs. Wide area data integration (XML), wide area flow integration (RPC), and wide area security integration are the three areas in which new models are needed. But Luca argues that we need a new general purpose language fully integrating all three of these areas, “We need more than an XML DSL, a messaging DSL, a security DSL”. [via pvg.]
Lisp, of course, is well known for making it possible, and even easy to completely integrate new approaches to programming, which is why traditionally it (or scheme, anyway) has been a testbed for that sort of work. i wonder if that particular torch has been passed. Or perhaps temporarily misplaced.
The X-Chat ECL Plugin is a plugin to the famous X-Chat IRC Client that enables the user to write and use own plugins that are written in Common Lisp. The Common Lisp implementation of choice is ECL as it is at the time the only implementation which is suited to be “an embedded interpreter subject to the control of a larger C program” as its docs say.
The plugin lets you do anything you could do in Perl or C from Lisp.
Plans for the high-level languages track of the 2004 Libre Software Meeting coming up in Bordeaux include at least one Lisp presentation, multiple Lispy “lightning presentations” (on topics like asdf, simple-streams, XML-RPC, floating point and CLIM) along with potentially some Lisp hacking.
See the LSM 2004 Cliki page for details.
Here it is: Lambda the Ultimate - The Next Generation.
I liked the post about Minsky's peculiarly iterative strategy for writing programs.
Dan Knapp is heavily editing/rewriting the OpenMCL documentation, and has finished the first draft.
I've changed wording where it took too much knowledge for granted, which usually happened because it was presuming the reader had just gone through all the preceding descriptions in order. I wrote one-sentence abstracts for every function and variable, which appear in the listing of that section. I changed the formatting of the syntax summaries, and made the wording, particularly that of the parameter descriptions, conform to some style rules which I really should write down.
I added extensive hyperlinks and cross-references, and applied formatting to function and variable names which appear in the body text. I eliminated footnotes, because they break flow (call it a personal preference); they are either integrated into the text, or moved into a separate notes section at the bottom of the page, depending on their relevance.
Raymond de Lacaze has resigned as the president of the Association of Lisp Users, so the ALU is looking for a brave replacement, someone with an interest in bureaucracy and a lot of patience. Note that they're accepting nominations only until June 30, i.e. 9 days from now.
I quote their entire email below. Note that neither news of Raymond's resignation nor anything about the nomination, nor even anything about the recent ALU questionnaire appears on the ALU website. Actually, no information regarding any of this appears on either one of their websites, one of which is an easy-to-edit wiki. Weird.
Subject: President ALU -- request for nominations
-*-Our apologies if you receive this message more than once-*-
As you may have noticed, Ray de Lacaze has resigned as ALU's president. As ALU board we sincerely regret this, not in the last part because Ray has taken the initiative to organize two very successful conferences: ILC02 in San Francisco and ILC03 in New York City. Partly because of Ray's efforts, the Lisp and Scheme communities are more dynamic than a few years ago.
The ALU is therefore looking for a new president. As ALU board we have decided to first ask ALU's membership (which is currently anyone who has attended ILC conferences) to nominate candidates for this position.
It is the intention of the ALU to stimulate both the Scheme and Lisp communities worldwide and to promote the use of these programming languages in industry, government and academia.
The role of the ALU president is open to invention. However, the president must
The president will probably need several hours per month for these tasks and several days per year devoted to high-level conference activities such as finding brilliant people to present at our conference and seeing them do it. Operational responsibility for the conference will not fall to the president.
ALU needs a paying membership to:
a. Upfront costs for organizing conferences and other activities
to promote the interest of the Lisp and Scheme communities;
b. Compensate officers for certain of their efforts and travel expenses;
c. Pay someone to develop and maintain the ALU website and build an archive that makes it easy to get comprehensive, high-quality information about Scheme and Lisp.
We are developing ways to accept online payments and collect annual dues.
The ALU board welcomes nominees for the presidency. After reception of your nomination, we will contact the nominee for willingness to accept the position and discuss various issues to assess the qualities of the candidate. For this reason, please nominate with the name and the email address of your candidate.
To keep the nomination period short, we will accept candidates until June 30st 2004 (midnight, your local time). After that date, no more nominees will be accepted and the board will vote for its new president and report the new ALU president to you.
If you have any questions, feel free to contact anyone on the board. You can email the whole board at email@example.com.
On behalf of the ALU board,
Ernst van Waning
board member, ALU
Dude. It's summer! And I can post a picture of Lori for no particular reason other than that I want to.
Yesterday, just before dusk, I walked over to one of my favorite neighborhood thai places to pick up some food. Walking in my hood, down the Sunset Blvd. past the music conservatory where Flea sometimes fills in for the receptionist, the tattoo shop, Tacos Delta, past the white guy with an afro sitting on a bench, white feather boa around his neck and big pink plastic sunglasses on his head saying “I swear on our love” into his cell phone, walking through patches of sweet magnolia scent (which I think smells like impossibly fresh tortillas), I thought
“I have so much happiness in me.”
And it's true.
The girl who works at Suriyo is named Venus, and she recognizes my voice whenever I call and order my Suriyo rolls (this is probably a better thing to admit to than the fact that the girl who works at K.C. Donut gets my glazed old fashioned and medium coffee ready every morning without me having to say anything other than “hi, how are you today?”). Venus handed me my brown paper sack, and I got to walk home through it all again.
(Then I watched Repo Man, which sent me into some kind of LA love fugue state that may have led to a late night trip to Zankou and some cruising around on the east side, but I think you probably already have the gist, here.)
We hope that this information will help Lispers to get an answer to questions like:
- Are there other Lispers in the region I live in? If so, how many? How can I contact them?
- Which other Lispers are working in my fields of interest?
- Where can I find programmers who can write or maintain Lisp software for my organization?
- Where can I find organizations that are hiring Lisp programmers?
- What Lisp activities are taking place in my neighbourhood?
Hopefully, we can also use this information to dispel the myth that nobody is using Lisp.
You can look at the responses so far.
Lambda the Ultimate is preparing to move to its new home.
You can put orders in for Peter Seibel's Practical Common Lisp through Amazon already despite the fact that Peter hasn't finished writing it. Oddly, Amazon UK's listing has a slightly different cover.
Max-Gerd Retzlaff has been hacking on Dan Barlow's PowerPoint-style presentation software, Acclaim. The new features include line wrapping and support for background images.
Here is an example of the little Acclaim language for describing presentations:
(configure :bg-image "Decker1024_1152x768_dark.pnm" :bg-color "black" ; "midnightblue" :fonts ((title :fontname "-misc-nasalization-medium-...-*-iso8859-1") (pre :fontname "-misc-nu sans mono demo-...-*-iso8859-1") (smallpre :color "Beige") (tt :fontname "-misc-everson mono latin ...-*-iso8859-1") (*default-fontname* :fontname "-misc-traditionsansxlight-medium-...-*-iso8859-1"))) (slide (p "") (title (center "Warum Lisp toll ist")) (p (center " - oder - ")) (p (center "schnelles und bequemes Entwickeln mit Lisp")) (p "") (p (center "Max-Gerd Retzlaff")) (p (center "(http://www.entropia.de/gpn3)")) (br) (image "bknr-banner.pnm" :x-align "center"))
And here's the resulting slide:
I recently came up with a PowerPoint presentation as part of “ERSP U”, the training program that Evolution offers to people using our software.
I bought Edward Tufte's PowerPoint essay hoping to find some ideas on how to create a presentation that wouldn't actually make students stupider by the very act of viewing it, and just generally not be so awful as to be worth a meticulous dissection in a Tufte essay. Unfortunately “The Cognitive Style of PowerPoint” offers more of an opportunity to feel superior if you haven't used PowerPoint than helpful advice if you want to use it.
Doesn't Tufte understand we're past hating, and now it's time to co-opt? I do wonder what software designed from the start to discourage jaggy low-res bright-yellow-text-on-dark-blue-background presentations would look like.
Update: LtU seems to be intermittently up. There's a little bit of discussion over LtU's future which sounds relatively hopeful.
I only recently discovered Phillip Torrone's article at Engadget describing step-by-step how to create an automatic “moblog” for your computer or robot (Phillip's own moblog was mentioned on this site a few months ago). The notable bit is that he includes a couple pictures of his mobloggin' ER1.
Maybe if Evolution had positioned the ER1 as blogging tools we might have sold a few more of them.
Craig Norvell of Franz let me know that ACL has a new regular expression API that is “up to 30% faster than Perl.”
A new fast, Perl-compatible regular expression matcher is now available as a patch to 6.2 and 7.0.beta. The following bullets describe some of the features of the new matcher.
- The new matcher uses Perl syntax, and is nearly feature compatible with Perl. Only a few obscure features have not been implemented.
- Speed: the new matcher was designed to be fast. On the CL-PPCRE test suite (with 1600+ tests) it is on average 30% faster than Perl.
- Regular expressions can use the Unicode character set (UCS-2).
- Named capture for submatches. For example, (match-re "(?<foo>ab)\\k<foo>\\k<foo>" "aabababa") returns the values t, "ababab", and "ab".
The new regular expression module, :regexp2, is modeled on the original regular expression API, using similar symbol names (thus, for example, old: compile-regexp, new compile-re). The symbols naming functions in the new API are in the excl package, just as those in original API are. Both modules can be loaded into the same running Lisp and used independently.
Both APIs are fully documented.
Software Development magazine has a hard-hitting news blurb on the fact that Lisp still exists, based on running into some Franz people at a Software Development conference.
Wu listed a slew of commercial applications based on Common Lisp (CL) in such diverse domains as gaming, energy and manufacturing. Nintendo's Super Mario 64 and Naughty Dog's (now part of Sony Entertainment) blockbuster games Crash Bandicoot and Jak and Daxter: The Precursor Legacy are all built in CL, along with advisory systems for nuclear power plants, chemical plants, steelworks and others. It was used in the automatic redesign of the entire airframe of the new Boeing 777, as well as in audit planning systems. The scheduling system behind the amazingly successful Hubble telescope is also written in CL, as are the scheduling systems for major airports such as Heathrow and Atlanta, and the logistics system deployed during the first Gulf War. CL is preferred by many complex bioinformatics applications, such as SRI's EcoCyc, which encodes and displays the entire metabolic pathways of the E. coli bacteria, as well as Harvard Children's Hospital Informatics Program's SNPper, which aids scientists in analysis of single nucleotide polymorphisms.
Free registration is required to read the article, for some reason.
Marco Baringer is working on a special-purpose language, intended specifically for processing text, and hosted in Lisp using macros: curvbol.
Slashdot has a short review of Paul Graham's Hackers & Painters.
A comment from ESR: “I wrote the intro for Paul's book and he's a good friend of mine. The reviewer is wrong on one point: Paul's politics are not 'conservative' or 'right-wing'. Like me, he is a libertarian who stands outside the left/right spectrum and wants as little as possible to do with those who inhabit it.”
These are the risks of reading Slashdot.
DARPA simultaneously announced that a “Participants' Conference” will be held on August 14, 2004 at the Anaheim Marriott, Anaheim, Calif. This informational conference is for participants, interested sponsors, and groups looking for others to help complete their teams. The conference will begin at 2 pm.
I have some photos of the 2004 contest.
As far as I can tell, if you have the following, you can pretty much do what AOP requires:
- CLOS- or Dylan-style generic function-based multi-methods
- reasonably capable macros, as in Lisp, Scheme, or Dylan
- function "advice", which exists in most Lisp implementations, but nothing else AFAICT
Sure, and if you have a language that can express the concept of “array of procedures” then you have all you need to do object-oriented programming.
Would you even need “advice” if all the functions (that you care about) are generic functions and you have CLOS-style method combinations? I.e. isn't advice just a sort of poor-man's method combination for functions that weren't originally defined as GFs?
What “advice” additionally provides is a new sort of “method combination” (or namespace) for the aspect you are adding. Even with full CLOS-style methods, you can run out of befores, afters, arounds, wrapper, whoppers, whoopie-cushions, and what-have-yous.
My DSL is out, and this has completely screwed up my email. I'm slowly getting used to my newly handicapped disposition, but for now I can't scrabble over the web detritus as capably as I'm used to.
ORN: In my experience, there seems to be two different philosophies guiding language design these days. One philosophy comes from mathematicians. You'll find these languages exploring static-type systems, formal provability, and the like (though not all at once). Another philosophy approaches programming from the human level, saying that things can be messy, compilers can be complex, and even, in some cases, that it's better to emulate natural languages than to pursue purity and extreme simplicity.
Would you classify yourself as sympathizing with the mathemeticians or the humanists?
PG: I think there is a middle path. It's good for languages to be inspired by math, but they have to be inspired in the right way by it. What language designers don't seem to realize is that mathematicians do two things. They prove theorems, but they also invent notation. It's the second aspect of math that language designers ought to be looking at. They should be asking not “How can I prove theorems about programs?” but “How can I invent something as fertile as place-value (i.e. ‘arabic’) notation?”
Mike Hannemann pointed me at Lispix, a public domain image analysis program written in Lisp by The National Institute of Standards and Technology.
Lispix is a public domain image analysis program for Windows, written and maintained by David Bright. While including basic image processing functions found in NIH Image, ImageJ, Scion Image, ImageTool, and in some commercial programs, Lispix also has a collection of special purpose research tools for electron microscopy and spectral imaging at NIST. In spite of that, many of the features incorporated into Lispix have been useful for other researchers. Lispix is useful for processing and analyzing images, and stacks of images or data cubes. Image pixels can be bit, integer, real, complex and color.
Some of the reasons Lispix uses Lisp are laid out: “I have used LISP because the language and the development environment make it easier to implement and test special tools.”
Speaking of the ER1, Evolution is selling ER1 robots and accessories at low low prices! Only $300 for the ER1 itself. [via boingboing. heh.]
I think we should be giving them away to schools for free, but Evolution just pays me to create robot brains, not stimulate human ones.