Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News FP Complete Launches Browser Based Haskell IDE

FP Complete Launches Browser Based Haskell IDE

This item in japanese

FP Complete has launched FP Haskell Center, their new Haskell IDE and application server. The IDE is browser based, and together with their application server, should make it much easier to create and run web based Haskell programs.

Why Haskell? FP Complete highlights Haskell's "strong type checking capability that catches all errors at compile time, as opposed to run time in traditional languages, Haskell programmers produce clean, concise and correct code from the outset". They also claim that "Haskell accelerates time to market by 30-50%, boosts programmer productivity, lowers cost, and increases product quality" but has so far been hindered because "[..] Haskell is deployed via a set of open-source and home-grown toolsets that have to be cobbled together by the user through a complex and time-consuming process".

In InfoQ's research on obstacles to functional programming, insufficient tool support was the second most rated obstacle. So this is where their IDE comes into play. At the moment, many typical IDE features are still missing, but it already comes with incremental compilation and error reporting, Hoogle (Haskell API search engine) integration, syntax highlighting and code completion. The editor, which is based on CodeMirror, also comes with Git and GitHub integration and of course the necessary actions to deploy the program. Alternatively, you can also download a self-contained binary of your application.

InfoQ talked to FP Complete to learn more about the challenges they faced building their IDE. 

The challenges of building an IDE for Haskell were helping developers leverage all the benefits of Haskell while they code. We wanted to provide immediate feedback on type and syntax errors in real time and eliminate the need for a separate interpreter, such as GHCi for testing expressions. We also wanted to leverage existing tools like Hoogle, Haskell's type signature, to function search database within the editor to provide additional help to developers. Over time, we have a great opportunity to provide even more live feedback to developers to help them correct common coding mistakes.

Other challenges were to create project management that matches the GHC build system and eliminating many of the complexities of using cabal. This helps get new Haskell developers over some of the initial barriers and frustrations of learning Haskell. Making Haskell easier and accessible to all was the biggest challenge our users asked us to take on, and based on the great feedback from users, we believe we succeeded in many important ways.

InfoQ: Why did you choose to create a browser based IDE instead of building on one of the existing IDE platforms? 

Our initial goals were to get more developers using this great language and ecosystem. We felt that providing tools that require little set up would reduce the challenges of learning and using Haskell. Much of the work we are doing is to provide users with tested, vetted, and reviewed libraries and make it easy to deploy Haskell applications. Our system is much more than an IDE. It's a stable, commercially supported and integrated Haskell platform consisting of a cloud-based build system and a deployment system. This fall we will be adding deployment to systems behind the firewall, to simplify the task of building, configuring, deploying, and managing Haskell based applications and services no matter where they are run.

InfoQ: Many typical IDE features in the IDE are still missing, for example, there's no refactoring, debugging, unit testing support. What are you plans for the future? 

Yes, we have plans to include all these features in our next release targeted for the end of this year, with some features available in interim refresh releases. We also plan to add features to support large projects that are constructed from many sub projects or have dependencies on other projects. Large project require a large project build system. We also plan to leverage existing tools and libraries whenever possible

We also plan to produce APIs and plugins for leveraging our system from existing IDEs and editors. Emacs and VIM are two favorites of the Haskell community. Over time we will add more and take advantage of the great work being done by members of the Haskell community. 

FP Complete offers a free 30 days trial, and has several different plans (a single seat license is USD 75 per month). Students and faculty can get a free account. Are you a Haskell programmer, or want to become one? Then let us know what you think!

Rate this Article