Over the next two years Haskell will have a lot more users,
including many in commercial settings. We at FP Complete spend a
lot of time interviewing and studying current and potential users,
and at the recent ICFP gathering in Copenhagen many attendees
encouraged me to talk more about what we have learned.
Haskell delivers outstanding value
The great news is that people really like Haskell. It's an
outstanding language, and very applicable to a number of business
problems, especially those requiring these key Haskell benefits:
• Productivity: fast prototyping, efficient
implementation, little time spent debugging, easier and more agile
maintenance and reuse • Correctness: concise
accurate code, type safety at compile time •
Performance: Multicore and parallelism, without introducing
bugs and without low-level coding
Several industries value those key benefits, such as
• Finance, pricing, and trading •
Data analysis, including static/file/database, as well as
dynamic/stream/periodic analysis • Platform
makers: CPUs, GPUs, operating systems, etc. •
High-performance computing (HPC), aka supercomputing
• Internet services: mobile and Web
That's exciting: these are several of the world's leading
industries, with a lot of projects and developers. So Haskell has
plenty of potential users already. But top developers in
well-funded industries are used to top tools -- so they have a long
Commercial users want us to keep expanding
Users tell us they need libraries, tools, and some DSLs -- reusable
pieces of software that make people more productive. Educational
materials are also important. Quality, support, predictability,
learnability, and interop are all mandatory. Here are some of the
requests that come up most frequently or most strongly.
The community resources, especially the component libraries, are
incredibly valuable, but need to be strengthened and curated:
providing ways to understand which are the most popular and best
packages, and which have owners and maintainers. Users want to
understand where to get support, where to give feedback and make
requests, and what level of responsiveness they can expect from any
package's maintainers. And online resources should be reliably up,
accurate, and secure.
An easy cross-platform IDE for learning and for daily
productivity is a must. The option to use a thorough IDE is a given
with most languages, and it is time for Haskell to catch up.
Michael Snoyman is taking the lead on this issue for FP Complete,
working with several contributors. Contact him if you want to
Debugging, tracing, more profiling, general help understanding
and working with laziness and memory management. These Haskell
features are powerful and can isolate the user from needless detail
-- but for some people this detail is not needless.
Error messages could more clearly pinpoint the source of a
mistake and how to fix it. Bartosz Milewski and others have
commented on how the conciseness and abstract power of Haskell
makes it tricky for the compiler to guess what else you might have
meant. Deep solutions will be challenging, but tactical solutions
Haskell cross-platform support is a good start, but needs to be
more thorough, especially on Windows, which is more popular with
corporate users than with the academic community, and more mobile
devices. Similarly, Haskell needs to be better at working with
other middleware, languages, and applications. Haskell has to work
well in a hybrid networked environment, rather than on individual
machines running pure Haskell apps in isolation. Companies
have made huge investments in their libraries, network
services, and management systems, especially around .Net and Java,
and we become much more valuable by connecting to these.
Single-language apps are less common than many researchers imagine,
and deployment and interop issues much more common.
Extreme scalability work is very far along, but needs to be
completed -- working with many cores and with a variety of clusters
and clouds. We are very close. Haskell will be competitive in the
Busy users want to be shown how to make typical useful apps
without reinventing the wheel. Educational resources online are
very good, but need to be very much better, including curation,
quality control, maintenance, and more: not just for beginners, but
also for intermediate users solving nontrivial business and IT and
technical problems, and even some advanced users. Libraries should
include accurate docs, meaningful samples, tutorials, and
Release management is hard and needs to keep improving,
including versioning and package management. The clarity provided
by the Haskell Platform is a big plus, and we need to expand in
this direction: providing predictable updates that guarantee
compatibility with past releases (unless otherwise documented), a
comprehensive set of features with a single install, full
compatibility among all the included libraries, and correct
behavior across all supported platforms. Simon Peyton-Jones
suggests that commercial users may need different releases from
researchers, emphasizing stability over the newest experimental
features. Where priorities must be set, they should take into
account market share -- for example, what portion of developers use
Windows 7 or call Java components.
What is FP Complete doing to help?
We are writing and integrating code! We're hard at work on our very
first tools, which will be in beta before the end of the year,
taking a bite out of the work items suggested above. As you can
imagine, Web support and IDE work are high on our list. We're also
working on some resources to help people get started with Haskell
more smoothly and easily.
We are offering Haskell training services for corporate
customers, both directly and with our partners. And soon we will be
offering get-started and get-productive consulting services, for
companies that want to accelerate their teams beyond just classroom
work. If you want people at your company to learn Haskell, we would
be glad to help.
We are also exploring ways to help the community with gathering
and curating educational materials. More on this and other
initiatives will be announced over the next few months.
We believe FP Complete has a role to play in getting this great
community's work adopted by many, many more users, and we
appreciate the votes of confidence in our company from leaders
throughout the community. Haskell deserves big success, and the
winners will be not only developers, but all the people who get to
use on-time, reliable, and high-performance software written in
this outstanding language.
Do you like this blog post and need help with DevOps, Rust or functional programming? Contact us.