Last month, we announced the open sourcing of ide-backend, the engine underlying both School of Haskell and FP Haskell Center. In this blog post, I'm going to lay out FP Complete's plans for the future of both of those services, and our overall commercial Haskell tooling.
tl;dr Open sourcing School of Haskell, releasing brand new open source Stackage-based tooling, and merging the features of FP Haskell Center into the other two offerings.
School of Haskell
School of Haskell has served as a foundational service for interactive Haskell training, written in a collaborative way. In our efforts to help increase adoption of Haskell, we've decided that the best next step for the evolution of School of Haskell is to fully open source it. Concretely, our plans are:
- Open up a new code base for School of Haskell, under the auspices of the Commercial Haskell Special Interest Group
- Host the site on its own dedicated domain name, http://www.schoolofhaskell.com/
- Set up redirects as necessary
- Make the content of School of Haskell much more open
- Make it easier to interact with the raw content of the school, possibly by storing the content in a Git repository that is publicly cloneable
- Encourage collaborators on the code base to get new features in place (and see the FP Haskell Center discussion below for more information on this from us)
To be clear: FP Complete fully intends to continue maintaining both the code base and the live servers. This move is intended to allow others to contribute their own, wonderful new ideas to the project.
FP Complete started the Stackage project about three years ago to address issues around library compatibility and collaborative development on teams, and it has been a resounding success. It's already the basis for School of Haskell and FP Haskell Center, and with Stackage Server is fully available to all users as an easy way to get sane package sets. We started LTS Haskell at the beginning of this year, which has only increased that success further.
Today's Stackage project answers a lot of the demand for better tooling, especially in the commercial realm. However, it doesn't answer everything. Companies we work with need solutions for everything from CI integration, to editor plugins, to deployment solutions. FP Haskell Center answers some of these demands, but not all of them. Over the past year, we've been working with our customers to develop a commercial grade set of tools that solve these problems more holistically, and we are happy with the result.
Our new tooling is integrated tightly with Stackage, provides improvements to some flaws in currently available tooling, and adds in functionality not yet present at all in the open source world. For example:
- Distribution of binary package databases to your whole team, avoiding recompile time and ensuring consistent environments
- Reliable rebuilding of all local packages with a single command
- Built in documentation serving for your entire package set
- Powerful code exploration features
We feel comfortable with the quality of the tooling to now take it to the next step. So over the next few weeks, we will begin the process of open sourcing all of this tooling to the Haskell community. As we release components, we will be describing their functionality, explaining expected use cases, and documenting current shortcomings. But the short answer is: if you're working on developing Haskell applications, this tooling is likely to make your life significantly better.
FP Haskell Center
This leaves the question: what of FP Haskell Center? We initially received a lot of requests from companies looking for a web based IDE. However, over the past two years, we have seen that- in reality- people were looking to solve two different use cases:
- For learners: an easy way to get started with learning Haskell
- For application writers: a reliable set of tools for developing, building, and shipping software
After careful consideration, we believe that the two offerings mentioned above- School of Haskell and Stackage-based tooling- are the best way forward, and that continuing to push FP Haskell Center as a development platform is not a good path forward. Instead, our goals are to take the best that FP Haskell Center has to offer, such as interactive type information, and make them available in both School of Haskell and our commercial tooling.
At the end of the day, we'll be offering two very complementary products: a hosted learning site for quickly getting up to speed with Haskell, and commercial grade tooling for writing software.
The first concrete step on this path is going to be our Stackage-based tooling work. We're hoping to get a first public version out the door in short order. The following step is open sourcing School of Haskell. Once that is fully done, we'll start the discussions around FP Haskell Center. It is still a service that many people use, and we have no intention of pulling the rug out from under people. Our timeline their will likely be to:
- leave FP Haskell Center running for quite a while
- when School of Haskell and Stackage-based tooling become solid enough offerings to replace it, officially deprecate it
- some time after that, stop offering FP Haskell Center as a separate service
We very much welcome community input on these plans. Let's kick off a discussion on Reddit.