The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream...

62
Tom Schrijvers The vLambda Project 2015-2017 1

Transcript of The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream...

Page 1: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Tom Schrijvers

The vLambda Project

2015-2017

1

Page 2: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Functional Programming

2

Page 3: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Historical Evolution

imperative languages

mainstream

3

Page 4: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Historical Evolution

imperative languageshardware

mainstream

3

Page 5: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Historical Evolution

imperative languages

object orientationhardware

mainstream

3

Page 6: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Historical Evolution

imperative languages

object orientation

mathematics

hardware

mainstream

3

Page 7: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Historical Evolution

imperative languages

object orientation

mathematics

hardware

mainstream

alternative

declarative languages

3

Page 8: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Functional Programming

fx y

4

Page 9: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Functional Programming

Conciseness

fx y

4

Page 10: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Functional Programming

Conciseness Reliability

fx y

4

Page 11: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Functional Programming

Conciseness ModularityReliability

fx y

4

Page 12: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Recent Developments

imperative languages

object orientation

mathematics

hardware

mainstream

declarative languages

research

5

Page 13: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Longest-Running Hype6

λ calculus1936

Alonzo Church

Page 14: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Longest-Running Hype6

λ calculus1936

Alonzo Church

Functional Languages

Page 15: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Longest-Running Hype6

λ calculus1936

Alonzo Church

1958Lisp

John McCarthy

Functional Languages

Page 16: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Longest-Running Hype6

λ calculus1936

Alonzo Church

1958Lisp

John McCarthy

1973ML

Robin Milner

Functional Languages

Page 17: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Longest-Running Hype6

λ calculus1936

Alonzo Church

1958Lisp

John McCarthy

1973ML

Robin Milner

1987Haskell

Haskell Committee

Functional Languages

Page 18: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Longest-Running Hype6

λ calculus1936

Alonzo Church

1958Lisp

John McCarthy

1973ML

Robin Milner

1987Haskell

Haskell Committee

Functional Languages Mainstream

Page 19: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Longest-Running Hype6

λ calculus1936

Alonzo Church

1958Lisp

John McCarthy

1973ML

Robin Milner

1987Haskell

Haskell Committee

Functional Languages Mainstream

2007C#

Page 20: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Longest-Running Hype6

λ calculus1936

Alonzo Church

1958Lisp

John McCarthy

1973ML

Robin Milner

1987Haskell

Haskell Committee

2011C++11

Functional Languages Mainstream

2007C#

Page 21: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Longest-Running Hype6

λ calculus1936

Alonzo Church

1958Lisp

John McCarthy

1973ML

Robin Milner

1987Haskell

Haskell Committee

2014Java 8

Swift2011

C++11

Functional Languages Mainstream

2007C#

Page 22: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Industry Adoption

7

Page 23: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Industry Adoption

7

Page 24: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Languages & Libraries

8

Page 25: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Languages & LibrariesExtensions of Existing Languages

8

Page 26: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Languages & LibrariesExtensions of Existing Languages

New Hybrid Languages

8

Page 27: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Languages & LibrariesExtensions of Existing Languages

New Hybrid Languages

New Libraries

8

Page 28: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

The Project

9

Page 29: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

The Academic Team

Kris Aerts Tom Schrijverssenior lecturer research professor

FP Research

FP Teaching

10

Page 30: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

The Academic Team

Kris Aerts Tom Schrijverssenior lecturer research professor

FP Research

FP Teaching

FP Industry?

LOCAL INDUSTRY 10

Page 31: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

The Academic Team

Kris Aerts Tom Schrijverssenior lecturer research professor

FP Research

FP Teaching

FP Industry?

LOCAL INDUSTRY

FP Industry!

10

Page 32: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Technology Transfer Project

11

vLambda Industrial Partners

Page 33: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

The Industrial Partners

12

Page 34: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Approach

13

Team Leaders &

Developers

Team Leaders &

CEOs

User GroupTraining DaysStudents

& Industry

Projects

Master Theses

Internships

Technology Overview

Decision Making

1-Day Training

Theory + Practice

Page 35: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Training Topics

14

Page 36: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Training Topics

Java 8 C#

F#Kotlin

Year 1: BasicsFunctional Programming in

Mainstream Languages

14

Page 37: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Training Topics

Java 8 C#

F#Kotlin

Year 1: BasicsFunctional Programming in

Mainstream Languages

Year 2: FocusActor Programming &Reactive Programming

RxJava akka.NET

rx.NETakka14

Page 38: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Training Material25h of lectures 200+ exercises case studies demos

15

Page 39: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Training Material25h of lectures 200+ exercises case studies demos

available @ www.vlambda.befor the vLambda

15

Page 40: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Training Activities12 training days

184 participants

~15 p/day

16

Page 41: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Impact So Far

17

Page 42: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Impact So Far

17

Familiarisation with FP

“interesting”“useful”“congratulations”

Page 43: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Impact So FarStudent+Industry Projects

Problem: Engine Knocking

reduced efficiencyengine damage/wear

5

17

Familiarisation with FP

“interesting”“useful”“congratulations”

Page 44: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Impact So Far

Trainees become trainers

Student+Industry ProjectsProblem: Engine Knocking

reduced efficiencyengine damage/wear

5

17

Familiarisation with FP

“interesting”“useful”“congratulations”

Page 45: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Impact So Far

Trainees become trainers Several FP trials

See testimonials

Student+Industry ProjectsProblem: Engine Knocking

reduced efficiencyengine damage/wear

5

17

Familiarisation with FP

“interesting”“useful”“congratulations”

Page 46: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Summary

18

Page 47: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Summary

19

Page 48: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Summary

Definite industry interest for FP

19

Page 49: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Summary

Definite industry interest for FP

Partners have basis for FP in industry

19

Page 50: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Summary

Definite industry interest for FP

Partners have basis for FP in industry

Use of FP has been put in motion

19

Page 51: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Summary

Definite industry interest for FP

Partners have basis for FP in industry

Actual adoption takes more time

Use of FP has been put in motion

19

Page 52: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

What Next?

20

Page 53: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

What Next?Reach Wider Audience

20

Page 54: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

What Next?Reach Wider Audience

New Training Topics

20

Page 55: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

What Next?Reach Wider Audience

New Training Topics

More Student Involvement

20

Page 56: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

What Next?Reach Wider Audience

New Training Topics

More Student Involvement

More Industry Collaboration

20

Page 57: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

And You?

21

Page 58: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

And You?

Ideas?

21

Page 59: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

And You?

FP Training?

Ideas?

21

Page 60: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

And You?

FP Training?

Trying out FP?

Ideas?

21

Page 61: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

And You?

FP Training?

Trying out FP?

Student projects?

Ideas?

21

Page 62: The vLambda Project€¦ · Java 8 C# Kotlin F# Year 1: Basics Functional Programming in Mainstream Languages Year 2: Focus Actor Programming & Reactive Programming RxJava akka.NET

Thank You

22