Another odd year, another ECLM. This time around in sunny Madrid at the posh TRYP Ambassador within walking distance from Teatro Real and Plaza Mayor. 63 people from 20 countries turned up.
On Saturday I failed to meet some other lispers for lunch. Apparently, there's two or three Museos del Jamón around Plaza Mayor and I stood for 20 minutes in front of the wrong one. Took the afternoon to tweak my slides. Dinner was nice for catching up with familiar faces from past meetings. Met some new lispers as well. Some of us went for a quick drink at Mercado de San Miguel afterwards.
Sunday started off with a visibly jet lagged Wes Henderson talking about mocl, a Lisp-to-C compiler with two backends tailored for the iPhone and Android environments. Despite the jet lag, he was quite eloquent! mocl makes it trivial to call Lisp from Java/ObjC:
(declaim (call-in foo)) ; declares FOO can be called from foreign land (defun foo (x) (format t "~a~%" x))
After compiling this function, it will be available from the ObjC or Java environments. I didn't quite figure out how mocl deals with the mismatch between static and dynamic typing, but apparently that's taken care of. Note that the goal is for mocl to be embedded in Android/Java or iOS/ObjC applications. I.e., you'll be writing your GUIs in Java/ObjC and call out to Lisp for the remaining bits. I don't recall anything being mentioned about calling Java/ObjC from the Lisp side.
I enjoyed his thought out justification of why Common Lisp is a good match for mobile applications. First off, CL has a stable specification and a rich ecosystem with many alternative implementations. That means that, if he follows the spec, our existing code (namely libraries) will work as is. Secondly, CL is fast and that's important for resource-constrained mobile devices. (What does it mean for a language to be fast? I guess it means that there are plenty of implementations around that show how its semantics can be implemented efficiently.) Thirdly, the CL ecosystem has a relatively reduced dependency on foreign libraries which may or may not work on mobile environments. I was convinced. :-)
Wes took the opportunity to announce that mocl will be released at 3581000000 lisp universal time. (That's from memory, I hope I got it right.)
Michael Eisfeld presented ConED, an application to help engineers design the first stages of building structures.
There weren't many lispy details, but the application seemed quite useful and interesting. I'm told this is a hard market to get into, so best of luck to Michael and his team!
Michael Compton talked about Accenture's digital optimisation software, ADO. In a nutshell, ADO will feed various versions of a webpage to users and cleverly measure which ones work best. I didn't understand most of what was discussed, but apparently they're market leaders.
Then, Tiago Maduro Dias and I talked about the company where we work, SISCOG. Tiago presented SISCOG's history, problem domain and products and I tried to illustrate some interesting ways how we use Lisp. Thanks to Murphy's law, projector woes took up a fair chunk of our allotted time and I had to compress 25 minutes of talk into 15 or so. In the end, I think it went OK and the feedback was pretty positive. SISCOG is a 27 year old company with a rich Lisp history (going back to the Lisp Machines!) and it's quite successful in its market: resource planning, management and optimisation for railway companies. Oh, and we have about 70 full-time lispers.
Tapas for lunch.
After lunch, R. Matthew Emerson (rme) talked about Clozure CL's Objective-C bridge. I enjoyed his presentation style, and there were plenty of demos, which is nice. I had heard about CCL's IDE before, but this was the first time I got to see it.
Janusz Podrazik then demoed Opusmodus, written using CCL and the aforementioned ObjC bridge, which looked quite slick! It felt a bit like an Emacs-inspired IDE for writing music with lots of pretty graphs and visualizations. Plus, it lets you write music using Lisp! IIUC, the coding was done by rme who did a very fine job! Looking forward to its release this coming September.
Erik Huelsmann (ehu) talked about ABCL, whose version 1.2.0 RC had been released that morning from the venue. He basically talked about the latest developments and how ABCL is being used out there (including an application of his). I liked how the ABCL developers are using cl-test-grid to assess ABCL's compatibility with major libraries and how Quicklisp's download statistics helps them prioritise bug fixing.
Sven Emtell demoed ScoreCleaner. (I don't recall exactly which bits were written in Common Lisp. It was a very polyglot product, IIRC.) He showed nicely done marketing videos, such as this one.
At dinner, Faré tried to explain to me what Interface Passing Style was all about and how he used it in his Lisp Interface Library. He almost succeeded!
There were lightning talks throughout the day. Here are the ones I remember. Mark Evenson presented a very clear explanation of what went wrong with the latest common-lisp.net migration and how he and other folks plan to fix outstanding issues and generally improve how the logistics of this service are managed. Nick Levine talked about Ravenbrook. Christophe Rhodes released SBCL 1.1.8 live.
All in all, I think this was the best ECLM yet. Lots of cool applications and a vibrant community. Looking forward to the next one!