Difference between revisions of "Haskell in industry"

From HaskellWiki
Jump to navigation Jump to search
(Add Chordify)
(29 intermediate revisions by 10 users not shown)
Line 67: Line 67:
 
and networking problems. Our team has expertise in all aspects of
 
and networking problems. Our team has expertise in all aspects of
 
wireless system design, from the physical and protocol layers to complex
 
wireless system design, from the physical and protocol layers to complex
networked applications. Antiope Associates's relies on a number of
+
networked applications. Antiope Associates relies on a number of
 
advanced techniques to ensure that the communication systems we design
 
advanced techniques to ensure that the communication systems we design
 
are reliable and free from error. We use custom simulation tools
 
are reliable and free from error. We use custom simulation tools
Line 93: Line 93:
 
</blockquote>
 
</blockquote>
 
::[http://lambda-the-ultimate.org/node/3331 Simon Frankau et al's JFP paper on their use of Haskell]
 
::[http://lambda-the-ultimate.org/node/3331 Simon Frankau et al's JFP paper on their use of Haskell]
  +
::[http://www.reddit.com/r/haskell/comments/1p70l3/barclays_are_hiring_haskell_developers_in_london/ Read their 2013 job advertisement]
  +
  +
* BAE Systems
  +
<blockquote>
  +
As part of the SAFE project, BAE has built a collection of compilers, interpreters, simulators, and EDSLs almost entirely in Haskell.
  +
</blockquote>
  +
::[http://cufp.org/conference/sessions/2013/tom-hawkins-bae-systems-redesigning-computer-secur CUFP 2013 talk]
   
 
* [http://bazqux.com BazQux Reader]
 
* [http://bazqux.com BazQux Reader]
 
<blockquote>
 
<blockquote>
 
BazQux Reader is a commercial RSS reader. Its feeds and comments crawler and a part of web-server are implemented in Haskell.
 
BazQux Reader is a commercial RSS reader. Its feeds and comments crawler and a part of web-server are implemented in Haskell.
  +
</blockquote>
  +
  +
* [http://better.com Better]
  +
<blockquote>
  +
Better, formerly known as Erudify, is a learning company built around the mission of making people better. We are an unusual mix of a software company, a consulting firm, and a creative agency. This tight integration enables us to deliver innovative, high-quality courses to our customers.
  +
  +
Founded in 2012, Better is based in Zurich, Switzerland and New York, USA. Better is fully invested in Haskell; Most parts of our back-end system (web-servers and learning logic) are written in Haskell. Haskell is also used in most parts of our front-end system.
 
</blockquote>
 
</blockquote>
   
Line 102: Line 116:
 
<blockquote>
 
<blockquote>
 
bCode Pty Ltd is a small venture capital-funded startup using Ocaml and a bit of Haskell in Sydney Australia.
 
bCode Pty Ltd is a small venture capital-funded startup using Ocaml and a bit of Haskell in Sydney Australia.
  +
</blockquote>
  +
  +
* [http://bdellium.com/ Bdellium] Hawaii, United States
  +
<blockquote>
  +
Bdellium develops software systems that enable companies in the financial industry to deliver new customer services that grow their business. Bdellium uses Haskell for heavy lifting analysis in back end infrastructure.
 
</blockquote>
 
</blockquote>
   
Line 127: Line 146:
 
* [http://bu.mp/ Bump]
 
* [http://bu.mp/ Bump]
 
<blockquote>
 
<blockquote>
Bump use a Haskell-based server, [http://github.com/jamwt/Angel Angel], for process supervisor for all their backend systems, and [http://devblog.bu.mp/haskell-at-bump for other infrastructure tasks].
+
Bump use a Haskell-based server, [http://github.com/jamwt/Angel Angel], for process supervisor for all their backend systems, and [http://devblog.bu.mp/post/40786229350/haskell-at-bump for other infrastructure tasks].
 
</blockquote>
 
</blockquote>
 
::Haskell at [http://fpcomplete.com/downloads/bump-fp-complete-study.pdf Bump]
 
::Haskell at [http://fpcomplete.com/downloads/bump-fp-complete-study.pdf Bump]
  +
  +
* Capital IQ
  +
<blockquote>
  +
We have been using functional programming here at S&P Capital IQ in Scala, Haskell, and our homegrown reporting language Ermine, since 2008 for financial analytics.
  +
</blockquote>
  +
::[http://cufp.org/conference/sessions/2013/edward-kmett-sp-capital-iq-functional-reporting Capital IQ's CUFP 2013 talk]
  +
  +
* [http://chordify.net Chordify]
  +
<blockquote>
  +
Chordify is a free online music service that transforms music, from YouTube, Deezer, SoundCloud or uploaded files, into chords. There's an ICFP experience report explaining how Haskell is used for this:
  +
  +
José Pedro Magalhães and W. Bas de Haas. [http://dreixel.net/research/pdf/fmmh.pdf Functional Modelling of Musical Harmony: an Experience Report]. In Proceedings of the 16th ACM SIGPLAN International Conference on Functional Programming (ICFP'11), pp. 156–162, ACM, 2011.
  +
</blockquote>
   
 
* [http://www.circos.com Circos Brand Karma] Singapore
 
* [http://www.circos.com Circos Brand Karma] Singapore
Line 137: Line 169:
 
</blockquote>
 
</blockquote>
   
* [http://www.credit-suisse.com/ Credit Suisse Global Modelling and Analytics Group] London, UK; New York City, New York
+
* [http://www.credit-suisse.com/ Credit Suisse Global Modeling and Analytics Group] London, UK; New York City, New York
   
 
<blockquote>
 
<blockquote>
GMAG, the quantitative modelling group at Credit Suisse, has been using Haskell
+
GMAG, the quantitative modeling group at Credit Suisse, has been using Haskell
 
for various projects since the beginning of 2006, with the twin aims of
 
for various projects since the beginning of 2006, with the twin aims of
improving the productivity of modellers and making it easier for other people
+
improving the productivity of modelers and making it easier for other people
 
within the bank to use GMAG models. Current projects include: Further work on
 
within the bank to use GMAG models. Current projects include: Further work on
 
tools for checking, manipulating and transforming spreadsheets; a
 
tools for checking, manipulating and transforming spreadsheets; a
Line 156: Line 188:
 
Detexify is an online handwriting recognition system, whose backend is written in Haskell.
 
Detexify is an online handwriting recognition system, whose backend is written in Haskell.
 
</blockquote>
 
</blockquote>
  +
  +
* [http://fynder.io Fynder]
  +
<blockquote>
  +
Fynder is an online booking platform.
  +
  +
We use Haskell and clojurescript, all stitched together with nixos
  +
</blockquote>
  +
  +
::See more in their original [http://hackerjobs.co.uk/jobs/2013/9/27/digital-logistics-haskell-developer job posting].
   
 
* [http://www.db.com/ Deutsche Bank Equity Proprietary Trading, Directional Credit Trading]
 
* [http://www.db.com/ Deutsche Bank Equity Proprietary Trading, Directional Credit Trading]
Line 189: Line 230:
   
 
:: Facebook's [http://cufp.galois.com/2009/abstracts.html#ChristopherPiroEugeneLetuchy CUFP talk]
 
:: Facebook's [http://cufp.galois.com/2009/abstracts.html#ChristopherPiroEugeneLetuchy CUFP talk]
  +
:: Facebook's [http://skillsmatter.com/podcast/home/simon-marlow HaXL system] is [https://code.facebook.com/projects/854888367872565/haxl/ open source]
   
 
* [http://www.factisresearch.com/ Factis Research]
 
* [http://www.factisresearch.com/ Factis Research]
Line 203: Line 245:
   
 
:: Oh, and of course we develop and maintain [http://hayoo.info Hayoo!] :)
 
:: Oh, and of course we develop and maintain [http://hayoo.info Hayoo!] :)
  +
  +
  +
* [http://www.functor.se/ Functor AB], Stockholm, Sweden
  +
<blockquote>
  +
Functor AB offers new tools for ground-breaking static analysis with pre-test case generation of programs to eliminate defects and bugs in software very early in development.
  +
  +
Functor collaborates with the JET fusion reactor run by EFDA CCFE. JET is currently the largest reactor in the world of its kind. At Functor, almost all development is done in Haskell but also to some extent also C and Scala.
  +
</blockquote>
  +
  +
:: See more in the Functor AB [http://alpmestan.com/posts/2012-10-23-haskell-job-opening-at-functor.html job advertisement]
   
 
* [http://www.funktional.info/index.php?id=7&L=1 Funktionale Programmierung Dr. Heinrich Hördegen], Munich, Germany
 
* [http://www.funktional.info/index.php?id=7&L=1 Funktionale Programmierung Dr. Heinrich Hördegen], Munich, Germany
Line 227: Line 279:
   
 
<blockquote>
 
<blockquote>
Haskell is used on a small number of internal projects in Google, for internal IT infrastructure support.
+
Haskell is used on a small number of internal projects in Google, for internal IT infrastructure support, and the open-source [http://code.google.com/p/ganeti/ Ganeti] project. Ganeti is a tool for managing clusters of
  +
virtual servers built on top of Xen and KVM.
 
</blockquote>
 
</blockquote>
   
 
::Google's [http://k1024.org/~iusty/papers/icfp10-haskell-reagent.pdf ICFP 2010 experience report on Haskell]
 
::Google's [http://k1024.org/~iusty/papers/icfp10-haskell-reagent.pdf ICFP 2010 experience report on Haskell]
  +
::Video from ICFP [http://vimeo.com/12849320 Project Ganeti at Google]
   
 
* [http://glyde.com/ Glyde]
 
* [http://glyde.com/ Glyde]
Line 260: Line 314:
 
* risk analysis and reporting solution for power supply company;
 
* risk analysis and reporting solution for power supply company;
 
* contract management, assert management, booking and budgeting software for one of the worldwide leading accounting firm.
 
* contract management, assert management, booking and budgeting software for one of the worldwide leading accounting firm.
  +
</blockquote>
  +
  +
* [http://www.imvu.com IMVU, Inc]
  +
  +
<blockquote>
  +
IMVU, Inc. is a social entertainment company connecting users through 3D avatar-based experiences. See the blog article [http://engineering.imvu.com/2014/03/24/what-its-like-to-use-haskell/ What it's like to use Haskell]
 
</blockquote>
 
</blockquote>
   
Line 268: Line 328:
 
</blockquote>
 
</blockquote>
   
* [http://ipwnstudios.com/ iPwn Studios]
+
* [http://intel.com Intel]
 
<blockquote>
 
<blockquote>
  +
Intel has developed a Haskell compiler as part of their research on multicore parallelism at scale.
ipwn studios is a video game studio founded in 2009 and based in the greater Boston area. They're developing a game engine in Haskell, and a number of games built on that engine, including an action-rpg for touchscreen devices called bloodknight.
 
 
</blockquote>
 
</blockquote>
  +
  +
:: Read the Intel Research paper on [http://www.leafpetersen.com/leaf/publications/hs2013/hrc-paper.pdf compiler]
   
 
* [http://www.ivu.de/uk/products/public-transport/ IVU Traffic Technologies AG]
 
* [http://www.ivu.de/uk/products/public-transport/ IVU Traffic Technologies AG]
Line 324: Line 386:
 
<blockquote>
 
<blockquote>
 
A team at the New York Times used Haskell's parallel array library to process images from 2013 New York Fashion Week. Haskell was chosen based on its fast numerical arrays packages, and ease of parallelization.
 
A team at the New York Times used Haskell's parallel array library to process images from 2013 New York Fashion Week. Haskell was chosen based on its fast numerical arrays packages, and ease of parallelization.
<blockquote> :: [http://t.co/HJbLQUcX2P Read more...]
+
</blockquote>
  +
:: [http://source.mozillaopennews.org/en-US/articles/model-analysis/ Model analysis]
  +
:: [http://www.infoq.com/presentations/haskell-newsroom-nyt Haskell in the Newsroom]
   
 
* [http://ertos.nicta.com.au/research/sel4/ NICTA]
 
* [http://ertos.nicta.com.au/research/sel4/ NICTA]
Line 367: Line 431:
 
:: [http://haskell.org/communities/05-2010/html/report.html#oblomov Oblomov's HCAR submission].
 
:: [http://haskell.org/communities/05-2010/html/report.html#oblomov Oblomov's HCAR submission].
   
* [http://www.patch-tag.com Patch-Tag: hosting for darcs]
+
* [http://www.patch-tag.com Patch-Tag: hosting for Darcs]
 
<blockquote>
 
<blockquote>
Need somewhere to put your darcs code? Try us.
+
Need somewhere to put your Darcs code? Try us.
   
 
Patch-Tag is built with [http://happstack.com happstack], the continuation of the project formerly known as HAppS.
 
Patch-Tag is built with [http://happstack.com happstack], the continuation of the project formerly known as HAppS.
Line 377: Line 441:
 
<blockquote>
 
<blockquote>
 
At Peerium, we're striving to bring a new level of quality and efficiency to online communication and collaboration within virtual communities, social networks, and business environments. We believe that a new environment that supports the effortless sharing of both information and software will enable a level of online cooperation far beyond current Web-based technologies -- modern programming techniques will enable the creation of more robust and more powerful programs within these environments. To this end, we're building a new software platform for direct, real-time communication and collaboration within graphically rich environments. Peerium is located in the heart of Harvard Square in Cambridge, Massachusetts.
 
At Peerium, we're striving to bring a new level of quality and efficiency to online communication and collaboration within virtual communities, social networks, and business environments. We believe that a new environment that supports the effortless sharing of both information and software will enable a level of online cooperation far beyond current Web-based technologies -- modern programming techniques will enable the creation of more robust and more powerful programs within these environments. To this end, we're building a new software platform for direct, real-time communication and collaboration within graphically rich environments. Peerium is located in the heart of Harvard Square in Cambridge, Massachusetts.
  +
</blockquote>
  +
  +
* [http://www.planit9.com/ PlanIt9]
  +
  +
<blockquote>
  +
PlanIt9 is a Yesod-based web application for defining, planning, scheduling and tracking tasks. It's designed to be fast, simple, collaborative and cost effective. We're currently signing up users for our beta program.
 
</blockquote>
 
</blockquote>
   
Line 384: Line 454:
 
Qualcomm uses Haskell to generate Lua bindings to the BREW platform
 
Qualcomm uses Haskell to generate Lua bindings to the BREW platform
 
</blockquote>
 
</blockquote>
  +
  +
* [http://blog.sqreamtech.com/2013/09/using-haskell-at-sqream-technologies/ SQream]
  +
  +
<blockquote>
  +
At SQream, we use Haskell for a large part of our code. We use Haskell for the compiler, which takes SQL statements and turns them into low level instructions for the high performance CUDA runtime. We also use Haskell for rapid prototyping and for many auxiliary utilities.
  +
</blockquote>
  +
  +
* [http://cufp.org/conference/sessions/2013/jeff-epstein-parallel-scientific-building-scalable Parallel Scientific], Boulder, Colorado.
  +
  +
<blockquote>
  +
We are using Haskell to develop an ultra-scalable high-availability resource management system for big clusters (millions of nodes). A key element of the design is to provide scalable and reliable mechanisms for communicating failures and coordinating recovery transitions.
  +
</blockquote>
  +
  +
:: See Parallel Scientific's [http://cufp.org/conference/sessions/2013/jeff-epstein-parallel-scientific-building-scalable CUFP talk]
   
 
* [http://www.renci.org/ Renaissaince Computing Institute], Chapel Hill, North Carolina
 
* [http://www.renci.org/ Renaissaince Computing Institute], Chapel Hill, North Carolina
Line 410: Line 494:
 
<blockquote>
 
<blockquote>
 
Scrive is a service for e-signing tenders, contracts, and other documents. We help our clients close deals faster, decrease their administrative burden, and improve their customers’ experience.
 
Scrive is a service for e-signing tenders, contracts, and other documents. We help our clients close deals faster, decrease their administrative burden, and improve their customers’ experience.
  +
</blockquote>
  +
  +
* [https://www.cee.siemens.com/web/at/en/csb/cvc/Pages/home.aspx Siemens Convergence Creators GmbH Austria]
  +
  +
<blockquote>
  +
Siemens CVC uses Haskell since a few years in the space domain. Starting with small tools like data conversion and automation of scripting tasks over installers we use Haskell currently for Space Protocol Proxies to allow connect different space systems (e.g. Cortex to NCTRS or SLE to NCTRS with COP-1 handling). The main use is currently a Simulator implemented in Haskell which handles parts of NCTRS (or SSB), the ground station and parts of the satellite to be able to make closed-loop tests for the SCOS-2000 based Mission Control System. It is in use for testing and debugging of the Mission Control System and for checking implementation of new features. It has served for various, currently active missions and also is in use for some missions to come.
 
</blockquote>
 
</blockquote>
   
Line 444: Line 534:
   
 
::Starling Software's [http://www.starling-software.com/misc/icfp-2009-cjs.pdf experience building real time trading systems in Haskell]
 
::Starling Software's [http://www.starling-software.com/misc/icfp-2009-cjs.pdf experience building real time trading systems in Haskell]
  +
  +
  +
* [http://www.sensor-sense.nl Sensor Sense] Nijmegen, The Netherlands
  +
  +
<blockquote>
  +
Sensor Sense is offering high technology systems for gas measurements in the ''ppbv'' down to ''pptv'' range. We use Haskell for the embedded control software of our trace gas detectors.
  +
</blockquote>
  +
  +
:: For more information see Senor Sense's [http://www.reddit.com/r/haskell/comments/1clkjb/job_opening_for_haskell_developer_in_nijmegen_nl/ position advertisement]
  +
  +
* [http://www.silk.co Silk] Amsterdam, The Netherlands
  +
  +
<blockquote>
  +
Silk investigates and develops new ways of creating and consuming online content. Their [http://www.silk.co/ Silk] application makes it easy to filter and visualize large amounts of information.
  +
</blockquote>
  +
  +
:: Silk's blog on [http://engineering.silk.co/post/31920990633/why-we-use-haskell/ why they use Haskell]
  +
:: A [http://thenextweb.com/eu/2011/04/28/filter-and-visualize-data-in-seconds-with-silk/ review of Silk]
  +
  +
* [http://skedge.me/ Skedge Me]
  +
<blockquote>
  +
skedge.me is an online scheduling platform that allows businesses to completely automate the process of making appointments, such as customer visits, job interviews, and tutoring sessions.
  +
</blockquote>
  +
  +
:: See more in their [http://cufp.org/conference/sessions/2013/ryan-trinkle-skedgeme-enterprise-appointment-sched CUFP talk]
  +
:: See their 2014 [http://functionaljobs.com/jobs/8712-haskell-developer-at-skedgeme job advertisement]
  +
  +
* [http://www.suite-sol.com/ Suite Solutions]
  +
<blockquote>
  +
Suite Solutions provides products and solutions in support of large sets of technical documentation based on [http://en.wikipedia.org/wiki/Darwin_Information_Typing_Architecture DITA] for general technical documentation, and other more specialized XML and SGML formats for specific industries such as the aerospace industry. Many of Suite Solutions' products and solutions, such as the featured products [http://www.suite-sol.com/pages/solutions/suitehelp.html SuiteHelp] and [http://www.suite-sol.com/pages/solutions/suite-social-kb.html SuiteShare], are written in Haskell.
  +
</blockquote>
   
 
* [http://www.tabula.com/ Tabula.com]
 
* [http://www.tabula.com/ Tabula.com]
Line 465: Line 586:
 
:: Tupil's experience building [http://blog.tupil.com/building-commercial-haskell-applications/ commercial web apps in Haskell]
 
:: Tupil's experience building [http://blog.tupil.com/building-commercial-haskell-applications/ commercial web apps in Haskell]
   
* [http://typlab.com TypLAB] Amsterdam, The Netherlands
 
 
<blockquote>
 
TypLAB investigates and develops new ways of creating and consuming online content. Their [http://www.silkapp.com/ Silk] application makes it easy to filter and visualize large amounts of information.
 
</blockquote>
 
 
:: TypLAB's blog on [http://blog.typlab.com/2009/09/why-we-use-haskell/ why they use Haskell]
 
:: A [http://thenextweb.com/eu/2011/04/28/filter-and-visualize-data-in-seconds-with-silk/ review of Silk]
 
 
* [http://www.sensor-sense.nl Sensor Sense] Nijmegen, The Netherlands
 
 
<blockquote>
 
Sensor Sense is offering high technology systems for gas measurements in the ''ppbv'' down to ''pptv'' range. We use Haskell for the embedded control software of our trace gas detectors.
 
</blockquote>
 
   
 
If you're using Haskell commercially, please add your details here.
 
If you're using Haskell commercially, please add your details here.

Revision as of 14:38, 20 October 2014


Haskell has a diverse range of use commercially, from aerospace and defense, to finance, to web startups, hardware design firms and a lawnmower manufacturer. This page collects resources on the industrial use of Haskell.

Haskell in Industry

Many companies have used Haskell for a range of projects, including:

ABN AMRO is an international bank headquartered in Amsterdam. For its investment banking activities it needs to measure the counterparty risk

on portfolios of financial derivatives.

ABN AMRO's CUFP talk.
  • Aetion Technologies LLC, Columbus, Ohio

Aetion was a defense contractor in operation from 1999 to 2011, whose applications use artificial intelligence. Rapidly changing priorities make it important to minimize the code impact of changes, which suits Haskell well. Aetion developed three main projects in Haskell, all successful. Haskell's concise code was perhaps most important for rewriting: it made it practicable to throw away old code occasionally. DSELs allowed the AI to be specified very declaratively.

Aetion's CUFP talk.
  • Alcatel-Lucent

A consortium of groups, including Alcatel-Lucent, have used Haskell to prototype narrowband software radio systems, running in (soft) real-time.

Alcatel-Lucent's CUFP talk

Headquartered in Chicago, Illinois, Allston Trading, LLC is a premier high frequency market maker in over 40 financial exchanges, in 20 countries, and in nearly every conceivable product class. Allston makes some use of Haskell for their trading infrastructure.

Alpha Heavy Industries is an alternative asset manager dedicated to producing superior returns through quantitative methods. They use Haskell as their primary implementation language.

  • Amgen Thousand Oaks, California

Amgen is a human therapeutics company in the biotechnology industry. Amgen pioneered the development of novel products based on advances in recombinant DNA and molecular biology and launched the biotechnology industry’s first blockbuster medicines.

Amgen uses Haskell;

  • To rapidly build software to implement mathematical models and other complex, mathematically oriented applications
  • Provide a more mathematically rigorous validation of software
  • To break developers out of their software development rut by giving them a new way to think about software.
Amgen's CUFP talk.

"Find It! Keep It! is a Mac Web Browser that lets you keep the pages you visit in a database. A list of these pages is shown in the 'database view'. "

Antiope Associates provides custom solutions for wireless communication and networking problems. Our team has expertise in all aspects of wireless system design, from the physical and protocol layers to complex networked applications. Antiope Associates relies on a number of advanced techniques to ensure that the communication systems we design are reliable and free from error. We use custom simulation tools developed in Haskell, to model our hardware designs..

Antiope's CUFP talk.

Haskell is being used in the Network Security division to automate processing of internet abuse complaints. Haskell has allowed us to easily meet very tight deadlines with reliable results.

Haskell is being used for backend data transformation and loading.

Barclays Capital's Quantitative Analytics group is using Haskell to develop an embedded domain-specific functional language (called FPF) which is used to specify exotic equity derivatives. These derivatives, which are naturally best described in terms of mathematical functions, and constructed compositionally, map well to being expressed in an embedded functional language. This language is now regularly being used by people who had no previous functional language experience.

Simon Frankau et al's JFP paper on their use of Haskell
Read their 2013 job advertisement
  • BAE Systems

As part of the SAFE project, BAE has built a collection of compilers, interpreters, simulators, and EDSLs almost entirely in Haskell.

CUFP 2013 talk

BazQux Reader is a commercial RSS reader. Its feeds and comments crawler and a part of web-server are implemented in Haskell.

Better, formerly known as Erudify, is a learning company built around the mission of making people better. We are an unusual mix of a software company, a consulting firm, and a creative agency. This tight integration enables us to deliver innovative, high-quality courses to our customers.

Founded in 2012, Better is based in Zurich, Switzerland and New York, USA. Better is fully invested in Haskell; Most parts of our back-end system (web-servers and learning logic) are written in Haskell. Haskell is also used in most parts of our front-end system.

bCode Pty Ltd is a small venture capital-funded startup using Ocaml and a bit of Haskell in Sydney Australia.

Bdellium develops software systems that enable companies in the financial industry to deliver new customer services that grow their business. Bdellium uses Haskell for heavy lifting analysis in back end infrastructure.

Developing a modern integrated circuit (ASIC or FPGA) is an enormously expensive process involving specification, modeling (to choose and fix the architecture), design (to describe what will become silicon) and verification (to ensure that it meets the specs), all before actually committing anything to silicon (where the cost of a failure can be tens of millions of dollars). Bluespec, Inc. is a three year-old company that provides language facilities, methodologies, and tools for this purpose, within the framework of the IEEE standard languages SystemVerilog and SystemC, but borrowing ideas heavily from Term Rewriting Systems and functional programming languages like Haskell. In this talk, after a brief technical overview to set the context, we will describe our tactics and strategies, and the challenges we face, in introducing declarative programming ideas into this field, both externally (convincing customers about the value of these ideas) and internally (using Haskell for our tool implementation).

Bluespec's CUFP talk.

Bump use a Haskell-based server, Angel, for process supervisor for all their backend systems, and for other infrastructure tasks.

Haskell at Bump
  • Capital IQ

We have been using functional programming here at S&P Capital IQ in Scala, Haskell, and our homegrown reporting language Ermine, since 2008 for financial analytics.

Capital IQ's CUFP 2013 talk

Chordify is a free online music service that transforms music, from YouTube, Deezer, SoundCloud or uploaded files, into chords. There's an ICFP experience report explaining how Haskell is used for this:

José Pedro Magalhães and W. Bas de Haas. Functional Modelling of Musical Harmony: an Experience Report. In Proceedings of the 16th ACM SIGPLAN International Conference on Functional Programming (ICFP'11), pp. 156–162, ACM, 2011.

Brand Karma provides services to brand owners to measure online sentiments towards their brands. Haskell is used in building parts of the product, specifically for back-end job scheduling and brand matching.

GMAG, the quantitative modeling group at Credit Suisse, has been using Haskell for various projects since the beginning of 2006, with the twin aims of improving the productivity of modelers and making it easier for other people within the bank to use GMAG models. Current projects include: Further work on tools for checking, manipulating and transforming spreadsheets; a domain-specific language embedded in Haskell for implementing reusable components that can be compiled into various target forms (see the video presentation: Paradise, a DSEL for Derivatives Pricing).

Credit Suisse's CUFP talk.

Detexify is an online handwriting recognition system, whose backend is written in Haskell.

Fynder is an online booking platform.

We use Haskell and clojurescript, all stitched together with nixos

See more in their original job posting.

The Directional Credit Trading group uses Haskell as the primary implementation language for all its software infrastructure.

Deutsche Bank's CUFP talk.

Design and verification of hydraulic hybrid vehicle systems

Eaton's CUFP talk
Eaton's experiences using a Haskell DSL
  • [Ericsson AB]

Ericsson uses Haskell for the implementation of Feldspar, an EDSL for digital signal processing algorithms.

Ericsson's Feldspar compiler

Facebook uses some Haskell internally for tools. lex-pass is a tool for programmatically manipulating a PHP code base via Haskell.

Facebook's CUFP talk
Facebook's HaXL system is open source

Factis research, located in Freiburg, Germany, develops reliable and user-friendly mobile solutions. Our client software runs under J2ME, Symbian, iPhone OS, Android, and Blackberry. The server components are implemented in Python and Haskell. We are actively using Haskell for a number of projects, most of which are released under an open-source license.

Factis' HCAR submission

Located in Hamburg, Germany, we are developing web-based productivity tools for invoicing, customer management, resource scheduling and time tracking. While using Javascript for building rich frontend application in the browser, we use Haskell to implement the REST backends. Additionally, we do occasional project/client work as well.

Oh, and of course we develop and maintain Hayoo! :)


Functor AB offers new tools for ground-breaking static analysis with pre-test case generation of programs to eliminate defects and bugs in software very early in development.

Functor collaborates with the JET fusion reactor run by EFDA CCFE. JET is currently the largest reactor in the world of its kind. At Functor, almost all development is done in Haskell but also to some extent also C and Scala.

See more in the Functor AB job advertisement

We develop software prototypes according to the Pareto principle: After spending only 20 percent of budget, we aim to provide already 80 percent of the software's functionality. We can realize this by constructing a 2080-software-prototype that we can further develop into a full-fledged solution...

Galois designs and develops high confidence software for critical applications. Our innovative approach to software development provides high levels of assurance, yet its scalability enables us to address the most complex problems. We have successfully engineered projects under contract for corporations and government clients in the demanding application areas of security, information assurance and cryptography.

Galois' 2007 CUFP talk
Galois' 2011 CUFP talk
Galois' retrospective on 10 years of industrial Haskell use

Haskell is used on a small number of internal projects in Google, for internal IT infrastructure support, and the open-source Ganeti project. Ganeti is a tool for managing clusters of virtual servers built on top of Xen and KVM.

Google's ICFP 2010 experience report on Haskell
Video from ICFP Project Ganeti at Google

Glyde uses OCaml and Haskell for a few projects. Glyde uses Haskell for our client-side template source-to-source translator, which converts HAML-like view templates into JS code.

Group Commerce uses Haskell to drive the main component of their advertising infrastructure: a Snap Framework based web server. Haskell enabled quicker development, higher reliability, and better maintainability than other languages, without having to sacrifice performance.

We develop enterprise systems with de-coupled, asynchronous Haskell backends and Javascript UIs.

For our current customer, an Internet connectivity provider, we wrote a solution for monitoring multiple remote machines and analyzing gigabytes of traffic samples. Haskell proved an excellent tool for the job.

We were able to replace legacy systems in a granular, piece-by-piece manner, while delivering new features.

Designs, builds, and sells lawn mowers. We use quite a bit of Haskell, especially as a "glue language" for tying together data from different manufacturing-related systems. We also use it for some web apps that are deployed to our dealer network. There are also some uses for it doing sysadmin automation, such as adding/removing people from LDAP servers and the like

iba CG develops software for large companies:

  • risk analysis and reporting solution for power supply company;
  • contract management, assert management, booking and budgeting software for one of the worldwide leading accounting firm.

IMVU, Inc. is a social entertainment company connecting users through 3D avatar-based experiences. See the blog article What it's like to use Haskell

ICS AG developed a simulation and testing tool which based on a DSL (Domain Specific Language). The DSL is used for the description of architecture and behavior of distributed system components (event/message based, reactive). The compiler was written in Haskell (with target language Ada). The test system is used in some industrial projects.

Intel has developed a Haskell compiler as part of their research on multicore parallelism at scale.

Read the Intel Research paper on compiler

The rostering group at IVU Traffic Technologies AG has been using Haskell to check rosters for compliance with EC regulations.

Our implementation is based on an embedded DSL to combine the regulation’s single rules into a solver that not only decides on instances but, in the case of a faulty roster, finds an interpretation of the roster that is “favorable” in the sense that the error messages it entails are “helpful” in leading the dispatcher to the resolution of the issue at hand.

The solver is both reliable (due to strong static typing and referential transparency — we have not experienced a failure in three years) and efficient (due to constraint propagation, a custom search strategy, and lazy evaluation).

Our EC 561/2006 component is part of the IVU.crew software suite and as such is in wide-spread use all over Europe, both in planning and dispatch. So the next time you enter a regional bus, chances are that the driver’s roster was checked by Haskell.

JanRain uses Haskell for network and web software. Read more about Haskell at JanRain and in their tech talk at Galois. JanRain's "Capture" user API product is built on Haskell's Snap webframework.

See Janrain's technical talk about their use of Snap

Joyride Laboratories is an independent game development studio, founded in 2009 by Florian Hofer and Sönke Hahn. Their first game, "Nikki and the Robots" was released in 2011.

Linspire, Inc. has used functional programming since its inception in 2001, beginning with extensive use of O'Caml, with a steady shift to Haskell as its implementations and libraries have matured. Hardware detection, software packaging and CGI web page generation are all areas where we have used functional programming extensively. Haskell's feature set lets us replace much of our use of little languages (e.g., bash or awk) and two-level languages (C or C++ bound to an interpreted language), allowing for faster development, better code sharing and ultimately faster implementations. Above all, we value static type checking for minimizing runtime errors in applications that run in unknown environments and for wrapping legacy programs in strongly typed functions to ensure that we pass valid arguments.

Linspire's CUFP talk
Linspire's experience report on using functional programming to manage a Linux distribution

MITRE uses Haskell for, amongst other things, the analysis of cryptographic protocols.

A team at the New York Times used Haskell's parallel array library to process images from 2013 New York Fashion Week. Haskell was chosen based on its fast numerical arrays packages, and ease of parallelization.

Model analysis
Haskell in the Newsroom

NICTA has used Haskell as part of a project to verify the L4 microkernel.

Read the Dr. Dobbs article on using Haskell and formal methods to verify a kernel

NRAO has used Haskell to implement the core science algorithms for the Robert C. Byrd Green Bank Telescope (GBT) Dynamic Scheduling System (DSS).

Source code available on GitHub.

NS Solutions has employed Haskell since 2008 to develop its software packages including "BancMeasure", a mark-to-market accounting software package for financial institutions, "BancMeasure for IFRS" and "Mamecif", a data analysis package. "BancMeasure" and "Mamecif" are registered trademarks of NS Solutions Corporation in JAPAN.

At NVIDIA, we have a handful of in-house tools that are written in Haskell

Openomy's API v2.0 is developed in Haskell, using the HAppS web platform.

Oblomov Systems is a one-person software company based in Utrecht, The Netherlands. Founded in 2009, Oblomov has since then been working on a number of Haskell-related projects. The main focus lies on web-applications and (web-based) editors. Haskell has turned out to be extremely useful for implementing web servers that communicate with JavaScript clients or iPhone apps.

Oblomov's HCAR submission.

Need somewhere to put your Darcs code? Try us.

Patch-Tag is built with happstack, the continuation of the project formerly known as HAppS.

At Peerium, we're striving to bring a new level of quality and efficiency to online communication and collaboration within virtual communities, social networks, and business environments. We believe that a new environment that supports the effortless sharing of both information and software will enable a level of online cooperation far beyond current Web-based technologies -- modern programming techniques will enable the creation of more robust and more powerful programs within these environments. To this end, we're building a new software platform for direct, real-time communication and collaboration within graphically rich environments. Peerium is located in the heart of Harvard Square in Cambridge, Massachusetts.

PlanIt9 is a Yesod-based web application for defining, planning, scheduling and tracking tasks. It's designed to be fast, simple, collaborative and cost effective. We're currently signing up users for our beta program.

Qualcomm uses Haskell to generate Lua bindings to the BREW platform

At SQream, we use Haskell for a large part of our code. We use Haskell for the compiler, which takes SQL statements and turns them into low level instructions for the high performance CUDA runtime. We also use Haskell for rapid prototyping and for many auxiliary utilities.

We are using Haskell to develop an ultra-scalable high-availability resource management system for big clusters (millions of nodes). A key element of the design is to provide scalable and reliable mechanisms for communicating failures and coordinating recovery transitions.

See Parallel Scientific's CUFP talk

The Renaissance Computing Institute (RENCI), a multi-institutional organization, brings together multidisciplinary experts and advanced technological capabilities to address pressing research issues and to find solutions to complex problems that affect the quality of life in North Carolina, our nation and the world.

Research scientists at RENCI have used Haskell for a number of projects, including The Big Board.

RENCI's CUFP talk.

Samplecount develops mobile, location-aware sound and music applications. They are currently using Haskell for prototyping their server-side soundscape streaming components and as a cross-platform build tool for their mobile applications and frameworks.

Sankel Software has been using Haskell since 2002 for both prototyping and deployment for technologies ranging from CAD/CAM to gaming and computer animation. We specialize in the development of user-friendly, large, long-term applications that solve difficult and conceptually intricate problems.

Scrive is a service for e-signing tenders, contracts, and other documents. We help our clients close deals faster, decrease their administrative burden, and improve their customers’ experience.

Siemens CVC uses Haskell since a few years in the space domain. Starting with small tools like data conversion and automation of scripting tasks over installers we use Haskell currently for Space Protocol Proxies to allow connect different space systems (e.g. Cortex to NCTRS or SLE to NCTRS with COP-1 handling). The main use is currently a Simulator implemented in Haskell which handles parts of NCTRS (or SSB), the ground station and parts of the satellite to be able to make closed-loop tests for the SCOS-2000 based Mission Control System. It is in use for testing and debugging of the Mission Control System and for checking implementation of new features. It has served for various, currently active missions and also is in use for some missions to come.

Signali Corp is a new custom hardware design company. Our chief products are custom IP cores targeted for embedded DSP and cryptographic applications. Our specialty is the design and implementation of computationally intensive, complex algorithms. The interfaces to each core are modular and can be very efficiently modified for your specific application. System-level integration and validation is crucial and is the majority of investment in a product.

Soostone is an advanced analytics technology provider specializing in algorithmic optimization opportunities in marketing, pricing, advertising, sales and product management. As the preferred language, Haskell is used intensively at Soostone in numerous applications including customized machine learning algorithms, models/simulations, real-time decision-making engines, DSL/EDSLs, web applications and high volume APIs.

Standard Chartered has a large group using Haskell for all aspects of its wholesale banking business.

Starling Software are developing a commercial automated options trading system in Haskell, and are migrating other parts of their software suite to Haskell.

Starling Software's experience building real time trading systems in Haskell


Sensor Sense is offering high technology systems for gas measurements in the ppbv down to pptv range. We use Haskell for the embedded control software of our trace gas detectors.

For more information see Senor Sense's position advertisement
  • Silk Amsterdam, The Netherlands

Silk investigates and develops new ways of creating and consuming online content. Their Silk application makes it easy to filter and visualize large amounts of information.

Silk's blog on why they use Haskell
A review of Silk

skedge.me is an online scheduling platform that allows businesses to completely automate the process of making appointments, such as customer visits, job interviews, and tutoring sessions.

See more in their CUFP talk
See their 2014 job advertisement

Suite Solutions provides products and solutions in support of large sets of technical documentation based on DITA for general technical documentation, and other more specialized XML and SGML formats for specific industries such as the aerospace industry. Many of Suite Solutions' products and solutions, such as the featured products SuiteHelp and SuiteShare, are written in Haskell.

Tabula is a privately held fabless semiconductor company developing 3-D Programmable Logic Devices. Haskell is used for internal compiler toolchains related to hardware design.

Tsuru Capital is operating an automated options trading system written in Haskell.

Tsuru Capital's HCAR submission
  • Tupil Utrecht, The Netherlands

Tupil is a Dutch company that built software for clients, written in Haskell. Tupil used Haskell for the speed in development and resulting software quality. The company is founded by Chris Eidhof and Eelco Lempsink. Currently they build iPhone/iPad applications in Objective-C.

Tupil's experience building commercial web apps in Haskell


If you're using Haskell commercially, please add your details here.

The Industrial Haskell Group

The Industrial Haskell Group (IHG) is an organisation to support the needs of commercial users of the Haskell programming language.

Jobs and recruitment

Haskell jobs on the HaskellWiki.

Jobs at Haskellers.com.

Consultants

Consultants

Commercial Users of Functional Programming Workshop

Commercial Users of Functional Programming

The goal of CUFP is to build a community for users of functional programming languages and technology, be they using functional languages in their professional lives, in an open source project (other than implementation of functional languages), as a hobby, or any combination thereof. In short: anyone who uses functional programming as a means, but not an end.