Common Lisp, Development, LISP

Hacking Lisp in the Cloud

The other day I stumbled upon a very interesting new online service for developers, Cloud9 IDE. Imagine Sublime Text, a test server with command-line access, version control, live chat, code-sharing and live collaboration, all bundled together in one convenient web app, allowing you and your team to work together seamlessly from anywhere with an internet connection. With Cloud9 IDE, that’s exactly what you get—and that’s just what comes with the free account.

The service seems primarily tailored to Node.js developers, but also includes out-of-the-box support for Python, Ruby, and PHP. Naturally I decided it would be worth the effort to see if I could get a Lisp installation up and running—and in the end it wasn’t particularly difficult. The one set-back is that your Project Workspace is running on a version of Red Hat that includes v2.12 of glibc, which means that unless you want to compile both glibc and sbcl from source yourself for every lisp project you have on Cloud9, the latest version of SBCL you can install from the binary release is 1.0.23. Not ideal, but at least it works.

Of course, if you have an internet-facing test server of your own with SSH access, you can just use that, syncing the code from your git or mercurial repo as you go along.

Another option is to use one of the handful of Node.js packages to Lispify Node.js. While none of them are particularly mature or robust, the Cloud9 IDE service has a lot of extra features just for Node.js that you could then take advantage of, and still get your Lisp on.

To really become the ultimate hacking tool for Lispers, of course, Cloud9 needs a REPL pane and Lisp-mode menu that duplicates the functionality of SLIME. The Cloud9 IDE already has syntax highlighting for Common Lisp and Emacs key-bindings; after a quick perusal of the source-code on GitHub, extending the Cloud9 platform to include these features would actually be fairly trivial. Given the product and service they have already produced, it should not pose any significant challenges to their developers. Open-source projects such as or JSCL could serve as an excellent base, or they could simply wrap an instance of SBCL in the terminal interface they already have. In my view, the most important aspect is giving every user an up-to-date version of SBCL out of the box. Naturally, I plan on bringing these features up to them myself, but obviously the more Lispers that ask for these features, the better.

Anyway, despite what it’s missing, I still recommend you try out Cloud9 for yourself. It’s a great tool, and really shows off what web technologies can do these days.


6 thoughts on “Hacking Lisp in the Cloud

  1. I’ve been looking for a way to do what you are describing, I’m excited. For REPL I guess you could try just setting the Swank in the cloud and then connect remotly to it trough SSH tunneling, and use your computer EMACS for both IDE and REPL by connecting the SLIME to it. Have you tried that?

    1. Yeah, that’s a typical strategy. And actually, EMACS is already installed in your project workspace on Cloud9, so if you don’t mind using it in the terminal, it should be no trouble installing SLIME and connecting remotely to your web-facing server. I’ll test that out this afternoon.

    2. Port binding for SSH tunneling doesn’t seem to be working on the Cloud9 project workspace terminal. I’m guessing that has been disabled on OpenShift. Also, SLIME doesn’t compile on SBCL 1.0.23 (the latest version I’ve been able to install, due to the glibc dependency), so despite having Emacs locally, you’d still have to SSH to your web-facing server and launch Emacs+SLIME from there.

      That being said, Emacs + inferior-lisp seems to work fine locally, so you can at least get a REPL up next to your code, and edit your local project files in Emacs instead of Cloud9’s built-in ACE editor.

      1. Well, thanks for trying that out, I think I will start playing with this too and give feedback to the developers, as you said the more LISPERS bugging them the better chances we get of getting better support for it..

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s