Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

A new not-for-profit center established at EPFL EPFL a world leading 
 university in Switzerland (the Swiss Federal Institute of Technology at Lausanne)

Slide 4

Slide 4 text

part of a university in Switzerland \

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

Why a center? So,

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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.

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

Education

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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:

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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!)

Slide 28

Slide 28 text

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!

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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,

Slide 31

Slide 31 text

Open source

Slide 32

Slide 32 text

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.

Slide 33

Slide 33 text

our Philosophy

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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.

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

How does it work? v the Scala Center

Slide 38

Slide 38 text

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.

Slide 39

Slide 39 text

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.

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

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.

Slide 43

Slide 43 text

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 (?)

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

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!

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

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!

Slide 49

Slide 49 text

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:

Slide 50

Slide 50 text

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

Slide 51

Slide 51 text

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

Slide 52

Slide 52 text

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!

Slide 53

Slide 53 text

On the radar Initiatives

Slide 54

Slide 54 text

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

Slide 55

Slide 55 text

Do you know JSFiddle?

Slide 56

Slide 56 text

Do you know JSFiddle?

Slide 57

Slide 57 text

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

Slide 58

Slide 58 text

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

Slide 59

Slide 59 text

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!

Slide 60

Slide 60 text

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

Slide 61

Slide 61 text

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!

Slide 62

Slide 62 text

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

Slide 63

Slide 63 text

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

Slide 64

Slide 64 text

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!

Slide 65

Slide 65 text

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.

Slide 66

Slide 66 text

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

Slide 67

Slide 67 text

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

Slide 68

Slide 68 text

Thank you!