https://wiki.haskell.org/api.php?action=feedcontributions&user=Zark&feedformat=atomHaskellWiki - User contributions [en]2024-03-28T22:58:05ZUser contributionsMediaWiki 1.35.5https://wiki.haskell.org/index.php?title=Haskell_in_industry&diff=62725Haskell in industry2019-01-17T17:06:49Z<p>Zark: </p>
<hr />
<div>__NOTOC__<br />
<br />
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.<br />
<br />
* The main user conference for industrial Haskell use is CUFP - the [http://cufp.org/ Commercial Users of Functional Programming Workshop].<br />
* The [http://industry.haskell.org Industrial Haskell Group] supports commercial users.<br />
* There is a well-maintained (as of 2018) [https://github.com/erkmos/haskell-companies github repository] that collects information on companies using Haskell.<br />
* [http://commercialhaskell.com/ The commercial Haskell group] is a special interest group for companies and individuals interested in commercial usage of Haskell.<br />
<br />
The Reddit page [https://www.reddit.com/r/haskell/comments/377zyc/72_wouldbe_commercial_haskell_users_what_haskell/ 72 would-be commercial Haskell users: what Haskell success stories we need to see] has several stories of commercial Haskell users.<br />
<br />
== Haskell in Industry ==<br />
<br />
Many companies have used Haskell for a range of projects, including:<br />
<br />
* [http://cufp.galois.com/2007/abstracts.html#CyrilSchmidt ABN AMRO] Amsterdam, The Netherlands<br />
<blockquote><br />
ABN AMRO is an international bank headquartered in Amsterdam. For its<br />
investment banking activities it needs to measure the counterparty risk<br />
on portfolios of financial derivatives. </blockquote><br />
::ABN AMRO's [http://cufp.galois.com/2007/abstracts.html#CyrilSchmidt CUFP talk].<br />
<br />
* Aetion Technologies LLC, Columbus, Ohio<br />
<blockquote><br />
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<br />
Haskell, all successful. Haskell's concise code was perhaps most important for<br />
rewriting: it made it practicable to throw away old code occasionally. DSELs<br />
allowed the AI to be specified very declaratively. <br />
</blockquote><br />
::Aetion's [http://cufp.galois.com/2006/slides/GaryMorris.pdf CUFP talk].<br />
<br />
* Alcatel-Lucent<br />
<blockquote><br />
A consortium of groups, including Alcatel-Lucent, have used Haskell to prototype narrowband software radio systems, running in (soft) real-time.<br />
</blockquote><br />
::Alcatel-Lucent's [http://cufp.org/conference/sessions/2011/fourteen-days-haskell-real-time-programming-projec CUFP talk]<br />
<br />
* [http://www.allstontrading.com/ Allston Trading]<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://www.alphaheavy.com/ Alpha Heavy Industries]<br />
<blockquote><br />
Alpha Heavy Industries is an alternative asset manager dedicated to producing superior returns through quantitative methods. They use Haskell as their primary implementation language.<br />
</blockquote><br />
<br />
* [http://www.amgen.com/ Amgen] Thousand Oaks, California<br />
<blockquote><br />
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.<br />
<br />
Amgen uses Haskell;<br />
<br />
* To rapidly build software to implement mathematical models and other complex, mathematically oriented applications<br />
* Provide a more mathematically rigorous validation of software<br />
* To break developers out of their software development rut by giving them a new way to think about software.<br />
</blockquote><br />
::Amgen's [http://cufp.galois.com/2008/abstracts.html#BalabanDavid CUFP talk].<br />
<br />
* [http://www.ansemond.com/ Ansemond LLC]<br />
<blockquote><br />
"Find It! Keep It! is a Mac Web Browser that lets you keep the pages you<br />
visit in a database. A list of these pages is shown in the 'database<br />
view'. "<br />
</blockquote><br />
<br />
* [http://antiope.com/ Antiope] Fair Haven, New Jersey<br />
<blockquote><br />
Antiope Associates provides custom solutions for wireless communication<br />
and networking problems. Our team has expertise in all aspects of<br />
wireless system design, from the physical and protocol layers to complex<br />
networked applications. Antiope Associates relies on a number of<br />
advanced techniques to ensure that the communication systems we design<br />
are reliable and free from error. We use custom simulation tools<br />
developed in Haskell, to model our hardware designs..<br />
</blockquote><br />
::Antiope's [http://cufp.galois.com/2008/slides/WrightGregory.pdf CUFP talk].<br />
<br />
* [http://antiope.com/ Antiope] Fair Haven, New Jersey<br />
<blockquote><br />
Antiope Associates provides custom solutions for wireless communication<br />
and networking problems. Our team has expertise in all aspects of<br />
wireless system design, from the physical and protocol layers to complex<br />
networked applications. Antiope Associates relies on a number of<br />
advanced techniques to ensure that the communication systems we design<br />
are reliable and free from error. We use custom simulation tools<br />
developed in Haskell, to model our hardware designs..<br />
</blockquote><br />
::Antiope's [http://cufp.galois.com/2008/slides/WrightGregory.pdf CUFP talk].<br />
<br />
* Applicative, Sydney (Australia)<br />
<blockquote><br />
Applicative has created a Haskell IDE for macOS called "[http://haskellformac.com Haskell for Mac]". It offers playgrounds to interactively work with Haskell code right next to the source files: you can draw and preview images, animations, HTML pages and more. You can also build full-fledged applications with it.<br />
</blockquote><br />
<br />
* [http://www.att.com AT&amp;T]<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://www.baml.com/ Bank of America Merril Lynch]<br />
<blockquote>Haskell is being used for backend data transformation and loading.</blockquote><br />
<br />
* [http://www.haskell.org/communities/12-2007/html/report.html#sect7.1.2 Barclays Capital Quantitative Analytics Group]<br />
<blockquote><br />
Barclays Capital's Quantitative Analytics group is using Haskell to<br />
develop an embedded domain-specific functional language (called FPF)<br />
which is used to specify exotic equity derivatives. These derivatives,<br />
which are naturally best described in terms of mathematical functions,<br />
and constructed compositionally, map well to being expressed in an<br />
embedded functional language. This language is now regularly being used<br />
by people who had no previous functional language experience.<br />
</blockquote><br />
::[http://lambda-the-ultimate.org/node/3331 Simon Frankau et al's JFP paper on their use of Haskell]<br />
::[http://www.reddit.com/r/haskell/comments/1p70l3/barclays_are_hiring_haskell_developers_in_london/ Read their 2013 job advertisement]<br />
<br />
* BAE Systems<br />
<blockquote><br />
As part of the SAFE project, BAE has built a collection of compilers, interpreters, simulators, and EDSLs almost entirely in Haskell.<br />
</blockquote><br />
::[http://cufp.org/conference/sessions/2013/tom-hawkins-bae-systems-redesigning-computer-secur CUFP 2013 talk]<br />
<br />
* [http://bazqux.com BazQux Reader]<br />
<blockquote><br />
BazQux Reader is a commercial RSS reader. Its feeds and comments crawler and a part of web-server are implemented in Haskell.<br />
</blockquote><br />
<br />
* [http://better.io Better]<br />
<blockquote><br />
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.<br />
<br />
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. <br />
</blockquote><br />
<br />
* [http://www.bcode.com/ bCODE Pty Ltd] Sydney Australia<br />
<blockquote><br />
bCode Pty Ltd is a small venture capital-funded startup using Ocaml and a bit of Haskell in Sydney Australia.<br />
</blockquote><br />
<br />
* [http://bdellium.com/ Bdellium] Hawaii, United States<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://www.betterteam.com/ Betterteam] Remote<br />
<br />
<blockquote><br />
Betterteam is a recruitment platform for small businesses and growing teams. It allows employers to post their jobs to hundreds of job boards, manage candidates, and add a careers section to their website. <br />
<br />
Betterteam's backend applications are 100% Haskell and the frontend web application is written in PureScript.<br />
</blockquote><br />
<br />
* [http://www.bluespec.com/ Bluespec, Inc.] Waltham, Massachusetts<br />
<br />
<blockquote><br />
Developing a modern integrated circuit (ASIC or FPGA) is an enormously<br />
expensive process involving specification, modeling (to choose and fix the<br />
architecture), design (to describe what will become silicon) and verification<br />
(to ensure that it meets the specs), all before actually committing anything to<br />
silicon (where the cost of a failure can be tens of millions of dollars).<br />
Bluespec, Inc. is a three year-old company that provides language facilities,<br />
methodologies, and tools for this purpose, within the framework of the IEEE<br />
standard languages SystemVerilog and SystemC, but borrowing ideas heavily from<br />
Term Rewriting Systems and functional programming languages like Haskell. In<br />
this talk, after a brief technical overview to set the context, we will<br />
describe our tactics and strategies, and the challenges we face, in introducing<br />
declarative programming ideas into this field, both externally (convincing<br />
customers about the value of these ideas) and internally (using Haskell for our<br />
tool implementation). <br />
</blockquote><br />
<br />
::Bluespec's [http://cufp.galois.com/2006/abstracts.html#RishiyurNikhil CUFP talk].<br />
<br />
* [http://bu.mp/ Bump]<br />
<blockquote><br />
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].<br />
</blockquote><br />
::Haskell at [http://fpcomplete.com/downloads/bump-fp-complete-study.pdf Bump]<br />
<br />
* Capital IQ<br />
<blockquote><br />
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.<br />
</blockquote><br />
::[http://cufp.org/conference/sessions/2013/edward-kmett-sp-capital-iq-functional-reporting Capital IQ's CUFP 2013 talk]<br />
<br />
* [http://chordify.net Chordify]<br />
<blockquote><br />
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:<br />
<br />
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.<br />
</blockquote><br />
<br />
* [http://www.circos.com Circos Brand Karma] Singapore<br />
<blockquote><br />
Brand Karma provides services to brand owners to measure online sentiments towards their brands.<br />
Haskell is used in building parts of the product, specifically for back-end job scheduling and brand matching.<br />
</blockquote><br />
<br />
* [https://circuithub.com CircuitHub]<br />
<blockquote><br />
CircuitHub aims to be the AWS for manufacturing, enabling hardware companies and makers to instantly quote designs and scale from prototype to production. We are also proud to host a large collection of open hardware designs. CircuitHub uses Haskell for our core services and algorithms.<br />
</blockquote><br />
<br />
* [http://www.credit-suisse.com/ Credit Suisse Global Modeling and Analytics Group] London, UK; New York City, New York<br />
<br />
<blockquote><br />
GMAG, the quantitative modeling group at Credit Suisse, has been using Haskell<br />
for various projects since the beginning of 2006, with the twin aims of<br />
improving the productivity of modelers and making it easier for other people<br />
within the bank to use GMAG models. Current projects include: Further work on<br />
tools for checking, manipulating and transforming spreadsheets; a<br />
domain-specific language embedded in Haskell for implementing reusable<br />
components that can be compiled into various target forms (see the video presentation: [http://www.londonhug.net/2008/08/11/video-paradise-a-dsel-for-derivatives-pricing/ Paradise, a DSEL for Derivatives Pricing]).<br />
</blockquote><br />
<br />
::Credit Suisse's [http://cufp.galois.com/2006/abstracts.html#HowardMansell CUFP talk].<br />
<br />
* [https://www.cryptact.com/ Cryptact] Tokyo, Japan<br />
<br />
<blockquote><br />
Cryptact provides a platform for cryptocurrency investors based on our expertise in finance and technology, and is exploring the potential of Haskell in our backend services.<br />
</blockquote><br />
<br />
* [http://detexify.kirelabs.org/classify.html Detexify]<br />
<br />
<blockquote><br />
Detexify is an online handwriting recognition system, whose backend is written in Haskell. <br />
</blockquote><br />
<br />
* [http://fynder.io Fynder]<br />
<blockquote><br />
Fynder is an online booking platform.<br />
<br />
We use Haskell and clojurescript, all stitched together with nixos<br />
</blockquote><br />
<br />
::See more in their original [http://hackerjobs.co.uk/jobs/2013/9/27/digital-logistics-haskell-developer job posting].<br />
<br />
* [http://www.db.com/ Deutsche Bank Equity Proprietary Trading, Directional Credit Trading]<br />
<br />
<blockquote><br />
The Directional Credit Trading group used Haskell as the primary<br />
implementation language for its software infrastructure.<br />
</blockquote><br />
<br />
::Deutsche Bank's [http://cufp.galois.com/2008/abstracts.html#PolakowJeff CUFP talk].<br />
<br />
* [https://www.thitp.de/ Dr. Peter & Alexander Thiemann GbR]<br />
<blockquote><br />
Dr. Peter & Alexander Thiemann GbR is a software consultancy with strong focus on functional development with Haskell and hardware-software systems.<br />
</blockquote><br />
<br />
* [http://article.gmane.org/gmane.comp.lang.haskell.cafe/37093 Eaton] Cleveland, Ohio<br />
<br />
<blockquote><br />
Design and verification of hydraulic hybrid vehicle systems<br />
</blockquote><br />
<br />
::Eaton's [http://cufp.galois.com/2008/abstracts.html#HawkinsTom CUFP talk]<br />
::Eaton's [http://www.haskell.org/pipermail/haskell-cafe/2009-April/060602.html experiences using a Haskell DSL]<br />
<br />
* [Ericsson AB]<br />
<blockquote><br />
Ericsson uses Haskell for the implementation of Feldspar, an EDSL for digital signal processing algorithms.<br />
</blockquote><br />
<br />
::Ericsson's [http://hackage.haskell.org/package/feldspar-compiler Feldspar compiler]<br />
<br />
* [http://extensibl.com/ extensibl]<br />
<blockquote><br />
New Zealand-based company. Provides a variety of software development, consulting, operational support services worldwide. Both Haskell and Ur/Web are actively used for commercial projects.<br />
</blockquote><br />
<br />
* [http://facebook.com Facebook]<br />
<br />
<blockquote><br />
Facebook uses some Haskell internally for tools. [http://github.com/facebook/lex-pass/tree/master lex-pass] is a tool for programmatically manipulating a PHP code base via Haskell.<br />
</blockquote><br />
<br />
:: Facebook's [http://cufp.galois.com/2009/abstracts.html#ChristopherPiroEugeneLetuchy CUFP talk]<br />
:: Facebook's [http://skillsmatter.com/podcast/home/simon-marlow HaXL system] is [https://code.facebook.com/projects/854888367872565/haxl/ open source]<br />
<br />
* [http://www.factisresearch.com/ Factis Research]<br />
<blockquote><br />
Factis research, located in Freiburg, Germany, co-develops [http://www.checkpad.de Checkpad], a mobile electronic health record. Our client software runs under iOS, web browsers and Windows. The server components are implemented in 95% in Haskell. <br />
</blockquote><br />
<br />
<br />
* [http://fortytools.com fortytools gmbh]<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
:: Oh, and of course we develop and maintain [http://hayoo.info Hayoo!] :)<br />
<br />
<br />
* [http://www.functor.se/ Functor AB], Stockholm, Sweden<br />
<blockquote><br />
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. <br />
<br />
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.<br />
</blockquote><br />
<br />
:: See more in the Functor AB [http://alpmestan.com/posts/2012-10-23-haskell-job-opening-at-functor.html job advertisement]<br />
<br />
* [http://www.funktional.info/index.php?id=7&L=1 Funktionale Programmierung Dr. Heinrich Hördegen], Munich, Germany<br />
<blockquote><br />
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...<br />
</blockquote><br />
<br />
* [http://www.galois.com/ Galois, Inc] Portland, Oregon<br />
<br />
<blockquote><br />
Galois designs and develops high confidence software for critical applications.<br />
Our innovative approach to software development provides high levels of<br />
assurance, yet its scalability enables us to address the most complex problems.<br />
We have successfully engineered projects under contract for corporations and<br />
government clients in the demanding application areas of security, information<br />
assurance and cryptography. <br />
</blockquote><br />
<br />
::Galois' [http://cufp.galois.com/2007/abstracts.html#JohnLaunchbury 2007 CUFP talk]<br />
::Galois' [http://cufp.org/conference/sessions/2011/theorem-based-derivation-aes-implementation 2011 CUFP talk]<br />
::Galois' [http://corp.galois.com/blog/2009/4/27/engineering-large-projects-in-haskell-a-decade-of-fp-at-galo.html retrospective on 10 years of industrial Haskell use]<br />
<br />
* [http://google.com Google]<br />
<br />
<blockquote><br />
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<br />
virtual servers built on top of Xen and KVM.<br />
</blockquote><br />
<br />
::Google's [http://k1024.org/~iusty/papers/icfp10-haskell-reagent.pdf ICFP 2010 experience report on Haskell]<br />
::Video from ICFP [http://vimeo.com/12849320 Project Ganeti at Google]<br />
<br />
* [http://glyde.com/ Glyde]<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://groupcommerce.com Group Commerce]<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://hasura.io/ Hasura]<br />
<blockquote><br />
Hasura is a BaaS/PaaS focussed on keeping things DRY and letting you write custom code with the tools you love. We're building a micro-service platform christened Hasura.io (alpha release scheduled in summer 2015), and we used Haskell as the core programming language to build it. <br />
</blockquote><br />
<br />
* [http://humane-software.com Humane Software]<br />
<blockquote>We develop enterprise systems with de-coupled, asynchronous Haskell backends and Javascript UIs.<br><br />
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. <br />
We were able to replace legacy systems in a granular, piece-by-piece manner, while delivering new features.</blockquote><br />
<br />
* [http://hustlerturf.com Hustler Turf Equipment] Hesston, Kansas<br />
<blockquote><br />
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<br />
automation, such as adding/removing people from LDAP servers and the like<br />
</blockquote><br />
<br />
* [http://iba-cg.de/haskell.html iba Consulting Gesellschaft] - Intelligent business architecture for you. Leipzig, Germany<br />
<br />
<blockquote><br />
iba CG develops software for large companies: <br />
* risk analysis and reporting solution for power supply company; <br />
* contract management, assert management, booking and budgeting software for one of the worldwide leading accounting firm.<br />
</blockquote><br />
<br />
* [http://www.imvu.com IMVU, Inc]<br />
<br />
<blockquote><br />
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]<br />
</blockquote><br />
<br />
* [http://www.ics-ag.de/ Informatik Consulting Systems AG]<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://intel.com Intel]<br />
<blockquote><br />
Intel has developed a Haskell compiler as part of their research on multicore parallelism at scale.<br />
</blockquote><br />
<br />
:: Read the Intel Research paper on [http://www.leafpetersen.com/leaf/publications/hs2013/hrc-paper.pdf compiler]<br />
<br />
* [http://www.ivu.de/uk/products/public-transport/ IVU Traffic Technologies AG]<br />
<blockquote><br />
The rostering group at IVU Traffic Technologies AG has been using Haskell to check rosters for compliance with EC regulations.<br />
<br />
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.<br />
<br />
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).<br />
<br />
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.<br />
</blockquote><br />
<br />
* [http://www.janrain.com JanRain]<br />
<blockquote><br />
JanRain uses Haskell for network and web software. Read more about [http://www.janrain.com/blogs/haskell-janrain Haskell at JanRain] and in their [http://corp.galois.com/blog/2011/3/8/tech-talk-haskell-and-the-social-web.html tech talk at Galois]. JanRain's "[http://www.janrain.com/products/capture Capture]" user API product is built on Haskell's Snap webframework.<br />
</blockquote><br />
<br />
:: See Janrain's [http://corp.galois.com/blog/2011/4/22/tech-talk-video-haskell-and-the-social-web.html technical talk about their use of Snap]<br />
<br />
* [http://joyridelabs.de/game/ Joyride Laboratories]<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://keera.co.uk Keera Studios]<br />
<br />
<blockquote><br />
Keera Studios Ltd is a European game development studio that develops mobile, desktop and web apps.<br />
<br />
* Games: The mobile game Magic Cookies! was written in Haskell and released in 2015 [https://play.google.com/store/apps/details?id=uk.co.keera.games.magiccookies for Android] and 2017 [https://itunes.apple.com/us/app/magic-cookies/id1244709871 for iOS]. Other games include [http://github.com/ivanperez-keera/haskanoid Haskanoid], also available [https://www.facebook.com/keerastudios/photos/pb.300854939930039.-2207520000.1432793728./973879669294226/?type=3&theater for Android], and a multi-platform Graphic Adventure library and engine with [https://www.facebook.com/keerastudios/photos/pb.300854939930039.-2207520000.1432793728./971050386243821/?type=3&theater Android and iOS support] and an [https://www.facebook.com/keerastudios/photos/pb.300854939930039.-2207520000.1432793728./1078495588832633/?type=3&theater IDE].<br />
<br />
* Reactive Programming and GUIs: Keera Studios is also the maintainer of [http://github.com/keera-studios/keera-hails Keera Hails], an Open-Source reactive rapid application development framework with backends for Android and iOS's native GUI toolkits, Web DOM via GHCJS, Gtk+, Wx and Qt. With Hails, it is possible to write Haskell applications with UIs that work both for mobile and desktop.<br />
<br />
Keera Studios' Gale IDE (a game IDE), [https://github.com/keera-studios/keera-posture Keera Posture] (a open-source posture monitor using the webcam) and other mobile apps are also developed using Hails.<br />
<br />
See the [http://facebook.com/keerastudios Facebook page] for details on iOS & Android games and apps and ongoing development.<br />
<br />
</blockquote><br />
<br />
* [http://kinoubi.xyz kinoubi]<br />
<blockquote><br />
At kinoubi we believe in high quality code, that just works. We use software quality metrics to achieve an exceptional level of quality. Our main programming language is Haskell because of its elegance and philosophy of functional purity. It is what we believe in, it is our name: 'kinoubi' means 'functional elegance' in Japanese. Our code is produced for a range of different domains including data mining and machine learning.<br />
</blockquote><br />
<br />
* [https://lifted.software/rHSWiki/ Lifted Software UG], Berlin, Germany<br />
<blockquote><br />
Lifted has developed a macOS application "[https://lifted.software/rHSWiki/ JSON Class Generator]" that allows the user to specify data types (classes/enums) in a visual editor. These models can then be exported to Objective-C source code, which is capable of serializing/deserializing the instances to/from JSON. When parsing JSON, the structures are validated against the specification and errors are reported. The generated code comes with handy implementations for methods like -description, -isEqual:, -copy, -hash and more, that are boring to write and tedious to keep updated by hand.<br />
</blockquote><br />
<br />
* [http://linkqlo.com/ Linkqlo]<br />
<blockquote><br />
Linkqlo Inc is a Palo Alto-based technology startup that is building a pioneering mobile community to connect people with better fitting clothes. We’re solving an industry-wide pain point for both consumers and fashion brands in retail shopping, sizing and fitting, just like Paypal took on the online payment challenge in 1999. We started deploying Haskell as the backend language recently in August 2015, in an effort to eventually replace all PHP endpoint APIs with Haskell ones. <br />
</blockquote><br />
<br />
::Linkqlo's [http://linkqlo.com/app iOS app from App Store]<br />
<br />
* [http://www.linspire.com/ Linspire]<br />
<br />
<blockquote><br />
Linspire, Inc. has used functional programming since its inception in 2001,<br />
beginning with extensive use of O'Caml, with a steady shift to Haskell as its<br />
implementations and libraries have matured. Hardware detection, software<br />
packaging and CGI web page generation are all areas where we have used<br />
functional programming extensively. Haskell's feature set lets us replace much<br />
of our use of little languages (e.g., bash or awk) and two-level languages (C<br />
or C++ bound to an interpreted language), allowing for faster development,<br />
better code sharing and ultimately faster implementations. Above all, we value<br />
static type checking for minimizing runtime errors in applications that run in<br />
unknown environments and for wrapping legacy programs in strongly typed<br />
functions to ensure that we pass valid arguments. <br />
</blockquote><br />
<br />
::Linspire's [http://cufp.galois.com/2006/abstracts.html#CliffordBeshers CUFP talk]<br />
::Linspire's experience report on using [http://portal.acm.org/citation.cfm?doid=1291151.1291184 functional programming to manage a Linux distribution]<br />
<br />
* [https://lumiguide.eu/ LumiGuide]<br />
<blockquote><br />
LumiGuide is an innovative software company which specialises in smart parking and guidance systems for both bicycles and cars. LumiGuide developed and installed the [https://bicycledutch.wordpress.com/2015/06/09/bicycle-parking-guidance-system-in-utrecht/ P-route Bicycle system] for the City of Utrecht in 2015. This system guides cyclists via digital, street-level displays to available parking space in a number of parking facilities in the city centre. Utrecht is the first city in the world that has a system like this. The detection technology is based on optical sensors which are independent of the bicycle stands. The sensors are mounted to the ceiling in indoor facilities and mounted to poles in outdoor facilities. Every minute, one sensor detects 40 to 60 parking places at the same time in either single- or two-tier bicycle stands as well as (stand-less) free parking places. Bicycles that exceed the maximum parking duration ('orphaned' bicycles) are also detected and the system will automatically keep a log of pictures of the orphaned bicycle which can be used as evidence when the orphaned bicycle is removed by a facility operator. The usage of the facility can be monitored with web-based control software. LumiGuide also develops the indoor and outdoor digital displays which can be controlled using the web-based control software.<br />
<br />
We are extensively using Haskell and NixOS.<br />
</blockquote><br />
<br />
* [http://www.microsoft.com/ Microsoft]<br />
<blockquote><br />
Microsoft uses Haskell for its production serialization system, [https://github.com/Microsoft/bond Bond]. Bond is broadly used at Microsoft in high scale services. Microsoft Research has, separately, been a key sponsor of Haskell development since the late 1990s.<br />
</blockquote><br />
<br />
* [http://www.mitre.org/ MITRE]<br />
<blockquote><br />
MITRE uses Haskell for, amongst other things, the [http://hackage.haskell.org/package/cpsa analysis of cryptographic protocols].<br />
</blockquote><br />
<br />
* [http://nytimes.com The New York Times]<br />
<blockquote><br />
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.<br />
</blockquote><br />
:: [http://source.mozillaopennews.org/en-US/articles/model-analysis/ Model analysis]<br />
:: [http://www.infoq.com/presentations/haskell-newsroom-nyt Haskell in the Newsroom]<br />
<br />
* [http://ertos.nicta.com.au/research/sel4/ NICTA]<br />
<blockquote><br />
NICTA has used Haskell as part of a project to verify the L4 microkernel.<br />
</blockquote><br />
::[http://www.drdobbs.com/embedded/222400553 Read the Dr. Dobbs article on using Haskell and formal methods to verify a kernel]<br />
<br />
* [http://www.gb.nrao.edu NRAO]<br />
<blockquote><br />
NRAO has used Haskell to implement the core science algorithms for the Robert C. Byrd Green Bank Telescope (GBT) Dynamic Scheduling System ([http://www.gb.nrao.edu/dss DSS]).<br />
::Source code available on [https://github.com/nrao/antioch GitHub].<br />
</blockquote><br />
<br />
* [http://www.ns-sol.co.jp NS Solutions(NSSOL)] Tokyo, Japan<br />
<blockquote><br />
NS Solutions has employed Haskell since 2008 to develop its software<br />
packages including "BancMeasure", a mark-to-market accounting software<br />
package for financial institutions, "BancMeasure for IFRS" and<br />
"Mamecif", a data analysis package.<br />
"BancMeasure" and "Mamecif" are registered trademarks of NS Solutions Corporation in JAPAN.<br />
</blockquote><br />
<br />
* [http://www.nvidia.com/content/global/global.php NVIDIA]<br />
<blockquote><br />
At NVIDIA, we have a handful of in-house tools that are written in Haskell<br />
</blockquote><br />
<br />
* [http://blog.openomy.com/2008/01/case-study-using-haskell-and-happs-for.html Openomy]<br />
<br />
<blockquote><br />
Openomy's API v2.0 is developed in Haskell, using the<br />
[http://www.happs.org/ HAppS] web platform.<br />
</blockquote><br />
<br />
* [http://www.oblomov.com Oblomov]<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
:: [http://haskell.org/communities/05-2010/html/report.html#oblomov Oblomov's HCAR submission].<br />
<br />
* [http://www.patch-tag.com Patch-Tag: hosting for Darcs]<br />
<blockquote><br />
Need somewhere to put your Darcs code? Try us.<br />
<br />
Patch-Tag is built with [http://happstack.com happstack], the continuation of the project formerly known as HAppS.<br />
</blockquote><br />
<br />
* [http://www.peerium.com Peerium, Inc] Cambridge, Massachusetts<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://www.picussecurity.com Picus Security] Ankara, Turkey<br />
<blockquote><br />
There are lots of IT security products currently used in enterprises to protect customers from cyber threats. How do we ensure about their effectiveness? At this point we have an idea. An idea that we believe will change the entire ecosystem of security operations which we call 'Verified Security' by continuously assessing security controls and remediating them. At Picus Security, we're extensively using Haskell from the starting point of the project. Our backend completely written in Haskell which consists of REST API, distributed haskell nodes and attacker modules. <br />
</blockquote><br />
<br />
* [http://www.planit9.com/ PlanIt9]<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [https://github.com/plumlife Plumlife]<br />
<blockquote><br />
Plum is replacing light switches with Lightpads; a capacitive touch dimmer that is internet connected, clusters with other Lightpads in the home for group control... Haskell composes our cloud services and Erlang is used for the embedded software in the Lightpads (hot-code reloading, easy node clustering, etc...).<br />
...<br />
We use Haskell extensively for all of our cloud services software at Plumlife ... Amazing language and ecosystem.<br />
</blockquote><br />
<br />
* [http://www.qualcomm.com/ Qualcomm, Inc]<br />
<br />
<blockquote><br />
Qualcomm uses Haskell to generate Lua bindings to the BREW platform <br />
</blockquote><br />
<br />
* [http://blog.sqreamtech.com/2013/09/using-haskell-at-sqream-technologies/ SQream]<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://cufp.org/conference/sessions/2013/jeff-epstein-parallel-scientific-building-scalable Parallel Scientific], Boulder, Colorado.<br />
<br />
<blockquote><br />
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. <br />
</blockquote><br />
<br />
:: See Parallel Scientific's [http://cufp.org/conference/sessions/2013/jeff-epstein-parallel-scientific-building-scalable CUFP talk]<br />
<br />
* [http://www.renci.org/ Renaissaince Computing Institute], Chapel Hill, North Carolina<br />
<blockquote><br />
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.<br />
<br />
Research scientists at RENCI have used Haskell for a number of projects, including [http://vis.renci.org/jeff/2009/08/26/open-sourcing-the-big-board/ The Big Board].<br />
</blockquote><br />
<br />
::RENCI's [http://cufp.galois.com/2009/abstracts.html#JeffersonHeard CUFP talk].<br />
<br />
* [https://ruevoisine.fr ruevoisine.fr]<br />
<br />
<blockquote><br />
<p>This rental ads website uses Haskell both on client and server.</p><br />
<p>Web server is written in Erlang (Yaws) however app is nearly all Haskell.</p><br />
<p>Js code is produced, minified and bundled from Haskell.</p><br />
</blockquote><br />
<br />
* [http://samplecount.com Samplecount]<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://sankelsoftware.com Sankel Software] Albuquerque, New Mexico<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [https://scrive.com/gb/en Scrive] <br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [https://www.cee.siemens.com/web/at/en/csb/cvc/Pages/home.aspx Siemens Convergence Creators GmbH Austria]<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://www.signalicorp.com/index.htm Signali] Portland, Oregon<br />
<br />
<blockquote><br />
Signali Corp is a new custom hardware design company. Our chief products<br />
are custom IP cores targeted for embedded DSP and cryptographic<br />
applications. Our specialty is the design and implementation of<br />
computationally intensive, complex algorithms. The interfaces to each<br />
core are modular and can be very efficiently modified for your specific<br />
application. System-level integration and validation is crucial and is<br />
the majority of investment in a product.<br />
</blockquote><br />
<br />
* [http://www.soostone.com Soostone] New York, NY<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://www.standardchartered.com/home/en/index.html Standard Chartered]<br />
<br />
<blockquote><br />
Standard Chartered has a large group using Haskell for all aspects of its wholesale banking business.<br />
</blockquote><br />
<br />
* [http://www.stackbuilders.com Stack Builders]<br />
<br />
<blockquote><br />
Stack Builders is a software consultancy based in New York, with its largest office in Quito, Ecuador. They build web, mobile and real-time applications for clients in industries including the automotive industry, finance, and social media and marketing. They have assisted clients in multiple industries with both legacy and greenfield projects in Haskell.<br />
</blockquote><br />
<br />
* [http://www.starling-software.com/en/index.html Starling Software] Tokyo, Japan<br />
<blockquote><br />
Starling Software are developing a commercial automated options trading system <br />
in Haskell, and are migrating other parts of their software suite to<br />
Haskell.<br />
</blockquote><br />
<br />
::Starling Software's [http://www.starling-software.com/misc/icfp-2009-cjs.pdf experience building real time trading systems in Haskell] <br />
<br />
<br />
* [http://www.sensor-sense.nl Sensor Sense] Nijmegen, The Netherlands<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
:: 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]<br />
<br />
* [http://www.silk.co Silk] Amsterdam, The Netherlands<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
:: Silk's blog on [http://engineering.silk.co/post/31920990633/why-we-use-haskell/ why they use Haskell]<br />
:: A [http://thenextweb.com/eu/2011/04/28/filter-and-visualize-data-in-seconds-with-silk/ review of Silk]<br />
<br />
* [http://skedge.me/ Skedge Me]<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
:: See more in their [http://cufp.org/conference/sessions/2013/ryan-trinkle-skedgeme-enterprise-appointment-sched CUFP talk]<br />
:: See their 2014 [http://functionaljobs.com/jobs/8712-haskell-developer-at-skedgeme job advertisement]<br />
<br />
* [http://www.suite-sol.com/ Suite Solutions]<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://www.sumall.com/ SumAll] New York, New York<br />
<blockquote><br />
SumAll aggregates various public streams of data such as various social network data into useful analytics, reports and insights. We are in process of rewriting our entire data-processing backend in Haskell. What attracted us to the language is its disciplined and uncompromising approach to solving hard problems and managing complexity. We truly believe that the language and ecosystem is ready for prime time and will give us competitive advantage in the industry. <br />
</blockquote><br />
<br />
* [http://www.symbiont.io Symbiont.io] New York, NY<br />
<br />
<blockquote><br />
Symbiont is a New York-based startup that is using smart contracts and blockchain technology to radically improve financial market back-office infrastructure. Haskell is currently used at Symbiont for its network management tooling, and there are plans to expand the use of the language to transaction processing and other backend services. <br />
</blockquote><br />
<br />
* [http://www.tabula.com/ Tabula.com]<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [https://www.tramcloud.net/ TramCloud GmbH]<br />
<blockquote><br />
TramCloud builds measurement devices and analytics platforms for tram operators. Most software is written in Haskell.<br />
</blockquote><br />
<br />
* [http://tsurucapital.com Tsuru Capital] Tokyo, Japan<br />
<blockquote><br />
Tsuru Capital is operating an automated options trading system written in Haskell.<br />
</blockquote><br />
<br />
::[http://haskell.org/communities/05-2010/html/report.html#sect7.6 Tsuru Capital's HCAR submission]<br />
<br />
* [http://tupil.com/ Tupil] Utrecht, The Netherlands<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
:: Tupil's experience building [http://blog.tupil.com/building-commercial-haskell-applications/ commercial web apps in Haskell]<br />
<br />
* [https://www.uffizio.ch/ Uffizio GmbH] Switzerland<br />
<br />
<blockquote><br />
Uffizio is a one-person company in Switzerland that uses Haskell for building correct, maintainable and fast e-commerce web applications as well as internal tools.<br />
</blockquote><br />
<br />
* [http://www.wagonhq.com Wagon] San Francisco, California<br />
<br />
<blockquote><br />
Wagon is a modern SQL editor: a better way for analysts and engineers to write queries, visualize results, and share data & charts.<br />
</blockquote><br />
<br />
::We’re a team of functional programmers writing apps and services in Haskell (and Javascript). We love to teach and learn functional programming; our team is humble, hard working, and fun. Read our engineering blog to learn more about our [http://www.wagonhq.com/blog/engineering-at-wagon stack], how we combine [http://www.wagonhq.com/blog/electron-at-wagon Haskell, React, and Electron], and what it’s like [http://www.wagonhq.com/blog/first-two-weeks-haskell-wagon working at a Haskell-powered startup].<br />
<br />
::We're hiring Haskell engineers based in San Francisco, [http://www.wagonhq.com/jobs learn more about the roles and our team]!<br />
<br />
* [https://www.xoken.org Xoken Labs] Bangalore, India<br />
<br />
<blockquote><br />
Xoken Labs is building a decentralized platform based on blockchain technology.<br />
</blockquote><br />
<br />
::Xoken Labs is a technology company committed to revolutionize financial services via secure distributed P2P solutions, effectively addressing challenges pertaining to trade, trust & ownership. The Xoken project aims to create a next-gen decentralized smart economy. We believe in distributed, innovative teams and love to push the frontiers of distributed ledger technology.<br />
<br />
::We're hiring Haskellers!<br />
::[https://www.xoken.org/careers/ https://www.xoken.org/careers/]<br />
<br />
If you're using Haskell commercially, please add your details here.<br />
<br />
== The Industrial Haskell Group ==<br />
<br />
The [http://industry.haskell.org/ Industrial Haskell Group (IHG)] is an organisation to support the needs of commercial users of the Haskell programming language. <br />
<br />
== Jobs and recruitment ==<br />
<br />
[[Jobs|Haskell jobs]] on the HaskellWiki.<br />
<br />
[http://www.haskellers.com/jobs Jobs at Haskellers.com].<br />
<br />
== Consultants ==<br />
<br />
[[Consultants]]<br />
<br />
== Commercial Users of Functional Programming Workshop ==<br />
<br />
[http://www.galois.com/cufp/ Commercial Users of Functional Programming]<br />
<br />
The goal of [http://www.galois.com/cufp/ CUFP] is to build a community<br />
for users of functional programming languages and technology, be they<br />
using functional languages in their professional lives, in an open<br />
source project (other than implementation of functional languages), as a<br />
hobby, or any combination thereof. In short: anyone who uses functional<br />
programming as a means, but not an end.<br />
<br />
[[Category:Community]]</div>Zarkhttps://wiki.haskell.org/index.php?title=Haskell_in_industry&diff=62724Haskell in industry2019-01-17T17:06:08Z<p>Zark: </p>
<hr />
<div>__NOTOC__<br />
<br />
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.<br />
<br />
* The main user conference for industrial Haskell use is CUFP - the [http://cufp.org/ Commercial Users of Functional Programming Workshop].<br />
* The [http://industry.haskell.org Industrial Haskell Group] supports commercial users.<br />
* There is a well-maintained (as of 2018) [https://github.com/erkmos/haskell-companies github repository] that collects information on companies using Haskell.<br />
* [http://commercialhaskell.com/ The commercial Haskell group] is a special interest group for companies and individuals interested in commercial usage of Haskell.<br />
<br />
The Reddit page [https://www.reddit.com/r/haskell/comments/377zyc/72_wouldbe_commercial_haskell_users_what_haskell/ 72 would-be commercial Haskell users: what Haskell success stories we need to see] has several stories of commercial Haskell users.<br />
<br />
== Haskell in Industry ==<br />
<br />
Many companies have used Haskell for a range of projects, including:<br />
<br />
* [http://cufp.galois.com/2007/abstracts.html#CyrilSchmidt ABN AMRO] Amsterdam, The Netherlands<br />
<blockquote><br />
ABN AMRO is an international bank headquartered in Amsterdam. For its<br />
investment banking activities it needs to measure the counterparty risk<br />
on portfolios of financial derivatives. </blockquote><br />
::ABN AMRO's [http://cufp.galois.com/2007/abstracts.html#CyrilSchmidt CUFP talk].<br />
<br />
* Aetion Technologies LLC, Columbus, Ohio<br />
<blockquote><br />
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<br />
Haskell, all successful. Haskell's concise code was perhaps most important for<br />
rewriting: it made it practicable to throw away old code occasionally. DSELs<br />
allowed the AI to be specified very declaratively. <br />
</blockquote><br />
::Aetion's [http://cufp.galois.com/2006/slides/GaryMorris.pdf CUFP talk].<br />
<br />
* Alcatel-Lucent<br />
<blockquote><br />
A consortium of groups, including Alcatel-Lucent, have used Haskell to prototype narrowband software radio systems, running in (soft) real-time.<br />
</blockquote><br />
::Alcatel-Lucent's [http://cufp.org/conference/sessions/2011/fourteen-days-haskell-real-time-programming-projec CUFP talk]<br />
<br />
* [http://www.allstontrading.com/ Allston Trading]<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://www.alphaheavy.com/ Alpha Heavy Industries]<br />
<blockquote><br />
Alpha Heavy Industries is an alternative asset manager dedicated to producing superior returns through quantitative methods. They use Haskell as their primary implementation language.<br />
</blockquote><br />
<br />
* [http://www.amgen.com/ Amgen] Thousand Oaks, California<br />
<blockquote><br />
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.<br />
<br />
Amgen uses Haskell;<br />
<br />
* To rapidly build software to implement mathematical models and other complex, mathematically oriented applications<br />
* Provide a more mathematically rigorous validation of software<br />
* To break developers out of their software development rut by giving them a new way to think about software.<br />
</blockquote><br />
::Amgen's [http://cufp.galois.com/2008/abstracts.html#BalabanDavid CUFP talk].<br />
<br />
* [http://www.ansemond.com/ Ansemond LLC]<br />
<blockquote><br />
"Find It! Keep It! is a Mac Web Browser that lets you keep the pages you<br />
visit in a database. A list of these pages is shown in the 'database<br />
view'. "<br />
</blockquote><br />
<br />
* [http://antiope.com/ Antiope] Fair Haven, New Jersey<br />
<blockquote><br />
Antiope Associates provides custom solutions for wireless communication<br />
and networking problems. Our team has expertise in all aspects of<br />
wireless system design, from the physical and protocol layers to complex<br />
networked applications. Antiope Associates relies on a number of<br />
advanced techniques to ensure that the communication systems we design<br />
are reliable and free from error. We use custom simulation tools<br />
developed in Haskell, to model our hardware designs..<br />
</blockquote><br />
::Antiope's [http://cufp.galois.com/2008/slides/WrightGregory.pdf CUFP talk].<br />
<br />
* [http://antiope.com/ Antiope] Fair Haven, New Jersey<br />
<blockquote><br />
Antiope Associates provides custom solutions for wireless communication<br />
and networking problems. Our team has expertise in all aspects of<br />
wireless system design, from the physical and protocol layers to complex<br />
networked applications. Antiope Associates relies on a number of<br />
advanced techniques to ensure that the communication systems we design<br />
are reliable and free from error. We use custom simulation tools<br />
developed in Haskell, to model our hardware designs..<br />
</blockquote><br />
::Antiope's [http://cufp.galois.com/2008/slides/WrightGregory.pdf CUFP talk].<br />
<br />
* Applicative, Sydney (Australia)<br />
<blockquote><br />
Applicative has created a Haskell IDE for macOS called "[http://haskellformac.com Haskell for Mac]". It offers playgrounds to interactively work with Haskell code right next to the source files: you can draw and preview images, animations, HTML pages and more. You can also build full-fledged applications with it.<br />
</blockquote><br />
<br />
* [http://www.att.com AT&amp;T]<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://www.baml.com/ Bank of America Merril Lynch]<br />
<blockquote>Haskell is being used for backend data transformation and loading.</blockquote><br />
<br />
* [http://www.haskell.org/communities/12-2007/html/report.html#sect7.1.2 Barclays Capital Quantitative Analytics Group]<br />
<blockquote><br />
Barclays Capital's Quantitative Analytics group is using Haskell to<br />
develop an embedded domain-specific functional language (called FPF)<br />
which is used to specify exotic equity derivatives. These derivatives,<br />
which are naturally best described in terms of mathematical functions,<br />
and constructed compositionally, map well to being expressed in an<br />
embedded functional language. This language is now regularly being used<br />
by people who had no previous functional language experience.<br />
</blockquote><br />
::[http://lambda-the-ultimate.org/node/3331 Simon Frankau et al's JFP paper on their use of Haskell]<br />
::[http://www.reddit.com/r/haskell/comments/1p70l3/barclays_are_hiring_haskell_developers_in_london/ Read their 2013 job advertisement]<br />
<br />
* BAE Systems<br />
<blockquote><br />
As part of the SAFE project, BAE has built a collection of compilers, interpreters, simulators, and EDSLs almost entirely in Haskell.<br />
</blockquote><br />
::[http://cufp.org/conference/sessions/2013/tom-hawkins-bae-systems-redesigning-computer-secur CUFP 2013 talk]<br />
<br />
* [http://bazqux.com BazQux Reader]<br />
<blockquote><br />
BazQux Reader is a commercial RSS reader. Its feeds and comments crawler and a part of web-server are implemented in Haskell.<br />
</blockquote><br />
<br />
* [http://better.io Better]<br />
<blockquote><br />
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.<br />
<br />
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. <br />
</blockquote><br />
<br />
* [http://www.bcode.com/ bCODE Pty Ltd] Sydney Australia<br />
<blockquote><br />
bCode Pty Ltd is a small venture capital-funded startup using Ocaml and a bit of Haskell in Sydney Australia.<br />
</blockquote><br />
<br />
* [http://bdellium.com/ Bdellium] Hawaii, United States<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://www.betterteam.com/ Betterteam] Remote<br />
<br />
<blockquote><br />
Betterteam is a recruitment platform for small businesses and growing teams. It allows employers to post their jobs to hundreds of job boards, manage candidates, and add a careers section to their website. <br />
<br />
Betterteam's backend applications are 100% Haskell and the frontend web application is written in PureScript.<br />
</blockquote><br />
<br />
* [http://www.bluespec.com/ Bluespec, Inc.] Waltham, Massachusetts<br />
<br />
<blockquote><br />
Developing a modern integrated circuit (ASIC or FPGA) is an enormously<br />
expensive process involving specification, modeling (to choose and fix the<br />
architecture), design (to describe what will become silicon) and verification<br />
(to ensure that it meets the specs), all before actually committing anything to<br />
silicon (where the cost of a failure can be tens of millions of dollars).<br />
Bluespec, Inc. is a three year-old company that provides language facilities,<br />
methodologies, and tools for this purpose, within the framework of the IEEE<br />
standard languages SystemVerilog and SystemC, but borrowing ideas heavily from<br />
Term Rewriting Systems and functional programming languages like Haskell. In<br />
this talk, after a brief technical overview to set the context, we will<br />
describe our tactics and strategies, and the challenges we face, in introducing<br />
declarative programming ideas into this field, both externally (convincing<br />
customers about the value of these ideas) and internally (using Haskell for our<br />
tool implementation). <br />
</blockquote><br />
<br />
::Bluespec's [http://cufp.galois.com/2006/abstracts.html#RishiyurNikhil CUFP talk].<br />
<br />
* [http://bu.mp/ Bump]<br />
<blockquote><br />
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].<br />
</blockquote><br />
::Haskell at [http://fpcomplete.com/downloads/bump-fp-complete-study.pdf Bump]<br />
<br />
* Capital IQ<br />
<blockquote><br />
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.<br />
</blockquote><br />
::[http://cufp.org/conference/sessions/2013/edward-kmett-sp-capital-iq-functional-reporting Capital IQ's CUFP 2013 talk]<br />
<br />
* [http://chordify.net Chordify]<br />
<blockquote><br />
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:<br />
<br />
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.<br />
</blockquote><br />
<br />
* [http://www.circos.com Circos Brand Karma] Singapore<br />
<blockquote><br />
Brand Karma provides services to brand owners to measure online sentiments towards their brands.<br />
Haskell is used in building parts of the product, specifically for back-end job scheduling and brand matching.<br />
</blockquote><br />
<br />
* [https://circuithub.com CircuitHub]<br />
<blockquote><br />
CircuitHub aims to be the AWS for manufacturing, enabling hardware companies and makers to instantly quote designs and scale from prototype to production. We are also proud to host a large collection of open hardware designs. CircuitHub uses Haskell for our core services and algorithms.<br />
</blockquote><br />
<br />
* [http://www.credit-suisse.com/ Credit Suisse Global Modeling and Analytics Group] London, UK; New York City, New York<br />
<br />
<blockquote><br />
GMAG, the quantitative modeling group at Credit Suisse, has been using Haskell<br />
for various projects since the beginning of 2006, with the twin aims of<br />
improving the productivity of modelers and making it easier for other people<br />
within the bank to use GMAG models. Current projects include: Further work on<br />
tools for checking, manipulating and transforming spreadsheets; a<br />
domain-specific language embedded in Haskell for implementing reusable<br />
components that can be compiled into various target forms (see the video presentation: [http://www.londonhug.net/2008/08/11/video-paradise-a-dsel-for-derivatives-pricing/ Paradise, a DSEL for Derivatives Pricing]).<br />
</blockquote><br />
<br />
::Credit Suisse's [http://cufp.galois.com/2006/abstracts.html#HowardMansell CUFP talk].<br />
<br />
* [https://www.cryptact.com/ Cryptact] Tokyo, Japan<br />
<br />
<blockquote><br />
Cryptact provides a platform for cryptocurrency investors based on our expertise in finance and technology, and is exploring the potential of Haskell in our backend services.<br />
</blockquote><br />
<br />
* [http://detexify.kirelabs.org/classify.html Detexify]<br />
<br />
<blockquote><br />
Detexify is an online handwriting recognition system, whose backend is written in Haskell. <br />
</blockquote><br />
<br />
* [http://fynder.io Fynder]<br />
<blockquote><br />
Fynder is an online booking platform.<br />
<br />
We use Haskell and clojurescript, all stitched together with nixos<br />
</blockquote><br />
<br />
::See more in their original [http://hackerjobs.co.uk/jobs/2013/9/27/digital-logistics-haskell-developer job posting].<br />
<br />
* [http://www.db.com/ Deutsche Bank Equity Proprietary Trading, Directional Credit Trading]<br />
<br />
<blockquote><br />
The Directional Credit Trading group used Haskell as the primary<br />
implementation language for its software infrastructure.<br />
</blockquote><br />
<br />
::Deutsche Bank's [http://cufp.galois.com/2008/abstracts.html#PolakowJeff CUFP talk].<br />
<br />
* [https://www.thitp.de/ Dr. Peter & Alexander Thiemann GbR]<br />
<blockquote><br />
Dr. Peter & Alexander Thiemann GbR is a software consultancy with strong focus on functional development with Haskell and hardware-software systems.<br />
</blockquote><br />
<br />
* [http://article.gmane.org/gmane.comp.lang.haskell.cafe/37093 Eaton] Cleveland, Ohio<br />
<br />
<blockquote><br />
Design and verification of hydraulic hybrid vehicle systems<br />
</blockquote><br />
<br />
::Eaton's [http://cufp.galois.com/2008/abstracts.html#HawkinsTom CUFP talk]<br />
::Eaton's [http://www.haskell.org/pipermail/haskell-cafe/2009-April/060602.html experiences using a Haskell DSL]<br />
<br />
* [Ericsson AB]<br />
<blockquote><br />
Ericsson uses Haskell for the implementation of Feldspar, an EDSL for digital signal processing algorithms.<br />
</blockquote><br />
<br />
::Ericsson's [http://hackage.haskell.org/package/feldspar-compiler Feldspar compiler]<br />
<br />
* [http://extensibl.com/ extensibl]<br />
<blockquote><br />
New Zealand-based company. Provides a variety of software development, consulting, operational support services worldwide. Both Haskell and Ur/Web are actively used for commercial projects.<br />
</blockquote><br />
<br />
* [http://facebook.com Facebook]<br />
<br />
<blockquote><br />
Facebook uses some Haskell internally for tools. [http://github.com/facebook/lex-pass/tree/master lex-pass] is a tool for programmatically manipulating a PHP code base via Haskell.<br />
</blockquote><br />
<br />
:: Facebook's [http://cufp.galois.com/2009/abstracts.html#ChristopherPiroEugeneLetuchy CUFP talk]<br />
:: Facebook's [http://skillsmatter.com/podcast/home/simon-marlow HaXL system] is [https://code.facebook.com/projects/854888367872565/haxl/ open source]<br />
<br />
* [http://www.factisresearch.com/ Factis Research]<br />
<blockquote><br />
Factis research, located in Freiburg, Germany, co-develops [http://www.checkpad.de Checkpad], a mobile electronic health record. Our client software runs under iOS, web browsers and Windows. The server components are implemented in 95% in Haskell. <br />
</blockquote><br />
<br />
<br />
* [http://fortytools.com fortytools gmbh]<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
:: Oh, and of course we develop and maintain [http://hayoo.info Hayoo!] :)<br />
<br />
<br />
* [http://www.functor.se/ Functor AB], Stockholm, Sweden<br />
<blockquote><br />
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. <br />
<br />
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.<br />
</blockquote><br />
<br />
:: See more in the Functor AB [http://alpmestan.com/posts/2012-10-23-haskell-job-opening-at-functor.html job advertisement]<br />
<br />
* [http://www.funktional.info/index.php?id=7&L=1 Funktionale Programmierung Dr. Heinrich Hördegen], Munich, Germany<br />
<blockquote><br />
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...<br />
</blockquote><br />
<br />
* [http://www.galois.com/ Galois, Inc] Portland, Oregon<br />
<br />
<blockquote><br />
Galois designs and develops high confidence software for critical applications.<br />
Our innovative approach to software development provides high levels of<br />
assurance, yet its scalability enables us to address the most complex problems.<br />
We have successfully engineered projects under contract for corporations and<br />
government clients in the demanding application areas of security, information<br />
assurance and cryptography. <br />
</blockquote><br />
<br />
::Galois' [http://cufp.galois.com/2007/abstracts.html#JohnLaunchbury 2007 CUFP talk]<br />
::Galois' [http://cufp.org/conference/sessions/2011/theorem-based-derivation-aes-implementation 2011 CUFP talk]<br />
::Galois' [http://corp.galois.com/blog/2009/4/27/engineering-large-projects-in-haskell-a-decade-of-fp-at-galo.html retrospective on 10 years of industrial Haskell use]<br />
<br />
* [http://google.com Google]<br />
<br />
<blockquote><br />
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<br />
virtual servers built on top of Xen and KVM.<br />
</blockquote><br />
<br />
::Google's [http://k1024.org/~iusty/papers/icfp10-haskell-reagent.pdf ICFP 2010 experience report on Haskell]<br />
::Video from ICFP [http://vimeo.com/12849320 Project Ganeti at Google]<br />
<br />
* [http://glyde.com/ Glyde]<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://groupcommerce.com Group Commerce]<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://hasura.io/ Hasura]<br />
<blockquote><br />
Hasura is a BaaS/PaaS focussed on keeping things DRY and letting you write custom code with the tools you love. We're building a micro-service platform christened Hasura.io (alpha release scheduled in summer 2015), and we used Haskell as the core programming language to build it. <br />
</blockquote><br />
<br />
* [http://humane-software.com Humane Software]<br />
<blockquote>We develop enterprise systems with de-coupled, asynchronous Haskell backends and Javascript UIs.<br><br />
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. <br />
We were able to replace legacy systems in a granular, piece-by-piece manner, while delivering new features.</blockquote><br />
<br />
* [http://hustlerturf.com Hustler Turf Equipment] Hesston, Kansas<br />
<blockquote><br />
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<br />
automation, such as adding/removing people from LDAP servers and the like<br />
</blockquote><br />
<br />
* [http://iba-cg.de/haskell.html iba Consulting Gesellschaft] - Intelligent business architecture for you. Leipzig, Germany<br />
<br />
<blockquote><br />
iba CG develops software for large companies: <br />
* risk analysis and reporting solution for power supply company; <br />
* contract management, assert management, booking and budgeting software for one of the worldwide leading accounting firm.<br />
</blockquote><br />
<br />
* [http://www.imvu.com IMVU, Inc]<br />
<br />
<blockquote><br />
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]<br />
</blockquote><br />
<br />
* [http://www.ics-ag.de/ Informatik Consulting Systems AG]<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://intel.com Intel]<br />
<blockquote><br />
Intel has developed a Haskell compiler as part of their research on multicore parallelism at scale.<br />
</blockquote><br />
<br />
:: Read the Intel Research paper on [http://www.leafpetersen.com/leaf/publications/hs2013/hrc-paper.pdf compiler]<br />
<br />
* [http://www.ivu.de/uk/products/public-transport/ IVU Traffic Technologies AG]<br />
<blockquote><br />
The rostering group at IVU Traffic Technologies AG has been using Haskell to check rosters for compliance with EC regulations.<br />
<br />
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.<br />
<br />
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).<br />
<br />
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.<br />
</blockquote><br />
<br />
* [http://www.janrain.com JanRain]<br />
<blockquote><br />
JanRain uses Haskell for network and web software. Read more about [http://www.janrain.com/blogs/haskell-janrain Haskell at JanRain] and in their [http://corp.galois.com/blog/2011/3/8/tech-talk-haskell-and-the-social-web.html tech talk at Galois]. JanRain's "[http://www.janrain.com/products/capture Capture]" user API product is built on Haskell's Snap webframework.<br />
</blockquote><br />
<br />
:: See Janrain's [http://corp.galois.com/blog/2011/4/22/tech-talk-video-haskell-and-the-social-web.html technical talk about their use of Snap]<br />
<br />
* [http://joyridelabs.de/game/ Joyride Laboratories]<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://keera.co.uk Keera Studios]<br />
<br />
<blockquote><br />
Keera Studios Ltd is a European game development studio that develops mobile, desktop and web apps.<br />
<br />
* Games: The mobile game Magic Cookies! was written in Haskell and released in 2015 [https://play.google.com/store/apps/details?id=uk.co.keera.games.magiccookies for Android] and 2017 [https://itunes.apple.com/us/app/magic-cookies/id1244709871 for iOS]. Other games include [http://github.com/ivanperez-keera/haskanoid Haskanoid], also available [https://www.facebook.com/keerastudios/photos/pb.300854939930039.-2207520000.1432793728./973879669294226/?type=3&theater for Android], and a multi-platform Graphic Adventure library and engine with [https://www.facebook.com/keerastudios/photos/pb.300854939930039.-2207520000.1432793728./971050386243821/?type=3&theater Android and iOS support] and an [https://www.facebook.com/keerastudios/photos/pb.300854939930039.-2207520000.1432793728./1078495588832633/?type=3&theater IDE].<br />
<br />
* Reactive Programming and GUIs: Keera Studios is also the maintainer of [http://github.com/keera-studios/keera-hails Keera Hails], an Open-Source reactive rapid application development framework with backends for Android and iOS's native GUI toolkits, Web DOM via GHCJS, Gtk+, Wx and Qt. With Hails, it is possible to write Haskell applications with UIs that work both for mobile and desktop.<br />
<br />
Keera Studios' Gale IDE (a game IDE), [https://github.com/keera-studios/keera-posture Keera Posture] (a open-source posture monitor using the webcam) and other mobile apps are also developed using Hails.<br />
<br />
See the [http://facebook.com/keerastudios Facebook page] for details on iOS & Android games and apps and ongoing development.<br />
<br />
</blockquote><br />
<br />
* [http://kinoubi.xyz kinoubi]<br />
<blockquote><br />
At kinoubi we believe in high quality code, that just works. We use software quality metrics to achieve an exceptional level of quality. Our main programming language is Haskell because of its elegance and philosophy of functional purity. It is what we believe in, it is our name: 'kinoubi' means 'functional elegance' in Japanese. Our code is produced for a range of different domains including data mining and machine learning.<br />
</blockquote><br />
<br />
* [http://liftedsoftware.com/ Lifted Software UG], Berlin, Germany<br />
<blockquote><br />
Lifted has developed a macOS application "[https://lifted.software/rHSWiki/ JSON Class Generator]" that allows the user to specify data types (classes/enums) in a visual editor. These models can then be exported to Objective-C source code, which is capable of serializing/deserializing the instances to/from JSON. When parsing JSON, the structures are validated against the specification and errors are reported. The generated code comes with handy implementations for methods like -description, -isEqual:, -copy, -hash and more, that are boring to write and tedious to keep updated by hand.<br />
</blockquote><br />
<br />
* [http://linkqlo.com/ Linkqlo]<br />
<blockquote><br />
Linkqlo Inc is a Palo Alto-based technology startup that is building a pioneering mobile community to connect people with better fitting clothes. We’re solving an industry-wide pain point for both consumers and fashion brands in retail shopping, sizing and fitting, just like Paypal took on the online payment challenge in 1999. We started deploying Haskell as the backend language recently in August 2015, in an effort to eventually replace all PHP endpoint APIs with Haskell ones. <br />
</blockquote><br />
<br />
::Linkqlo's [http://linkqlo.com/app iOS app from App Store]<br />
<br />
* [http://www.linspire.com/ Linspire]<br />
<br />
<blockquote><br />
Linspire, Inc. has used functional programming since its inception in 2001,<br />
beginning with extensive use of O'Caml, with a steady shift to Haskell as its<br />
implementations and libraries have matured. Hardware detection, software<br />
packaging and CGI web page generation are all areas where we have used<br />
functional programming extensively. Haskell's feature set lets us replace much<br />
of our use of little languages (e.g., bash or awk) and two-level languages (C<br />
or C++ bound to an interpreted language), allowing for faster development,<br />
better code sharing and ultimately faster implementations. Above all, we value<br />
static type checking for minimizing runtime errors in applications that run in<br />
unknown environments and for wrapping legacy programs in strongly typed<br />
functions to ensure that we pass valid arguments. <br />
</blockquote><br />
<br />
::Linspire's [http://cufp.galois.com/2006/abstracts.html#CliffordBeshers CUFP talk]<br />
::Linspire's experience report on using [http://portal.acm.org/citation.cfm?doid=1291151.1291184 functional programming to manage a Linux distribution]<br />
<br />
* [https://lumiguide.eu/ LumiGuide]<br />
<blockquote><br />
LumiGuide is an innovative software company which specialises in smart parking and guidance systems for both bicycles and cars. LumiGuide developed and installed the [https://bicycledutch.wordpress.com/2015/06/09/bicycle-parking-guidance-system-in-utrecht/ P-route Bicycle system] for the City of Utrecht in 2015. This system guides cyclists via digital, street-level displays to available parking space in a number of parking facilities in the city centre. Utrecht is the first city in the world that has a system like this. The detection technology is based on optical sensors which are independent of the bicycle stands. The sensors are mounted to the ceiling in indoor facilities and mounted to poles in outdoor facilities. Every minute, one sensor detects 40 to 60 parking places at the same time in either single- or two-tier bicycle stands as well as (stand-less) free parking places. Bicycles that exceed the maximum parking duration ('orphaned' bicycles) are also detected and the system will automatically keep a log of pictures of the orphaned bicycle which can be used as evidence when the orphaned bicycle is removed by a facility operator. The usage of the facility can be monitored with web-based control software. LumiGuide also develops the indoor and outdoor digital displays which can be controlled using the web-based control software.<br />
<br />
We are extensively using Haskell and NixOS.<br />
</blockquote><br />
<br />
* [http://www.microsoft.com/ Microsoft]<br />
<blockquote><br />
Microsoft uses Haskell for its production serialization system, [https://github.com/Microsoft/bond Bond]. Bond is broadly used at Microsoft in high scale services. Microsoft Research has, separately, been a key sponsor of Haskell development since the late 1990s.<br />
</blockquote><br />
<br />
* [http://www.mitre.org/ MITRE]<br />
<blockquote><br />
MITRE uses Haskell for, amongst other things, the [http://hackage.haskell.org/package/cpsa analysis of cryptographic protocols].<br />
</blockquote><br />
<br />
* [http://nytimes.com The New York Times]<br />
<blockquote><br />
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.<br />
</blockquote><br />
:: [http://source.mozillaopennews.org/en-US/articles/model-analysis/ Model analysis]<br />
:: [http://www.infoq.com/presentations/haskell-newsroom-nyt Haskell in the Newsroom]<br />
<br />
* [http://ertos.nicta.com.au/research/sel4/ NICTA]<br />
<blockquote><br />
NICTA has used Haskell as part of a project to verify the L4 microkernel.<br />
</blockquote><br />
::[http://www.drdobbs.com/embedded/222400553 Read the Dr. Dobbs article on using Haskell and formal methods to verify a kernel]<br />
<br />
* [http://www.gb.nrao.edu NRAO]<br />
<blockquote><br />
NRAO has used Haskell to implement the core science algorithms for the Robert C. Byrd Green Bank Telescope (GBT) Dynamic Scheduling System ([http://www.gb.nrao.edu/dss DSS]).<br />
::Source code available on [https://github.com/nrao/antioch GitHub].<br />
</blockquote><br />
<br />
* [http://www.ns-sol.co.jp NS Solutions(NSSOL)] Tokyo, Japan<br />
<blockquote><br />
NS Solutions has employed Haskell since 2008 to develop its software<br />
packages including "BancMeasure", a mark-to-market accounting software<br />
package for financial institutions, "BancMeasure for IFRS" and<br />
"Mamecif", a data analysis package.<br />
"BancMeasure" and "Mamecif" are registered trademarks of NS Solutions Corporation in JAPAN.<br />
</blockquote><br />
<br />
* [http://www.nvidia.com/content/global/global.php NVIDIA]<br />
<blockquote><br />
At NVIDIA, we have a handful of in-house tools that are written in Haskell<br />
</blockquote><br />
<br />
* [http://blog.openomy.com/2008/01/case-study-using-haskell-and-happs-for.html Openomy]<br />
<br />
<blockquote><br />
Openomy's API v2.0 is developed in Haskell, using the<br />
[http://www.happs.org/ HAppS] web platform.<br />
</blockquote><br />
<br />
* [http://www.oblomov.com Oblomov]<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
:: [http://haskell.org/communities/05-2010/html/report.html#oblomov Oblomov's HCAR submission].<br />
<br />
* [http://www.patch-tag.com Patch-Tag: hosting for Darcs]<br />
<blockquote><br />
Need somewhere to put your Darcs code? Try us.<br />
<br />
Patch-Tag is built with [http://happstack.com happstack], the continuation of the project formerly known as HAppS.<br />
</blockquote><br />
<br />
* [http://www.peerium.com Peerium, Inc] Cambridge, Massachusetts<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://www.picussecurity.com Picus Security] Ankara, Turkey<br />
<blockquote><br />
There are lots of IT security products currently used in enterprises to protect customers from cyber threats. How do we ensure about their effectiveness? At this point we have an idea. An idea that we believe will change the entire ecosystem of security operations which we call 'Verified Security' by continuously assessing security controls and remediating them. At Picus Security, we're extensively using Haskell from the starting point of the project. Our backend completely written in Haskell which consists of REST API, distributed haskell nodes and attacker modules. <br />
</blockquote><br />
<br />
* [http://www.planit9.com/ PlanIt9]<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [https://github.com/plumlife Plumlife]<br />
<blockquote><br />
Plum is replacing light switches with Lightpads; a capacitive touch dimmer that is internet connected, clusters with other Lightpads in the home for group control... Haskell composes our cloud services and Erlang is used for the embedded software in the Lightpads (hot-code reloading, easy node clustering, etc...).<br />
...<br />
We use Haskell extensively for all of our cloud services software at Plumlife ... Amazing language and ecosystem.<br />
</blockquote><br />
<br />
* [http://www.qualcomm.com/ Qualcomm, Inc]<br />
<br />
<blockquote><br />
Qualcomm uses Haskell to generate Lua bindings to the BREW platform <br />
</blockquote><br />
<br />
* [http://blog.sqreamtech.com/2013/09/using-haskell-at-sqream-technologies/ SQream]<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://cufp.org/conference/sessions/2013/jeff-epstein-parallel-scientific-building-scalable Parallel Scientific], Boulder, Colorado.<br />
<br />
<blockquote><br />
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. <br />
</blockquote><br />
<br />
:: See Parallel Scientific's [http://cufp.org/conference/sessions/2013/jeff-epstein-parallel-scientific-building-scalable CUFP talk]<br />
<br />
* [http://www.renci.org/ Renaissaince Computing Institute], Chapel Hill, North Carolina<br />
<blockquote><br />
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.<br />
<br />
Research scientists at RENCI have used Haskell for a number of projects, including [http://vis.renci.org/jeff/2009/08/26/open-sourcing-the-big-board/ The Big Board].<br />
</blockquote><br />
<br />
::RENCI's [http://cufp.galois.com/2009/abstracts.html#JeffersonHeard CUFP talk].<br />
<br />
* [https://ruevoisine.fr ruevoisine.fr]<br />
<br />
<blockquote><br />
<p>This rental ads website uses Haskell both on client and server.</p><br />
<p>Web server is written in Erlang (Yaws) however app is nearly all Haskell.</p><br />
<p>Js code is produced, minified and bundled from Haskell.</p><br />
</blockquote><br />
<br />
* [http://samplecount.com Samplecount]<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://sankelsoftware.com Sankel Software] Albuquerque, New Mexico<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [https://scrive.com/gb/en Scrive] <br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [https://www.cee.siemens.com/web/at/en/csb/cvc/Pages/home.aspx Siemens Convergence Creators GmbH Austria]<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://www.signalicorp.com/index.htm Signali] Portland, Oregon<br />
<br />
<blockquote><br />
Signali Corp is a new custom hardware design company. Our chief products<br />
are custom IP cores targeted for embedded DSP and cryptographic<br />
applications. Our specialty is the design and implementation of<br />
computationally intensive, complex algorithms. The interfaces to each<br />
core are modular and can be very efficiently modified for your specific<br />
application. System-level integration and validation is crucial and is<br />
the majority of investment in a product.<br />
</blockquote><br />
<br />
* [http://www.soostone.com Soostone] New York, NY<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://www.standardchartered.com/home/en/index.html Standard Chartered]<br />
<br />
<blockquote><br />
Standard Chartered has a large group using Haskell for all aspects of its wholesale banking business.<br />
</blockquote><br />
<br />
* [http://www.stackbuilders.com Stack Builders]<br />
<br />
<blockquote><br />
Stack Builders is a software consultancy based in New York, with its largest office in Quito, Ecuador. They build web, mobile and real-time applications for clients in industries including the automotive industry, finance, and social media and marketing. They have assisted clients in multiple industries with both legacy and greenfield projects in Haskell.<br />
</blockquote><br />
<br />
* [http://www.starling-software.com/en/index.html Starling Software] Tokyo, Japan<br />
<blockquote><br />
Starling Software are developing a commercial automated options trading system <br />
in Haskell, and are migrating other parts of their software suite to<br />
Haskell.<br />
</blockquote><br />
<br />
::Starling Software's [http://www.starling-software.com/misc/icfp-2009-cjs.pdf experience building real time trading systems in Haskell] <br />
<br />
<br />
* [http://www.sensor-sense.nl Sensor Sense] Nijmegen, The Netherlands<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
:: 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]<br />
<br />
* [http://www.silk.co Silk] Amsterdam, The Netherlands<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
:: Silk's blog on [http://engineering.silk.co/post/31920990633/why-we-use-haskell/ why they use Haskell]<br />
:: A [http://thenextweb.com/eu/2011/04/28/filter-and-visualize-data-in-seconds-with-silk/ review of Silk]<br />
<br />
* [http://skedge.me/ Skedge Me]<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
:: See more in their [http://cufp.org/conference/sessions/2013/ryan-trinkle-skedgeme-enterprise-appointment-sched CUFP talk]<br />
:: See their 2014 [http://functionaljobs.com/jobs/8712-haskell-developer-at-skedgeme job advertisement]<br />
<br />
* [http://www.suite-sol.com/ Suite Solutions]<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://www.sumall.com/ SumAll] New York, New York<br />
<blockquote><br />
SumAll aggregates various public streams of data such as various social network data into useful analytics, reports and insights. We are in process of rewriting our entire data-processing backend in Haskell. What attracted us to the language is its disciplined and uncompromising approach to solving hard problems and managing complexity. We truly believe that the language and ecosystem is ready for prime time and will give us competitive advantage in the industry. <br />
</blockquote><br />
<br />
* [http://www.symbiont.io Symbiont.io] New York, NY<br />
<br />
<blockquote><br />
Symbiont is a New York-based startup that is using smart contracts and blockchain technology to radically improve financial market back-office infrastructure. Haskell is currently used at Symbiont for its network management tooling, and there are plans to expand the use of the language to transaction processing and other backend services. <br />
</blockquote><br />
<br />
* [http://www.tabula.com/ Tabula.com]<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [https://www.tramcloud.net/ TramCloud GmbH]<br />
<blockquote><br />
TramCloud builds measurement devices and analytics platforms for tram operators. Most software is written in Haskell.<br />
</blockquote><br />
<br />
* [http://tsurucapital.com Tsuru Capital] Tokyo, Japan<br />
<blockquote><br />
Tsuru Capital is operating an automated options trading system written in Haskell.<br />
</blockquote><br />
<br />
::[http://haskell.org/communities/05-2010/html/report.html#sect7.6 Tsuru Capital's HCAR submission]<br />
<br />
* [http://tupil.com/ Tupil] Utrecht, The Netherlands<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
:: Tupil's experience building [http://blog.tupil.com/building-commercial-haskell-applications/ commercial web apps in Haskell]<br />
<br />
* [https://www.uffizio.ch/ Uffizio GmbH] Switzerland<br />
<br />
<blockquote><br />
Uffizio is a one-person company in Switzerland that uses Haskell for building correct, maintainable and fast e-commerce web applications as well as internal tools.<br />
</blockquote><br />
<br />
* [http://www.wagonhq.com Wagon] San Francisco, California<br />
<br />
<blockquote><br />
Wagon is a modern SQL editor: a better way for analysts and engineers to write queries, visualize results, and share data & charts.<br />
</blockquote><br />
<br />
::We’re a team of functional programmers writing apps and services in Haskell (and Javascript). We love to teach and learn functional programming; our team is humble, hard working, and fun. Read our engineering blog to learn more about our [http://www.wagonhq.com/blog/engineering-at-wagon stack], how we combine [http://www.wagonhq.com/blog/electron-at-wagon Haskell, React, and Electron], and what it’s like [http://www.wagonhq.com/blog/first-two-weeks-haskell-wagon working at a Haskell-powered startup].<br />
<br />
::We're hiring Haskell engineers based in San Francisco, [http://www.wagonhq.com/jobs learn more about the roles and our team]!<br />
<br />
* [https://www.xoken.org Xoken Labs] Bangalore, India<br />
<br />
<blockquote><br />
Xoken Labs is building a decentralized platform based on blockchain technology.<br />
</blockquote><br />
<br />
::Xoken Labs is a technology company committed to revolutionize financial services via secure distributed P2P solutions, effectively addressing challenges pertaining to trade, trust & ownership. The Xoken project aims to create a next-gen decentralized smart economy. We believe in distributed, innovative teams and love to push the frontiers of distributed ledger technology.<br />
<br />
::We're hiring Haskellers!<br />
::[https://www.xoken.org/careers/ https://www.xoken.org/careers/]<br />
<br />
If you're using Haskell commercially, please add your details here.<br />
<br />
== The Industrial Haskell Group ==<br />
<br />
The [http://industry.haskell.org/ Industrial Haskell Group (IHG)] is an organisation to support the needs of commercial users of the Haskell programming language. <br />
<br />
== Jobs and recruitment ==<br />
<br />
[[Jobs|Haskell jobs]] on the HaskellWiki.<br />
<br />
[http://www.haskellers.com/jobs Jobs at Haskellers.com].<br />
<br />
== Consultants ==<br />
<br />
[[Consultants]]<br />
<br />
== Commercial Users of Functional Programming Workshop ==<br />
<br />
[http://www.galois.com/cufp/ Commercial Users of Functional Programming]<br />
<br />
The goal of [http://www.galois.com/cufp/ CUFP] is to build a community<br />
for users of functional programming languages and technology, be they<br />
using functional languages in their professional lives, in an open<br />
source project (other than implementation of functional languages), as a<br />
hobby, or any combination thereof. In short: anyone who uses functional<br />
programming as a means, but not an end.<br />
<br />
[[Category:Community]]</div>Zarkhttps://wiki.haskell.org/index.php?title=Haskell_in_industry&diff=61502Haskell in industry2017-02-02T22:02:13Z<p>Zark: </p>
<hr />
<div>__NOTOC__<br />
<br />
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.<br />
<br />
* The main user conference for industrial Haskell use is CUFP - the [http://cufp.org/ Commercial Users of Functional Programming Workshop].<br />
* The [http://industry.haskell.org Industrial Haskell Group] supports commercial users.<br />
* [http://fpcomplete.com/ FP Complete] is dedicated to the widespread adoption of modern Functional Programming technology, with a focus on the Haskell system. See their collection of [https://www.fpcomplete.com/page/case-studies case studies] of successes in commercial use.<br />
* [http://commercialhaskell.com/ The commercial Haskell group] is a special interest group for companies and individuals interested in commercial usage of Haskell.<br />
<br />
The Reddit page [https://www.reddit.com/r/haskell/comments/377zyc/72_wouldbe_commercial_haskell_users_what_haskell/ 72 would-be commercial Haskell users: what Haskell success stories we need to see] has several stories of commercial Haskell users.<br />
<br />
== Haskell in Industry ==<br />
<br />
Many companies have used Haskell for a range of projects, including:<br />
<br />
* [http://cufp.galois.com/2007/abstracts.html#CyrilSchmidt ABN AMRO] Amsterdam, The Netherlands<br />
<blockquote><br />
ABN AMRO is an international bank headquartered in Amsterdam. For its<br />
investment banking activities it needs to measure the counterparty risk<br />
on portfolios of financial derivatives. </blockquote><br />
::ABN AMRO's [http://cufp.galois.com/2007/abstracts.html#CyrilSchmidt CUFP talk].<br />
<br />
* Aetion Technologies LLC, Columbus, Ohio<br />
<blockquote><br />
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<br />
Haskell, all successful. Haskell's concise code was perhaps most important for<br />
rewriting: it made it practicable to throw away old code occasionally. DSELs<br />
allowed the AI to be specified very declaratively. <br />
</blockquote><br />
::Aetion's [http://cufp.galois.com/2006/slides/GaryMorris.pdf CUFP talk].<br />
<br />
* Alcatel-Lucent<br />
<blockquote><br />
A consortium of groups, including Alcatel-Lucent, have used Haskell to prototype narrowband software radio systems, running in (soft) real-time.<br />
</blockquote><br />
::Alcatel-Lucent's [http://cufp.org/conference/sessions/2011/fourteen-days-haskell-real-time-programming-projec CUFP talk]<br />
<br />
* [http://www.allstontrading.com/ Allston Trading]<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://www.alphaheavy.com/ Alpha Heavy Industries]<br />
<blockquote><br />
Alpha Heavy Industries is an alternative asset manager dedicated to producing superior returns through quantitative methods. They use Haskell as their primary implementation language.<br />
</blockquote><br />
<br />
* [http://www.amgen.com/ Amgen] Thousand Oaks, California<br />
<blockquote><br />
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.<br />
<br />
Amgen uses Haskell;<br />
<br />
* To rapidly build software to implement mathematical models and other complex, mathematically oriented applications<br />
* Provide a more mathematically rigorous validation of software<br />
* To break developers out of their software development rut by giving them a new way to think about software.<br />
</blockquote><br />
::Amgen's [http://cufp.galois.com/2008/abstracts.html#BalabanDavid CUFP talk].<br />
<br />
* [http://www.ansemond.com/ Ansemond LLC]<br />
<blockquote><br />
"Find It! Keep It! is a Mac Web Browser that lets you keep the pages you<br />
visit in a database. A list of these pages is shown in the 'database<br />
view'. "<br />
</blockquote><br />
<br />
* [http://antiope.com/ Antiope] Fair Haven, New Jersey<br />
<blockquote><br />
Antiope Associates provides custom solutions for wireless communication<br />
and networking problems. Our team has expertise in all aspects of<br />
wireless system design, from the physical and protocol layers to complex<br />
networked applications. Antiope Associates relies on a number of<br />
advanced techniques to ensure that the communication systems we design<br />
are reliable and free from error. We use custom simulation tools<br />
developed in Haskell, to model our hardware designs..<br />
</blockquote><br />
::Antiope's [http://cufp.galois.com/2008/slides/WrightGregory.pdf CUFP talk].<br />
<br />
* [http://antiope.com/ Antiope] Fair Haven, New Jersey<br />
<blockquote><br />
Antiope Associates provides custom solutions for wireless communication<br />
and networking problems. Our team has expertise in all aspects of<br />
wireless system design, from the physical and protocol layers to complex<br />
networked applications. Antiope Associates relies on a number of<br />
advanced techniques to ensure that the communication systems we design<br />
are reliable and free from error. We use custom simulation tools<br />
developed in Haskell, to model our hardware designs..<br />
</blockquote><br />
::Antiope's [http://cufp.galois.com/2008/slides/WrightGregory.pdf CUFP talk].<br />
<br />
* Applicative, Sydney (Australia)<br />
<blockquote><br />
Applicative has created a Haskell IDE for macOS called "[http://haskellformac.com Haskell for Mac]". It offers playgrounds to interactively work with Haskell code right next to the source files: you can draw and preview images, animations, HTML pages and more. You can also build full-fledged applications with it.<br />
</blockquote><br />
<br />
* [http://www.att.com AT&amp;T]<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://www.baml.com/ Bank of America Merril Lynch]<br />
<blockquote>Haskell is being used for backend data transformation and loading.</blockquote><br />
<br />
* [http://www.haskell.org/communities/12-2007/html/report.html#sect7.1.2 Barclays Capital Quantitative Analytics Group]<br />
<blockquote><br />
Barclays Capital's Quantitative Analytics group is using Haskell to<br />
develop an embedded domain-specific functional language (called FPF)<br />
which is used to specify exotic equity derivatives. These derivatives,<br />
which are naturally best described in terms of mathematical functions,<br />
and constructed compositionally, map well to being expressed in an<br />
embedded functional language. This language is now regularly being used<br />
by people who had no previous functional language experience.<br />
</blockquote><br />
::[http://lambda-the-ultimate.org/node/3331 Simon Frankau et al's JFP paper on their use of Haskell]<br />
::[http://www.reddit.com/r/haskell/comments/1p70l3/barclays_are_hiring_haskell_developers_in_london/ Read their 2013 job advertisement]<br />
<br />
* BAE Systems<br />
<blockquote><br />
As part of the SAFE project, BAE has built a collection of compilers, interpreters, simulators, and EDSLs almost entirely in Haskell.<br />
</blockquote><br />
::[http://cufp.org/conference/sessions/2013/tom-hawkins-bae-systems-redesigning-computer-secur CUFP 2013 talk]<br />
<br />
* [http://bazqux.com BazQux Reader]<br />
<blockquote><br />
BazQux Reader is a commercial RSS reader. Its feeds and comments crawler and a part of web-server are implemented in Haskell.<br />
</blockquote><br />
<br />
* [http://better.io Better]<br />
<blockquote><br />
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.<br />
<br />
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. <br />
</blockquote><br />
<br />
* [http://www.bcode.com/ bCODE Pty Ltd] Sydney Australia<br />
<blockquote><br />
bCode Pty Ltd is a small venture capital-funded startup using Ocaml and a bit of Haskell in Sydney Australia.<br />
</blockquote><br />
<br />
* [http://bdellium.com/ Bdellium] Hawaii, United States<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://www.betterteam.com/ Betterteam] Remote<br />
<br />
<blockquote><br />
Betterteam is a recruitment platform for small businesses and growing teams. It allows employers to post their jobs to hundreds of job boards, manage candidates, and add a careers section to their website. <br />
<br />
Betterteam's backend applications are 100% Haskell and the frontend web application is written in PureScript.<br />
</blockquote><br />
<br />
* [http://www.bluespec.com/ Bluespec, Inc.] Waltham, Massachusetts<br />
<br />
<blockquote><br />
Developing a modern integrated circuit (ASIC or FPGA) is an enormously<br />
expensive process involving specification, modeling (to choose and fix the<br />
architecture), design (to describe what will become silicon) and verification<br />
(to ensure that it meets the specs), all before actually committing anything to<br />
silicon (where the cost of a failure can be tens of millions of dollars).<br />
Bluespec, Inc. is a three year-old company that provides language facilities,<br />
methodologies, and tools for this purpose, within the framework of the IEEE<br />
standard languages SystemVerilog and SystemC, but borrowing ideas heavily from<br />
Term Rewriting Systems and functional programming languages like Haskell. In<br />
this talk, after a brief technical overview to set the context, we will<br />
describe our tactics and strategies, and the challenges we face, in introducing<br />
declarative programming ideas into this field, both externally (convincing<br />
customers about the value of these ideas) and internally (using Haskell for our<br />
tool implementation). <br />
</blockquote><br />
<br />
::Bluespec's [http://cufp.galois.com/2006/abstracts.html#RishiyurNikhil CUFP talk].<br />
<br />
* [http://bu.mp/ Bump]<br />
<blockquote><br />
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].<br />
</blockquote><br />
::Haskell at [http://fpcomplete.com/downloads/bump-fp-complete-study.pdf Bump]<br />
<br />
* Capital IQ<br />
<blockquote><br />
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.<br />
</blockquote><br />
::[http://cufp.org/conference/sessions/2013/edward-kmett-sp-capital-iq-functional-reporting Capital IQ's CUFP 2013 talk]<br />
<br />
* [http://chordify.net Chordify]<br />
<blockquote><br />
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:<br />
<br />
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.<br />
</blockquote><br />
<br />
* [http://www.circos.com Circos Brand Karma] Singapore<br />
<blockquote><br />
Brand Karma provides services to brand owners to measure online sentiments towards their brands.<br />
Haskell is used in building parts of the product, specifically for back-end job scheduling and brand matching.<br />
</blockquote><br />
<br />
* [https://circuithub.com CircuitHub]<br />
<blockquote><br />
CircuitHub aims to be the AWS for manufacturing, enabling hardware companies and makers to instantly quote designs and scale from prototype to production. We are also proud to host a large collection of open hardware designs. CircuitHub uses Haskell for our core services and algorithms.<br />
</blockquote><br />
<br />
* [http://www.credit-suisse.com/ Credit Suisse Global Modeling and Analytics Group] London, UK; New York City, New York<br />
<br />
<blockquote><br />
GMAG, the quantitative modeling group at Credit Suisse, has been using Haskell<br />
for various projects since the beginning of 2006, with the twin aims of<br />
improving the productivity of modelers and making it easier for other people<br />
within the bank to use GMAG models. Current projects include: Further work on<br />
tools for checking, manipulating and transforming spreadsheets; a<br />
domain-specific language embedded in Haskell for implementing reusable<br />
components that can be compiled into various target forms (see the video presentation: [http://www.londonhug.net/2008/08/11/video-paradise-a-dsel-for-derivatives-pricing/ Paradise, a DSEL for Derivatives Pricing]).<br />
</blockquote><br />
<br />
::Credit Suisse's [http://cufp.galois.com/2006/abstracts.html#HowardMansell CUFP talk].<br />
<br />
* [http://detexify.kirelabs.org/classify.html Detexify]<br />
<br />
<blockquote><br />
Detexify is an online handwriting recognition system, whose backend is written in Haskell. <br />
</blockquote><br />
<br />
* [http://fynder.io Fynder]<br />
<blockquote><br />
Fynder is an online booking platform.<br />
<br />
We use Haskell and clojurescript, all stitched together with nixos<br />
</blockquote><br />
<br />
::See more in their original [http://hackerjobs.co.uk/jobs/2013/9/27/digital-logistics-haskell-developer job posting].<br />
<br />
* [http://www.db.com/ Deutsche Bank Equity Proprietary Trading, Directional Credit Trading]<br />
<br />
<blockquote><br />
The Directional Credit Trading group used Haskell as the primary<br />
implementation language for its software infrastructure.<br />
</blockquote><br />
<br />
::Deutsche Bank's [http://cufp.galois.com/2008/abstracts.html#PolakowJeff CUFP talk].<br />
<br />
* [http://article.gmane.org/gmane.comp.lang.haskell.cafe/37093 Eaton] Cleveland, Ohio<br />
<br />
<blockquote><br />
Design and verification of hydraulic hybrid vehicle systems<br />
</blockquote><br />
<br />
::Eaton's [http://cufp.galois.com/2008/abstracts.html#HawkinsTom CUFP talk]<br />
::Eaton's [http://www.haskell.org/pipermail/haskell-cafe/2009-April/060602.html experiences using a Haskell DSL]<br />
<br />
* [Ericsson AB]<br />
<blockquote><br />
Ericsson uses Haskell for the implementation of Feldspar, an EDSL for digital signal processing algorithms.<br />
</blockquote><br />
<br />
::Ericsson's [http://hackage.haskell.org/package/feldspar-compiler Feldspar compiler]<br />
<br />
* [http://extensibl.com/ extensibl]<br />
<blockquote><br />
New Zealand-based company. Provides a variety of software development, consulting, operational support services worldwide. Both Haskell and Ur/Web are actively used for commercial projects.<br />
</blockquote><br />
<br />
* [http://facebook.com Facebook]<br />
<br />
<blockquote><br />
Facebook uses some Haskell internally for tools. [http://github.com/facebook/lex-pass/tree/master lex-pass] is a tool for programmatically manipulating a PHP code base via Haskell.<br />
</blockquote><br />
<br />
:: Facebook's [http://cufp.galois.com/2009/abstracts.html#ChristopherPiroEugeneLetuchy CUFP talk]<br />
:: Facebook's [http://skillsmatter.com/podcast/home/simon-marlow HaXL system] is [https://code.facebook.com/projects/854888367872565/haxl/ open source]<br />
<br />
* [http://www.factisresearch.com/ Factis Research]<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
:: Factis' [http://haskell.org/communities/05-2010/html/report.html#factisresearch HCAR submission]<br />
<br />
* [http://fortytools.com fortytools gmbh]<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
:: Oh, and of course we develop and maintain [http://hayoo.info Hayoo!] :)<br />
<br />
<br />
* [http://www.functor.se/ Functor AB], Stockholm, Sweden<br />
<blockquote><br />
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. <br />
<br />
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.<br />
</blockquote><br />
<br />
:: See more in the Functor AB [http://alpmestan.com/posts/2012-10-23-haskell-job-opening-at-functor.html job advertisement]<br />
<br />
* [http://www.funktional.info/index.php?id=7&L=1 Funktionale Programmierung Dr. Heinrich Hördegen], Munich, Germany<br />
<blockquote><br />
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...<br />
</blockquote><br />
<br />
* [http://www.galois.com/ Galois, Inc] Portland, Oregon<br />
<br />
<blockquote><br />
Galois designs and develops high confidence software for critical applications.<br />
Our innovative approach to software development provides high levels of<br />
assurance, yet its scalability enables us to address the most complex problems.<br />
We have successfully engineered projects under contract for corporations and<br />
government clients in the demanding application areas of security, information<br />
assurance and cryptography. <br />
</blockquote><br />
<br />
::Galois' [http://cufp.galois.com/2007/abstracts.html#JohnLaunchbury 2007 CUFP talk]<br />
::Galois' [http://cufp.org/conference/sessions/2011/theorem-based-derivation-aes-implementation 2011 CUFP talk]<br />
::Galois' [http://corp.galois.com/blog/2009/4/27/engineering-large-projects-in-haskell-a-decade-of-fp-at-galo.html retrospective on 10 years of industrial Haskell use]<br />
<br />
* [http://google.com Google]<br />
<br />
<blockquote><br />
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<br />
virtual servers built on top of Xen and KVM.<br />
</blockquote><br />
<br />
::Google's [http://k1024.org/~iusty/papers/icfp10-haskell-reagent.pdf ICFP 2010 experience report on Haskell]<br />
::Video from ICFP [http://vimeo.com/12849320 Project Ganeti at Google]<br />
<br />
* [http://glyde.com/ Glyde]<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://groupcommerce.com Group Commerce]<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://hasura.io/ Hasura]<br />
<blockquote><br />
Hasura is a BaaS/PaaS focussed on keeping things DRY and letting you write custom code with the tools you love. We're building a micro-service platform christened Hasura.io (alpha release scheduled in summer 2015), and we used Haskell as the core programming language to build it. <br />
</blockquote><br />
<br />
* [http://humane-software.com Humane Software]<br />
<blockquote>We develop enterprise systems with de-coupled, asynchronous Haskell backends and Javascript UIs.<br><br />
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. <br />
We were able to replace legacy systems in a granular, piece-by-piece manner, while delivering new features.</blockquote><br />
<br />
* [http://hustlerturf.com Hustler Turf Equipment] Hesston, Kansas<br />
<blockquote><br />
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<br />
automation, such as adding/removing people from LDAP servers and the like<br />
</blockquote><br />
<br />
* [http://iba-cg.de/haskell.html iba Consulting Gesellschaft] - Intelligent business architecture for you. Leipzig, Germany<br />
<br />
<blockquote><br />
iba CG develops software for large companies: <br />
* risk analysis and reporting solution for power supply company; <br />
* contract management, assert management, booking and budgeting software for one of the worldwide leading accounting firm.<br />
</blockquote><br />
<br />
* [http://www.imvu.com IMVU, Inc]<br />
<br />
<blockquote><br />
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]<br />
</blockquote><br />
<br />
* [http://www.ics-ag.de/ Informatik Consulting Systems AG]<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://intel.com Intel]<br />
<blockquote><br />
Intel has developed a Haskell compiler as part of their research on multicore parallelism at scale.<br />
</blockquote><br />
<br />
:: Read the Intel Research paper on [http://www.leafpetersen.com/leaf/publications/hs2013/hrc-paper.pdf compiler]<br />
<br />
* [http://www.ivu.de/uk/products/public-transport/ IVU Traffic Technologies AG]<br />
<blockquote><br />
The rostering group at IVU Traffic Technologies AG has been using Haskell to check rosters for compliance with EC regulations.<br />
<br />
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.<br />
<br />
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).<br />
<br />
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.<br />
</blockquote><br />
<br />
* [http://www.janrain.com JanRain]<br />
<blockquote><br />
JanRain uses Haskell for network and web software. Read more about [http://www.janrain.com/blogs/haskell-janrain Haskell at JanRain] and in their [http://corp.galois.com/blog/2011/3/8/tech-talk-haskell-and-the-social-web.html tech talk at Galois]. JanRain's "[http://www.janrain.com/products/capture Capture]" user API product is built on Haskell's Snap webframework.<br />
</blockquote><br />
<br />
:: See Janrain's [http://corp.galois.com/blog/2011/4/22/tech-talk-video-haskell-and-the-social-web.html technical talk about their use of Snap]<br />
<br />
* [http://joyridelabs.de/game/ Joyride Laboratories]<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://keera.co.uk Keera Studios]<br />
<br />
<blockquote><br />
Keera Studios Ltd is a European game development studio that develops mobile, desktop and web apps.<br />
<br />
* Games: The Android game [https://play.google.com/store/apps/details?id=uk.co.keera.games.magiccookies Magic Cookies!] was written in Haskell and released in 2015. Other games include [http://github.com/ivanperez-keera/haskanoid Haskanoid], now being developed [https://www.facebook.com/keerastudios/photos/pb.300854939930039.-2207520000.1432793728./973879669294226/?type=3&theater for Android], and a multi-platform Graphic Adventure library and engine with [https://www.facebook.com/keerastudios/photos/pb.300854939930039.-2207520000.1432793728./971050386243821/?type=3&theater Android support] and an [https://www.facebook.com/keerastudios/photos/pb.300854939930039.-2207520000.1432793728./1078495588832633/?type=3&theater IDE].<br />
<br />
* Reactive Programming and GUIs: Keera Studios is also the maintainer of [http://github.com/keera-studios/keera-hails Keera Hails], an Open-Source reactive rapid application development framework, which has been used in Gale IDE and other desktop applications. Backends exist for Gtk+, Qt, Wx, Android's native GUI toolkit and Web DOM via GHCJS. [https://github.com/keera-studios/keera-posture Keera Posture] is an open-source posture monitor written in Haskell using Keera Hails and Gtk+. <br />
<br />
* Web: Keera Studios also develops [https://www.facebook.com/keerastudios/photos/a.1094336893915169.1073741828.300854939930039/1094336897248502/?type=1&theater web applications in Yesod].<br />
<br />
See the [http://facebook.com/keerastudios Facebook page] for details on Android games and ongoing development.<br />
<br />
</blockquote><br />
<br />
* [http://kinoubi.xyz kinoubi]<br />
<blockquote><br />
At kinoubi we believe in high quality code, that just works. We use software quality metrics to achieve an exceptional level of quality. Our main programming language is Haskell because of its elegance and philosophy of functional purity. It is what we believe in, it is our name: 'kinoubi' means 'functional elegance' in Japanese. Our code is produced for a range of different domains including data mining and machine learning.<br />
</blockquote><br />
<br />
* [http://liftedsoftware.com/ Lifted Software UG], Berlin, Germany<br />
<blockquote><br />
Lifted has developed a macOS application "[http://liftedsoftware.com/ JSON Class Generator]" that allows the user to specify data types (classes/enums) in a visual editor. These models can then be exported to Objective-C source code, which is capable of serializing/deserializing the instances to/from JSON. When parsing JSON, the structures are validated against the specification and errors are reported. The generated code comes with handy implementations for methods like -description, -isEqual:, -copy, -hash and more, that are boring to write and tedious to keep updated by hand.<br />
</blockquote><br />
<br />
* [http://linkqlo.com/ Linkqlo]<br />
<blockquote><br />
Linkqlo Inc is a Palo Alto-based technology startup that is building a pioneering mobile community to connect people with better fitting clothes. We’re solving an industry-wide pain point for both consumers and fashion brands in retail shopping, sizing and fitting, just like Paypal took on the online payment challenge in 1999. We started deploying Haskell as the backend language recently in August 2015, in an effort to eventually replace all PHP endpoint APIs with Haskell ones. <br />
</blockquote><br />
<br />
::Linkqlo's [http://linkqlo.com/app iOS app from App Store]<br />
<br />
* [http://www.linspire.com/ Linspire]<br />
<br />
<blockquote><br />
Linspire, Inc. has used functional programming since its inception in 2001,<br />
beginning with extensive use of O'Caml, with a steady shift to Haskell as its<br />
implementations and libraries have matured. Hardware detection, software<br />
packaging and CGI web page generation are all areas where we have used<br />
functional programming extensively. Haskell's feature set lets us replace much<br />
of our use of little languages (e.g., bash or awk) and two-level languages (C<br />
or C++ bound to an interpreted language), allowing for faster development,<br />
better code sharing and ultimately faster implementations. Above all, we value<br />
static type checking for minimizing runtime errors in applications that run in<br />
unknown environments and for wrapping legacy programs in strongly typed<br />
functions to ensure that we pass valid arguments. <br />
</blockquote><br />
<br />
::Linspire's [http://cufp.galois.com/2006/abstracts.html#CliffordBeshers CUFP talk]<br />
::Linspire's experience report on using [http://portal.acm.org/citation.cfm?doid=1291151.1291184 functional programming to manage a Linux distribution]<br />
<br />
* [https://lumiguide.eu/ LumiGuide]<br />
<blockquote><br />
LumiGuide is an innovative software company which specialises in smart parking and guidance systems for both bicycles and cars. LumiGuide developed and installed the [https://bicycledutch.wordpress.com/2015/06/09/bicycle-parking-guidance-system-in-utrecht/ P-route Bicycle system] for the City of Utrecht in 2015. This system guides cyclists via digital, street-level displays to available parking space in a number of parking facilities in the city centre. Utrecht is the first city in the world that has a system like this. The detection technology is based on optical sensors which are independent of the bicycle stands. The sensors are mounted to the ceiling in indoor facilities and mounted to poles in outdoor facilities. Every minute, one sensor detects 40 to 60 parking places at the same time in either single- or two-tier bicycle stands as well as (stand-less) free parking places. Bicycles that exceed the maximum parking duration ('orphaned' bicycles) are also detected and the system will automatically keep a log of pictures of the orphaned bicycle which can be used as evidence when the orphaned bicycle is removed by a facility operator. The usage of the facility can be monitored with web-based control software. LumiGuide also develops the indoor and outdoor digital displays which can be controlled using the web-based control software.<br />
<br />
We are extensively using Haskell and NixOS.<br />
</blockquote><br />
<br />
* [http://www.microsoft.com/ Microsoft]<br />
<blockquote><br />
Microsoft uses Haskell for its production serialization system, [https://github.com/Microsoft/bond Bond]. Bond is broadly used at Microsoft in high scale services. Microsoft Research has, separately, been a key sponsor of Haskell development since the late 1990s.<br />
</blockquote><br />
<br />
* [http://www.mitre.org/ MITRE]<br />
<blockquote><br />
MITRE uses Haskell for, amongst other things, the [http://hackage.haskell.org/package/cpsa analysis of cryptographic protocols].<br />
</blockquote><br />
<br />
* [http://nytimes.com The New York Times]<br />
<blockquote><br />
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.<br />
</blockquote><br />
:: [http://source.mozillaopennews.org/en-US/articles/model-analysis/ Model analysis]<br />
:: [http://www.infoq.com/presentations/haskell-newsroom-nyt Haskell in the Newsroom]<br />
<br />
* [http://ertos.nicta.com.au/research/sel4/ NICTA]<br />
<blockquote><br />
NICTA has used Haskell as part of a project to verify the L4 microkernel.<br />
</blockquote><br />
::[http://www.drdobbs.com/embedded/222400553 Read the Dr. Dobbs article on using Haskell and formal methods to verify a kernel]<br />
<br />
* [http://www.gb.nrao.edu NRAO]<br />
<blockquote><br />
NRAO has used Haskell to implement the core science algorithms for the Robert C. Byrd Green Bank Telescope (GBT) Dynamic Scheduling System ([http://www.gb.nrao.edu/dss DSS]).<br />
::Source code available on [https://github.com/nrao/antioch GitHub].<br />
</blockquote><br />
<br />
* [http://www.ns-sol.co.jp NS Solutions(NSSOL)] Tokyo, Japan<br />
<blockquote><br />
NS Solutions has employed Haskell since 2008 to develop its software<br />
packages including "BancMeasure", a mark-to-market accounting software<br />
package for financial institutions, "BancMeasure for IFRS" and<br />
"Mamecif", a data analysis package.<br />
"BancMeasure" and "Mamecif" are registered trademarks of NS Solutions Corporation in JAPAN.<br />
</blockquote><br />
<br />
* [http://www.nvidia.com/content/global/global.php NVIDIA]<br />
<blockquote><br />
At NVIDIA, we have a handful of in-house tools that are written in Haskell<br />
</blockquote><br />
<br />
* [http://blog.openomy.com/2008/01/case-study-using-haskell-and-happs-for.html Openomy]<br />
<br />
<blockquote><br />
Openomy's API v2.0 is developed in Haskell, using the<br />
[http://www.happs.org/ HAppS] web platform.<br />
</blockquote><br />
<br />
* [http://www.oblomov.com Oblomov]<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
:: [http://haskell.org/communities/05-2010/html/report.html#oblomov Oblomov's HCAR submission].<br />
<br />
* [http://www.patch-tag.com Patch-Tag: hosting for Darcs]<br />
<blockquote><br />
Need somewhere to put your Darcs code? Try us.<br />
<br />
Patch-Tag is built with [http://happstack.com happstack], the continuation of the project formerly known as HAppS.<br />
</blockquote><br />
<br />
* [http://www.peerium.com Peerium, Inc] Cambridge, Massachusetts<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://www.picussecurity.com Picus Security] Ankara, Turkey<br />
<blockquote><br />
There are lots of IT security products currently used in enterprises to protect customers from cyber threats. How do we ensure about their effectiveness? At this point we have an idea. An idea that we believe will change the entire ecosystem of security operations which we call 'Verified Security' by continuously assessing security controls and remediating them. At Picus Security, we're extensively using Haskell from the starting point of the project. Our backend completely written in Haskell which consists of REST API, distributed haskell nodes and attacker modules. <br />
</blockquote><br />
<br />
* [http://www.planit9.com/ PlanIt9]<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [https://github.com/plumlife Plumlife]<br />
<blockquote><br />
Plum is replacing light switches with Lightpads; a capacitive touch dimmer that is internet connected, clusters with other Lightpads in the home for group control... Haskell composes our cloud services and Erlang is used for the embedded software in the Lightpads (hot-code reloading, easy node clustering, etc...).<br />
...<br />
We use Haskell extensively for all of our cloud services software at Plumlife ... Amazing language and ecosystem.<br />
</blockquote><br />
<br />
* [http://www.qualcomm.com/ Qualcomm, Inc]<br />
<br />
<blockquote><br />
Qualcomm uses Haskell to generate Lua bindings to the BREW platform <br />
</blockquote><br />
<br />
* [http://blog.sqreamtech.com/2013/09/using-haskell-at-sqream-technologies/ SQream]<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://cufp.org/conference/sessions/2013/jeff-epstein-parallel-scientific-building-scalable Parallel Scientific], Boulder, Colorado.<br />
<br />
<blockquote><br />
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. <br />
</blockquote><br />
<br />
:: See Parallel Scientific's [http://cufp.org/conference/sessions/2013/jeff-epstein-parallel-scientific-building-scalable CUFP talk]<br />
<br />
* [http://www.renci.org/ Renaissaince Computing Institute], Chapel Hill, North Carolina<br />
<blockquote><br />
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.<br />
<br />
Research scientists at RENCI have used Haskell for a number of projects, including [http://vis.renci.org/jeff/2009/08/26/open-sourcing-the-big-board/ The Big Board].<br />
</blockquote><br />
<br />
::RENCI's [http://cufp.galois.com/2009/abstracts.html#JeffersonHeard CUFP talk].<br />
<br />
* [https://ruevoisine.fr ruevoisine.fr]<br />
<br />
<blockquote><br />
<p>This rental ads website uses Haskell both on client and server.</p><br />
<p>Web server is written in Erlang (Yaws) however app is nearly all Haskell.</p><br />
<p>Js code is produced, minified and bundled from Haskell.</p><br />
</blockquote><br />
<br />
* [http://samplecount.com Samplecount]<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://sankelsoftware.com Sankel Software] Albuquerque, New Mexico<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [https://scrive.com/gb/en Scrive] <br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [https://www.cee.siemens.com/web/at/en/csb/cvc/Pages/home.aspx Siemens Convergence Creators GmbH Austria]<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://www.signalicorp.com/index.htm Signali] Portland, Oregon<br />
<br />
<blockquote><br />
Signali Corp is a new custom hardware design company. Our chief products<br />
are custom IP cores targeted for embedded DSP and cryptographic<br />
applications. Our specialty is the design and implementation of<br />
computationally intensive, complex algorithms. The interfaces to each<br />
core are modular and can be very efficiently modified for your specific<br />
application. System-level integration and validation is crucial and is<br />
the majority of investment in a product.<br />
</blockquote><br />
<br />
* [http://www.soostone.com Soostone] New York, NY<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://www.standardchartered.com/home/en/index.html Standard Chartered]<br />
<br />
<blockquote><br />
Standard Chartered has a large group using Haskell for all aspects of its wholesale banking business.<br />
</blockquote><br />
<br />
* [http://www.stackbuilders.com Stack Builders]<br />
<br />
<blockquote><br />
Stack Builders is a software consultancy based in New York, with its largest office in Quito, Ecuador. They build web, mobile and real-time applications for clients in industries including the automotive industry, finance, and social media and marketing. They have assisted clients in multiple industries with both legacy and greenfield projects in Haskell.<br />
</blockquote><br />
<br />
* [http://www.starling-software.com/en/index.html Starling Software] Tokyo, Japan<br />
<blockquote><br />
Starling Software are developing a commercial automated options trading system <br />
in Haskell, and are migrating other parts of their software suite to<br />
Haskell.<br />
</blockquote><br />
<br />
::Starling Software's [http://www.starling-software.com/misc/icfp-2009-cjs.pdf experience building real time trading systems in Haskell] <br />
<br />
<br />
* [http://www.sensor-sense.nl Sensor Sense] Nijmegen, The Netherlands<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
:: 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]<br />
<br />
* [http://www.silk.co Silk] Amsterdam, The Netherlands<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
:: Silk's blog on [http://engineering.silk.co/post/31920990633/why-we-use-haskell/ why they use Haskell]<br />
:: A [http://thenextweb.com/eu/2011/04/28/filter-and-visualize-data-in-seconds-with-silk/ review of Silk]<br />
<br />
* [http://skedge.me/ Skedge Me]<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
:: See more in their [http://cufp.org/conference/sessions/2013/ryan-trinkle-skedgeme-enterprise-appointment-sched CUFP talk]<br />
:: See their 2014 [http://functionaljobs.com/jobs/8712-haskell-developer-at-skedgeme job advertisement]<br />
<br />
* [http://www.suite-sol.com/ Suite Solutions]<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://www.sumall.com/ SumAll] New York, New York<br />
<blockquote><br />
SumAll aggregates various public streams of data such as various social network data into useful analytics, reports and insights. We are in process of rewriting our entire data-processing backend in Haskell. What attracted us to the language is its disciplined and uncompromising approach to solving hard problems and managing complexity. We truly believe that the language and ecosystem is ready for prime time and will give us competitive advantage in the industry. <br />
</blockquote><br />
<br />
* [http://www.tabula.com/ Tabula.com]<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://tsurucapital.com Tsuru Capital] Tokyo, Japan<br />
<blockquote><br />
Tsuru Capital is operating an automated options trading system written in Haskell.<br />
</blockquote><br />
<br />
::[http://haskell.org/communities/05-2010/html/report.html#sect7.6 Tsuru Capital's HCAR submission]<br />
<br />
* [http://tupil.com/ Tupil] Utrecht, The Netherlands<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
:: Tupil's experience building [http://blog.tupil.com/building-commercial-haskell-applications/ commercial web apps in Haskell]<br />
<br />
* [http://www.wagonhq.com Wagon] San Francisco, California<br />
<br />
<blockquote><br />
Wagon is a modern SQL editor: a better way for analysts and engineers to write queries, visualize results, and share data & charts.<br />
</blockquote><br />
<br />
::We’re a team of functional programmers writing apps and services in Haskell (and Javascript). We love to teach and learn functional programming; our team is humble, hard working, and fun. Read our engineering blog to learn more about our [http://www.wagonhq.com/blog/engineering-at-wagon stack], how we combine [http://www.wagonhq.com/blog/electron-at-wagon Haskell, React, and Electron], and what it’s like [http://www.wagonhq.com/blog/first-two-weeks-haskell-wagon working at a Haskell-powered startup].<br />
<br />
::We're hiring Haskell engineers based in San Francisco, [http://www.wagonhq.com/jobs learn more about the roles and our team]!<br />
<br />
* [http://weedreporter.com Weedreporter] <br />
<br />
<blockquote><br />
Weedreporter.com is a news site in the up and coming cannabis industry, featuring news stories from around the world and USA. This includes news stories about legalization and medical Marijuana. The site is built using Haskell and Postgres. Haskell has allowed us to build a site with fast load times.<br />
</blockquote><br />
<br />
<br />
If you're using Haskell commercially, please add your details here.<br />
<br />
== The Industrial Haskell Group ==<br />
<br />
The [http://industry.haskell.org/ Industrial Haskell Group (IHG)] is an organisation to support the needs of commercial users of the Haskell programming language. <br />
<br />
== Jobs and recruitment ==<br />
<br />
[[Jobs|Haskell jobs]] on the HaskellWiki.<br />
<br />
[http://www.haskellers.com/jobs Jobs at Haskellers.com].<br />
<br />
== Consultants ==<br />
<br />
[[Consultants]]<br />
<br />
== Commercial Users of Functional Programming Workshop ==<br />
<br />
[http://www.galois.com/cufp/ Commercial Users of Functional Programming]<br />
<br />
The goal of [http://www.galois.com/cufp/ CUFP] is to build a community<br />
for users of functional programming languages and technology, be they<br />
using functional languages in their professional lives, in an open<br />
source project (other than implementation of functional languages), as a<br />
hobby, or any combination thereof. In short: anyone who uses functional<br />
programming as a means, but not an end.<br />
<br />
[[Category:Community]]</div>Zarkhttps://wiki.haskell.org/index.php?title=Haskell_in_industry&diff=61501Haskell in industry2017-02-02T21:42:38Z<p>Zark: /* Haskell in Industry */</p>
<hr />
<div>__NOTOC__<br />
<br />
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.<br />
<br />
* The main user conference for industrial Haskell use is CUFP - the [http://cufp.org/ Commercial Users of Functional Programming Workshop].<br />
* The [http://industry.haskell.org Industrial Haskell Group] supports commercial users.<br />
* [http://fpcomplete.com/ FP Complete] is dedicated to the widespread adoption of modern Functional Programming technology, with a focus on the Haskell system. See their collection of [https://www.fpcomplete.com/page/case-studies case studies] of successes in commercial use.<br />
* [http://commercialhaskell.com/ The commercial Haskell group] is a special interest group for companies and individuals interested in commercial usage of Haskell.<br />
<br />
The Reddit page [https://www.reddit.com/r/haskell/comments/377zyc/72_wouldbe_commercial_haskell_users_what_haskell/ 72 would-be commercial Haskell users: what Haskell success stories we need to see] has several stories of commercial Haskell users.<br />
<br />
== Haskell in Industry ==<br />
<br />
Many companies have used Haskell for a range of projects, including:<br />
<br />
* [http://cufp.galois.com/2007/abstracts.html#CyrilSchmidt ABN AMRO] Amsterdam, The Netherlands<br />
<blockquote><br />
ABN AMRO is an international bank headquartered in Amsterdam. For its<br />
investment banking activities it needs to measure the counterparty risk<br />
on portfolios of financial derivatives. </blockquote><br />
::ABN AMRO's [http://cufp.galois.com/2007/abstracts.html#CyrilSchmidt CUFP talk].<br />
<br />
* Aetion Technologies LLC, Columbus, Ohio<br />
<blockquote><br />
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<br />
Haskell, all successful. Haskell's concise code was perhaps most important for<br />
rewriting: it made it practicable to throw away old code occasionally. DSELs<br />
allowed the AI to be specified very declaratively. <br />
</blockquote><br />
::Aetion's [http://cufp.galois.com/2006/slides/GaryMorris.pdf CUFP talk].<br />
<br />
* Alcatel-Lucent<br />
<blockquote><br />
A consortium of groups, including Alcatel-Lucent, have used Haskell to prototype narrowband software radio systems, running in (soft) real-time.<br />
</blockquote><br />
::Alcatel-Lucent's [http://cufp.org/conference/sessions/2011/fourteen-days-haskell-real-time-programming-projec CUFP talk]<br />
<br />
* [http://www.allstontrading.com/ Allston Trading]<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://www.alphaheavy.com/ Alpha Heavy Industries]<br />
<blockquote><br />
Alpha Heavy Industries is an alternative asset manager dedicated to producing superior returns through quantitative methods. They use Haskell as their primary implementation language.<br />
</blockquote><br />
<br />
* [http://www.amgen.com/ Amgen] Thousand Oaks, California<br />
<blockquote><br />
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.<br />
<br />
Amgen uses Haskell;<br />
<br />
* To rapidly build software to implement mathematical models and other complex, mathematically oriented applications<br />
* Provide a more mathematically rigorous validation of software<br />
* To break developers out of their software development rut by giving them a new way to think about software.<br />
</blockquote><br />
::Amgen's [http://cufp.galois.com/2008/abstracts.html#BalabanDavid CUFP talk].<br />
<br />
* [http://www.ansemond.com/ Ansemond LLC]<br />
<blockquote><br />
"Find It! Keep It! is a Mac Web Browser that lets you keep the pages you<br />
visit in a database. A list of these pages is shown in the 'database<br />
view'. "<br />
</blockquote><br />
<br />
* [http://antiope.com/ Antiope] Fair Haven, New Jersey<br />
<blockquote><br />
Antiope Associates provides custom solutions for wireless communication<br />
and networking problems. Our team has expertise in all aspects of<br />
wireless system design, from the physical and protocol layers to complex<br />
networked applications. Antiope Associates relies on a number of<br />
advanced techniques to ensure that the communication systems we design<br />
are reliable and free from error. We use custom simulation tools<br />
developed in Haskell, to model our hardware designs..<br />
</blockquote><br />
::Antiope's [http://cufp.galois.com/2008/slides/WrightGregory.pdf CUFP talk].<br />
<br />
* [http://antiope.com/ Antiope] Fair Haven, New Jersey<br />
<blockquote><br />
Antiope Associates provides custom solutions for wireless communication<br />
and networking problems. Our team has expertise in all aspects of<br />
wireless system design, from the physical and protocol layers to complex<br />
networked applications. Antiope Associates relies on a number of<br />
advanced techniques to ensure that the communication systems we design<br />
are reliable and free from error. We use custom simulation tools<br />
developed in Haskell, to model our hardware designs..<br />
</blockquote><br />
::Antiope's [http://cufp.galois.com/2008/slides/WrightGregory.pdf CUFP talk].<br />
<br />
* Applicative, Sydney (Australia)<br />
<blockquote><br />
Applicative has created a Haskell IDE for macOS called "[http://haskellformac.com Haskell for Mac]". It offers playgrounds to interactively work with Haskell code right next to the source files: you can draw and preview images, animations, HTML pages and more. You can also build full-fledged applications with it.<br />
</blockquote><br />
<br />
* [http://www.att.com AT&amp;T]<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://www.baml.com/ Bank of America Merril Lynch]<br />
<blockquote>Haskell is being used for backend data transformation and loading.</blockquote><br />
<br />
* [http://www.haskell.org/communities/12-2007/html/report.html#sect7.1.2 Barclays Capital Quantitative Analytics Group]<br />
<blockquote><br />
Barclays Capital's Quantitative Analytics group is using Haskell to<br />
develop an embedded domain-specific functional language (called FPF)<br />
which is used to specify exotic equity derivatives. These derivatives,<br />
which are naturally best described in terms of mathematical functions,<br />
and constructed compositionally, map well to being expressed in an<br />
embedded functional language. This language is now regularly being used<br />
by people who had no previous functional language experience.<br />
</blockquote><br />
::[http://lambda-the-ultimate.org/node/3331 Simon Frankau et al's JFP paper on their use of Haskell]<br />
::[http://www.reddit.com/r/haskell/comments/1p70l3/barclays_are_hiring_haskell_developers_in_london/ Read their 2013 job advertisement]<br />
<br />
* BAE Systems<br />
<blockquote><br />
As part of the SAFE project, BAE has built a collection of compilers, interpreters, simulators, and EDSLs almost entirely in Haskell.<br />
</blockquote><br />
::[http://cufp.org/conference/sessions/2013/tom-hawkins-bae-systems-redesigning-computer-secur CUFP 2013 talk]<br />
<br />
* [http://bazqux.com BazQux Reader]<br />
<blockquote><br />
BazQux Reader is a commercial RSS reader. Its feeds and comments crawler and a part of web-server are implemented in Haskell.<br />
</blockquote><br />
<br />
* [http://better.io Better]<br />
<blockquote><br />
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.<br />
<br />
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. <br />
</blockquote><br />
<br />
* [http://www.bcode.com/ bCODE Pty Ltd] Sydney Australia<br />
<blockquote><br />
bCode Pty Ltd is a small venture capital-funded startup using Ocaml and a bit of Haskell in Sydney Australia.<br />
</blockquote><br />
<br />
* [http://bdellium.com/ Bdellium] Hawaii, United States<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://www.betterteam.com/ Betterteam] Remote<br />
<br />
<blockquote><br />
Betterteam is a recruitment platform for small businesses and growing teams. It allows employers to post their jobs to hundreds of job boards, manage candidates, and add a careers section to their website. <br />
<br />
Betterteam's backend applications are 100% Haskell and the frontend web application is written in PureScript.<br />
</blockquote><br />
<br />
* [http://www.bluespec.com/ Bluespec, Inc.] Waltham, Massachusetts<br />
<br />
<blockquote><br />
Developing a modern integrated circuit (ASIC or FPGA) is an enormously<br />
expensive process involving specification, modeling (to choose and fix the<br />
architecture), design (to describe what will become silicon) and verification<br />
(to ensure that it meets the specs), all before actually committing anything to<br />
silicon (where the cost of a failure can be tens of millions of dollars).<br />
Bluespec, Inc. is a three year-old company that provides language facilities,<br />
methodologies, and tools for this purpose, within the framework of the IEEE<br />
standard languages SystemVerilog and SystemC, but borrowing ideas heavily from<br />
Term Rewriting Systems and functional programming languages like Haskell. In<br />
this talk, after a brief technical overview to set the context, we will<br />
describe our tactics and strategies, and the challenges we face, in introducing<br />
declarative programming ideas into this field, both externally (convincing<br />
customers about the value of these ideas) and internally (using Haskell for our<br />
tool implementation). <br />
</blockquote><br />
<br />
::Bluespec's [http://cufp.galois.com/2006/abstracts.html#RishiyurNikhil CUFP talk].<br />
<br />
* [http://bu.mp/ Bump]<br />
<blockquote><br />
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].<br />
</blockquote><br />
::Haskell at [http://fpcomplete.com/downloads/bump-fp-complete-study.pdf Bump]<br />
<br />
* Capital IQ<br />
<blockquote><br />
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.<br />
</blockquote><br />
::[http://cufp.org/conference/sessions/2013/edward-kmett-sp-capital-iq-functional-reporting Capital IQ's CUFP 2013 talk]<br />
<br />
* [http://chordify.net Chordify]<br />
<blockquote><br />
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:<br />
<br />
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.<br />
</blockquote><br />
<br />
* [http://www.circos.com Circos Brand Karma] Singapore<br />
<blockquote><br />
Brand Karma provides services to brand owners to measure online sentiments towards their brands.<br />
Haskell is used in building parts of the product, specifically for back-end job scheduling and brand matching.<br />
</blockquote><br />
<br />
* [https://circuithub.com CircuitHub]<br />
<blockquote><br />
CircuitHub aims to be the AWS for manufacturing, enabling hardware companies and makers to instantly quote designs and scale from prototype to production. We are also proud to host a large collection of open hardware designs. CircuitHub uses Haskell for our core services and algorithms.<br />
</blockquote><br />
<br />
* [http://www.credit-suisse.com/ Credit Suisse Global Modeling and Analytics Group] London, UK; New York City, New York<br />
<br />
<blockquote><br />
GMAG, the quantitative modeling group at Credit Suisse, has been using Haskell<br />
for various projects since the beginning of 2006, with the twin aims of<br />
improving the productivity of modelers and making it easier for other people<br />
within the bank to use GMAG models. Current projects include: Further work on<br />
tools for checking, manipulating and transforming spreadsheets; a<br />
domain-specific language embedded in Haskell for implementing reusable<br />
components that can be compiled into various target forms (see the video presentation: [http://www.londonhug.net/2008/08/11/video-paradise-a-dsel-for-derivatives-pricing/ Paradise, a DSEL for Derivatives Pricing]).<br />
</blockquote><br />
<br />
::Credit Suisse's [http://cufp.galois.com/2006/abstracts.html#HowardMansell CUFP talk].<br />
<br />
* [http://detexify.kirelabs.org/classify.html Detexify]<br />
<br />
<blockquote><br />
Detexify is an online handwriting recognition system, whose backend is written in Haskell. <br />
</blockquote><br />
<br />
* [http://fynder.io Fynder]<br />
<blockquote><br />
Fynder is an online booking platform.<br />
<br />
We use Haskell and clojurescript, all stitched together with nixos<br />
</blockquote><br />
<br />
::See more in their original [http://hackerjobs.co.uk/jobs/2013/9/27/digital-logistics-haskell-developer job posting].<br />
<br />
* [http://www.db.com/ Deutsche Bank Equity Proprietary Trading, Directional Credit Trading]<br />
<br />
<blockquote><br />
The Directional Credit Trading group used Haskell as the primary<br />
implementation language for its software infrastructure.<br />
</blockquote><br />
<br />
::Deutsche Bank's [http://cufp.galois.com/2008/abstracts.html#PolakowJeff CUFP talk].<br />
<br />
* [http://article.gmane.org/gmane.comp.lang.haskell.cafe/37093 Eaton] Cleveland, Ohio<br />
<br />
<blockquote><br />
Design and verification of hydraulic hybrid vehicle systems<br />
</blockquote><br />
<br />
::Eaton's [http://cufp.galois.com/2008/abstracts.html#HawkinsTom CUFP talk]<br />
::Eaton's [http://www.haskell.org/pipermail/haskell-cafe/2009-April/060602.html experiences using a Haskell DSL]<br />
<br />
* [Ericsson AB]<br />
<blockquote><br />
Ericsson uses Haskell for the implementation of Feldspar, an EDSL for digital signal processing algorithms.<br />
</blockquote><br />
<br />
::Ericsson's [http://hackage.haskell.org/package/feldspar-compiler Feldspar compiler]<br />
<br />
* [http://extensibl.com/ extensibl]<br />
<blockquote><br />
New Zealand-based company. Provides a variety of software development, consulting, operational support services worldwide. Both Haskell and Ur/Web are actively used for commercial projects.<br />
</blockquote><br />
<br />
* [http://facebook.com Facebook]<br />
<br />
<blockquote><br />
Facebook uses some Haskell internally for tools. [http://github.com/facebook/lex-pass/tree/master lex-pass] is a tool for programmatically manipulating a PHP code base via Haskell.<br />
</blockquote><br />
<br />
:: Facebook's [http://cufp.galois.com/2009/abstracts.html#ChristopherPiroEugeneLetuchy CUFP talk]<br />
:: Facebook's [http://skillsmatter.com/podcast/home/simon-marlow HaXL system] is [https://code.facebook.com/projects/854888367872565/haxl/ open source]<br />
<br />
* [http://www.factisresearch.com/ Factis Research]<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
:: Factis' [http://haskell.org/communities/05-2010/html/report.html#factisresearch HCAR submission]<br />
<br />
* [http://fortytools.com fortytools gmbh]<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
:: Oh, and of course we develop and maintain [http://hayoo.info Hayoo!] :)<br />
<br />
<br />
* [http://www.functor.se/ Functor AB], Stockholm, Sweden<br />
<blockquote><br />
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. <br />
<br />
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.<br />
</blockquote><br />
<br />
:: See more in the Functor AB [http://alpmestan.com/posts/2012-10-23-haskell-job-opening-at-functor.html job advertisement]<br />
<br />
* [http://www.funktional.info/index.php?id=7&L=1 Funktionale Programmierung Dr. Heinrich Hördegen], Munich, Germany<br />
<blockquote><br />
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...<br />
</blockquote><br />
<br />
* [http://www.galois.com/ Galois, Inc] Portland, Oregon<br />
<br />
<blockquote><br />
Galois designs and develops high confidence software for critical applications.<br />
Our innovative approach to software development provides high levels of<br />
assurance, yet its scalability enables us to address the most complex problems.<br />
We have successfully engineered projects under contract for corporations and<br />
government clients in the demanding application areas of security, information<br />
assurance and cryptography. <br />
</blockquote><br />
<br />
::Galois' [http://cufp.galois.com/2007/abstracts.html#JohnLaunchbury 2007 CUFP talk]<br />
::Galois' [http://cufp.org/conference/sessions/2011/theorem-based-derivation-aes-implementation 2011 CUFP talk]<br />
::Galois' [http://corp.galois.com/blog/2009/4/27/engineering-large-projects-in-haskell-a-decade-of-fp-at-galo.html retrospective on 10 years of industrial Haskell use]<br />
<br />
* [http://google.com Google]<br />
<br />
<blockquote><br />
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<br />
virtual servers built on top of Xen and KVM.<br />
</blockquote><br />
<br />
::Google's [http://k1024.org/~iusty/papers/icfp10-haskell-reagent.pdf ICFP 2010 experience report on Haskell]<br />
::Video from ICFP [http://vimeo.com/12849320 Project Ganeti at Google]<br />
<br />
* [http://glyde.com/ Glyde]<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://groupcommerce.com Group Commerce]<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://hasura.io/ Hasura]<br />
<blockquote><br />
Hasura is a BaaS/PaaS focussed on keeping things DRY and letting you write custom code with the tools you love. We're building a micro-service platform christened Hasura.io (alpha release scheduled in summer 2015), and we used Haskell as the core programming language to build it. <br />
</blockquote><br />
<br />
* [http://humane-software.com Humane Software]<br />
<blockquote>We develop enterprise systems with de-coupled, asynchronous Haskell backends and Javascript UIs.<br><br />
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. <br />
We were able to replace legacy systems in a granular, piece-by-piece manner, while delivering new features.</blockquote><br />
<br />
* [http://hustlerturf.com Hustler Turf Equipment] Hesston, Kansas<br />
<blockquote><br />
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<br />
automation, such as adding/removing people from LDAP servers and the like<br />
</blockquote><br />
<br />
* [http://iba-cg.de/haskell.html iba Consulting Gesellschaft] - Intelligent business architecture for you. Leipzig, Germany<br />
<br />
<blockquote><br />
iba CG develops software for large companies: <br />
* risk analysis and reporting solution for power supply company; <br />
* contract management, assert management, booking and budgeting software for one of the worldwide leading accounting firm.<br />
</blockquote><br />
<br />
* [http://www.imvu.com IMVU, Inc]<br />
<br />
<blockquote><br />
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]<br />
</blockquote><br />
<br />
* [http://www.ics-ag.de/ Informatik Consulting Systems AG]<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://intel.com Intel]<br />
<blockquote><br />
Intel has developed a Haskell compiler as part of their research on multicore parallelism at scale.<br />
</blockquote><br />
<br />
:: Read the Intel Research paper on [http://www.leafpetersen.com/leaf/publications/hs2013/hrc-paper.pdf compiler]<br />
<br />
* [http://www.ivu.de/uk/products/public-transport/ IVU Traffic Technologies AG]<br />
<blockquote><br />
The rostering group at IVU Traffic Technologies AG has been using Haskell to check rosters for compliance with EC regulations.<br />
<br />
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.<br />
<br />
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).<br />
<br />
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.<br />
</blockquote><br />
<br />
* [http://www.janrain.com JanRain]<br />
<blockquote><br />
JanRain uses Haskell for network and web software. Read more about [http://www.janrain.com/blogs/haskell-janrain Haskell at JanRain] and in their [http://corp.galois.com/blog/2011/3/8/tech-talk-haskell-and-the-social-web.html tech talk at Galois]. JanRain's "[http://www.janrain.com/products/capture Capture]" user API product is built on Haskell's Snap webframework.<br />
</blockquote><br />
<br />
:: See Janrain's [http://corp.galois.com/blog/2011/4/22/tech-talk-video-haskell-and-the-social-web.html technical talk about their use of Snap]<br />
<br />
* [http://joyridelabs.de/game/ Joyride Laboratories]<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://keera.co.uk Keera Studios]<br />
<br />
<blockquote><br />
Keera Studios Ltd is a European game development studio that develops mobile, desktop and web apps.<br />
<br />
* Games: The Android game [https://play.google.com/store/apps/details?id=uk.co.keera.games.magiccookies Magic Cookies!] was written in Haskell and released in 2015. Other games include [http://github.com/ivanperez-keera/haskanoid Haskanoid], now being developed [https://www.facebook.com/keerastudios/photos/pb.300854939930039.-2207520000.1432793728./973879669294226/?type=3&theater for Android], and a multi-platform Graphic Adventure library and engine with [https://www.facebook.com/keerastudios/photos/pb.300854939930039.-2207520000.1432793728./971050386243821/?type=3&theater Android support] and an [https://www.facebook.com/keerastudios/photos/pb.300854939930039.-2207520000.1432793728./1078495588832633/?type=3&theater IDE].<br />
<br />
* Reactive Programming and GUIs: Keera Studios is also the maintainer of [http://github.com/keera-studios/keera-hails Keera Hails], an Open-Source reactive rapid application development framework, which has been used in Gale IDE and other desktop applications. Backends exist for Gtk+, Qt, Wx, Android's native GUI toolkit and Web DOM via GHCJS. [https://github.com/keera-studios/keera-posture Keera Posture] is an open-source posture monitor written in Haskell using Keera Hails and Gtk+. <br />
<br />
* Web: Keera Studios also develops [https://www.facebook.com/keerastudios/photos/a.1094336893915169.1073741828.300854939930039/1094336897248502/?type=1&theater web applications in Yesod].<br />
<br />
See the [http://facebook.com/keerastudios Facebook page] for details on Android games and ongoing development.<br />
<br />
</blockquote><br />
<br />
* [http://kinoubi.xyz kinoubi]<br />
<blockquote><br />
At kinoubi we believe in high quality code, that just works. We use software quality metrics to achieve an exceptional level of quality. Our main programming language is Haskell because of its elegance and philosophy of functional purity. It is what we believe in, it is our name: 'kinoubi' means 'functional elegance' in Japanese. Our code is produced for a range of different domains including data mining and machine learning.<br />
</blockquote><br />
<br />
* [http://linkqlo.com/ Linkqlo]<br />
<br />
<blockquote><br />
Linkqlo Inc is a Palo Alto-based technology startup that is building a pioneering mobile community to connect people with better fitting clothes. We’re solving an industry-wide pain point for both consumers and fashion brands in retail shopping, sizing and fitting, just like Paypal took on the online payment challenge in 1999. We started deploying Haskell as the backend language recently in August 2015, in an effort to eventually replace all PHP endpoint APIs with Haskell ones. <br />
</blockquote><br />
<br />
::Linkqlo's [http://linkqlo.com/app iOS app from App Store]<br />
<br />
* [http://www.linspire.com/ Linspire]<br />
<br />
<blockquote><br />
Linspire, Inc. has used functional programming since its inception in 2001,<br />
beginning with extensive use of O'Caml, with a steady shift to Haskell as its<br />
implementations and libraries have matured. Hardware detection, software<br />
packaging and CGI web page generation are all areas where we have used<br />
functional programming extensively. Haskell's feature set lets us replace much<br />
of our use of little languages (e.g., bash or awk) and two-level languages (C<br />
or C++ bound to an interpreted language), allowing for faster development,<br />
better code sharing and ultimately faster implementations. Above all, we value<br />
static type checking for minimizing runtime errors in applications that run in<br />
unknown environments and for wrapping legacy programs in strongly typed<br />
functions to ensure that we pass valid arguments. <br />
</blockquote><br />
<br />
::Linspire's [http://cufp.galois.com/2006/abstracts.html#CliffordBeshers CUFP talk]<br />
::Linspire's experience report on using [http://portal.acm.org/citation.cfm?doid=1291151.1291184 functional programming to manage a Linux distribution]<br />
<br />
* [https://lumiguide.eu/ LumiGuide]<br />
<blockquote><br />
LumiGuide is an innovative software company which specialises in smart parking and guidance systems for both bicycles and cars. LumiGuide developed and installed the [https://bicycledutch.wordpress.com/2015/06/09/bicycle-parking-guidance-system-in-utrecht/ P-route Bicycle system] for the City of Utrecht in 2015. This system guides cyclists via digital, street-level displays to available parking space in a number of parking facilities in the city centre. Utrecht is the first city in the world that has a system like this. The detection technology is based on optical sensors which are independent of the bicycle stands. The sensors are mounted to the ceiling in indoor facilities and mounted to poles in outdoor facilities. Every minute, one sensor detects 40 to 60 parking places at the same time in either single- or two-tier bicycle stands as well as (stand-less) free parking places. Bicycles that exceed the maximum parking duration ('orphaned' bicycles) are also detected and the system will automatically keep a log of pictures of the orphaned bicycle which can be used as evidence when the orphaned bicycle is removed by a facility operator. The usage of the facility can be monitored with web-based control software. LumiGuide also develops the indoor and outdoor digital displays which can be controlled using the web-based control software.<br />
<br />
We are extensively using Haskell and NixOS.<br />
</blockquote><br />
<br />
* [http://www.microsoft.com/ Microsoft]<br />
<blockquote><br />
Microsoft uses Haskell for its production serialization system, [https://github.com/Microsoft/bond Bond]. Bond is broadly used at Microsoft in high scale services. Microsoft Research has, separately, been a key sponsor of Haskell development since the late 1990s.<br />
</blockquote><br />
<br />
* [http://www.mitre.org/ MITRE]<br />
<blockquote><br />
MITRE uses Haskell for, amongst other things, the [http://hackage.haskell.org/package/cpsa analysis of cryptographic protocols].<br />
</blockquote><br />
<br />
* [http://nytimes.com The New York Times]<br />
<blockquote><br />
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.<br />
</blockquote><br />
:: [http://source.mozillaopennews.org/en-US/articles/model-analysis/ Model analysis]<br />
:: [http://www.infoq.com/presentations/haskell-newsroom-nyt Haskell in the Newsroom]<br />
<br />
* [http://ertos.nicta.com.au/research/sel4/ NICTA]<br />
<blockquote><br />
NICTA has used Haskell as part of a project to verify the L4 microkernel.<br />
</blockquote><br />
::[http://www.drdobbs.com/embedded/222400553 Read the Dr. Dobbs article on using Haskell and formal methods to verify a kernel]<br />
<br />
* [http://www.gb.nrao.edu NRAO]<br />
<blockquote><br />
NRAO has used Haskell to implement the core science algorithms for the Robert C. Byrd Green Bank Telescope (GBT) Dynamic Scheduling System ([http://www.gb.nrao.edu/dss DSS]).<br />
::Source code available on [https://github.com/nrao/antioch GitHub].<br />
</blockquote><br />
<br />
* [http://www.ns-sol.co.jp NS Solutions(NSSOL)] Tokyo, Japan<br />
<blockquote><br />
NS Solutions has employed Haskell since 2008 to develop its software<br />
packages including "BancMeasure", a mark-to-market accounting software<br />
package for financial institutions, "BancMeasure for IFRS" and<br />
"Mamecif", a data analysis package.<br />
"BancMeasure" and "Mamecif" are registered trademarks of NS Solutions Corporation in JAPAN.<br />
</blockquote><br />
<br />
* [http://www.nvidia.com/content/global/global.php NVIDIA]<br />
<blockquote><br />
At NVIDIA, we have a handful of in-house tools that are written in Haskell<br />
</blockquote><br />
<br />
* [http://blog.openomy.com/2008/01/case-study-using-haskell-and-happs-for.html Openomy]<br />
<br />
<blockquote><br />
Openomy's API v2.0 is developed in Haskell, using the<br />
[http://www.happs.org/ HAppS] web platform.<br />
</blockquote><br />
<br />
* [http://www.oblomov.com Oblomov]<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
:: [http://haskell.org/communities/05-2010/html/report.html#oblomov Oblomov's HCAR submission].<br />
<br />
* [http://www.patch-tag.com Patch-Tag: hosting for Darcs]<br />
<blockquote><br />
Need somewhere to put your Darcs code? Try us.<br />
<br />
Patch-Tag is built with [http://happstack.com happstack], the continuation of the project formerly known as HAppS.<br />
</blockquote><br />
<br />
* [http://www.peerium.com Peerium, Inc] Cambridge, Massachusetts<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://www.picussecurity.com Picus Security] Ankara, Turkey<br />
<blockquote><br />
There are lots of IT security products currently used in enterprises to protect customers from cyber threats. How do we ensure about their effectiveness? At this point we have an idea. An idea that we believe will change the entire ecosystem of security operations which we call 'Verified Security' by continuously assessing security controls and remediating them. At Picus Security, we're extensively using Haskell from the starting point of the project. Our backend completely written in Haskell which consists of REST API, distributed haskell nodes and attacker modules. <br />
</blockquote><br />
<br />
* [http://www.planit9.com/ PlanIt9]<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [https://github.com/plumlife Plumlife]<br />
<blockquote><br />
Plum is replacing light switches with Lightpads; a capacitive touch dimmer that is internet connected, clusters with other Lightpads in the home for group control... Haskell composes our cloud services and Erlang is used for the embedded software in the Lightpads (hot-code reloading, easy node clustering, etc...).<br />
...<br />
We use Haskell extensively for all of our cloud services software at Plumlife ... Amazing language and ecosystem.<br />
</blockquote><br />
<br />
* [http://www.qualcomm.com/ Qualcomm, Inc]<br />
<br />
<blockquote><br />
Qualcomm uses Haskell to generate Lua bindings to the BREW platform <br />
</blockquote><br />
<br />
* [http://blog.sqreamtech.com/2013/09/using-haskell-at-sqream-technologies/ SQream]<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://cufp.org/conference/sessions/2013/jeff-epstein-parallel-scientific-building-scalable Parallel Scientific], Boulder, Colorado.<br />
<br />
<blockquote><br />
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. <br />
</blockquote><br />
<br />
:: See Parallel Scientific's [http://cufp.org/conference/sessions/2013/jeff-epstein-parallel-scientific-building-scalable CUFP talk]<br />
<br />
* [http://www.renci.org/ Renaissaince Computing Institute], Chapel Hill, North Carolina<br />
<blockquote><br />
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.<br />
<br />
Research scientists at RENCI have used Haskell for a number of projects, including [http://vis.renci.org/jeff/2009/08/26/open-sourcing-the-big-board/ The Big Board].<br />
</blockquote><br />
<br />
::RENCI's [http://cufp.galois.com/2009/abstracts.html#JeffersonHeard CUFP talk].<br />
<br />
* [https://ruevoisine.fr ruevoisine.fr]<br />
<br />
<blockquote><br />
<p>This rental ads website uses Haskell both on client and server.</p><br />
<p>Web server is written in Erlang (Yaws) however app is nearly all Haskell.</p><br />
<p>Js code is produced, minified and bundled from Haskell.</p><br />
</blockquote><br />
<br />
* [http://samplecount.com Samplecount]<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://sankelsoftware.com Sankel Software] Albuquerque, New Mexico<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [https://scrive.com/gb/en Scrive] <br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [https://www.cee.siemens.com/web/at/en/csb/cvc/Pages/home.aspx Siemens Convergence Creators GmbH Austria]<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://www.signalicorp.com/index.htm Signali] Portland, Oregon<br />
<br />
<blockquote><br />
Signali Corp is a new custom hardware design company. Our chief products<br />
are custom IP cores targeted for embedded DSP and cryptographic<br />
applications. Our specialty is the design and implementation of<br />
computationally intensive, complex algorithms. The interfaces to each<br />
core are modular and can be very efficiently modified for your specific<br />
application. System-level integration and validation is crucial and is<br />
the majority of investment in a product.<br />
</blockquote><br />
<br />
* [http://www.soostone.com Soostone] New York, NY<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://www.standardchartered.com/home/en/index.html Standard Chartered]<br />
<br />
<blockquote><br />
Standard Chartered has a large group using Haskell for all aspects of its wholesale banking business.<br />
</blockquote><br />
<br />
* [http://www.stackbuilders.com Stack Builders]<br />
<br />
<blockquote><br />
Stack Builders is a software consultancy based in New York, with its largest office in Quito, Ecuador. They build web, mobile and real-time applications for clients in industries including the automotive industry, finance, and social media and marketing. They have assisted clients in multiple industries with both legacy and greenfield projects in Haskell.<br />
</blockquote><br />
<br />
* [http://www.starling-software.com/en/index.html Starling Software] Tokyo, Japan<br />
<blockquote><br />
Starling Software are developing a commercial automated options trading system <br />
in Haskell, and are migrating other parts of their software suite to<br />
Haskell.<br />
</blockquote><br />
<br />
::Starling Software's [http://www.starling-software.com/misc/icfp-2009-cjs.pdf experience building real time trading systems in Haskell] <br />
<br />
<br />
* [http://www.sensor-sense.nl Sensor Sense] Nijmegen, The Netherlands<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
:: 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]<br />
<br />
* [http://www.silk.co Silk] Amsterdam, The Netherlands<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
:: Silk's blog on [http://engineering.silk.co/post/31920990633/why-we-use-haskell/ why they use Haskell]<br />
:: A [http://thenextweb.com/eu/2011/04/28/filter-and-visualize-data-in-seconds-with-silk/ review of Silk]<br />
<br />
* [http://skedge.me/ Skedge Me]<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
:: See more in their [http://cufp.org/conference/sessions/2013/ryan-trinkle-skedgeme-enterprise-appointment-sched CUFP talk]<br />
:: See their 2014 [http://functionaljobs.com/jobs/8712-haskell-developer-at-skedgeme job advertisement]<br />
<br />
* [http://www.suite-sol.com/ Suite Solutions]<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://www.sumall.com/ SumAll] New York, New York<br />
<blockquote><br />
SumAll aggregates various public streams of data such as various social network data into useful analytics, reports and insights. We are in process of rewriting our entire data-processing backend in Haskell. What attracted us to the language is its disciplined and uncompromising approach to solving hard problems and managing complexity. We truly believe that the language and ecosystem is ready for prime time and will give us competitive advantage in the industry. <br />
</blockquote><br />
<br />
* [http://www.tabula.com/ Tabula.com]<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
* [http://tsurucapital.com Tsuru Capital] Tokyo, Japan<br />
<blockquote><br />
Tsuru Capital is operating an automated options trading system written in Haskell.<br />
</blockquote><br />
<br />
::[http://haskell.org/communities/05-2010/html/report.html#sect7.6 Tsuru Capital's HCAR submission]<br />
<br />
* [http://tupil.com/ Tupil] Utrecht, The Netherlands<br />
<br />
<blockquote><br />
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.<br />
</blockquote><br />
<br />
:: Tupil's experience building [http://blog.tupil.com/building-commercial-haskell-applications/ commercial web apps in Haskell]<br />
<br />
* [http://www.wagonhq.com Wagon] San Francisco, California<br />
<br />
<blockquote><br />
Wagon is a modern SQL editor: a better way for analysts and engineers to write queries, visualize results, and share data & charts.<br />
</blockquote><br />
<br />
::We’re a team of functional programmers writing apps and services in Haskell (and Javascript). We love to teach and learn functional programming; our team is humble, hard working, and fun. Read our engineering blog to learn more about our [http://www.wagonhq.com/blog/engineering-at-wagon stack], how we combine [http://www.wagonhq.com/blog/electron-at-wagon Haskell, React, and Electron], and what it’s like [http://www.wagonhq.com/blog/first-two-weeks-haskell-wagon working at a Haskell-powered startup].<br />
<br />
::We're hiring Haskell engineers based in San Francisco, [http://www.wagonhq.com/jobs learn more about the roles and our team]!<br />
<br />
* [http://weedreporter.com Weedreporter] <br />
<br />
<blockquote><br />
Weedreporter.com is a news site in the up and coming cannabis industry, featuring news stories from around the world and USA. This includes news stories about legalization and medical Marijuana. The site is built using Haskell and Postgres. Haskell has allowed us to build a site with fast load times.<br />
</blockquote><br />
<br />
<br />
If you're using Haskell commercially, please add your details here.<br />
<br />
== The Industrial Haskell Group ==<br />
<br />
The [http://industry.haskell.org/ Industrial Haskell Group (IHG)] is an organisation to support the needs of commercial users of the Haskell programming language. <br />
<br />
== Jobs and recruitment ==<br />
<br />
[[Jobs|Haskell jobs]] on the HaskellWiki.<br />
<br />
[http://www.haskellers.com/jobs Jobs at Haskellers.com].<br />
<br />
== Consultants ==<br />
<br />
[[Consultants]]<br />
<br />
== Commercial Users of Functional Programming Workshop ==<br />
<br />
[http://www.galois.com/cufp/ Commercial Users of Functional Programming]<br />
<br />
The goal of [http://www.galois.com/cufp/ CUFP] is to build a community<br />
for users of functional programming languages and technology, be they<br />
using functional languages in their professional lives, in an open<br />
source project (other than implementation of functional languages), as a<br />
hobby, or any combination thereof. In short: anyone who uses functional<br />
programming as a means, but not an end.<br />
<br />
[[Category:Community]]</div>Zarkhttps://wiki.haskell.org/index.php?title=Haskell_in_practice&diff=61254Haskell in practice2016-10-29T01:06:01Z<p>Zark: </p>
<hr />
<div>[[Category:Applications]]<br />
''This page is obsolete. More up to date content may be found here:''<br />
<br />
* [[Haskell in industry]]<br />
* [http://cufp.galois.com/ Commercial Users of Functional Programming]<br />
* [http://hackage.haskell.org Haskell library database]<br />
* [[Libraries_and_tools|Applications written in Haskell]]<br />
* [[Tutorials#Comparisons_to_other_languages|Language comparisons]]<br />
* [http://book.realworldhaskell.org/ Real World Haskell, the book]<br />
== Applications Written in Haskell ==<br />
<br />
Haskell is a general purpose programming language, and many, many<br />
applications have been written in it. The following free Haskell<br />
programs may serve as examples for constructing large applications in<br />
Haskell. Many more examples can be found in the <br />
[[Compilers and interpreters]] and [[Libraries and tools]] pages. <br />
A great many more Haskell projects are documented in the <br />
[http://haskell.org/communities/ community reports] and in the archives of the [[Haskell Weekly News]].<br />
<br />
<DL><DT>[http://www.cs.bell-labs.com/~wadler/realworld/index.html "Real World Applications of Functional Programming"]<DD>Wadler's page on the subject mentions several large applications written in Haskell<br />
([http://www.cs.bell-labs.com/~wadler/realworld/era.html Equational Reasoning Assistant] (see [[Haskell Equational Reasoning Assistant]]),<br />
[http://www.cs.bell-labs.com/~wadler/realworld/speechrec.html Mitre Speech Recognition System] <!-- Copyright owned by MITRE and under an open-source but not Free license; further, the Yale server containing the source is just gone. --><br />
[http://www.cs.bell-labs.com/~wadler/realworld/natlangproc.html the LOLITA Natural Language Processing System] (abandoned in 2000), etc.)<br />
<dt>[http://www.pugscode.org/ Pugs]<br />
<dd>An implementation of Perl6. <!-- Very complex build; the libraries are now up-to-date, but Pugs itself requires some difficult changes. --><br />
<dt>[http://www.geocities.jp/takascience/haskell/monadius_en.html Monadius] <br />
<dd>A shoot 'em up game using OpenGL. Takayuki Muranushi also wrote a [http://www.geocities.jp/takascience/index_en.html couple of other games] in Haskell. <!-- Uploaded. --><br />
<dt>[http://www.haskell.org/docon DoCon], the Algebraic Domain Constructor<br />
<dd>The DoCon computer algebra system implements a good-sized piece of commutative algebra.<br />
One of the project aims is to test the efficiency of a real-world CA <br />
system based on pure functionality and "lazy" computation. <!-- Nonfree --><br />
<dt>[http://www.haskell.org/dumatel Dumatel], a prover based on equational reasoning<br />
<dd>This is a study in combining Computer algebra, Term rewriting and Automatic proofs. The system is presented as a library of Haskell functions. <!-- Nonfree. --><br />
<dt>[http://postmaster.cryp.to/ Postmaster] and [http://dietadukana.eblog.pl/ Dukan]<br />
<dd>A mail transport agent (MTA) written in Haskell. The primary focus of the project is to provide an MTA that's a lot more flexible than the current implementations, in particular when it comes to implementing junk mail countermeasures. <!-- Uploaded. --><br />
<dt>[http://www.flippac.org/projects/flippi/ Flippi]<br />
<dd>A simple and lightweight Wiki clone written in plain Haskell 98 using the hierarchical libraries. There is a [http://www.scannedinavian.org/cgi-bin/flippi/flippi running trial copy].</dd> <!-- Currently down. --><br />
<DT>[http://www.cs.waikato.ac.nz/Research/fm/amuzed.html AMuZed and ZooM]<br />
<DD><br />
AMuZed is a graphical editing tool for the creation of mu-charts or microcharts. mu-charts consist of the 'well-defined' part of the Statecharts found in UML -- in that they have a semantics and, via the Z translation, a logic too. ZooM is a tool which takes the .muz file output of a created chart from AMuZed and generates a series of .tex files which contain the Z specification for that chart.</DD><br />
<dt>[http://www.cs.chalmers.se/~koen/paradox/ Paradox]<br />
<dd>A tool that processes first-order logic problems and tries to find finite-domain models for them. <br />
<dt>[http://freshmeat.net/projects/checkrdf/ CheckRDF]<br />
<dd>A tool for downloading RDF site summaries and showing news in a text file and in an HTML file. <br />
<dt>[[Darcs]][http://abridgegame.org/darcs/]<dd>David's Advanced Revision Control System is yet another replacement for CVS. It is written in Haskell, and has been tested on Linux and MacOS X. darcs includes a cgi script, which can be used to view the contents of your repository. <!-- Darcs is adequately maintained; besides, it would be very difficult to Cabalize it in a way as portable as the current hacked-up Autotools setup. --><br />
<DT>[http://www.cs.bris.ac.uk/~tweed/haskprog.html David Tweeds Haskell Programs]<DD>Currently David offers a LaTeX preprocessor.<br />
<dt>[http://www.cs.chalmers.se/~markus/fstStudio/ FstStudio]<dd>An application for construction and running of finite state transducers. <!-- Uploaded. --><br />
<dt>[http://www.informatik.uni-bremen.de/~cxl/haskell-in-space/ Haskell in Space]<dd>An asteroids-like game. <!-- Uploaded. --><br />
<DT>[http://www.ki.informatik.uni-frankfurt.de/~klose/ A Haskell Compiler Front-End ]<DD>This is a stand alone version of a compiler front-end, which was built by Norbert Klose as part of his master's thesis and which is described in detail there. See also his Lucky parser[http://www.ki.informatik.uni-frankfurt.de/~klose/lucky-manual/deutsch/node12.html] <!-- Lucky seems like it could be brought up to date, but not by me - I don't understand MonadZero and MonadPlus. --><br />
<dt>[http://lsi.uniovi.es/~labra/LPS/LPS.html LPS: Language Prototyping System] <dd>A project that uses Haskell to build interpreters from monadic semantic descriptions.</dd> <!-- No dice. Endless dodgy use of extensions, and more recent GHCs seem to be stricter about deuplicate instances, so building it seems to be nigh-impossible. I've emailed the authors, though. --><br />
<dt>[http://www.cs.utah.edu/flux/alchemy/ Knit]<dd>Knit is a component definition and linking language for systems programming based on the Unit component programming model. Knit lets you turn ordinary C code (e.g., bits of the Linux kernel) into components and link them together to build new programs. Since the freedom to do new things brings with it the freedom to make new errors, Knit provides a simple constraint system to catch component configuration errors. Knit also provides a cross-component inliner and schedules initialization and finalization of components.<br />
<br>Knit is released under a BSD-style license, is written in Haskell (and a little C) and includes a C parser and pretty-printer. A useful little utility included in the distribution is a tool for renaming symbols in ELF-format object files.<br />
<br>The current Knit release acts post-compilation: we compile C code as normal and then rename symbols in object files before linking. We are rewriting Knit to act pre-compilation: manipulating the source code before compilation. This will bring the much needed ability to import and export types from modules.<br />
<dt>[http://www.haskell.org/~petersen/haskell/linkchk/ linkchk]<dd>A heart-beat monitor for local network links for Linux.<br />
<DT>[http://www.cs.uu.nl/wiki/bin/view/HUT/AttributeGrammarSystem Utrecht Attribute Grammar System]<DD> We have used this attribute grammars sytem in the construction of our haskell compilers. It has proven to be an indispendable tool in keeping the various aspects apart.<br />
<dt>[http://www24.brinkster.com/srineet/para/para.html Paratrooper]<dd>A simple action game; see also his [http://www24.brinkster.com/srineet/plot4/plot4.html Plot4], a clone of ''Connect Four''. <!-- The two are definitely fixable, but license status is unclear. I've emailed the author about it. --><br />
<DT>[http://www.dtek.chalmers.se/~d95jowi/quakehaskell/index.html Quake Haskell] (for the source, see [[:Image:Quake.tar.gz]]) <!-- Way too hard to update or package, because of the C engine. But the source is preserved here, so mark this one done. --><br />
<DT>[http://www-i2.informatik.rwth-aachen.de/Forschung/MCS/Truth/ Truth]<DD><br />
Truth is a platform for the verification of distributed systems. <!-- Nonfree license. --><br />
<dt>[http://web.archive.org/web/20060623041418/http://www.reid-consulting-uk.ltd.uk/alastair/publications/acp4is03/index.html TSL][http://www.reid-consulting-uk.ltd.uk/alastair/publications/acp4is03/index.html] <dd>TSL is a language for describing hierarchies of schedulers and reasoning about what kinds of locks can legally be used at each level and what race conditions those locks can prevent. <!-- Site is down, source not mentioned. --><br />
<dt>[http://www.kfunigraz.ac.at/imawww/thaller/wolfgang/vop-intro.html VOP - Vision of Persistance]<dd>VOP is a program that parses [http://www.povray.org POV-Ray] scene description files and renders them using OpenGL. <!-- Nonfree. --><br />
<dt>[http://www.haskell.org/~simonmar/bib.html A Web Server written in Haskell]<dd> It has been extended to produce [http://sourceforge.net/forum/forum.php?forum_id=253134 HWS-WP], the [http://www.mdstud.chalmers.se/~md9ms/hws-wp/ Haskell Web Server With Plugins]. <!-- A better version is up on Hackage as 'mohws'. --><br />
<dt>[http://homepages.cwi.nl/~tromp/cl/cl.html Interpreters for lambda calculus and combinatory logic].</dd><br />
<dt>[[Lambdabot]]<dd>A large IRC bot, dynamically extensible via plugins.<br />
<dt>[[Frag]]<dd>A first person 3D game written in Haskell.<br />
<dt>[https://github.com/yi-editor/yi Yi]<dd> An extensible text editor, reminiscent of vim.<br />
<dt>[http://www.cse.unsw.edu.au/~dons/hmp3.html hmp3]<dd> A curses-based mp3 player.<br />
<dt>[[Hoogle]]<dd>A Haskell API search engine<br />
<dt>[https://play.google.com/store/apps/details?id=uk.co.keera.games.magiccookies Magic Cookies!]<dd>A commercial Android game using SDL2 multimedia written in the FRP flavour Yampa.<br />
<dt>[http://github.com/ivanperez-keera/haskanoid Haskanoid]<dd>A breakout game with Kinect and Wiimote support, SDL multimedia, written in the FRP DSL Yampa.<br />
<dt>[http://liftedsoftware.com/rHSWiki JSON Class Generator]<dd>A Mac application that allows the user to define classes and enums in an editor and provides the ability to generate Objective-C source code for them, that contain functions for serializing/deserializing to/from JSON.<br />
</DL><br />
<br />
See also [[Libraries and tools]] and the [http://www.galois.com/cufp/ Commercial Users of Functional Programming] workshop.<br />
<br />
==Embedded Domain Specific Languages==<br />
<br />
Haskell has become quite popular for the development of domain specific languages. Instead of implementing an interpreter or compiler in Haskell, Haskell is enriched by libraries for domain specific data types and functions, that turn Haskell into a domain specific language, for example for describing music, pictures, animations or hardware. Even parsing combinators can be understood as domain specific languages. These embedded languages are filed as [[Libraries and tools|libraries and tools]].<br />
<br />
<br />
==Reports on Experiences with Haskell==<br />
<br />
* [http://research.microsoft.com/Users/simonpj/#contracts-icfp Composing contracts: an adventure in financial engineering] by Simon Peyton Jones, Jean-Marc Eber, Julian Seward. ICFP 2000. <br />
<blockquote><br />
Financial and insurance contracts do not sound like promising territory<br />
for functional programming and formal semantics, but in fact we have<br />
discovered that insights from programming languages bear directly on the<br />
complex subject of describing and valuing a large class of contracts. <br />
<br />
We introduce a combinator library that allows us to describe such<br />
contracts precisely, and a compositional denotational semantics that<br />
says what such contracts are worth. We sketch an implementation of our<br />
combinator library in Haskell. Interestingly, lazy evaluation plays a<br />
crucial role. <br />
<br />
See also [http://web.archive.org/web/20020215005912/http://www.risk.net/riskawards2001/softwareproduct.htm this article in the Risk Magazine],<br />
a journal of the financial engineering industry. <br />
</blockquote><br />
<br />
* [http://www.cs.yale.edu/publications/techreports/tr1049.pdf Haskell vs. Ada vs. C++ vs. Awk vs. ..., An Experiment in Software Prototyping Productivity] by Paul Hudak and Mark P. Jones, 16 pages.<br> Description of the results of an experiment in which several conventional programming languages, together with the functional language Haskell, were used to prototype a Naval Surface Warfare Center requirement for Geometric Region Servers. The resulting programs and development metrics were reviewed by a committee chosen by the US Navy. <p> The results indicate that the Haskell prototype took significantly less time to develop and was considerably more concise and easier to understand than the corresponding prototypes written in several different imperative languages, including Ada and C++. <br />
<br />
* [ftp://ftp.wins.uva.nl/pub/computersystems/functional/reports/JFP_pseudoknotI.ps.Z Benchmarking implementations of functional languages with ''pseudoknot'', a Float-Intensive benchmark] by P. H. Hartel, M. Feeley, M. Alt, L. Augustsson, P. Baumann, M. Beemster, E. Chailloux,C. H. Flood, W. Grieskamp, J. H. G. van Groningen, K. Hammond, B. Hausman, M. Y. Ivory, R. E. Jones, J. Kamperman, P. Lee, X. Leroy, R. D. Lins, S. Loosemore, N. R&ouml;jemo, M. Serrano, J.-P. Talpin, J. Thackray, S. Thomas, P. Walters, P. Weis, and P. Wentworth. ''J. Functional Programming'', 6(4):621--655, Jul 1996.<br />
<br />
* [http://shootout.alioth.debian.org/ The Great Computer Language Shootout]<br>Comparative benchmarks of a number of different languages and compilers, including Haskell with GHC. GHC has often lead the pack, with frequent 1st places in 2006; as of February 2008, it ranks somewhere around 6th or 7th place, with the closely related language Clean ~3 places up.<br />
* Colin Runciman and David Wakeling (ed.): <EM>Applications of Functional Programming</EM>, UCL Press, 1995, ISBN 1-85728-377-5 HB.<br> From the cover: <blockquote> This book is unique in showcasing real, non-trivial applications of functional programming using the Haskell language. It presents state-of-the-art work from the FLARE project and will be an invaluable resource for advanced study, research and implementation. </blockquote><br />
<br />
* [http://www.osl.iu.edu/publications/prints/2003/comparing_generic_programming03.pdf A Comparative Study of Language Support for Generic Programming] Ronald Garcia, Jaakko Jrvi, Andrew Lumsdaine, Jeremy G. Siek, and Jeremiah Willcock. In Proceedings of the 2003 ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications (OOPSLA'03), October 2003. <br> An interesting comparison of generic programming support across languages, including: Haskell, SML, C++, Java, C#. Haskell supports all constructs described in the paper -- the only language to do so.</div>Zarkhttps://wiki.haskell.org/index.php?title=Mac_OS_X&diff=45335Mac OS X2012-04-20T12:18:33Z<p>Zark: /* Mac OS X 10.6 (Snow Leopard) and 10.7 (Lion) */</p>
<hr />
<div>There is also now the [[Mac OS X Strike Force]] that aims to improve using Haskell on OS X.<br />
<br />
== The Haskell Platform ==<br />
<br />
There are Mac OS X installers of the full Haskell Platform development environment. We recommend it:<br />
<br />
[http://haskell.org/platform/ http://haskell.org/platform/icons/button-100.png]<br />
<br />
== GHC ==<br />
<br />
==== Important notes ====<br />
<br />
To get the most out of your GHC environment, you should add '~/.cabal/bin' to your PATH environment variable before the path where you have GHC installed. This will allow you to get and use cabal-updates, as well as other programs shipped with GHC like hsc2hs.<br />
<br />
In your ~/.profile, add the line:<br />
<br />
<code>export PATH="~/.cabal/bin:$PATH";</code><br />
<br />
<br />
=== Mac OS X 10.5 (Leopard) ===<br />
<br />
To install GHC on Mac OS X 10.5 (Leopard), there are the following options:<br />
* install the [http://hackage.haskell.org/platform/ Haskell Platform]<br />
* install [http://www.macports.org MacPort]'s [http://trac.macports.org/browser/trunk/dports/lang/ghc/Portfile ghc] package<br />
<br />
=== Mac OS X 10.6 (Snow Leopard) and 10.7 (Lion) ===<br />
<br />
* Install the [http://hackage.haskell.org/platform/ Haskell Platform]<br />
<br />
To uninstall ghc call:<br />
<code><br />
sudo /Library/Frameworks/GHC.framework/Versions/Current/Tools/Uninstaller<br />
</code><br />
<br />
=== Xcode 4.1 ===<br />
<br />
GHC needs Xcode to be installed so it has access to the bintools, headers, and link libraries of the platform. The later two are provided by the SDK that comes as part of Xcode. GHC 7.0.2 is compiled against the 10.5 SDK. Xcode 4.1 no longer ships with it. <tt>ghci</tt> will work, but linking and some compiles with <ghc> will not. To make those work you need a copy of the 10.5 SDK. You can get this one several ways:<br />
<br />
* Before you install Xcode 4.1, if you have Xcode 3.2 installed, do one of the following:<br />
** Move it aside (renaming <tt>/Developer</tt> to <tt>/Xcode3.2</tt>)<br />
** Move just the sdk aside (moving <tt>/Developer/SDKs/MacOSX10.5.sdk</tt> to, say, <tt>/ExtraSDKs/MacOSX10.5.sdk</tt>)<br />
** Move just the sdk aside, install Xcode 4.1, then move it back into the <tt>/Developer/SDKs</tt> directory.<br />
* If you don't have Xcode 3.2, then you can download it from the Apple Developer site, and install it in a location other than "/Developer". If you have already installed Xcode 4.1 ''be sure'' that you customized the install and don't install the "System Tools" or "UNIX Development" packages.<br />
<br />
Building via GHC:<br />
ghc --make -I{loc}/MacOSX10.5.sdk/usr/include/ -L{loc}/MacOSX10.5.sdk/usr/lib<br />
<br />
Building via cabal:<br />
cabal --extra-include-dirs={loc}/MacOSX10.5.sdk/usr/include/ --extra-lib-dirs={loc}/MacOSX10.5.sdk/usr/lib<br />
<br />
Replace <tt>{loc}</tt> with wherever you put the SDK.<br />
<br />
== HUGS ==<br />
<br />
* install [http://www.macports.org MacPort]'s [http://trac.macports.org/browser/trunk/dports/lang/hugs98/Portfile hugs98] package.<br />
<br />
<br />
== Installing libraries with external C bindings ==<br />
<br />
Haskell libraries are installed with the <code>cabal</code> command line tool.<br />
<br />
Some libraries depend on external C libraries, which are best installed with [http://macports.org MacPorts]. However, you have to tell cabal to include the <code>/opt/local/</code> directories when searching for external libraries. The following shell script does that by wrapping the <code>cabal</code> utility<br />
<br />
> cat cabal-macports<br />
#!/bin/bash<br />
export CPPFLAGS=-I/opt/local/include<br />
export LDFLAGS=-L/opt/local/lib<br />
cabal $@ --extra-include-dirs=/opt/local/include \<br />
--extra-lib-dirs=/opt/local/lib<br />
<br />
> cabal-macports install foobar<br />
<br />
== Editors with Haskell support ==<br />
<br />
=== Open Source ===<br />
<br />
* [http://aquamacs.org/ AquaMacs], a graphical Emacs version<br />
* [http://eclipsefp.sourceforge.net/ Eclipse] with the [[EclipseFP]] plugin. See [[EclipseOn_Mac_OS_X]]<br />
* [http://www.gnu.org/software/emacs/ Emacs], is installed on every Mac<br />
* [http://leksah.org/ Leksah]<br />
* [http://code.google.com/p/macvim/ MacVim], a graphical Vim version<br />
* [http://www.vim.org/ Vim], is installed on every Mac<br />
* [http://haskell.org/haskellwiki/Yi Yi] (written in Haskell itself!), is available through cabal-install<br />
<br />
=== Commercial ===<br />
<br />
[http://www.codingmonkeys.de/subethaedit/ SubEthaEdit]:<br />
<br />
[[Image:SubEthaEdit.png]]<br />
<br />
[http://macromates.com/ TextMate]:<br />
<br />
[[Image:TextMate.png]]<br />
<br />
and [http://tuppis.com/smultron/ Smultron]:<br />
<br />
[[Image:Smultron.png]]<br />
<br />
TextEdit is Mac's default text editor, a very basic editor that works fine for most uses, you must however be careful to put it into plain text mode using the Format menu.<br />
<br />
== Shipping Installable Haskell Applications ==<br />
<br />
* [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/mkbndl mkbndl] builds installable Mac OSX applications from your Haskell project.<br />
<br />
== Links ==<br />
* [[Using Haskell in an Xcode Cocoa project]]; a description of how to add a Haskell module (callable from C) to an Xcode/Cocoa/Interface builder project on your Mac.<br />
* [[Mac OS X Common Installation Paths]]: an effort to standardize where things go on a Mac OS X installation<br />
[[Category:OS]]</div>Zarkhttps://wiki.haskell.org/index.php?title=Gtk2Hs&diff=38952Gtk2Hs2011-03-10T16:35:52Z<p>Zark: /* Mac OS X */</p>
<hr />
<div>[[Category:User interfaces]]<br />
== What is it? ==<br />
<br />
Gtk2Hs is a Haskell binding to Gtk+ 2.x.<br />
Using it, one can write Gtk+ based applications with GHC.<br />
<br />
== Homepage ==<br />
<br />
http://haskell.org/gtk2hs/<br />
<br />
== Tutorials and Demos ==<br />
<br />
http://www.haskell.org/haskellwiki/Gtk2Hs/Tutorials<br />
<br />
Some demonstration programs can be found at:<br />
http://code.haskell.org/gtk2hs/gio/demo/<br />
http://code.haskell.org/gtk2hs/pango/demo/<br />
http://code.haskell.org/gtk2hs/cairo/demo/<br />
http://code.haskell.org/gtk2hs/gtk/demo/<br />
<br />
== Status ==<br />
<br />
It currently works with Gtk+ 2.0 through to 2.22 on Unix, Win32 and MacOS X.<br />
Details please check : http://www.gtk.org/language-bindings.html<br />
<br />
It currently builds with ghc 5.04.3 through to 7.xx.x (6.12.2 have runtime bug, don't use it)<br />
<br />
== Installation Notes ==<br />
=== Windows 7 32 bit ===<br />
==== Changing Environment Variables ====<br />
This installation process involves adding/modifying environment variables. The rest of this subtopic shows you how to do that in Windows.<br />
* Using the Environment Variable GUI<br />
** Click to the Windows symbol on the bottom-left where "Start" used to be<br />
** Right-Click on "Computer", choose "Properties" and click the link for "Advanced System Settings"<br />
** In the *top* window, Click "New" add a variable or click "Edit" to modify an existing one.<br />
** The variable should be a ';' seperated list of directories.<br />
* At the DOS prompt<br />
** To see the current value of variable VAR:<br />
> echo %VAR%<br />
** To modify variable VAR:<br />
> set VAR=%VAR%;dir1;dir2 ...<br />
** To create variable VAR:<br />
> set VAR=dir1;dir2....<br />
==== Install Haskell Platform and MingW ====<br />
* Install the [http://hackage.haskell.org/platform/windows.html Haskell Platform] for Windows.<br />
* Optional : Install [http://mingw.org MinGW] as per the instructions on their web site. Also install MSYS and mingw-make. A version of MinGW does come with Haskell Platform but excludes MSYS and 'make'.<br />
==== Install libxml ====<br />
* Download and unzip the latest libxml2 and libxml2-dev archives from [http://ftp.gnome.org/pub/GNOME/binaries/win32/dependencies/ Gnome]. <br />
* To the PKG_CONFIG_PATH environment variable add the 'pkgconfig' directory in libxml2-dev.<br />
* To the INCLUDE environment variable add the path to the 'include' directory from libxml2-dev.<br />
<br />
==== Install the GTK/Glade bundle ====<br />
* Download and install the [http://ftp.gnome.org/pub/GNOME/binaries/win32/glade3/3.6/glade3-3.6.7-with-GTK+.exe bundled GTK and Glade binary].<br />
* To the PKG_CONFIG_PATH environment variable add the 'pkgconfig' directory. The default path should be "C:\Program Files\Gtk+\lib\pkgconfig".<br />
* To the INCLUDE environment variable add the 'libglade-2.0' directory. The default path should be "C:\Program Files\Gtk+\include\libglade-2.0".<br />
==== Install the Haskell bindings ====<br />
* At the DOS prompt run 'cabal install gtk2hs-buildtools'. <br />
* At the DOS prompt run 'cabal install gtk'. Make sure you have at least 1.5 GB RAM otherwise this compilation will die.<br />
* At the DOS prompt run 'cabal install glade'.<br />
==== Test the GTK install ====<br />
* In some appropriate temporary directory run 'cabal unpack gtk'. This downloads and unpacks the Haskell sources. <br />
** Run the demos (using mingw-make)<br />
*** If you installed MinGW then in the 'demo' directory, navigate into the 'hello' directory and run mingw32-make.exe. Now run the executable that was created.<br />
** Run the demos (manual compilation)<br />
*** In the 'demo' directory, navigate into the 'hello' directory and run 'ghc --make World.hs -o helloworld.exe'. Now run the executable that was created.<br />
==== Test the Glade install ====<br />
* In some appropriate temporary directory run 'cabal unpack glade'. This downloads and unpacks the Haskell sources. <br />
** Run the demos (using mingw-make)<br />
*** If you installed MinGW then in the 'demo' directory, navigate into the 'gladetest' directory and run mingw32-make.exe. Now run the executable that was created.<br />
** Run the demos (manual compilation)<br />
*** In the 'demo' directory, navigate into the 'gladetest' directory and run 'ghc --make GladeTest.hs -o gladetest.exe'. Now run the executable that was created.<br />
<br />
==== Common Errors ====<br />
* Glade.h is not found<br />
gtk2hsC2hs.exe : glade/glade.h: File does not exist<br />
Probably instead of installing the GTK/Glade bundle you installed them seperately. The GTK/Glade bundle comes with the "include/libglade-2.0" containing a number of header files. For some reason this directory is not included in stand-alone GTK and Glade installers. Install the bundle and add this directory to the INCLUDE environment variable.<br />
* Cabal cannot find gtk2hsC2hs.<br />
Please install gtk2hs-buildtools' first and check <br />
that the installdirectory is in your PATH (e.g. HOME/.cabal/bin). <br />
cabal: Error: some packages failed to install<br />
Somehow the path to the cabal bin directory has been lost. To the PATH environment variable re-add the cabal bin directory. The default path should be "%USERPROFILE%\AppData\Roaming\cabal\bin".<br />
* Spinner error with the 'notebook' demo<br />
Running the 'notebook' demo in the GTK install gives:<br />
[1 of 1] Compiling Main ( Notebook.hs, Notebook.o )<br />
Notebook.hs:14:35:<br />
Not in scope: type constructor or class `Spinner'<br />
Notebook.hs:78:13: Not in scope: `spinnerNew'<br />
Notebook.hs:101:2: Not in scope: `spinnerStart'<br />
Notebook.hs:109:2: Not in scope: `spinnerStop'<br />
mingw32-make: *** [notebook] Error 1<br />
This happens because this demo uses the new Spinner widget in GTK 2.22. Since this is not available in GTK 2.16 you get this error.<br />
<br />
=== Mac OS X ===<br />
<br />
==== The Quick-Guide for OS X 10.6, 64bit, MacPorts ====<br />
<br />
Setbacks: old ghc (6.10.4 as of 2011-03-10)<br />
<br />
* Install MacPorts (macports.org)<br />
* Add +universal to /opt/local/etc/macports/variants.conf (not needed on 32bit)<br />
* execute: sudo port install ghc gtk2 gvfs cairo librsvg libglade2 gtkglext gtksourceview2 && sudo port install gtk2hs -universal<br />
<br />
==== Using MacPorts and Snow Leopard ====<br />
<br />
This explains how to install Gtk2Hs-0.10.1 on Mac OS X 10.6 Snow Leopard, in combination with GTK+ from MacPorts.<br />
<br />
* Install the [http://hackage.haskell.org/platform/ Haskell Platform] for Mac<br />
* Download gtk2hs from [http://www.haskell.org/gtk2hs/ gtk2hs website] and untar it.<br />
* Install gtk, cairo, etc. from MacPorts like this (note that the +universal is needed; if you already installed gtk or one of its dependencies, it is recommended you reinstall those as detailed in the NB at the end of this section).<br />
:::sudo port install gtk +universal<br />
* go to the directory where gtk2hs is untarred and run<br />
:::./configure --disable-split-objs --disable-gio<br />
:::make<br />
:::sudo make install<br />
<br />
Alternatively, if you wish to follow the Mac OS X style of directory layout, you can use this configure command instead:<br />
:::./configure --with-pkgconf=/Users/username/.ghc/i386-darwin-6.10.4/package.conf --prefix=/Users/username/Library/Haskell/packages/gtk2hs --disable-split-objs --disable-gio<br />
<br />
Where username is your username ofcourse. Right now you should be able to run the demos. Unfortunately, to build any libraries depending on gtk2hs, such as [http://hackage.haskell.org/package/Chart/ Chart], you need to edit one more file. You will need to find "package.conf" for your ghc by doing<br />
:::ghc-pkg list<br />
In the output you will see the full directory to your package.conf file. In this file, you need to search for "gthread", and everywhere you can find it, add "/opt/local/lib" (with quotes) to the libraryDirs array before it.<br />
<br />
If all went well, it should be properly installed now.<br />
<br />
NB: If compiling fails with architecture errors for certain dynlibs, you need to reinstall the packages these dynlibs belong to with +universal by doing<br />
:::sudo port upgrade packagename --enforce-variants +universal<br />
Alternatively, and this is recommended, you can follow the steps on [http://passingcuriosity.com/2009/haskell-on-snow-leopard/ Haskell On Snow Leopard Blogpost] to immediately add the universal variant of each package:<br />
# Edit /opt/local/macports/variants.conf and add +universal to the end of this file<br />
# sudo port selfupdate <br />
# sudo port sync<br />
# sudo port upgrade --force-installed<br />
<br />
==== Using the GTK+ OS X Framework ====<br />
<br />
This explains how to install Gtk2Hs on Macs using the native [http://gtk-osx.sourceforge.net/ GTK+ OS X Framework], a port of GTK+ to the Mac that does '''not''' depend on X11, and hence, is better integrated into the Mac desktop - i.e., menus actually appear in the menu bar, where they belong. It also avoids the often tedious installation of GTK+ via MacPorts. However, it misses support for optional Gtk2Hs packages that are currently not supported by the [http://gtk-osx.sourceforge.net/ GTK+ OS X Framework], most notably support for Glade. It does include support for Cairo, though.<br />
<br />
Here is how to install the library:<br />
# Download and install [http://gtk-osx.sourceforge.net/ GTK+ OS X Framework] (this uses the standard Mac package installer).<br />
# Install [http://pkg-config.freedesktop.org/ pkg-config], either by compiling it from source or via MacPorts.<br />
# Download and unpack the Gtk2Hs tar ball from the [http://www.haskell.org/gtk2hs/download/ Gtk2Hs download page] (I tested 0.10.0).<br />
# Configure with (you may want to remove the two backslashes and put everything on one line)<br />
env PKG_CONFIG_PATH=/Library/Frameworks/Cairo.framework/Resources/dev/lib/pkgconfig:\ <br />
/Library/Frameworks/GLib.framework/Resources/dev/lib/pkgconfig:\ <br />
/Library/Frameworks/Gtk.framework/Resources/dev/lib/pkgconfig ./configure --disable-gio<br />
# Build with<br />
make<br />
# Install (to <tt>/usr/local/</tt> unless a <tt>--prefix</tt> option was passed to <tt>configure</tt>) with<br />
sudo make install<br />
<br />
The library is now registered with the package database of the GHC you used for compiling.<br />
<br />
NB: Thanks to Ross Mellgren for his post on the gtk2hs-users list that outlined the use of <tt>PKG_CONFIG_PATH</tt>.<br />
<br />
==== Article as of Mid 2008 ====<br />
Installing Gtk2Hs on Mac requires some finesse, at least until Haskell Libary Platform is built or ghc-6.8.3 is <br />
available in macports. (These are planned for late 2008.)<br />
<br />
* Install [http://macports.org MacPorts]<br />
* Install dependencies:<br />
sudo port install glade3 libglade2 gstreamer gst-plugins-base gtksourceview cairo librsvg gtkglext firefox<br />
* Update PKG_CONFIG_PATH (for libraries)<br />
export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/local/lib/pkgconfig:/opt/local/lib/pkgconfig<br />
* Update ghc to use macports libs: Edit your main <tt>ghc</tt> driver program and change the last line to:<br />
exec $GHCBIN $TOPDIROPT ${1+"$@"} -L/opt/local/lib -I/opt/local/include<br />
* Download Gtk2Hs following instructions at [http://www.haskell.org/gtk2hs/downloads/ Gtk2Hs Download page]<br />
* Check configuration:<br />
./configure --enable-docs --enable-profiling<br />
<br />
...<br />
<br />
**************************************************<br />
* Configuration completed successfully. <br />
* <br />
* The following packages will be built: <br />
* <br />
* glib : yes <br />
* gtk : yes <br />
* glade : yes <br />
* cairo : yes <br />
* svgcairo : yes <br />
* gtkglext : yes <br />
* gconf : yes <br />
* sourceview : yes <br />
* mozembed : yes <br />
* soegtk : yes <br />
* gnomevfs : yes <br />
* gstreamer : yes <br />
* documentation : yes <br />
* <br />
* Now do "(g)make" followed by "(g)make install"<br />
**************************************************<br />
* Build and Install:<br />
make <br />
sudo make install<br />
<br />
==== Recent experiences ====<br />
I successfully installed the latest version on Mac OS 10.5 by:<br />
* Installing Macports.<br />
* <tt>sudo port install ghc</tt><br />
* <tt>sudo port install gtk2hs</tt> - which does not complete successfully. It does however, install the appropriate dependencies. Note that there are so many, you may need to install a couple of times due to time outs etc.. The build of Gtk2HS will fail, but that is ok - continue as below. Also note that ghc configure will give up if your perl5.8 is not new enough, if so deactivate it and try again.<br />
* Remove the build directory under <tt>/opt/.../build/gtk2hs</tt><br />
* Download Gtk2Hs via darcs as per [http://haskell.org/gtk2hs/development/#darcs the gtk2hs download instructions]<br />
* do a <tt>sudo port install automake</tt><br />
* do a <tt>sudo port install alex</tt><br />
* do a <tt>sudo port install happy</tt> (Note this also fails and must be built from source. See the [[Happy]] page for details.)<br />
* Follow the build instructions on the [http://haskell.org/gtk2hs/development/#darcs the gtk2hs download page]. I would suggest using <tt>./configure --prefix=/opt/local</tt> to get it in the same place as ports - personal preference though.<br />
Good luck - as usual, your mileage may vary.<br />
<br />
== Demos ==<br />
<br />
=== OpenGL and Gtk2Hs ===<br />
<br />
[[Gtk2Hs/Demos/GtkGLext/hello.hs]]<br />
<br />
[[Gtk2Hs/Demos/GtkGLext/terrain.hs]] requires [[Gtk2Hs/Demos/GtkGLext/terrain.xpm]]<br />
<br />
==FAQs==<br />
These are links to FAQS on the main site.<br />
*[http://haskell.org/gtk2hs/archives/2005/06/23/hiding-the-console-on-windows/#more-26 Hiding the console on windows]<br />
*[http://haskell.org/gtk2hs/archives/2005/07/24/writing-multi-threaded-guis/#more-38 Writing multi-threaded GUIs]<br />
*[http://haskell.org/gtk2hs/archives/2005/06/24/building-from-source-on-windows/#more-15 Building on Windows]<br />
*[http://haskell.org/gtk2hs/development/#darcs Checkout instructions]. Also see [[Darcs]]<br />
<br />
[[Category:Applications]]</div>Zarkhttps://wiki.haskell.org/index.php?title=IPhone&diff=34869IPhone2010-05-29T12:35:33Z<p>Zark: typo</p>
<hr />
<div>= Collaborators =<br />
If you are working with Haskell and making iPhone apps, or if you intend to soon, please fill in your info below.<br />
By helping each other out, we can work more productively and have more fun.<br />
<br />
{|width="80%" border="1" cellpadding="2" cellspacing="0"<br />
|-<br />
!Name<br />
!Contact info<br />
!Haskell-fu (0-5)<br />
!iPhone-fu (0-5)<br />
!Have (to share)<br />
!Need<br />
!Intended iPhone apps<br />
|-<br />
| Conal Elliott<br />
| [http://conal.net Home], [http://conal.net/blog blog], [http://haskell.org/haskellwiki/User:Conal wiki user], [http://twitter.com/conal Twitter], [http://www.facebook.com/profile.php?id=685783314&ref=name Facebook], [http://www.linkedin.com/profile?&key=4476842 Linkedin], IRC: conal<br />
| 5<br />
| 0<br />
| Functional graphics & GUI, misc Haskell libs, design skills, iPhone basics<br />
| Haskell-to-iPhone compiler, tricky iPhone stuff<br />
| Interactive graphics toys<br />
|-<br />
| Chris Eidhof<br />
| [http://eidhof.nl Home], [http://tupil.com Tupil], [http://haskell.org/haskellwiki/User:ChrisEidhof wiki user], [http://twitter.com/chriseidhof Twitter], [http://www.linkedin.com/pub/chris-eidhof/3/b6/2b6 Linkedin], IRC: chr1s<br />
| 4<br />
| 3<br />
| iPhone experience, web programming experience, dependent types experience<br />
| Haskell-to-iPhone compiler (either as DSL or GHC Core -> iPhone)<br />
| Navigation-based apps (think of things like iTunes, Facebook, etc.), Games (maybe using a combination of FRP and something like arrowlets)<br />
|-<br />
| Daniel Peebles<br />
| [http://pumpkinpat.ch Home], [http://twitter.com/copumpkin Twitter]<br />
| 3<br />
| 4<br />
| Extensive iPhone platform knowledge<br />
| GHC cross-compiling to ARM Mach-O<br />
| Nothing in particular yet<br />
|-<br />
| John Meacham<br />
| [http://repetae.net Home], [http://notanumber.net/ blog]<br />
| -<br />
| -<br />
| Working Haskell to iPhone compiler (jhc)<br />
| Testers and Feedback to make cross compilation smoother. HOC integration with jhc.<br />
| Symbolic Algebra Application, Equation Editor<br />
|-<br />
| Eelco Lempsink<br />
| [http://eelco.lempsink.nl Home], [http://tupil.com Tupil], [http://haskell.org/haskellwiki/User:eelco wiki user], [http://twitter.com/eelco Twitter], [http://www.linkedin.com/in/lempsink Linkedin], IRC: eelco<br />
| 4<br />
| 3<br />
| iPhone and web experience<br />
| Haskell-to-iPhone with (Cocoa Touch) API intergration<br />
| Nothing in particular, looking for a good Haskell use-case :)<br />
|-<br />
| Bernd Brassel<br />
| [http://www-ps.informatik.uni-kiel.de/~bbr Home],[http://www.art2guide.com/index_en.html art2guide]<br />
| 5<br />
| 4<br />
| Haskell experience, iPhone developer<br />
| iPhone embedding into Haskell, good programmers<br />
| audio-visual guiding systems<br />
|-<br />
| Martin Kudlvasr<br />
| [http://trinpad.eu not exactly home],[http://www.linkedin.com/in/martinkudlvasr LinkedIn], irc: trin_cz, xmpp: trin@jabbim.cz<br />
| 3<br />
| 0<br />
| year of haskell experience in OpenGL and project euler<br />
| iPhone basics, Haskell-to-iPhone compiler<br />
| fascinated by reactive, game development<br />
|-<br />
| Sebastiaan Visser<br />
| [http://github.com/sebastiaanvisser Projects], [http://haskell.org/haskellwiki/User:Sebastiaan wiki user], [http://twitter.com/sfvisser Twitter]<br />
| 4<br />
| 0<br />
| Some experience/ideas about building EDSLs.<br />
| Deep EDSL Haskell-to-ObjectiveC, high-level to target GUI/animation. <br />
| Nothing in particular yet. Want to have objective C backend for [http://github.com/sebastiaanvisser/frp-js/tree/master this] EDSL.<br />
|-<br />
| Manuel Chakravarty<br />
| [http://www.cse.unsw.edu.au/~chak/ Home], [http://justtesting.org blog], [http://haskell.org/haskellwiki/User:chak wiki user], [http://twitter.com/TacticalGrace Twitter], [http://www.linkedin.com/in/manuelchakravarty LinkedIn], IRC: Chilli<br />
| 5<br />
| 2<br />
| Haskell EDSL & compiler know how; Objective-C and Cocoa Touch basics<br />
| Haskell tools for iphone dev<br />
| games & productivity apps<br />
|-<br />
| Ryan Trinkle<br />
| [http://haskell.org/haskellwiki/User:RyanT5000 wiki user], [http://twitter.com/ryant5000 Twitter], [http://facebook.com/ryant5000 Facebook], [http://www.linkedin.com/pub/ryan-trinkle/2/a74/9b3 LinkedIn], IRC/AIM: RyanT5000<br />
| 4<br />
| 3<br />
| GHC iPhone compilation (working, to be contributed to GHC soon)<br />
| Smart people<br />
| Games<br />
|-<br />
| Stephen Blackheath<br />
| [http://haskell.org/haskellwiki/User:Blackh wiki user], IRC: blackh, [http://blacksapphire.com/antispam/ email]<br />
| 4<br />
| 2<br />
| Working with Ryan Trinkle to release GHC iPhone compilation<br />
|<br />
| Games<br />
|-<br />
| Simon Marlow<br />
| [http://haskell.org/haskellwiki/User:Simonmar wiki user], [http://twitter.com/simonmar Twitter], IRC: JaffaCake<br />
| 5<br />
| 0<br />
| Happy to help with GHC porting issues: ask on #ghc<br />
| <br />
| <br />
|-<br />
| Simon Michael<br />
| [http://joyful.com home], [mailto:simon@joyful.com email], IRC: sm<br />
| 3<br />
| 1<br />
| hledger project, darcs/happstack/web dev/sysadmin experience<br />
|<br />
|<br />
|-<br />
| Max Weisel<br />
| [http://maxweisel.com Home], [http://twitter.com/mxweas Twitter], IRC:mxweas<br />
| 3<br />
| 5<br />
| Ample Toolchain/SDK development knowledge & experience.<br />
|<br />
|<br />
|-<br />
| Sung Yoon<br />
| [http://www.bamsom.com Home]<br />
| 1<br />
| 4 <br />
| iPhone App development<br />
|<br />
| Games, interactive graphics/sound apps<br />
|-<br />
| Jonathan Fischoff<br />
| [http://www.linkedin.com/pub/jonathan-fischoff/2/9b/a60 LinkedIn], [http://www.facebook.com/jfischoff?ref=profile Facebook], [http://haskell.org/haskellwiki/User:JonathanFischoff wiki user], IRC: jfischoff<br />
| 1<br />
| 1 <br />
| Game engines. Art asset pipelines. <br />
|<br />
| Games, graphics toys<br />
|-<br />
| Lyndon Tremblay<br />
| [http://www.hoovy.org Home], [http://www.facebook.com/humasect?ref=profile Facebook], [http://haskell.org/haskellwiki/User:humasect wiki user], [http://www.twitter.com/humasect Twitter], IRC: whomasect/humasect/Sitting<br />
| 4<br />
| 5<br />
| Experienced mac/iphone/haskell/gnu developer. Maintaining and clean GL and AL wrappers, and cleaner ObjC integration which allows to develop Cocoa apps. (can provide and also port to iPhone), and defunct Xcode haskell plugin considered to be rewritten.<br />
| Haskell-to-iPhone compiler, tricky iPhone stuff, GHCi<br />
| Games, roguelike, scrolling shooter - Realtime game and procedural development visualization engines and environment, animation and music apps<br />
|-}<br />
<br />
There are at least two ways to use Haskell to make iPhone apps.<br />
One is having a Haskell-to-iPhone compiler, which would probably cross-compile from another host environment (probably Mac OS X).<br />
Another way is to write Haskell programs that ''generate'' iPhone-compatible code when run (rather than when compiled), based on an embedded DSL, similarly to [http://conal.net/papers/jfp-saig/ ''Compiling Embedded Languages''].<br />
<br />
= Resources =<br />
<br />
* [http://iphoneideas.tumblr.com/ Free iPhone ideas] (blog by Chris Eidhof)<br />
* [http://hoc.sourceforge.net/ HOC Haskell to Objective-C binding]<br />
* [http://github.com/thetrutz/objc4hs objc4hs] Objective-C Classes for Haskell Programmers (with primary focus on the iPhone SDK)<br />
* [http://github.com/sebastiaanvisser/frp-js/tree/master Reactive DSL currently with JS backend]. We might be working on Objective-C backend during Hack-ɸ.<br />
* Stanford course: [http://www.stanford.edu/class/cs193p/ iPhone Application Programming], with online notes, code, and lecture video.<br />
* [http://hackage.haskell.org/trac/ghc/wiki/ObjectiveC Haskell Objective-C FFI proposal] (work-in-progress)<br />
* [http://www.haskell.org/mailman/listinfo/iphone Haskell-iPhone Mailinglist] (iphone at haskell.org)<br />
<br />
= GHC as a cross compiler =<br />
Now that GHC can be used as a cross compiler again we should document what is left in getting GHC to compile apps for the iPhone.<br />
<br />
# Can the RTS be ported to the iPhone?<br />
## How much work is this?<br />
### iPhone OS is mostly a vanilla OS X, running on ARM. Syscall numbers, the object format, and the kinds of things that are available on it are all pretty much the same as OS X. The main difference is the architecture. Word size etc. are mostly the same as other platforms that are already supported, so I don't think much more is needed for an unregistered built, at least.<br />
<br />
# Do apps have to be signed in some way?<br />
## Yes, unless you're on a jailbroken platform. On Mac OS 10.5 and up, there is a program called codesign that takes an identity (with an associated private key) and signs the provided binary. Although I don't think the source for this program is publicly available, what it actually does is reasonably simple and could be ported to multiple platforms quite easily (especially given the macho library on hackage).<br />
<br />
= Jhc as a cross compiler =<br />
<br />
Jhc has full support for cross compiling to the iPhone. Information on how to do so is in the jhc manual under [http://repetae.net/computer/jhc/manual.html#crosscompilation Cross Compilation]. Basically, you just add the following to your ~/.jhc/targets.ini<br />
<br />
<pre><br />
[iphone]<br />
cc=arm-apple-darwin-gcc<br />
merge=le32<br />
</pre><br />
<br />
and then invoke jhc with the --cross and -miphone options.<br />
<br />
= Other ways to stay in touch =<br />
<br />
Chat with us on the #haskell-iphone IRC channel on freenode.<br />
Does anyone know how to set up channel logging?</div>Zarkhttps://wiki.haskell.org/index.php?title=IPhone&diff=34868IPhone2010-05-29T12:32:49Z<p>Zark: added a ressource</p>
<hr />
<div>= Collaborators =<br />
If you are working with Haskell and making iPhone apps, or if you intend to soon, please fill in your info below.<br />
By helping each other out, we can work more productively and have more fun.<br />
<br />
{|width="80%" border="1" cellpadding="2" cellspacing="0"<br />
|-<br />
!Name<br />
!Contact info<br />
!Haskell-fu (0-5)<br />
!iPhone-fu (0-5)<br />
!Have (to share)<br />
!Need<br />
!Intended iPhone apps<br />
|-<br />
| Conal Elliott<br />
| [http://conal.net Home], [http://conal.net/blog blog], [http://haskell.org/haskellwiki/User:Conal wiki user], [http://twitter.com/conal Twitter], [http://www.facebook.com/profile.php?id=685783314&ref=name Facebook], [http://www.linkedin.com/profile?&key=4476842 Linkedin], IRC: conal<br />
| 5<br />
| 0<br />
| Functional graphics & GUI, misc Haskell libs, design skills, iPhone basics<br />
| Haskell-to-iPhone compiler, tricky iPhone stuff<br />
| Interactive graphics toys<br />
|-<br />
| Chris Eidhof<br />
| [http://eidhof.nl Home], [http://tupil.com Tupil], [http://haskell.org/haskellwiki/User:ChrisEidhof wiki user], [http://twitter.com/chriseidhof Twitter], [http://www.linkedin.com/pub/chris-eidhof/3/b6/2b6 Linkedin], IRC: chr1s<br />
| 4<br />
| 3<br />
| iPhone experience, web programming experience, dependent types experience<br />
| Haskell-to-iPhone compiler (either as DSL or GHC Core -> iPhone)<br />
| Navigation-based apps (think of things like iTunes, Facebook, etc.), Games (maybe using a combination of FRP and something like arrowlets)<br />
|-<br />
| Daniel Peebles<br />
| [http://pumpkinpat.ch Home], [http://twitter.com/copumpkin Twitter]<br />
| 3<br />
| 4<br />
| Extensive iPhone platform knowledge<br />
| GHC cross-compiling to ARM Mach-O<br />
| Nothing in particular yet<br />
|-<br />
| John Meacham<br />
| [http://repetae.net Home], [http://notanumber.net/ blog]<br />
| -<br />
| -<br />
| Working Haskell to iPhone compiler (jhc)<br />
| Testers and Feedback to make cross compilation smoother. HOC integration with jhc.<br />
| Symbolic Algebra Application, Equation Editor<br />
|-<br />
| Eelco Lempsink<br />
| [http://eelco.lempsink.nl Home], [http://tupil.com Tupil], [http://haskell.org/haskellwiki/User:eelco wiki user], [http://twitter.com/eelco Twitter], [http://www.linkedin.com/in/lempsink Linkedin], IRC: eelco<br />
| 4<br />
| 3<br />
| iPhone and web experience<br />
| Haskell-to-iPhone with (Cocoa Touch) API intergration<br />
| Nothing in particular, looking for a good Haskell use-case :)<br />
|-<br />
| Bernd Brassel<br />
| [http://www-ps.informatik.uni-kiel.de/~bbr Home],[http://www.art2guide.com/index_en.html art2guide]<br />
| 5<br />
| 4<br />
| Haskell experience, iPhone developer<br />
| iPhone embedding into Haskell, good programmers<br />
| audio-visual guiding systems<br />
|-<br />
| Martin Kudlvasr<br />
| [http://trinpad.eu not exactly home],[http://www.linkedin.com/in/martinkudlvasr LinkedIn], irc: trin_cz, xmpp: trin@jabbim.cz<br />
| 3<br />
| 0<br />
| year of haskell experience in OpenGL and project euler<br />
| iPhone basics, Haskell-to-iPhone compiler<br />
| fascinated by reactive, game development<br />
|-<br />
| Sebastiaan Visser<br />
| [http://github.com/sebastiaanvisser Projects], [http://haskell.org/haskellwiki/User:Sebastiaan wiki user], [http://twitter.com/sfvisser Twitter]<br />
| 4<br />
| 0<br />
| Some experience/ideas about building EDSLs.<br />
| Deep EDSL Haskell-to-ObjectiveC, high-level to target GUI/animation. <br />
| Nothing in particular yet. Want to have objective C backend for [http://github.com/sebastiaanvisser/frp-js/tree/master this] EDSL.<br />
|-<br />
| Manuel Chakravarty<br />
| [http://www.cse.unsw.edu.au/~chak/ Home], [http://justtesting.org blog], [http://haskell.org/haskellwiki/User:chak wiki user], [http://twitter.com/TacticalGrace Twitter], [http://www.linkedin.com/in/manuelchakravarty LinkedIn], IRC: Chilli<br />
| 5<br />
| 2<br />
| Haskell EDSL & compiler know how; Objective-C and Cocoa Touch basics<br />
| Haskell tools for iphone dev<br />
| games & productivity apps<br />
|-<br />
| Ryan Trinkle<br />
| [http://haskell.org/haskellwiki/User:RyanT5000 wiki user], [http://twitter.com/ryant5000 Twitter], [http://facebook.com/ryant5000 Facebook], [http://www.linkedin.com/pub/ryan-trinkle/2/a74/9b3 LinkedIn], IRC/AIM: RyanT5000<br />
| 4<br />
| 3<br />
| GHC iPhone compilation (working, to be contributed to GHC soon)<br />
| Smart people<br />
| Games<br />
|-<br />
| Stephen Blackheath<br />
| [http://haskell.org/haskellwiki/User:Blackh wiki user], IRC: blackh, [http://blacksapphire.com/antispam/ email]<br />
| 4<br />
| 2<br />
| Working with Ryan Trinkle to release GHC iPhone compilation<br />
|<br />
| Games<br />
|-<br />
| Simon Marlow<br />
| [http://haskell.org/haskellwiki/User:Simonmar wiki user], [http://twitter.com/simonmar Twitter], IRC: JaffaCake<br />
| 5<br />
| 0<br />
| Happy to help with GHC porting issues: ask on #ghc<br />
| <br />
| <br />
|-<br />
| Simon Michael<br />
| [http://joyful.com home], [mailto:simon@joyful.com email], IRC: sm<br />
| 3<br />
| 1<br />
| hledger project, darcs/happstack/web dev/sysadmin experience<br />
|<br />
|<br />
|-<br />
| Max Weisel<br />
| [http://maxweisel.com Home], [http://twitter.com/mxweas Twitter], IRC:mxweas<br />
| 3<br />
| 5<br />
| Ample Toolchain/SDK development knowledge & experience.<br />
|<br />
|<br />
|-<br />
| Sung Yoon<br />
| [http://www.bamsom.com Home]<br />
| 1<br />
| 4 <br />
| iPhone App development<br />
|<br />
| Games, interactive graphics/sound apps<br />
|-<br />
| Jonathan Fischoff<br />
| [http://www.linkedin.com/pub/jonathan-fischoff/2/9b/a60 LinkedIn], [http://www.facebook.com/jfischoff?ref=profile Facebook], [http://haskell.org/haskellwiki/User:JonathanFischoff wiki user], IRC: jfischoff<br />
| 1<br />
| 1 <br />
| Game engines. Art asset pipelines. <br />
|<br />
| Games, graphics toys<br />
|-<br />
| Lyndon Tremblay<br />
| [http://www.hoovy.org Home], [http://www.facebook.com/humasect?ref=profile Facebook], [http://haskell.org/haskellwiki/User:humasect wiki user], [http://www.twitter.com/humasect Twitter], IRC: whomasect/humasect/Sitting<br />
| 4<br />
| 5<br />
| Experienced mac/iphone/haskell/gnu developer. Maintaining and clean GL and AL wrappers, and cleaner ObjC integration which allows to develop Cocoa apps. (can provide and also port to iPhone), and defunct Xcode haskell plugin considered to be rewritten.<br />
| Haskell-to-iPhone compiler, tricky iPhone stuff, GHCi<br />
| Games, roguelike, scrolling shooter - Realtime game and procedural development visualization engines and environment, animation and music apps<br />
|-}<br />
<br />
There are at least two ways to use Haskell to make iPhone apps.<br />
One is having a Haskell-to-iPhone compiler, which would probably cross-compile from another host environment (probably Mac OS X).<br />
Another way is to write Haskell programs that ''generate'' iPhone-compatible code when run (rather than when compiled), based on an embedded DSL, similarly to [http://conal.net/papers/jfp-saig/ ''Compiling Embedded Languages''].<br />
<br />
= Resources =<br />
<br />
* [http://iphoneideas.tumblr.com/ Free iPhone ideas] (blog by Chris Eidhof)<br />
* [http://hoc.sourceforge.net/ HOC Haskell to Objective-C binding]<br />
* [http://github.com/thetrutz/objc4hs objc4hs] Objective-C Classes for Haskell Programmers (with focus the iPhone SDK)<br />
* [http://github.com/sebastiaanvisser/frp-js/tree/master Reactive DSL currently with JS backend]. We might be working on Objective-C backend during Hack-ɸ.<br />
* Stanford course: [http://www.stanford.edu/class/cs193p/ iPhone Application Programming], with online notes, code, and lecture video.<br />
* [http://hackage.haskell.org/trac/ghc/wiki/ObjectiveC Haskell Objective-C FFI proposal] (work-in-progress)<br />
* [http://www.haskell.org/mailman/listinfo/iphone Haskell-iPhone Mailinglist] (iphone at haskell.org)<br />
<br />
= GHC as a cross compiler =<br />
Now that GHC can be used as a cross compiler again we should document what is left in getting GHC to compile apps for the iPhone.<br />
<br />
# Can the RTS be ported to the iPhone?<br />
## How much work is this?<br />
### iPhone OS is mostly a vanilla OS X, running on ARM. Syscall numbers, the object format, and the kinds of things that are available on it are all pretty much the same as OS X. The main difference is the architecture. Word size etc. are mostly the same as other platforms that are already supported, so I don't think much more is needed for an unregistered built, at least.<br />
<br />
# Do apps have to be signed in some way?<br />
## Yes, unless you're on a jailbroken platform. On Mac OS 10.5 and up, there is a program called codesign that takes an identity (with an associated private key) and signs the provided binary. Although I don't think the source for this program is publicly available, what it actually does is reasonably simple and could be ported to multiple platforms quite easily (especially given the macho library on hackage).<br />
<br />
= Jhc as a cross compiler =<br />
<br />
Jhc has full support for cross compiling to the iPhone. Information on how to do so is in the jhc manual under [http://repetae.net/computer/jhc/manual.html#crosscompilation Cross Compilation]. Basically, you just add the following to your ~/.jhc/targets.ini<br />
<br />
<pre><br />
[iphone]<br />
cc=arm-apple-darwin-gcc<br />
merge=le32<br />
</pre><br />
<br />
and then invoke jhc with the --cross and -miphone options.<br />
<br />
= Other ways to stay in touch =<br />
<br />
Chat with us on the #haskell-iphone IRC channel on freenode.<br />
Does anyone know how to set up channel logging?</div>Zarkhttps://wiki.haskell.org/index.php?title=IPhone&diff=34210IPhone2010-03-20T10:11:06Z<p>Zark: </p>
<hr />
<div>= Collaborators =<br />
If you are working with Haskell and making iPhone apps, or if you intend to soon, please fill in your info below.<br />
By helping each other out, we can work more productively and have more fun.<br />
<br />
{|width="80%" border="1" cellpadding="2" cellspacing="0"<br />
|-<br />
!Name<br />
!Contact info<br />
!Haskell-fu (0-5)<br />
!iPhone-fu (0-5)<br />
!Have (to share)<br />
!Need<br />
!Intended iPhone apps<br />
|-<br />
| Conal Elliott<br />
| [http://conal.net Home], [http://conal.net/blog blog], [http://haskell.org/haskellwiki/User:Conal wiki user], [http://twitter.com/conal Twitter], [http://www.facebook.com/profile.php?id=685783314&ref=name Facebook], [http://www.linkedin.com/profile?&key=4476842 Linkedin], IRC: conal<br />
| 5<br />
| 0<br />
| Functional graphics & GUI, misc Haskell libs, design skills, iPhone basics<br />
| Haskell-to-iPhone compiler, tricky iPhone stuff<br />
| Interactive graphics toys<br />
|-<br />
| Chris Eidhof<br />
| [http://eidhof.nl Home], [http://tupil.com Tupil], [http://haskell.org/haskellwiki/User:ChrisEidhof wiki user], [http://twitter.com/chriseidhof Twitter], [http://www.linkedin.com/pub/chris-eidhof/3/b6/2b6 Linkedin], IRC: chr1s<br />
| 4<br />
| 3<br />
| iPhone experience, web programming experience, dependent types experience<br />
| Haskell-to-iPhone compiler (either as DSL or GHC Core -> iPhone)<br />
| Navigation-based apps (think of things like iTunes, Facebook, etc.), Games (maybe using a combination of FRP and something like arrowlets)<br />
|-<br />
| Daniel Peebles<br />
| [http://pumpkinpat.ch Home], [http://twitter.com/copumpkin Twitter]<br />
| 3<br />
| 4<br />
| Extensive iPhone platform knowledge<br />
| GHC cross-compiling to ARM Mach-O<br />
| Nothing in particular yet<br />
|-<br />
| John Meacham<br />
| [http://repetae.net Home], [http://notanumber.net/ blog]<br />
| -<br />
| -<br />
| Working Haskell to iPhone compiler (jhc)<br />
| Testers and Feedback to make cross compilation smoother. HOC integration with jhc.<br />
| Symbolic Algebra Application, Equation Editor<br />
|-<br />
| Eelco Lempsink<br />
| [http://eelco.lempsink.nl Home], [http://tupil.com Tupil], [http://haskell.org/haskellwiki/User:eelco wiki user], [http://twitter.com/eelco Twitter], [http://www.linkedin.com/in/lempsink Linkedin], IRC: eelco<br />
| 4<br />
| 3<br />
| iPhone and web experience<br />
| Haskell-to-iPhone with (Cocoa Touch) API intergration<br />
| Nothing in particular, looking for a good Haskell use-case :)<br />
|-<br />
| Bernd Brassel<br />
| [http://www-ps.informatik.uni-kiel.de/~bbr Home],[http://www.art2guide.com/index_en.html art2guide]<br />
| 5<br />
| 4<br />
| Haskell experience, iPhone developer<br />
| iPhone embedding into Haskell, good programmers<br />
| audio-visual guiding systems<br />
|-<br />
| Martin Kudlvasr<br />
| [http://trinpad.eu not exactly home],[http://www.linkedin.com/in/martinkudlvasr LinkedIn], irc: trin_cz, xmpp: trin@jabbim.cz<br />
| 3<br />
| 0<br />
| year of haskell experience in OpenGL and project euler<br />
| iPhone basics, Haskell-to-iPhone compiler<br />
| fascinated by reactive, game development<br />
|-<br />
| Sebastiaan Visser<br />
| [http://github.com/sebastiaanvisser Projects], [http://haskell.org/haskellwiki/User:Sebastiaan wiki user], [http://twitter.com/sfvisser Twitter]<br />
| 4<br />
| 0<br />
| Some experience/ideas about building EDSLs.<br />
| Deep EDSL Haskell-to-ObjectiveC, high-level to target GUI/animation. <br />
| Nothing in particular yet. Want to have objective C backend for [http://github.com/sebastiaanvisser/frp-js/tree/master this] EDSL.<br />
|-<br />
| Manuel Chakravarty<br />
| [http://www.cse.unsw.edu.au/~chak/ Home], [http://justtesting.org blog], [http://haskell.org/haskellwiki/User:chak wiki user], [http://twitter.com/TacticalGrace Twitter], [http://www.linkedin.com/in/manuelchakravarty LinkedIn], IRC: Chilli<br />
| 5<br />
| 2<br />
| Haskell EDSL & compiler know how; Objective-C and Cocoa Touch basics<br />
| Haskell tools for iphone dev<br />
| games & productivity apps<br />
|-<br />
| Ryan Trinkle<br />
| [http://haskell.org/haskellwiki/User:RyanT5000 wiki user], [http://twitter.com/ryant5000 Twitter], [http://facebook.com/ryant5000 Facebook], [http://www.linkedin.com/pub/ryan-trinkle/2/a74/9b3 LinkedIn], IRC/AIM: RyanT5000<br />
| 4<br />
| 3<br />
| GHC iPhone compilation (working, to be contributed to GHC soon)<br />
| Smart people<br />
| Games<br />
|-<br />
| Stephen Blackheath<br />
| [http://haskell.org/haskellwiki/User:Blackh wiki user], IRC: blackh, [http://blacksapphire.com/antispam/ email]<br />
| 4<br />
| 2<br />
| Working with Ryan Trinkle to release GHC iPhone compilation<br />
|<br />
| Games<br />
|-<br />
| Simon Marlow<br />
| [http://haskell.org/haskellwiki/User:Simonmar wiki user], [http://twitter.com/simonmar Twitter], IRC: JaffaCake<br />
| 5<br />
| 0<br />
| Happy to help with GHC porting issues: ask on #ghc<br />
| <br />
| <br />
|-<br />
| Simon Michael<br />
| [http://joyful.com home], [mailto:simon@joyful.com email], IRC: sm<br />
| 3<br />
| 1<br />
| hledger project, darcs/happstack/web dev/sysadmin experience<br />
|<br />
|<br />
|-<br />
| Max Weisel<br />
| [http://maxweisel.com Home], [http://twitter.com/mxweas Twitter], IRC:mxweas<br />
| 3<br />
| 5<br />
| Ample Toolchain/SDK development knowledge & experience.<br />
|<br />
|<br />
|-<br />
| Sung Yoon<br />
| [http://www.bamsom.com Home]<br />
| 1<br />
| 4 <br />
| iPhone App development<br />
|<br />
| Games, interactive graphics/sound apps<br />
|-<br />
| Jonathan Fischoff<br />
| [http://www.linkedin.com/pub/jonathan-fischoff/2/9b/a60 LinkedIn], [http://www.facebook.com/jfischoff?ref=profile Facebook], [http://haskell.org/haskellwiki/User:JonathanFischoff wiki user], IRC: jfischoff<br />
| 1<br />
| 1 <br />
| Game engines. Art asset pipelines. <br />
|<br />
| Games, graphics toys<br />
|-}<br />
<br />
There are at least two ways to use Haskell to make iPhone apps.<br />
One is having a Haskell-to-iPhone compiler, which would probably cross-compile from another host environment (probably Mac OS X).<br />
Another way is to write Haskell programs that ''generate'' iPhone-compatible code when run (rather than when compiled), based on an embedded DSL, similarly to [http://conal.net/papers/jfp-saig/ ''Compiling Embedded Languages''].<br />
<br />
= Resources =<br />
<br />
* [http://iphoneideas.tumblr.com/ Free iPhone ideas] (blog by Chris Eidhof)<br />
* [http://hoc.sourceforge.net/ HOC Haskell to Objective-C binding]<br />
* [http://github.com/sebastiaanvisser/frp-js/tree/master Reactive DSL currently with JS backend]. We might be working on Objective-C backend during Hack-ɸ.<br />
* Stanford course: [http://www.stanford.edu/class/cs193p/ iPhone Application Programming], with online notes, code, and lecture video.<br />
* [http://hackage.haskell.org/trac/ghc/wiki/ObjectiveC Haskell Objective-C FFI proposal] (work-in-progress)<br />
* [http://www.haskell.org/mailman/listinfo/iphone Haskell-iPhone Mailinglist] (iphone at haskell.org)<br />
<br />
= GHC as a cross compiler =<br />
Now that GHC can be used as a cross compiler again we should document what is left in getting GHC to compile apps for the iPhone.<br />
<br />
# Can the RTS be ported to the iPhone?<br />
## How much work is this?<br />
### iPhone OS is mostly a vanilla OS X, running on ARM. Syscall numbers, the object format, and the kinds of things that are available on it are all pretty much the same as OS X. The main difference is the architecture. Word size etc. are mostly the same as other platforms that are already supported, so I don't think much more is needed for an unregistered built, at least.<br />
<br />
# Do apps have to be signed in some way?<br />
## Yes, unless you're on a jailbroken platform. On Mac OS 10.5 and up, there is a program called codesign that takes an identity (with an associated private key) and signs the provided binary. Although I don't think the source for this program is publicly available, what it actually does is reasonably simple and could be ported to multiple platforms quite easily (especially given the macho library on hackage).<br />
<br />
= Jhc as a cross compiler =<br />
<br />
Jhc has full support for cross compiling to the iPhone. Information on how to do so is in the jhc manual under [http://repetae.net/computer/jhc/manual.html#crosscompilation Cross Compilation]. Basically, you just add the following to your ~/.jhc/targets.ini<br />
<br />
<pre><br />
[iphone]<br />
cc=arm-apple-darwin-gcc<br />
merge=le32<br />
</pre><br />
<br />
and then invoke jhc with the --cross and -miphone options.<br />
<br />
= Other ways to stay in touch =<br />
<br />
Chat with us on the #haskell-iphone IRC channel on freenode.<br />
Does anyone know how to set up channel logging?</div>Zarkhttps://wiki.haskell.org/index.php?title=IPhone&diff=34209IPhone2010-03-20T10:10:41Z<p>Zark: </p>
<hr />
<div>= Collaborators =<br />
If you are working with Haskell and making iPhone apps, or if you intend to soon, please fill in your info below.<br />
By helping each other out, we can work more productively and have more fun.<br />
<br />
{|width="80%" border="1" cellpadding="2" cellspacing="0"<br />
|-<br />
!Name<br />
!Contact info<br />
!Haskell-fu (0-5)<br />
!iPhone-fu (0-5)<br />
!Have (to share)<br />
!Need<br />
!Intended iPhone apps<br />
|-<br />
| Conal Elliott<br />
| [http://conal.net Home], [http://conal.net/blog blog], [http://haskell.org/haskellwiki/User:Conal wiki user], [http://twitter.com/conal Twitter], [http://www.facebook.com/profile.php?id=685783314&ref=name Facebook], [http://www.linkedin.com/profile?&key=4476842 Linkedin], IRC: conal<br />
| 5<br />
| 0<br />
| Functional graphics & GUI, misc Haskell libs, design skills, iPhone basics<br />
| Haskell-to-iPhone compiler, tricky iPhone stuff<br />
| Interactive graphics toys<br />
|-<br />
| Chris Eidhof<br />
| [http://eidhof.nl Home], [http://tupil.com Tupil], [http://haskell.org/haskellwiki/User:ChrisEidhof wiki user], [http://twitter.com/chriseidhof Twitter], [http://www.linkedin.com/pub/chris-eidhof/3/b6/2b6 Linkedin], IRC: chr1s<br />
| 4<br />
| 3<br />
| iPhone experience, web programming experience, dependent types experience<br />
| Haskell-to-iPhone compiler (either as DSL or GHC Core -> iPhone)<br />
| Navigation-based apps (think of things like iTunes, Facebook, etc.), Games (maybe using a combination of FRP and something like arrowlets)<br />
|-<br />
| Daniel Peebles<br />
| [http://pumpkinpat.ch Home], [http://twitter.com/copumpkin Twitter]<br />
| 3<br />
| 4<br />
| Extensive iPhone platform knowledge<br />
| GHC cross-compiling to ARM Mach-O<br />
| Nothing in particular yet<br />
|-<br />
| John Meacham<br />
| [http://repetae.net Home], [http://notanumber.net/ blog]<br />
| -<br />
| -<br />
| Working Haskell to iPhone compiler (jhc)<br />
| Testers and Feedback to make cross compilation smoother. HOC integration with jhc.<br />
| Symbolic Algebra Application, Equation Editor<br />
|-<br />
| Eelco Lempsink<br />
| [http://eelco.lempsink.nl Home], [http://tupil.com Tupil], [http://haskell.org/haskellwiki/User:eelco wiki user], [http://twitter.com/eelco Twitter], [http://www.linkedin.com/in/lempsink Linkedin], IRC: eelco<br />
| 4<br />
| 3<br />
| iPhone and web experience<br />
| Haskell-to-iPhone with (Cocoa Touch) API intergration<br />
| Nothing in particular, looking for a good Haskell use-case :)<br />
|-<br />
| Bernd Brassel<br />
| [http://www-ps.informatik.uni-kiel.de/~bbr Home],[http://www.art2guide.com/index_en.html art2guide]<br />
| 5<br />
| 4<br />
| Haskell experience, iPhone developer<br />
| iPhone embedding into Haskell, good programmers<br />
| audio-visual guiding systems<br />
|-<br />
| Martin Kudlvasr<br />
| [http://trinpad.eu not exactly home],[http://www.linkedin.com/in/martinkudlvasr LinkedIn], irc: trin_cz, xmpp: trin@jabbim.cz<br />
| 3<br />
| 0<br />
| year of haskell experience in OpenGL and project euler<br />
| iPhone basics, Haskell-to-iPhone compiler<br />
| fascinated by reactive, game development<br />
|-<br />
| Sebastiaan Visser<br />
| [http://github.com/sebastiaanvisser Projects], [http://haskell.org/haskellwiki/User:Sebastiaan wiki user], [http://twitter.com/sfvisser Twitter]<br />
| 4<br />
| 0<br />
| Some experience/ideas about building EDSLs.<br />
| Deep EDSL Haskell-to-ObjectiveC, high-level to target GUI/animation. <br />
| Nothing in particular yet. Want to have objective C backend for [http://github.com/sebastiaanvisser/frp-js/tree/master this] EDSL.<br />
|-<br />
| Manuel Chakravarty<br />
| [http://www.cse.unsw.edu.au/~chak/ Home], [http://justtesting.org blog], [http://haskell.org/haskellwiki/User:chak wiki user], [http://twitter.com/TacticalGrace Twitter], [http://www.linkedin.com/in/manuelchakravarty LinkedIn], IRC: Chilli<br />
| 5<br />
| 2<br />
| Haskell EDSL & compiler know how; Objective-C and Cocoa Touch basics<br />
| Haskell tools for iphone dev<br />
| games & productivity apps<br />
|-<br />
| Ryan Trinkle<br />
| [http://haskell.org/haskellwiki/User:RyanT5000 wiki user], [http://twitter.com/ryant5000 Twitter], [http://facebook.com/ryant5000 Facebook], [http://www.linkedin.com/pub/ryan-trinkle/2/a74/9b3 LinkedIn], IRC/AIM: RyanT5000<br />
| 4<br />
| 3<br />
| GHC iPhone compilation (working, to be contributed to GHC soon)<br />
| Smart people<br />
| Games<br />
|-<br />
| Stephen Blackheath<br />
| [http://haskell.org/haskellwiki/User:Blackh wiki user], IRC: blackh, [http://blacksapphire.com/antispam/ email]<br />
| 4<br />
| 2<br />
| Working with Ryan Trinkle to release GHC iPhone compilation<br />
|<br />
| Games<br />
|-<br />
| Simon Marlow<br />
| [http://haskell.org/haskellwiki/User:Simonmar wiki user], [http://twitter.com/simonmar Twitter], IRC: JaffaCake<br />
| 5<br />
| 0<br />
| Happy to help with GHC porting issues: ask on #ghc<br />
| <br />
| <br />
|-<br />
| Simon Michael<br />
| [http://joyful.com home], [mailto:simon@joyful.com email], IRC: sm<br />
| 3<br />
| 1<br />
| hledger project, darcs/happstack/web dev/sysadmin experience<br />
|<br />
|<br />
|-<br />
| Max Weisel<br />
| [http://maxweisel.com Home], [http://twitter.com/mxweas Twitter], IRC:mxweas<br />
| 3<br />
| 5<br />
| Ample Toolchain/SDK development knowledge & experience.<br />
|<br />
|<br />
|-<br />
| Sung Yoon<br />
| [http://www.bamsom.com Home]<br />
| 1<br />
| 4 <br />
| iPhone App development<br />
|<br />
| Games, interactive graphics/sound apps<br />
|-<br />
| Jonathan Fischoff<br />
| [http://www.linkedin.com/pub/jonathan-fischoff/2/9b/a60 LinkedIn], [http://www.facebook.com/jfischoff?ref=profile Facebook], [http://haskell.org/haskellwiki/User:JonathanFischoff wiki user], IRC: jfischoff<br />
| 1<br />
| 1 <br />
| Game engines. Art asset pipelines. <br />
|<br />
| Games, graphics toys<br />
|-}<br />
<br />
There are at least two ways to use Haskell to make iPhone apps.<br />
One is having a Haskell-to-iPhone compiler, which would probably cross-compile from another host environment (probably Mac OS X).<br />
Another way is to write Haskell programs that ''generate'' iPhone-compatible code when run (rather than when compiled), based on an embedded DSL, similarly to [http://conal.net/papers/jfp-saig/ ''Compiling Embedded Languages''].<br />
<br />
= Resources =<br />
<br />
* [http://iphoneideas.tumblr.com/ Free iPhone ideas] (blog by Chris Eidhof)<br />
* [http://hoc.sourceforge.net/ HOC Haskell to Objective-C binding]<br />
* [http://github.com/sebastiaanvisser/frp-js/tree/master Reactive DSL currently with JS backend]. We might be working on Objective-C backend during Hack-ɸ.<br />
* Stanford course: [http://www.stanford.edu/class/cs193p/ iPhone Application Programming], with online notes, code, and lecture video.<br />
* [http://hackage.haskell.org/trac/ghc/wiki/ObjectiveC Haskell Objective-C FFI proposal] (work-in-progress)<br />
* [http://www.haskell.org/mailman/listinfo/iphone Haskell-iPhone Mailinglist] (iphone@haskell.org)<br />
<br />
= GHC as a cross compiler =<br />
Now that GHC can be used as a cross compiler again we should document what is left in getting GHC to compile apps for the iPhone.<br />
<br />
# Can the RTS be ported to the iPhone?<br />
## How much work is this?<br />
### iPhone OS is mostly a vanilla OS X, running on ARM. Syscall numbers, the object format, and the kinds of things that are available on it are all pretty much the same as OS X. The main difference is the architecture. Word size etc. are mostly the same as other platforms that are already supported, so I don't think much more is needed for an unregistered built, at least.<br />
<br />
# Do apps have to be signed in some way?<br />
## Yes, unless you're on a jailbroken platform. On Mac OS 10.5 and up, there is a program called codesign that takes an identity (with an associated private key) and signs the provided binary. Although I don't think the source for this program is publicly available, what it actually does is reasonably simple and could be ported to multiple platforms quite easily (especially given the macho library on hackage).<br />
<br />
= Jhc as a cross compiler =<br />
<br />
Jhc has full support for cross compiling to the iPhone. Information on how to do so is in the jhc manual under [http://repetae.net/computer/jhc/manual.html#crosscompilation Cross Compilation]. Basically, you just add the following to your ~/.jhc/targets.ini<br />
<br />
<pre><br />
[iphone]<br />
cc=arm-apple-darwin-gcc<br />
merge=le32<br />
</pre><br />
<br />
and then invoke jhc with the --cross and -miphone options.<br />
<br />
= Other ways to stay in touch =<br />
<br />
Chat with us on the #haskell-iphone IRC channel on freenode.<br />
Does anyone know how to set up channel logging?</div>Zarkhttps://wiki.haskell.org/index.php?title=IPhone&diff=34208IPhone2010-03-20T10:08:30Z<p>Zark: </p>
<hr />
<div>= Collaborators =<br />
If you are working with Haskell and making iPhone apps, or if you intend to soon, please fill in your info below.<br />
By helping each other out, we can work more productively and have more fun.<br />
<br />
{|width="80%" border="1" cellpadding="2" cellspacing="0"<br />
|-<br />
!Name<br />
!Contact info<br />
!Haskell-fu (0-5)<br />
!iPhone-fu (0-5)<br />
!Have (to share)<br />
!Need<br />
!Intended iPhone apps<br />
|-<br />
| Conal Elliott<br />
| [http://conal.net Home], [http://conal.net/blog blog], [http://haskell.org/haskellwiki/User:Conal wiki user], [http://twitter.com/conal Twitter], [http://www.facebook.com/profile.php?id=685783314&ref=name Facebook], [http://www.linkedin.com/profile?&key=4476842 Linkedin], IRC: conal<br />
| 5<br />
| 0<br />
| Functional graphics & GUI, misc Haskell libs, design skills, iPhone basics<br />
| Haskell-to-iPhone compiler, tricky iPhone stuff<br />
| Interactive graphics toys<br />
|-<br />
| Chris Eidhof<br />
| [http://eidhof.nl Home], [http://tupil.com Tupil], [http://haskell.org/haskellwiki/User:ChrisEidhof wiki user], [http://twitter.com/chriseidhof Twitter], [http://www.linkedin.com/pub/chris-eidhof/3/b6/2b6 Linkedin], IRC: chr1s<br />
| 4<br />
| 3<br />
| iPhone experience, web programming experience, dependent types experience<br />
| Haskell-to-iPhone compiler (either as DSL or GHC Core -> iPhone)<br />
| Navigation-based apps (think of things like iTunes, Facebook, etc.), Games (maybe using a combination of FRP and something like arrowlets)<br />
|-<br />
| Daniel Peebles<br />
| [http://pumpkinpat.ch Home], [http://twitter.com/copumpkin Twitter]<br />
| 3<br />
| 4<br />
| Extensive iPhone platform knowledge<br />
| GHC cross-compiling to ARM Mach-O<br />
| Nothing in particular yet<br />
|-<br />
| John Meacham<br />
| [http://repetae.net Home], [http://notanumber.net/ blog]<br />
| -<br />
| -<br />
| Working Haskell to iPhone compiler (jhc)<br />
| Testers and Feedback to make cross compilation smoother. HOC integration with jhc.<br />
| Symbolic Algebra Application, Equation Editor<br />
|-<br />
| Eelco Lempsink<br />
| [http://eelco.lempsink.nl Home], [http://tupil.com Tupil], [http://haskell.org/haskellwiki/User:eelco wiki user], [http://twitter.com/eelco Twitter], [http://www.linkedin.com/in/lempsink Linkedin], IRC: eelco<br />
| 4<br />
| 3<br />
| iPhone and web experience<br />
| Haskell-to-iPhone with (Cocoa Touch) API intergration<br />
| Nothing in particular, looking for a good Haskell use-case :)<br />
|-<br />
| Bernd Brassel<br />
| [http://www-ps.informatik.uni-kiel.de/~bbr Home],[http://www.art2guide.com/index_en.html art2guide]<br />
| 5<br />
| 4<br />
| Haskell experience, iPhone developer<br />
| iPhone embedding into Haskell, good programmers<br />
| audio-visual guiding systems<br />
|-<br />
| Martin Kudlvasr<br />
| [http://trinpad.eu not exactly home],[http://www.linkedin.com/in/martinkudlvasr LinkedIn], irc: trin_cz, xmpp: trin@jabbim.cz<br />
| 3<br />
| 0<br />
| year of haskell experience in OpenGL and project euler<br />
| iPhone basics, Haskell-to-iPhone compiler<br />
| fascinated by reactive, game development<br />
|-<br />
| Sebastiaan Visser<br />
| [http://github.com/sebastiaanvisser Projects], [http://haskell.org/haskellwiki/User:Sebastiaan wiki user], [http://twitter.com/sfvisser Twitter]<br />
| 4<br />
| 0<br />
| Some experience/ideas about building EDSLs.<br />
| Deep EDSL Haskell-to-ObjectiveC, high-level to target GUI/animation. <br />
| Nothing in particular yet. Want to have objective C backend for [http://github.com/sebastiaanvisser/frp-js/tree/master this] EDSL.<br />
|-<br />
| Manuel Chakravarty<br />
| [http://www.cse.unsw.edu.au/~chak/ Home], [http://justtesting.org blog], [http://haskell.org/haskellwiki/User:chak wiki user], [http://twitter.com/TacticalGrace Twitter], [http://www.linkedin.com/in/manuelchakravarty LinkedIn], IRC: Chilli<br />
| 5<br />
| 2<br />
| Haskell EDSL & compiler know how; Objective-C and Cocoa Touch basics<br />
| Haskell tools for iphone dev<br />
| games & productivity apps<br />
|-<br />
| Ryan Trinkle<br />
| [http://haskell.org/haskellwiki/User:RyanT5000 wiki user], [http://twitter.com/ryant5000 Twitter], [http://facebook.com/ryant5000 Facebook], [http://www.linkedin.com/pub/ryan-trinkle/2/a74/9b3 LinkedIn], IRC/AIM: RyanT5000<br />
| 4<br />
| 3<br />
| GHC iPhone compilation (working, to be contributed to GHC soon)<br />
| Smart people<br />
| Games<br />
|-<br />
| Stephen Blackheath<br />
| [http://haskell.org/haskellwiki/User:Blackh wiki user], IRC: blackh, [http://blacksapphire.com/antispam/ email]<br />
| 4<br />
| 2<br />
| Working with Ryan Trinkle to release GHC iPhone compilation<br />
|<br />
| Games<br />
|-<br />
| Simon Marlow<br />
| [http://haskell.org/haskellwiki/User:Simonmar wiki user], [http://twitter.com/simonmar Twitter], IRC: JaffaCake<br />
| 5<br />
| 0<br />
| Happy to help with GHC porting issues: ask on #ghc<br />
| <br />
| <br />
|-<br />
| Simon Michael<br />
| [http://joyful.com home], [mailto:simon@joyful.com email], IRC: sm<br />
| 3<br />
| 1<br />
| hledger project, darcs/happstack/web dev/sysadmin experience<br />
|<br />
|<br />
|-<br />
| Max Weisel<br />
| [http://maxweisel.com Home], [http://twitter.com/mxweas Twitter], IRC:mxweas<br />
| 3<br />
| 5<br />
| Ample Toolchain/SDK development knowledge & experience.<br />
|<br />
|<br />
|-<br />
| Sung Yoon<br />
| [http://www.bamsom.com Home]<br />
| 1<br />
| 4 <br />
| iPhone App development<br />
|<br />
| Games, interactive graphics/sound apps<br />
|-<br />
| Jonathan Fischoff<br />
| [http://www.linkedin.com/pub/jonathan-fischoff/2/9b/a60 LinkedIn], [http://www.facebook.com/jfischoff?ref=profile Facebook], [http://haskell.org/haskellwiki/User:JonathanFischoff wiki user], IRC: jfischoff<br />
| 1<br />
| 1 <br />
| Game engines. Art asset pipelines. <br />
|<br />
| Games, graphics toys<br />
|-}<br />
<br />
There are at least two ways to use Haskell to make iPhone apps.<br />
One is having a Haskell-to-iPhone compiler, which would probably cross-compile from another host environment (probably Mac OS X).<br />
Another way is to write Haskell programs that ''generate'' iPhone-compatible code when run (rather than when compiled), based on an embedded DSL, similarly to [http://conal.net/papers/jfp-saig/ ''Compiling Embedded Languages''].<br />
<br />
= Resources =<br />
<br />
* [http://iphoneideas.tumblr.com/ Free iPhone ideas] (blog by Chris Eidhof)<br />
* [http://hoc.sourceforge.net/ HOC Haskell to Objective-C binding]<br />
* [http://github.com/sebastiaanvisser/frp-js/tree/master Reactive DSL currently with JS backend]. We might be working on Objective-C backend during Hack-ɸ.<br />
* Stanford course: [http://www.stanford.edu/class/cs193p/ iPhone Application Programming], with online notes, code, and lecture video.<br />
* [http://hackage.haskell.org/trac/ghc/wiki/ObjectiveC Haskell Objective-C FFI proposal] (work-in-progress)<br />
* [http://www.haskell.org/mailman/listinfo/iphone Haskell-iPhone Mailinglist] on the haskell.org site.<br />
<br />
= GHC as a cross compiler =<br />
Now that GHC can be used as a cross compiler again we should document what is left in getting GHC to compile apps for the iPhone.<br />
<br />
# Can the RTS be ported to the iPhone?<br />
## How much work is this?<br />
### iPhone OS is mostly a vanilla OS X, running on ARM. Syscall numbers, the object format, and the kinds of things that are available on it are all pretty much the same as OS X. The main difference is the architecture. Word size etc. are mostly the same as other platforms that are already supported, so I don't think much more is needed for an unregistered built, at least.<br />
<br />
# Do apps have to be signed in some way?<br />
## Yes, unless you're on a jailbroken platform. On Mac OS 10.5 and up, there is a program called codesign that takes an identity (with an associated private key) and signs the provided binary. Although I don't think the source for this program is publicly available, what it actually does is reasonably simple and could be ported to multiple platforms quite easily (especially given the macho library on hackage).<br />
<br />
= Jhc as a cross compiler =<br />
<br />
Jhc has full support for cross compiling to the iPhone. Information on how to do so is in the jhc manual under [http://repetae.net/computer/jhc/manual.html#crosscompilation Cross Compilation]. Basically, you just add the following to your ~/.jhc/targets.ini<br />
<br />
<pre><br />
[iphone]<br />
cc=arm-apple-darwin-gcc<br />
merge=le32<br />
</pre><br />
<br />
and then invoke jhc with the --cross and -miphone options.<br />
<br />
= Other ways to stay in touch =<br />
<br />
Chat with us on the #haskell-iphone IRC channel on freenode.<br />
Does anyone know how to set up channel logging?</div>Zarkhttps://wiki.haskell.org/index.php?title=ZuriHac2010/Accommodations&diff=33985ZuriHac2010/Accommodations2010-03-07T10:35:31Z<p>Zark: </p>
<hr />
<div>This is the accomodation page for [[ZuriHac]]. Please refer to the [[ZuriHac|main page]] for more information.<br />
<br />
Please use this page to organize where you are going to stay.<br />
<br />
{| class="wikitable"<br />
! Names<br />
! Staying At<br />
! Further Information<br />
|-<br />
| Joachim Breitner, Martin Kiefel<br />
| City Backpacker<br />
| Looking for up to four people to share a room.<br />
|}</div>Zarkhttps://wiki.haskell.org/index.php?title=ZuriHac2010/Attendees&diff=33984ZuriHac2010/Attendees2010-03-07T10:21:57Z<p>Zark: </p>
<hr />
<div>This is the attendee list for [[ZuriHac]]. Please refer to the [[ZuriHac|main page]] for more information.<br />
<br />
= Attendees =<br />
<br />
Once you've [[ZuriHac/Register|registered]], please add your name to the following table:<br />
<br />
{| class="wikitable"<br />
! Nickname<br />
! Real Name<br />
! Affiliation<br />
! Mobile #<br />
! email<br />
! Arriving<br />
! Departing<br />
! Accomodation<br />
|-<br />
| coeus<br />
| Marc A. Ziegert<br />
| University of Paderborn<br />
| +49 17 5 6000 700<br />
| coeus-zurihac at padmen.de<br />
| 19 morning<br />
| 21 afternoon<br />
| Youth Hostel Zurich<br />
|-<br />
| Heffalump<br />
| Ganesh Sittampalam<br />
| Credit Suisse (Darcs)<br />
| +447968253467<br />
| <br />
| <br />
| <br />
|-<br />
| tibbe<br />
| Johan Tibell<br />
| Google<br />
| +41787978230<br />
| <br />
| <br />
| <br />
| <br />
|-<br />
| <br />
| Keith Lomax<br />
| <br />
| <br />
| <br />
| <br />
| <br />
| <br />
|-<br />
| sioraiocht<br />
| Tom Harper<br />
| Oxford University Computing Laboratory<br />
| +44 7533 998 591<br />
| <br />
|<br />
|<br />
|<br />
|-<br />
| poucet<br />
| Christophe Poucet<br />
| Google<br />
| +41796691013<br />
| <br />
| <br />
| <br />
| <br />
|-<br />
| zeuxis<br />
| Harald Holtmann<br />
| <br />
| +49 176 22053266<br />
| <br />
| <br />
| <br />
| <br />
|-<br />
| rmies<br />
| Michel Rijnders<br />
| TTY (Amsterdam)<br />
| +31646442127<br />
| <br />
|<br />
|<br />
|<br />
|-<br />
| <br />
| Simon Meier<br />
| ETH Zurich<br />
| <br />
| <br />
|<br />
|<br />
|<br />
|-<br />
| Gh_<br />
| Guillaume Hoffmann<br />
| (Darcs)<br />
| <br />
|<br />
| 19 morning<br />
| 21 afternoon<br />
|<br />
|-<br />
| jnwhiteh<br />
| Jim Whitehead<br />
| Oxford University Computing Laboratory<br />
| +44 7846 257 133<br />
| <br />
| <br />
|<br />
| <br />
|-<br />
| kolmodin<br />
| Lennart Kolmodin<br />
| Västra Götalandsregionen<br />
| +46 73 6223606<br />
| <br />
| <br />
|<br />
| <br />
|-<br />
| madhadron<br />
| Frederick Ross<br />
| Ecole Polytechnique Federale de Lausanne<br />
| +41 79 710 02 11<br />
| madhadron at gmail dot com<br />
| <br />
|<br />
|<br />
|-<br />
| al-maisan<br />
| Muharem Hrnjadovic<br />
| <br />
| +49 (1577) 470-3749<br />
| <br />
|19 morning<br />
|21 afternoon<br />
|Hotel Neufeld, Friesenbergstraße 15<br />
|-<br />
| beschmi<br />
| Benedikt Schmidt<br />
| ETH Zurich (Darcs)<br />
|<br />
|<br />
| <br />
|<br />
|<br />
|-<br />
| chr1s<br />
| Chris Eidhof<br />
| Tupil / Utrecht University<br />
| +31628887656<br />
| <br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| Martijn van Steenbergen<br />
| Utrecht University<br />
| <br />
|<br />
| <br />
|<br />
|<br />
|-<br />
| hesselink<br />
| Erik Hesselink<br />
| typLAB<br />
| +31650994887<br />
| <br />
|<br />
|<br />
|<br />
|-<br />
| sfvisser<br />
| Sebastiaan Visser<br />
| typLAB / Utrecht University<br />
| +31624828951<br />
| <br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| Tom Lokhorst<br />
| Utrecht University<br />
| <br />
|<br />
| <br />
|<br />
|<br />
|-<br />
| sjoerd_visscher<br />
| Sjoerd Visscher<br />
| Xopus<br />
| <br />
|<br />
| <br />
|<br />
|<br />
|-<br />
| kosmikus<br />
| Andres L&ouml;h<br />
| Utrecht University<br />
|<br />
|<br />
| <br />
|<br />
|<br />
|-<br />
| smurfpje<br />
| Clara L&ouml;h<br />
| Universit&auml;t G&ouml;ttingen<br />
|<br />
| <br />
|<br />
|<br />
|<br />
|-<br />
| nomeata<br />
| Joachim Breitner<br />
|<br />
|<br />
|<br />
| <br />
|<br />
|<br />
|-<br />
| kowey<br />
| Eric Kow<br />
| University of Brighton (Darcs)<br />
|<br />
|<br />
| <br />
|<br />
|<br />
|-<br />
|<br />
| Simon Hengel<br />
| Spin AG<br />
|<br />
|<br />
| <br />
|<br />
|<br />
|-<br />
| leather<br />
| Sean Leather<br />
| Utrecht University<br />
| +31616158163<br />
| <br />
|<br />
| <br />
|<br />
|-<br />
|<br />
| Dirk Spöri<br />
| factis research GmbH<br />
|<br />
| <br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| Harald Fischer<br />
| factis research GmbH<br />
|<br />
|<br />
| <br />
|<br />
|<br />
|-<br />
|<br />
| Johannes Weiss<br />
| factis research GmbH<br />
|<br />
|<br />
| <br />
|<br />
|<br />
|-<br />
|<br />
| Gero Kriependorf<br />
| factis research GmbH<br />
| <br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| Stefan Wehr<br />
| factis research GmbH<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| David Leuschner<br />
| factis research GmbH<br />
|<br />
| <br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| Steven Keuchel<br />
| Utrecht University<br />
| +31644053336<br />
|<br />
|<br />
| <br />
|<br />
|-<br />
| dcoutts<br />
| Duncan Coutts<br />
| Well-Typed LLP<br />
| <br />
| <br />
| <br />
| <br />
|<br />
|-<br />
| tux_rocker<br />
| Reinier Lamers<br />
| (Darcs)<br />
| <br />
|<br />
| 18 night<br />
| 21 night<br />
|<br />
|-<br />
| jutaro<br />
| Jürgen Nicklisch-Franken<br />
| ICS AG<br />
| <br />
| <br />
| <br />
|<br />
|<br />
|-<br />
| dons<br />
| Don Stewart<br />
| Galois, Inc<br />
|<br />
|<br />
| <br />
|<br />
|<br />
|-<br />
| gal_bolle<br />
| Florent Becker<br />
| Université d'Orléans (Darcs)<br />
|<br />
|<br />
| <br />
|<br />
|<br />
|-<br />
| ErrGe<br />
| Gergely Risko<br />
| Nokia<br />
| +358504899477<br />
| <br />
| 19 noon<br />
| 22 noon<br />
|<br />
|-<br />
| HugoDaniel<br />
| Hugo Daniel<br />
| New University of Lisbon (UNL)<br />
| <br />
| <br />
| 18 night<br />
| 22 morning<br />
|<br />
|-<br />
| <br />
| Atze Dijkstra<br />
| Utrecht University<br />
| <br />
| <br />
| <br />
|<br />
| <br />
|-<br />
| <br />
| Jeroen Fokker<br />
| Utrecht University<br />
| +31644350198<br />
| <br />
| <br />
|<br />
| <br />
|-<br />
| <br />
| Petr Rockai<br />
| (Darcs)<br />
| <br />
| <br />
| <br />
| <br />
|<br />
|-<br />
| <br />
| Nikolas Mayr<br />
| University of Paderborn<br />
| +49 170 5448278<br />
| zark at uni-paderborn.de<br />
| 19 morning<br />
| 21 afternoon<br />
| Youth Hostel Zurich<br />
|-<br />
|<br />
| Sergey Astanin<br />
| Politecnico di Torino<br />
| +39 333 952 0878<br />
| <br />
|<br />
|<br />
| <br />
|-<br />
|<br />
| Bartek Wojcik<br />
| <br />
| <br />
| <br />
| <br />
| <br />
| <br />
|-<br />
|<br />
| Dragos Ionita<br />
| Utrecht University<br />
| +31 644 044 688<br />
|<br />
| <br />
|<br />
|<br />
|-<br />
| jaspervdj<br />
| Jasper Van der Jeugt<br />
| Ghent University<br />
| <br />
|<br />
|<br />
|<br />
| City Backpacker<br />
|-<br />
| chrisdone<br />
| Chris Done<br />
| <br />
| +447977688050<br />
| chrisdone@gmail.com<br />
| 18 afternoon<br />
| 22 afternoon<br />
| Four Points<br />
|}<br />
<br />
= Additional Comments =<br />
<br />
Please use this section to leave comments for other attendees, e.g. for organizing accommodation.</div>Zarkhttps://wiki.haskell.org/index.php?title=ZuriHac2010/Attendees&diff=33505ZuriHac2010/Attendees2010-02-07T20:09:59Z<p>Zark: </p>
<hr />
<div>This is the attendee list for [[ZuriHac]]. Please refer to the [[ZuriHac|main page]] for more information.<br />
<br />
= Attendees =<br />
<br />
Once you've [[ZuriHac/Register|registered]], please add your name to the following table:<br />
<br />
{| class="wikitable"<br />
! Nickname<br />
! Real Name<br />
! Affiliation<br />
! Mobile #<br />
! Arriving<br />
! Departing<br />
! Accomodation<br />
|-<br />
| coeus<br />
| Marc A. Ziegert<br />
| University of Paderborn<br />
| +49 17 5 6000 700<br />
| 19 morning<br />
| 21 afternoon<br />
| Youth Hostel Zurich<br />
|-<br />
| Heffalump<br />
| Ganesh Sittampalam<br />
| Credit Suisse (Darcs)<br />
| +447968253467<br />
| <br />
| <br />
| <br />
|-<br />
| tibbe<br />
| Johan Tibell<br />
| Google<br />
| +41787978230<br />
| <br />
| <br />
| <br />
|-<br />
| <br />
| Keith Lomax<br />
| <br />
| <br />
| <br />
| <br />
| <br />
|-<br />
| sioraiocht<br />
| Tom Harper<br />
| Oxford University Computing Laboratory<br />
| +44 7533 998 591<br />
|<br />
|<br />
|<br />
|-<br />
| poucet<br />
| Christophe Poucet<br />
| Google<br />
| +41796691013<br />
| <br />
| <br />
| <br />
|-<br />
| zeuxis<br />
| Harald Holtmann<br />
| <br />
| +49 176 22053266<br />
| <br />
| <br />
| <br />
|-<br />
| rmies<br />
| Michel Rijnders<br />
| TTY (Amsterdam)<br />
| +31646442127<br />
|<br />
|<br />
|<br />
|-<br />
| <br />
| Simon Meier<br />
| ETH Zurich<br />
| <br />
|<br />
|<br />
|<br />
|-<br />
| Gh_<br />
| Guillaume Hoffmann<br />
| (Darcs)<br />
|<br />
| 19 morning<br />
| 21 afternoon<br />
|<br />
|-<br />
| jnwhiteh<br />
| Jim Whitehead<br />
| Oxford University Computing Laboratory<br />
| +44 7846 257 133<br />
| <br />
|<br />
| <br />
|-<br />
| kolmodin<br />
| Lennart Kolmodin<br />
| Västra Götalandsregionen<br />
| +46 73 6223606<br />
| <br />
|<br />
| <br />
|-<br />
| madhadron<br />
| Frederick Ross<br />
| Ecole Polytechnique Federale de Lausanne<br />
| +41 79 710 02 11<br />
| <br />
|<br />
|<br />
|-<br />
| al-maisan<br />
| Muharem Hrnjadovic<br />
| <br />
| +49 (1577) 470-3749<br />
|19 morning<br />
|21 afternoon<br />
|Hotel Neufeld, Friesenbergstraße 15<br />
|-<br />
| beschmi<br />
| Benedikt Schmidt<br />
| ETH Zurich (Darcs)<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| chr1s<br />
| Chris Eidhof<br />
| Tupil / Utrecht University<br />
| +31628887656<br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| Martijn van Steenbergen<br />
| Utrecht University<br />
| <br />
|<br />
|<br />
|<br />
|-<br />
| hesselink<br />
| Erik Hesselink<br />
| typLAB<br />
| +31650994887<br />
|<br />
|<br />
|<br />
|-<br />
| sfvisser<br />
| Sebastiaan Visser<br />
| typLAB / Utrecht University<br />
| +31624828951<br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| Tom Lokhorst<br />
| Utrecht University<br />
| <br />
|<br />
|<br />
|<br />
|-<br />
| kosmikus<br />
| Andres L&ouml;h<br />
| Utrecht University<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| smurfpje<br />
| Clara L&ouml;h<br />
| Universit&auml;t G&ouml;ttingen<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| nomeata<br />
| Joachim Breitner<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| kowey<br />
| Eric Kow<br />
| University of Brighton (Darcs)<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| Simon Hengel<br />
| Spin AG<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| Dirk Spöri<br />
| factis research GmbH<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| Harald Fischer<br />
| factis research GmbH<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| Johannes Weiss<br />
| factis research GmbH<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| Gero Kriependorf<br />
| factis research GmbH<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| Stefan Wehr<br />
| factis research GmbH<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| David Leuschner<br />
| factis research GmbH<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| Steven Keuchel<br />
| Utrecht University<br />
| +31644053336<br />
|<br />
|<br />
|<br />
|-<br />
| dcoutts<br />
| Duncan Coutts<br />
| Well-Typed LLP<br />
| <br />
| <br />
| <br />
|<br />
|-<br />
| tux_rocker<br />
| Reinier Lamers<br />
| (Darcs)<br />
|<br />
| 18 night<br />
| 21 night<br />
|<br />
|-<br />
| jutaro<br />
| Jürgen Nicklisch-Franken<br />
| ICS AG<br />
| <br />
| <br />
|<br />
|<br />
|-<br />
| dons<br />
| Don Stewart<br />
| Galois, Inc<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| gal_bolle<br />
| Florent Becker<br />
| Université d'Orléans (Darcs)<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| ErrGe<br />
| Gergely Risko<br />
| Nokia<br />
| +358504899477<br />
| 19 noon<br />
| 22 noon<br />
|<br />
|-<br />
| HugoDaniel<br />
| Hugo Daniel<br />
| New University of Lisbon (UNL)<br />
| <br />
| 18 night<br />
| 22 morning<br />
|<br />
|-<br />
| <br />
| Atze Dijkstra<br />
| Utrecht University<br />
| <br />
| <br />
|<br />
| <br />
|-<br />
| <br />
| Jeroen Fokker<br />
| Utrecht University<br />
| +31644350198<br />
| <br />
|<br />
| <br />
|-<br />
| <br />
| Petr Rockai<br />
| (Darcs)<br />
| <br />
| <br />
| <br />
|<br />
|-<br />
| <br />
| Nikolas Mayr<br />
| University of Paderborn<br />
| +49 170 5448278<br />
| 19 morning<br />
| 21 afternoon<br />
| Youth Hostel Zurich<br />
|-<br />
|<br />
| Sergey Astanin<br />
| Politecnico di Torino<br />
| +39 333 952 0878<br />
|<br />
|<br />
| <br />
|-<br />
|<br />
| Bartek Wojcik<br />
| <br />
| <br />
| <br />
| <br />
| <br />
|}<br />
<br />
= Additional Comments =<br />
<br />
Please use this section to leave comments for other attendees, e.g. for organizing accommodation.</div>Zarkhttps://wiki.haskell.org/index.php?title=ZuriHac2010/Accommodations&diff=33504ZuriHac2010/Accommodations2010-02-07T20:08:01Z<p>Zark: </p>
<hr />
<div>This is the accomodation page for [[ZuriHac]]. Please refer to the [[ZuriHac|main page]] for more information.<br />
<br />
Please use this page to organize where you are going to stay.<br />
<br />
{| class="wikitable"<br />
! Names<br />
! Staying At<br />
! Further Information<br />
|-<br />
| Marc A. Ziegert, Nikolas Mayr<br />
| Youth Hostel Zurich<br />
| We would prefer to stay in a room of 4 people. If you share the interest you are welcome to add your name. Please also call one of us ([[ZuriHac/Attendees|Attendees]]), so that we can update the reservation.<br />
|}</div>Zarkhttps://wiki.haskell.org/index.php?title=ZuriHac2010/Attendees&diff=33326ZuriHac2010/Attendees2010-01-26T17:19:03Z<p>Zark: added myself to the attendees list and fixed some table cells</p>
<hr />
<div>This is the attendee list for [[ZuriHac]]. Please refer to the [[ZuriHac|main page]] for more information.<br />
<br />
= Attendees =<br />
<br />
Once you've [[ZuriHac/Register|registered]], please add your name to the following table:<br />
<br />
{| class="wikitable"<br />
! Nickname<br />
! Real Name<br />
! Affiliation<br />
! Mobile #<br />
! Arriving<br />
! Departing<br />
! Accomodation<br />
|-<br />
| coeus<br />
| Marc A. Ziegert<br />
| University of Paderborn<br />
| +49 17 5 6000 700<br />
| <br />
| <br />
| <br />
|-<br />
| Heffalump<br />
| Ganesh Sittampalam<br />
| Credit Suisse (Darcs)<br />
| +447968253467<br />
| <br />
| <br />
| <br />
|-<br />
| tibbe<br />
| Johan Tibell<br />
| Google<br />
| +41787978230<br />
| <br />
| <br />
| <br />
|-<br />
| <br />
| Keith Lomax<br />
| <br />
| <br />
| <br />
| <br />
| <br />
|-<br />
| sioraiocht<br />
| Tom Harper<br />
| Oxford University Computing Laboratory<br />
| +44 7533 998 591<br />
|<br />
|<br />
|<br />
|-<br />
| poucet<br />
| Christophe Poucet<br />
| Google<br />
| +41796691013<br />
| <br />
| <br />
| <br />
|-<br />
| zeuxis<br />
| Harald Holtmann<br />
| <br />
| +49 176 22053266<br />
| <br />
| <br />
| <br />
|-<br />
| rmies<br />
| Michel Rijnders<br />
| TTY (Amsterdam)<br />
| +31646442127<br />
|<br />
|<br />
|<br />
|-<br />
| <br />
| Simon Meier<br />
| ETH Zurich<br />
| <br />
|<br />
|<br />
|<br />
|-<br />
| Gh_<br />
| Guillaume Hoffmann<br />
| (Darcs)<br />
|<br />
| 19 morning<br />
| 21 afternoon<br />
|<br />
|-<br />
| vvv<br />
| Valery V. Vorotyntsev<br />
| Infopulse Ukraine<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| jnwhiteh<br />
| Jim Whitehead<br />
| Oxford University Computing Laboratory<br />
| +44 7846 257 133<br />
| <br />
|<br />
| <br />
|-<br />
| kolmodin<br />
| Lennart Kolmodin<br />
| Västra Götalandsregionen<br />
| +46 73 6223606<br />
| <br />
|<br />
| <br />
|-<br />
| madhadron<br />
| Frederick Ross<br />
| Ecole Polytechnique Federale de Lausanne<br />
| +41 79 710 02 11<br />
| <br />
|<br />
|<br />
|-<br />
| al-maisan<br />
| Muharem Hrnjadovic<br />
| <br />
| +49 (1577) 470-3749<br />
|19 morning<br />
|21 afternoon<br />
|Hotel Neufeld, Friesenbergstraße 15<br />
|-<br />
| beschmi<br />
| Benedikt Schmidt<br />
| ETH Zurich (Darcs)<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| chr1s<br />
| Chris Eidhof<br />
| Tupil / Utrecht University<br />
| +31628887656<br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| Martijn van Steenbergen<br />
| Utrecht University<br />
| <br />
|<br />
|<br />
|<br />
|-<br />
| hesselink<br />
| Erik Hesselink<br />
| typLAB<br />
| +31650994887<br />
|<br />
|<br />
|<br />
|-<br />
| sfvisser<br />
| Sebastiaan Visser<br />
| typLAB / Utrecht University<br />
| +31624828951<br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| Tom Lokhorst<br />
| Utrecht University<br />
| <br />
|<br />
|<br />
|<br />
|-<br />
| kosmikus<br />
| Andres L&ouml;h<br />
| Utrecht University<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| smurfpje<br />
| Clara L&ouml;h<br />
| Universit&auml;t G&ouml;ttingen<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| nomeata<br />
| Joachim Breitner<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| kowey<br />
| Eric Kow<br />
| University of Brighton (Darcs)<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| Simon Hengel<br />
| Spin AG<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| Dirk Spöri<br />
| factis research GmbH<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| Harald Fischer<br />
| factis research GmbH<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| Johannes Weiss<br />
| factis research GmbH<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| Gero Kriependorf<br />
| factis research GmbH<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| Stefan Wehr<br />
| factis research GmbH<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| David Leuschner<br />
| factis research GmbH<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| Steven Keuchel<br />
| Utrecht University<br />
| +31644053336<br />
|<br />
|<br />
|<br />
|-<br />
| dcoutts<br />
| Duncan Coutts<br />
| Well-Typed LLP<br />
| <br />
| <br />
| <br />
|<br />
|-<br />
| tux_rocker<br />
| Reinier Lamers<br />
| (Darcs)<br />
|<br />
| 18 night<br />
| 21 night<br />
|<br />
|-<br />
| jutaro<br />
| Jürgen Nicklisch-Franken<br />
| ICS AG<br />
| <br />
| <br />
|<br />
|<br />
|-<br />
| dons<br />
| Don Stewart<br />
| Galois, Inc<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| gal_bolle<br />
| Florent Becker<br />
| Université d'Orléans (Darcs)<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| ErrGe<br />
| Gergely Risko<br />
| Nokia<br />
| +358504899477<br />
| 19 noon<br />
| 22 noon<br />
|<br />
|-<br />
| HugoDaniel<br />
| Hugo Daniel<br />
| New University of Lisbon (UNL)<br />
| <br />
| 18 night<br />
| 22 morning<br />
|<br />
|-<br />
| <br />
| Atze Dijkstra<br />
| Utrecht University<br />
| <br />
| <br />
|<br />
| <br />
|-<br />
| <br />
| Petr Rockai<br />
| (Darcs)<br />
| <br />
| <br />
| <br />
|<br />
|-<br />
| <br />
| Nikolas Mayr<br />
| University of Paderborn<br />
| +49 170 5448278<br />
| 19 morning<br />
| 21 afternoon<br />
| <br />
|}<br />
<br />
= Additional Comments =<br />
<br />
Please use this section to leave comments for other attendees, e.g. for organizing accommodation.</div>Zark