The Birth of the Industrial Haskell Group : CUFP 2009

Embed Size (px)

Citation preview

  • 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/