ABSTRACT
The quality of a programming language itself is only one component in the ability of application writers to get the job done. Programming languages can succeed or fail based on the breadth and quality of their library collection. Over the last few years, the Haskell community has risen to the task of building the library infrastructure necessary for Haskell to succeed as a programming language suitable for writing real-world applications.
This on-going work, the Cabal and Hackage effort, is built on the open source model of distributed development, and have resulted in a flowering of development in the language with more code produced and reused now than at any point in the community's history. It is easier to obtain and use Haskell code, in a wider range of environments, than ever before.
This demonstration describes the infrastructure and process of Haskell development inside the Cabal/Hackage framework, including the build system, library dependency resolution, centralised publication, documentation and distribution, and how the code escapes outward into the wider software community.
We survey the benefits and trade-offs in a distributed, collaborative development ecosystem and look at a proposed Haskell Platform that envisages a complete Haskell development environment, batteries included.
Supplemental Material
Available for Download
- Debian. A Brief History of Debian. http://www.debian.org/doc/manuals/project-history/project-history.en.tx%t, 2003.Google Scholar
- Paul Hudak, John Hughes, Simon Peyton Jones, and Philip Wadler. A History of Haskell: being lazy with class. In HOPL III: Proceedings of the third ACM SIGPLAN conference on History of programming languages, pages 12-1--12-55, New York, NY, USA, 2007. ACM. ISBN 978-1-59593-766-X. Google Scholar
Digital Library
- Isaac Jones. The Haskell Cabal: A Common Architecture for Building Applications and Libraries. In Marko van Eekelen, editor, 6th Symposium on Trends in Functional Programming, pages 340--354, 2005.Google Scholar
- Miguel de Icaza. The GNOME Project: What is GNOME and where is it heading? Miguel tells us all. Linux Journal, page 7, 1999. ISSN 1075-3583. Google Scholar
Digital Library
- Simon Peyton Jones. Wearing the hair shirt: a retrospective on Haskell (invited talk). In ACM SIGPLAN Conference on Principles of Programming Languages (POPL'03), 2003.Google Scholar
Index Terms
Haskell: batteries included
Recommendations
Haskell: batteries included
HASKELL '08The quality of a programming language itself is only one component in the ability of application writers to get the job done. Programming languages can succeed or fail based on the breadth and quality of their library collection. Over the last few years,...
Plugging Haskell in
Haskell '04: Proceedings of the 2004 ACM SIGPLAN workshop on HaskellExtension languages enable users to expand the functionality of an application without touching its source code. Commonly, these languages are dynamically typed languages, such as Lisp, Python, or domain-specific languages, which support runtime plugins ...
FunZ Designs -- A Bridge Between Z Specifications and Haskell Implementations
COMPSAC '95: Proceedings of the 19th International Computer Software and Applications ConferenceFunZ, an intermediate specification language, is part of a complete methodology designed to facilitate the derivation of purely functional programs from Z specifications. FunZ is actually an extension of Haskell, yet the language also retains a Z-like ...







Comments