yow west 2014: "adopting functional programming languages"

26
1 LANGUAGES ADOPTING PROGRAMMING FUNCTIONAL Andy Marks @andee_marks [email protected] ADOPTING FUNCTIONAL PROGRAMMING LANGUAGES

Upload: andy-marks

Post on 21-Jan-2018

25 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: YOW WEST 2014: "Adopting Functional Programming Languages"

1

LANGUAGES

ADOPTINGPROGRAMMINGFUNCTIONAL

Andy Marks @andee_marks [email protected]

ADOPTING FUNCTIONAL

PROGRAMMING LANGUAGES

Page 2: YOW WEST 2014: "Adopting Functional Programming Languages"

(reduce + (map #(/ 1.0 % %) (range 1 1001)))

lists:sum([1/math:pow(X,2) || X <- lists:seq(1,1000)]).

sum [1 / x ^ 2 | x <- [1..1000]]

1 to 1000 map (x => 1.0 / (x * x)) sum

let rec sum n = if n < 1 then 0.0 else sum (n-1) +. 1.0 /. float (n*n) in sum 1000

!

Computation via functional evaluation Higher order functions

Immutability

Source: http://rosettacode.org/wiki/Sum_of_a_series

Page 3: YOW WEST 2014: "Adopting Functional Programming Languages"

1996 2013

Page 4: YOW WEST 2014: "Adopting Functional Programming Languages"

4

LANGUAGES

ADOPTINGPROGRAMMINGFUNCTIONAL

10 BUTSA TALE OF

Page 5: YOW WEST 2014: "Adopting Functional Programming Languages"

BUT… IT’S JUST FOR ACADEMICS

#1

5

Page 6: YOW WEST 2014: "Adopting Functional Programming Languages"

6

+ FP =

+ FP =

+ FP =

Page 7: YOW WEST 2014: "Adopting Functional Programming Languages"

BUT… NO ONE ELSE IS USING THEM

#2

7

Page 8: YOW WEST 2014: "Adopting Functional Programming Languages"

8

Page 9: YOW WEST 2014: "Adopting Functional Programming Languages"

BUT… THEY’RE JUST THE SHINY NEW TOY

#3

9

Page 10: YOW WEST 2014: "Adopting Functional Programming Languages"

10

Page 11: YOW WEST 2014: "Adopting Functional Programming Languages"

BUT… THEY’RE TOO NICHE FOR GENERAL USE

#4

11

Page 12: YOW WEST 2014: "Adopting Functional Programming Languages"

12

HTTP ✅

Test automation ✅

Database IO ✅

Build automation ✅

etc ✅

Page 13: YOW WEST 2014: "Adopting Functional Programming Languages"

BUT… I DON’T “GET” MONADS

#5

13

Page 14: YOW WEST 2014: "Adopting Functional Programming Languages"

14

Page 15: YOW WEST 2014: "Adopting Functional Programming Languages"

BUT… I’M ADDICTED TO MUTABLE STATE

#6

15

Page 16: YOW WEST 2014: "Adopting Functional Programming Languages"

16

Page 17: YOW WEST 2014: "Adopting Functional Programming Languages"

BUT… I ALREADY HAVE CLOSURES IN C#.

#7

17

Page 18: YOW WEST 2014: "Adopting Functional Programming Languages"

18

Page 19: YOW WEST 2014: "Adopting Functional Programming Languages"

BUT… THE TOOLS ARE TOO IMMATURE

#8

19

Page 20: YOW WEST 2014: "Adopting Functional Programming Languages"

20

Page 21: YOW WEST 2014: "Adopting Functional Programming Languages"

BUT… THERE ARE NO DEVELOPERS WHO KNOW SCALA

#9

21

Page 22: YOW WEST 2014: "Adopting Functional Programming Languages"

22

Page 23: YOW WEST 2014: "Adopting Functional Programming Languages"

BUT… I DON’T WANT TO LEARN ANOTHER SYNTAX

#10

23

Page 24: YOW WEST 2014: "Adopting Functional Programming Languages"

24

Page 25: YOW WEST 2014: "Adopting Functional Programming Languages"

CONCLUSION

Distribution + concurrency Data + data analysis Lower barrier to entry Hybrid languages

25

Page 26: YOW WEST 2014: "Adopting Functional Programming Languages"

26

LANGUAGES

ADOPTINGPROGRAMMINGFUNCTIONAL

Andy Marks @andee_marks [email protected]

THANKS!