-
8/14/2019 The Birth of the Industrial Haskell Group : CUFP 2009
1/26
A shared infrastructure Establishing a consortium An idea for shared development
Birth of the Industrial Haskell Group
Duncan Coutts
CUFP 2009
http://goforward/http://find/http://goback/ -
8/14/2019 The Birth of the Industrial Haskell Group : CUFP 2009
2/26
A shared infrastructure Establishing a consortium An idea for shared development
Outline
A shared infrastructure
Establishing a consortium
An idea for shared development
http://goforward/http://find/http://goback/ -
8/14/2019 The Birth of the Industrial Haskell Group : CUFP 2009
3/26
A shared infrastructure Establishing a consortium An idea for shared development
Economics of programming languages
The economics drives us to shared languages andimplementations.
Private languages are a private cost
Shared languages: more public resources more skilled people available
Shared implementations:
share past development costs opportunity to share future development costs
http://goforward/http://find/http://goback/ -
8/14/2019 The Birth of the Industrial Haskell Group : CUFP 2009
4/26
-
8/14/2019 The Birth of the Industrial Haskell Group : CUFP 2009
5/26
A shared infrastructure Establishing a consortium An idea for shared development
Models of programming language
development
Proprietary product
F#
Open, central commercial vendor
Erlang
Open, no central vendor
Haskell ML Lisp
http://goforward/http://find/http://goback/ -
8/14/2019 The Birth of the Industrial Haskell Group : CUFP 2009
6/26
A shared infrastructure Establishing a consortium An idea for shared development
Funding programming language development
Who do you pay?
do it in-house
central vendor consultants
grad students...
How do we share costs?
http://goforward/http://find/http://goback/ -
8/14/2019 The Birth of the Industrial Haskell Group : CUFP 2009
7/26
A shared infrastructure Establishing a consortium An idea for shared development
Open community languages
Open community languages have particular advantagesand disadvantages
Loads of stuff for free
Choice of consultants
Academics and open source hackers can havedifferent priorities and timescales
Harder to share future development costs
We think a consortium model is a good match for theopen languages.
A h d i f t t E t bli hi ti A id f h d d l t
http://goforward/http://find/http://goback/ -
8/14/2019 The Birth of the Industrial Haskell Group : CUFP 2009
8/26
A shared infrastructure Establishing a consortium An idea for shared development
Outline
A shared infrastructure
Establishing a consortium
An idea for shared development
A shared infrastructure Establishing a consortium An idea for shared development
http://goforward/http://find/http://goback/ -
8/14/2019 The Birth of the Industrial Haskell Group : CUFP 2009
9/26
A shared infrastructure Establishing a consortium An idea for shared development
Why start a consortium now?
Indicators of commercial use pointing upwards:
Job postings
Informal discussions
CUFP attendance
Mailing list traffic, downloads, feature request tickets
A shared infrastructure Establishing a consortium An idea for shared development
http://goforward/http://find/http://goback/ -
8/14/2019 The Birth of the Industrial Haskell Group : CUFP 2009
10/26
A shared infrastructure Establishing a consortium An idea for shared development
Planning discussions
Discussed it with Galois after CUFP last year
Who does the organisation?
Issue of cost and expected number of members
A shared infrastructure Establishing a consortium An idea for shared development
http://goforward/http://find/http://goback/ -
8/14/2019 The Birth of the Industrial Haskell Group : CUFP 2009
11/26
A shared infrastructure Establishing a consortium An idea for shared development
The Caml Consortium
Aimed for around 20 members
Cost: e3ke10k for 12 months ($4k$14k)
Provides OCaml & libs under 4-clause BSD license
Started with 4 members in 2002, 7 members by 2008
Initially unable to fund full-time development
Now has 10 members
Our analysis:not charging enough, aiming for too many members
A shared infrastructure Establishing a consortium An idea for shared development
http://goforward/http://find/http://goback/ -
8/14/2019 The Birth of the Industrial Haskell Group : CUFP 2009
12/26
A shared infrastructure Establishing a consortium An idea for shared development
The Industrial Haskell Group
Aim initially for 5 members
Cost 6k for 6 months ($10k)
No special license
A shared infrastructure Establishing a consortium An idea for shared development
http://goforward/http://find/http://goback/ -
8/14/2019 The Birth of the Industrial Haskell Group : CUFP 2009
13/26
A shared infrastructure Establishing a consortium An idea for shared development
Starting a venture in a recession...
CUFP 2008
Doom and gloom
IHG announced
Talking to
potential members
Great idea! Call us back in a year.
A shared infrastructure Establishing a consortium An idea for shared development
http://goforward/http://find/http://goback/ -
8/14/2019 The Birth of the Industrial Haskell Group : CUFP 2009
14/26
g p
Birth of the IHG
Started in March 2009 with 3 members
Including Galois and Amgen
Funded 2 man-months of development work
A shared infrastructure Establishing a consortium An idea for shared development
http://goforward/http://find/http://goback/ -
8/14/2019 The Birth of the Industrial Haskell Group : CUFP 2009
15/26
g p
How we decide what to do
Internal mailing list
Collect wish lists Look for overlaps and high priority tasks
Collectively agree on the tasks
A shared infrastructure Establishing a consortium An idea for shared development
http://goforward/http://find/http://goback/ -
8/14/2019 The Birth of the Industrial Haskell Group : CUFP 2009
16/26
What IHG members asked for
Short & medium term projects
Feature additions
System integration Development tools
Not bug fixes
Not releases
Not language or core compiler issues
A shared infrastructure Establishing a consortium An idea for shared development
http://goforward/http://find/http://goback/ -
8/14/2019 The Birth of the Industrial Haskell Group : CUFP 2009
17/26
What the IHG has funded so far
Dynamic libraries on Linux
Ongoing work for dynamic libraries on Windows Allow building GHC without GMP lib
Cabal improvement to reduce build times byincreased sharing
A shared infrastructure Establishing a consortium An idea for shared development
http://goforward/http://find/http://goback/ -
8/14/2019 The Birth of the Industrial Haskell Group : CUFP 2009
18/26
Reflections on the process
Individual pots have not been used much We would add our own suggestions for projects
A shared infrastructure Establishing a consortium An idea for shared development
http://goforward/http://find/http://goback/ -
8/14/2019 The Birth of the Industrial Haskell Group : CUFP 2009
19/26
Future aims
Expand membership
Add price-point for small companies
Consider sponsorship level membership
A shared infrastructure Establishing a consortium An idea for shared development
http://goforward/http://find/http://goback/ -
8/14/2019 The Birth of the Industrial Haskell Group : CUFP 2009
20/26
Outline
A shared infrastructure
Establishing a consortium
An idea for shared development
A shared infrastructure Establishing a consortium An idea for shared development
http://goforward/http://find/http://goback/ -
8/14/2019 The Birth of the Industrial Haskell Group : CUFP 2009
21/26
What should consortia fund?
Whatever the members want!
Short and medium term projects of direct benefit:adding features
Fixing bugs, testing, performance, making releases
Development infrastructure
A shared infrastructure Establishing a consortium An idea for shared development
http://goforward/http://find/http://goback/ -
8/14/2019 The Birth of the Industrial Haskell Group : CUFP 2009
22/26
Investing in infrastructure
A modest investment in development infrastructure...
Potentially large benefit
more open reusable code
higher quality (code, tests, docs)
Mechanism: help the open community to do more
A shared infrastructure Establishing a consortium An idea for shared development
http://goforward/http://find/http://goback/ -
8/14/2019 The Birth of the Industrial Haskell Group : CUFP 2009
23/26
A quick poll...
A shared infrastructure Establishing a consortium An idea for shared development
http://goforward/http://find/http://goback/ -
8/14/2019 The Birth of the Industrial Haskell Group : CUFP 2009
24/26
Benefits of a community language
Hackage Haskells package archive
1,500+ packages
400+ developers
Growing steadily
Mostly uniform packaging
Hackage contains
Robust reusable libraries and tools Latest academic research
Plenty of chaff
A shared infrastructure Establishing a consortium An idea for shared development
http://goforward/http://find/http://goback/ -
8/14/2019 The Birth of the Industrial Haskell Group : CUFP 2009
25/26
The Hackage example
For example, extend Hackage by publishing Build results
Test results
Test coverage
Quality metrics
Benefits
Distinguish the good packages
Encourage quality
Virtuous cycle between commercial and other users
A shared infrastructure Establishing a consortium An idea for shared development
http://goforward/http://find/http://goback/ -
8/14/2019 The Birth of the Industrial Haskell Group : CUFP 2009
26/26
Summary
Opportunities to share development costs
Consortium model for open languages
Invest in development infrastructure
http://goforward/http://find/http://goback/