Insights

Insights

Insights

Mar 30, 2015

Announcing: open sourcing of ide-backend

Announcing: open sourcing of ide-backend

Announcing: open sourcing of ide-backend

After many years of development, FP Complete is very happy and proud to announce the open sourcing of ide-backend. ide-backend

has served as the basis for our development of School of Haskell

and FP Haskell Center, by providing a high level, easy to use, and

robust wrapper around the GHC API. We'd like to express our thanks

to Duncan Coutts, Edsko de Vries, and Mikolaj Konarski for

implementing this library on our behalf.


ide-backend provides a means to do a variety of tasks involving GHC, such as:

  • Compile code

  • Get compile error message

  • Submit updated code for recompilation

  • Extract type information

  • Find usage locations

  • Run generated bytecode

  • Produce optimized executables

For much more information, you can see the Haddock documentation.

Members of the Commercial Haskell Special Interest Group have encouraged us to open

source more of our work, to help them build more tools useful to

real-world developers. We're happy to contribute.


ide-backend opens the possibility for many new and interesting tools. To give some ideas:

  • A basis for providing a fast development web server while working on a code base. The idea here is a generalized yesod devel, which compiles and runs your web application on each change.

  • Edward Kmett has a project idea of using ide-backend to extract and organize type information from a large number of packages

  • Editor plugins can be improved, simplified, and begin to share much more code than they do today

  • Lightweight tools for inspecting code

  • Refactoring tools

I've shared information about this repository with some

maintainers of existing tools in the Haskell world already, and

hopefully now with the complete move to open source, we can start a

much broader discussion going.


But today's release isn't just a code release; we also have

demos! Edsko and Chris have been collaborating on some

next-generation editor plugins, and have put together

ide-backend-client with support for both Emacs and Atom. Chris has

put together a screencast of his Emacs integration:


We also have an early prototype tool at FP Complete for

inspecting a code base and getting type information, based on

ide-backend, GHCJS, and React.


Where we go from here

Open sourcing this library is just the first step.

  • Duncan is planning on writing a blog post describing the architecture employed by this library.

  • Edsko's ide-backend-client

    project is a great place to continue making contributions and

    playing with new ideas.

  • FP Complete intends to release more of our ide-backend based tooling in the future as it matures.

  • I've asked for a GSoC proposal on a better development web server, and I'm sure other proposals would be great as well

  • FP Complete and Well Typed are both currently maintaining this library, and we are happy to have new people join the team

I'm excited to hear everyone's thoughts on this library, and look forward to seeing some awesome tools appear.