bilgisayar bilimcileri haklıymıs¸ · 2016-08-09 · i 2012 %20 functional i “lambdas in java...
TRANSCRIPT
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
Bilgisayar Bilimcileri HaklıymısProgramlama dillerindeki son gelismeler
Chris Stephenson
Department of Computer Science, Istanbul Bilgi University
Last compiled on March 30, 2012
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 1 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
I Java is the new Cobol
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 2 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
I Java is the new CobolI lambda is the new boy on the block
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 3 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
I Anahtar kelimelerI Functional,I lambda,I closure,I first class functions,I first class types,I Generic types
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 4 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
λis the new boy on the block
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 5 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
I Yazılı gelistirme konferanslarıI Let’s Google for itI http://bit.ly/GW7GsbI Biraz tarihi olanları seçelim
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 6 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
I QCON 2010, 2011, 2012I %20 Functional Konuları
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 7 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
I QCON 2012I Simon RitterI “Java is not the new Cobol”I Sunuma bir göz atalım
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 8 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
I QCON 2012I Philip WadlerI Pizzayı kim ısmarlamıs?
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 9 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
I ACCU (C ve C++)I 2002-2007 %0 FunctionalI 2008 Özel track %10 FunctionalI 2009-2011 %10 - %15 Functional
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 10 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
I ACCU (C ve C++)I 2012 %20 FunctionalI “Lambdas in Java 8”I “Refactoring to Functional”I “Functional programming you
already know”I “Generic Types”
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 11 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
bizde bile...
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 12 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
bizde bile...
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 13 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
En samimi iltifat taklittir
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 14 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
Kötü taklit olsa da
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 15 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
Kötü taklit olsa da
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 16 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
Dart and Go -Google has started to lose the plot.
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 17 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
I Diller - syntax ve semanticsI Space and time
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 18 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
I Church - λ - motation yokI Turing Makinesi - mutationI birlestilerI Church-Turing thesis
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 19 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
VisionIt is not the task of the University to offer
what society asks for, but to give whatsociety needs.
Edsger W Dijkstra
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 20 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
- eski bir slayt
Vision - eski bir slayt
I FOSS - 2000I Java - 2000I Data Driven Design and functional
programming - 2003
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 21 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
Bilgisayar Bilimlerinin (eski) Türkiye Bayisinin vizyonun üç (deli)maddesi
I Java (2000)
I FOSS (2000)
I Functional programming (2003)
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 22 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
Bilgisayar Bilimlerinin (eski) Türkiye Bayisinin vizyonun üç (deli)maddesi
Java - yep yeniydi (1995)
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 23 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
Bilgisayar Bilimlerinin (eski) Türkiye Bayisinin vizyonun üç (deli)maddesi
FOSS:"We think of Linux as a competitor in the student and hobbyist
market but I really don’t think in the commercial market we’ll see itin any significant way." Bill Gates, 2001
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 24 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
Bilgisayar Bilimlerinin (eski) Türkiye Bayisinin vizyonun üç (deli)maddesi
FOSS:
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 25 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
Bilgisayar Bilimlerinin (eski) Türkiye Bayisinin vizyonun üç (deli)maddesi
FOSS:Windows Phone’i unutmayalım...
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 26 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
Bilgisayar Bilimlerinin (eski) Türkiye Bayisinin vizyonun üç (deli)maddesi
Functional Programming
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 27 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
Bilgisayar Bilimlerinin (eski) Türkiye Bayisinin vizyonun üç (deli)maddesi
Functional ProgrammingThe future is functional - the time has come.
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 28 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
The future is functional - the time hascome.
I Scala (who is there?) Martin OderskyI ClojureI JavascriptI Whalesong
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 29 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
The future is functional - the time hascome.
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 30 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
Neden yeni diller? Yeni yaklasımlar?Sorunlar var.
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 31 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
Tabii, Ama neden fonksiyonel?
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 32 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
Scala’dan birkaç örnek.
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 33 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
Twitter diyor ki:“ I think it may just be a property of large
systems in dynamic languages, that eventuallyyou end up rewriting your own type system,
and you sort of do it badly. You’re checking fornull values all over the place. ”
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 34 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
Twitter diyor ki:“ It is a shame to have to write all that when
there is a solution that has existed in the worldof programming languages for decades now. ”
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 35 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
Twitter diyor ki:“ .. it was wonderful to use a runtime I wasfamiliar with and be able to use functionalcombinators and closures and higher order
functions, all these things that I’ve wanted touse more in production systems. ”
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 36 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
Twitter diyor ki:“ To me, languages like Ruby, Scala, and Pythonare very high level, because you can write a few
lines of code to do what might take ten ortwenty lines in Java, or 250 lines in C. ”
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 37 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
Twitter diyor ki:“ The hardest part was just switching over from
the Ruby mentality to the Scala mentality.Trying to think more functionally. Trying to
think more immutably. Thinking about statictyping for the first time in several years.
”http://www.artima.com/scalazine/articles/twitter_on_scala.html
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 38 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
The Guardian diyor ki:“ It took us a while to realise that most of theloops we wrote in Java were actually ’map’ or
’flatMap’ ”http://www.slideshare.net/tackers/java-to-
scala
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 39 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
Ne var?I First class functions -parametre ve
sonuç olabilirI lambdaI Static, nested, scopeI ClosuresI Comprehensions, map, filter, fold ve
saireI Mutation - yoookI (bazen) First class static types
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 40 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
Ufak örnekler:
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 41 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
Bunlar da lazımI Program by DesignI Data Driven designI Test Driven Development
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 42 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
Çalısyor mu?I No mutation -> optimisationI Higher order -> optimisationI Deforesting
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 43 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
Bilgisayar Bilimlerine Ihtiyaç var.
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 44 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
Bilgisayar Bilimlerine Ihtiyaç var.video.cs.bilgi.edu.tr
courses.cs.bilgi.edu.tr(login as guest)
is Creative Commons licensed!
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 45 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
Çünkü....Standart müfredat budur
Pieter Bruegel the Elder, 1568, The blind leading the blind
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 46 of 47
Is it hot or is it not?Bilgisayar Bilimleri Kel Alaka?
Neden Fonksiyonel Programlama?Nedir Fonksiyonel Programlama?
And if you do not believe me, the news from theEuropean job market is:http://bit.ly/H31VgK
Chris Stephenson Bilgisayar Bilimcileri Haklıymıs Slide 47 of 47