Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introducing the Scala Center

Introducing the Scala Center

All about the new Scala Center, how we operate, what we're working on, and what we plan to do next!

Keynote at Scala Days NYC, May 10, 2016

Heather Miller

May 10, 2016
Tweet

More Decks by Heather Miller

Other Decks in Technology

Transcript

  1. scalacenter
    Heather Miller
    @heathercmiller
    Scala Days NYC, May 10th, 2016
    the
    Introducing:
    http://scala.epfl.ch

    View Slide

  2. A new not-for-profit center
    established at EPFL
    launched about a month and a half ago

    View Slide

  3. A new not-for-profit center
    established at EPFL
    EPFL
    a world leading 

    university in Switzerland
    (the Swiss Federal Institute
    of Technology at Lausanne)

    View Slide

  4. part of a university in
    Switzerland
    \

    View Slide

  5. View Slide

  6. Why a center?
    So,

    View Slide

  7. Why a center?
    So,
    Scala’s growing in popularity.

    View Slide

  8. Why a center?
    So,
    Scala’s growing in popularity.
    More so than data science, actually

    View Slide

  9. Why a center?
    So,
    Also a top-5 most loved language!
    Developer Survey 2016, >50k participants

    View Slide

  10. Why a center?
    So,
    But unlike other equally successful open source
    programming languages and frameworks, until
    now, we’ve had no nonprofit vendor-neutral
    steward.
    Lightbend does a great job guaranteeing stability
    of the Scala 2.x compiler.
    But Scala is bigger than the 2.x compiler alone. It
    needs more attention elsewhere too:
    Libraries Community/ecosystem
    Dotty Alternate back-ends

    View Slide

  11. Focused on:
    Open source community
    1.
    2. Education
    is
    The

    View Slide

  12. is
    The
    For the good of all
    Community = all of us

    View Slide

  13. O u r m i s s i o n
    Independently guide and support the entire
    Scala community.
    Coordinate and develop open source libraries
    and tools for the benefit of the overall Scala
    community.
    Provide deep, quality, and freely available
    educational materials for Scala.

    View Slide

  14. Focused on:
    Open source community
    1.
    2. Education
    is
    The

    View Slide

  15. Education

    View Slide

  16. Education
    For the good of all
    have over 400,000 registrations to date
    Our Scala MOOCs on Coursera…
    serve as the main free educational
    resource for learning Scala
    have the highest completion rates across
    all MOOCs their size

    View Slide

  17. Education
    For the good of all
    have over 400,000 registrations to date
    Our Scala MOOCs on Coursera…
    serve as the main free educational
    resource for learning Scala
    have the highest completion rates across
    all MOOCs their size
    http://www.katyjordan.com/MOOCproject.html

    View Slide

  18. Education
    For the good of all
    have over 400,000 registrations to date
    Our Scala MOOCs on Coursera…
    serve as the main free educational
    resource for learning Scala
    have the highest completion rates across
    all MOOCs their size
    http://www.katyjordan.com/MOOCproject.html

    View Slide

  19. Education
    For the good of all
    have over 400,000 registrations to date
    Our Scala MOOCs on Coursera…
    serve as the main free educational
    resource for learning Scala
    have the highest completion rates across
    all MOOCs their size

    View Slide

  20. Education
    For the good of all
    Coming soon:
    4 courses
    A new Scala Mini-degree
    offered on Coursera
    *
    * called a “specialization” on Coursera
    one capstone project
    composed of:
    2 NEW courses!
    (a significant 4-5 week long final
    programming project.)

    View Slide

  21. Launching on Coursera’s new platform!
    On demand!
    No more waiting for a twice
    yearly 7-week session to start!

    View Slide

  22. View Slide

  23. Individual unverified courses:
    Verified certificates & mini-degree:
    FREE!
    paid

    View Slide

  24. Automated-grading
    Featuring
    Our automated graders make a return for
    more assignments in more courses!
    Correctness
    Scala style don’t use vars!
    did you consider all corner cases?
    Checking:

    View Slide

  25. Education
    For the good of all
    the courses:
    Functional Programming Principles in Scala
    1.
    2.
    3.
    4.
    Functional Program Design in Scala
    Parallel Programming
    Big Data Analysis in Scala and Spark
    NEW
    NEW
    Taught by:
    Taught by:
    Taught by:
    Taught by:
    MARTIN ODERSKY
    MARTIN ODERSKY
    guest lecturer: erik meijer
    Viktor Kuncak, Aleksandar Prokopec
    hEATHER MILLER

    View Slide

  26. Functional Programming
    Principles in Scala
    The MOOCs
    understand the principles of
    functional programming
    1.
    Taught by:
    MARTIN ODERSKY
    6 weeks!
    write purely functional programs,
    using recursion, pattern matching,
    and higher-order functions
    combine functional programming
    with objects and classes
    design immutable data structures
    reason about properties of functions
    understand generic types for functional
    programs
    topics:
    Functions & evaluation
    Higher order functions
    Data & abstraction
    Types & pattern matching
    Lists
    Collections

    View Slide

  27. Functional Program Design
    in Scala
    The MOOCs
    recognize and apply design
    principles of functional programs
    2.
    Taught by:
    MARTIN ODERSKY Erik Meijer
    guest lecturer:
    4 weeks!
    design functional libraries and
    their APIs
    competently combine functions
    and state in one program
    topics:
    For expressions &
    monads
    Lazy evaluation
    Functions & state
    Timely effects
    understand reasoning techniques
    for programs that combine
    functions and state
    write simple functional reactive
    applications
    (Futures!)

    View Slide

  28. Parallel Programming
    The MOOCs
    basics of parallel computing and
    parallel program analysis
    What are we going to teach?
    3.
    Taught by:
    Viktor Kuncak Alex Prokopec
    task-parallelism, basic parallel
    algorithms
    data-parallelism, Scala parallel
    collections
    data structures for parallel
    computing
    Task- & data-parallelism.
    But mostly data-parallelism.
    4 weeks!

    View Slide

  29. Big Data Analysis with Scala
    and Spark
    The MOOCs
    basics of Spark’s programming model
    4.
    Taught by:
    Heather Miller
    3 weeks!
    What are we going to teach?
    Data-parallelism
    extended to the distributed case
    nitty gritty: how does the Spark programming
    model differ from familiar programming models
    like shared-memory parallel collections?
    manipulate data with Spark and Scala
    express algorithms for data analysis in a
    functional style
    recognize how to avoid shuffles and
    recomputation in Spark

    View Slide

  30. When will they start?
    So,
    May 23rd
    (planned)
    Courses 1-3 arriving:
    Please visit http://scala.epfl.ch and leave your name/email.
    If you’d like to stay informed about our MOOCs,

    View Slide

  31. Open source

    View Slide

  32. Open source
    For the good of all
    Much can be improved!
    The Scala Center seeks to:
    Substantially grow our community of open
    source contributors.
    Coordinate and direct the open source
    development of libraries/tools of broad benefit
    to the community.
    Provide scaffolding to help community develop,
    publish, find, and evaluate Scala libraries.
    Improve the landscape of Scala’s libraries.

    View Slide

  33. our
    Philosophy

    View Slide

  34. Grow contributor communities
    For a manageable handful of initiatives, ensure
    that:
    Hardware/infrastructure is available 

    (fund it!)
    Projects are managed, larger goals broken
    into pieces for anyone to help with
    At least 1-2 Scala Center staff members
    always engaged and participating
    throughout development
    Give contributors control!
    open source project management

    View Slide

  35. Grow contributor communities
    For a manageable handful of initiatives, ensure
    that:
    Hardware/infrastructure is available 

    (fund it!)
    Projects are managed, larger goals broken
    into pieces for anyone to help with
    At least 1-2 Scala Center staff members
    always engaged and participating
    throughout development
    Give contributors control!
    wE WANT:
    Maximum benefit for the entire community of
    individual community members’ efforts.
    Work together to grow something we can all
    depend on.
    eND GOAl:
    Grow teams of close-knit core contributors/
    committers to Scala Center projects,
    consisting of Scala Center staff and folks
    from the overall Scala community.

    View Slide

  36. Grow contributor communities
    Weekly 30 minute project meetings
    How do we
    ?
    Dedicated slack channels per project
    Concise, direct to the point, discuss
    outcomes, plan each members’ next
    steps. Sync on each others’ availabilities.
    Great for: always being able to ask
    questions, broadcasting daily wins, never
    getting stuck, + sharing the occasional
    meme :)
    Project management and
    contributions

    View Slide

  37. How does it work?
    v
    the Scala Center

    View Slide

  38. Funding?
    EPFL to provide seed funding for 2 employees. 

    Revenue share from the MOOCs.
    Donations from industrial partners.
    To grow beyond 2,
    (mostly for MOOCs)
    The Scala Center has been created as an independent, non-profit
    organization within EPFL.
    Our independence from commercial interests is protected by statute
    through the Swiss Federal restriction that our funding must be made as
    charitable donations for us to receive contributions in their entirety, not
    linked to any particular initiative.
    This ensures objectivity in and accountability for our decision-making and
    allows us to focus on our overall mission: to benefit all Scala users.

    View Slide

  39. Funding?
    EPFL to provide seed funding for 2 employees. 

    Revenue share from the MOOCs.
    Donations from industrial partners.
    To grow beyond 2,
    What do corporate members get for
    their donation?
    The right to stay in the loop, a guarantee of
    progress from us, and the ability to make
    recommendations about areas that need attention.
    Every recommendation must be
    for the good of all.

    View Slide

  40. How does it work?
    Scala Center representatives
    We discuss the Scala Center’s progress on its
    initiatives.
    Advisory board
    Community representative(s)
    We discuss areas of concern that might need
    attention. We vote on what we think is most
    important.
    Corporate representatives
    We are committed to being fully
    transparent!
    voting members

    View Slide

  41. View Slide

  42. Our first advisory board meeting
    3 main recommendations by the advisory board:
    Clarify Scala to Dotty migration path
    Took place yesterday!
    1.
    2.
    Improve governance of community processes
    (e.g., SIP/SLIP)
    Ensure continuity of Scala.js project
    3.

    View Slide

  43. What about Lightbend?
    Orthogonally!
    Easy. We work together.
    Lightbend will still maintain the stable Scala
    release.
    We’ll start with libraries and the Scala
    ecosystem.
    Dotty
    To stay orthogonal, other areas of focus may
    include:
    Alternate backends; Scala.js, Scala Native (?)

    View Slide

  44. started
    w h a t W e ’ r e g e t t i n g
    with
    getting
    (First projects)

    View Slide

  45. What do Node, Haskell, and
    Rust have in common that
    Scala doesn’t?
    First, a question:

    View Slide

  46. A package index!
    You shouldn’t have to be a good salesperson to
    get your library used.
    We should help make it easier users find your
    libraries!

    View Slide

  47. A package index!
    You shouldn’t have to be a good salesperson to
    get your library used.
    We should help make it easier users find your
    libraries!
    We want to give a voice to great projects
    without the need for marketing + publicity

    View Slide

  48. Scaladex
    A package index for Scala.
    Info from POMs, GitHub, StackOverflow,
    & more!
    Based off of published Scala libraries
    Scala versions 2.10 and up!
    You can update configuration info + add a
    “Scala community” badge for GitHub
    README.
    Introducing…
    A map of the known Scala ecosystem!

    View Slide

  49. A package index for Scala.
    Info from POMs, GitHub, StackOverflow,
    & more!
    Based off of published Scala libraries
    Scala versions 2.10 and up!
    Travis-like decentralized configuration +
    “Scala community” badge for GitHub
    README.
    A map of the known Scala ecosystem!
    Scaladex
    Introducing…
    Put a nice UI on it!
    Show more meaningful bits of information!
    We’ve crawled maven, and collected all
    known Scala libraries + linked to GitHub
    Next steps:
    Status:

    View Slide

  50. Scaladex
    Scaladex team:
    Jon Pretty Joris Beau
    Guillaume
    Massé
    Salar
    Rahmanian
    Who’s behind it?

    View Slide

  51. Scaladex
    Scaladex team:
    Jon Pretty Joris Beau
    Guillaume
    Massé
    Salar
    Rahmanian
    Who’s behind it?
    Scala Days Berlin
    (planned)
    Release:

    View Slide

  52. Scaladex
    We can parse and display important
    information from open source build files,
    e.g., this library uses –Xexperimental
    Using “dependents” we could show how
    widely used a library is.
    “used by” other published libraries, that is.
    Licensing info can be upfront!
    imagine all of the things we
    can do with this!!
    We could imagine adding the entire Scala
    ecosystem to the Lightbend community build to
    catch all regressions so you don’t have to!
    Linking between documentation
    modules together!

    View Slide

  53. On the radar
    Initiatives

    View Slide

  54. Separating out core and platform
    Our compiler has stabilized, but our libraries have
    frozen along with it.
    We want to open up libraries to everyone, in the
    form of a small core and a batteries-included
    platform.
    scala-library.jar
    scala-core.jar
    scala-platform.jar
    If it’s a must-have library for most projects, and if
    it’s maintained, ship it with the Scala Platform. e.g,
    ScalaTest

    View Slide

  55. Do you know JSFiddle?

    View Slide

  56. Do you know JSFiddle?

    View Slide

  57. Wouldn’t it be great if people could
    learn Scala this way!?

    View Slide

  58. Wouldn’t it be great if people could
    learn Scala this way!?
    soon we can!
    ScalaFiddle

    View Slide

  59. ScalaFiddle
    Think JSFiddle, but for Scala instead.
    Link to interactive ScalaFiddles in SO questions +
    answers!
    Can be used for questions/answers on
    mailing lists and StackOverflow
    Can be used as in-browser REPL on
    scala-lang.org
    Can be embedded in documentation for
    interactive docs too!
    Great for blogs, tutorials,
    or even in-house docs!

    View Slide

  60. ScalaFiddle
    Scalafiddle team:
    Otto Chrons Jason Calvert Heather
    Miller
    Help needed!

    View Slide

  61. SIP/SLIP Process
    Our first answer to the suggestion to improve the
    governance around Scala community processes!
    Our goal: rework the process, rebuild
    excitement, make this process actually
    work!
    Starting next month, we’ll take the
    process over.
    More soon!

    View Slide

  62. Strengthen
    J O I N U S & H E L p u s
    Scala’s foundation

    View Slide

  63. Trond Bjerkestrand
    Corey Minter
    Ahmad Ragab
    Kei Nakazawa Samuel Halliday
    Matic Potočnik Shane Delmore Kingsley Davies
    Jatin Puri and more…

    View Slide

  64. How you can help.
    PRs more welcome than cash!
    If you’re a scala shop,
    Beyond the warm and fuzzy feeling it
    gets you to contribute back to your
    language and ecosystem,
    Why?
    not only does your fix cycle back and help
    you and others in your company
    but being involved in open source is a
    great for visibility and recruiting!

    View Slide

  65. Beyond the warm and fuzzy feeling it
    gets you to contribute back to your
    language and ecosystem,
    Why?
    not only does your fix cycle back and help
    you and others in your company
    but being involved in OS is a great way
    for visibility and recruiting!
    How you can help.
    PRs more welcome than cash!
    If you’re a scala shop,
    Allow your developers to spend some time
    giving back to Scala and its ecosystem!
    Whether that means developing your own open source
    Scala library to contribute to the overall Scala ecosystem,
    or by contributing code back to Scala. Anything helps.

    View Slide

  66. Talk to us!
    Get in touch!
    We’re listening!

    View Slide

  67. http://gitter.im/scala/center
    Join our gitter channel, and speak up!
    Talk to us!
    Get in touch!
    But, really…
    Or reach out to Bill Venners,
    the Scala Community
    Representative!
    Bill Venners
    Artima, Inc.
    @bvenners
    [email protected]
    or by email

    View Slide

  68. Thank you!

    View Slide