Birth of the Industrial Haskell Group Duncan Coutts CUFP 2009 A - - PowerPoint PPT Presentation

birth of the industrial haskell group
SMART_READER_LITE
LIVE PREVIEW

Birth of the Industrial Haskell Group Duncan Coutts CUFP 2009 A - - PowerPoint PPT Presentation

A shared infrastructure Establishing a consortium An idea for shared development Birth of the Industrial Haskell Group Duncan Coutts CUFP 2009 A shared infrastructure Establishing a consortium An idea for shared development Outline A


slide-1
SLIDE 1

A shared infrastructure Establishing a consortium An idea for shared development

Birth of the Industrial Haskell Group

Duncan Coutts CUFP 2009

slide-2
SLIDE 2

A shared infrastructure Establishing a consortium An idea for shared development

Outline

A shared infrastructure Establishing a consortium An idea for shared development

slide-3
SLIDE 3

A shared infrastructure Establishing a consortium An idea for shared development

Economics of programming languages

The economics drives us to shared languages and implementations.

  • 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
slide-4
SLIDE 4

A shared infrastructure Establishing a consortium An idea for shared development

The more we do share, the more we can share

The more we share already, the greater the opportunity to share costs of new development

  • Compilers
  • Standard libraries
  • Tools (profiling, testing, etc)
slide-5
SLIDE 5

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
slide-6
SLIDE 6

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?

slide-7
SLIDE 7

A shared infrastructure Establishing a consortium An idea for shared development

Open community languages

Open community languages have particular advantages and disadvantages

  • Loads of stuff for free
  • Choice of consultants
  • Academics and open source hackers can have

different priorities and timescales

  • Harder to share future development costs

We think a consortium model is a good match for the

  • pen languages.
slide-8
SLIDE 8

A shared infrastructure Establishing a consortium An idea for shared development

Outline

A shared infrastructure Establishing a consortium An idea for shared development

slide-9
SLIDE 9

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
slide-10
SLIDE 10

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
slide-11
SLIDE 11

A shared infrastructure Establishing a consortium An idea for shared development

The Caml Consortium

  • Aimed for around 20 members
  • Cost: e3k– e10k 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

slide-12
SLIDE 12

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
slide-13
SLIDE 13

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.”

slide-14
SLIDE 14

A shared infrastructure Establishing a consortium An idea for shared development

Birth of the IHG

  • Started in March 2009 with 3 members
  • Including Galois and Amgen
  • Funded 2 man-months of development work
slide-15
SLIDE 15

A shared infrastructure Establishing a consortium An idea for shared development

How we decide what to do

  • Internal mailing list
  • Collect wish lists
  • Look for overlaps and high priority tasks
  • Collectively agree on the tasks
slide-16
SLIDE 16

A shared infrastructure Establishing a consortium An idea for shared development

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
slide-17
SLIDE 17

A shared infrastructure Establishing a consortium An idea for shared development

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 by

increased sharing

slide-18
SLIDE 18

A shared infrastructure Establishing a consortium An idea for shared development

Reflections on the process

  • “Individual pots” have not been used much
  • We would add our own suggestions for projects
slide-19
SLIDE 19

A shared infrastructure Establishing a consortium An idea for shared development

Future aims

  • Expand membership
  • Add price-point for small companies
  • Consider “sponsorship” level membership
slide-20
SLIDE 20

A shared infrastructure Establishing a consortium An idea for shared development

Outline

A shared infrastructure Establishing a consortium An idea for shared development

slide-21
SLIDE 21

A shared infrastructure Establishing a consortium An idea for shared development

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
slide-22
SLIDE 22

A shared infrastructure Establishing a consortium An idea for shared development

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

slide-23
SLIDE 23

A shared infrastructure Establishing a consortium An idea for shared development

A quick poll...

slide-24
SLIDE 24

A shared infrastructure Establishing a consortium An idea for shared development

Benefits of a community language

Hackage — Haskell’s 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
slide-25
SLIDE 25

A shared infrastructure Establishing a consortium An idea for shared development

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

slide-26
SLIDE 26

A shared infrastructure Establishing a consortium An idea for shared development

Summary

  • Opportunities to share development costs
  • Consortium model for open languages
  • Invest in development infrastructure