Prezentace Scala vs. Java 8

V rámci interních školení u nás proběhla prezentace představující programovací jazyk Scala a porovnávající jej s jazykem Java ve verzi 8. Scala je programovací jazyk kompatibilní s Javou, který v sobě kombinuje objektově orientované a funkcionální programování. Tento jazyk, navržený v roce 2003 Martinem Oderskym, německým počítačovým vědcem působícím ve Švýcarsku, se vyznačuje několika zajímavými vlastnostmi jako jsou pattern matching, duck typing či anonymní funkce. Právě posledně jmenované Anonymní funkce přinesla i Java 8 v podobě lambda výrazů.

Agenda školení

Představení jazyka Scala

  • Navrhl Martin Odersky v roce 2003
  • Integruje funkcionální a objektově orientované programování
  • Kompatibilní s jazykem Java
  • Platformy: JVM, LLVM

Syntaxe

  • Volná pravidla syntaxe
  • Stručnost
  • Nepovinné středníky
  • var, val, def

Zajímavé vlastnosti

  • Pattern matching
  • Anonymní funkce
  • Duck typing
  • Clousures
  • Currying

Objekty

  • Vše je objekt
  • Objekt – singleton pattern
  • Třídy Any, AnyVal, AnyRef, Null, Nothing
  • Třídy, abstraktní třídy, traity, templaty, dědičkost

Funkce

  • Povinné typování parametrů
  • Procedura
  • Anonymní funkce
  • Parameter placeholder

Anonymní funkce

  • Java 8 – lambda výrazy
  • Modifikace proměnných vně funkce

XML

  • Podpora parsování
  • Ukázka kódu

Výkon

  • Výpočetně asymptoticky ekvivalentní Javě
  • Vyšší paměťová náročnost
  • Kratší kód

Ukázky kódu

  • Hello world
  • Duck typing
  • Currying
  • Clousures
  • Quick sort

Ukázky z prezentace

scala-vs-java1
Stručné představení jazyka Scala a jeho hlavních vlastností, vyzdvižení jeho přínosů a nevýhod.

scala-vs-java2
Ukázka kódu řadícího algoritmu quick sort, která demonstruje stručnost syntaxe Scaly.

scala-vs-java3
Ukázka použití lambda výrazů v Javě 8 a ekvivalentní používání anonymních funkcí ve Scale.

Závěr

V prezentaci jsme se seznámili s vlastnostmi jazyka Scala a porovnali jsme jej s jazykem Java, ukázali jsme si několik příkladů jeho použití a v závěru prodiskutovali jeho klady a zápory. Během diskuse, která následovala po prezentaci, byly účastníky komentovány hlavně anonymní funkce a možnosti jejich používání v jazyce Scala. Jako největší výhoda jazyka Scala z diskuse vyšel duck typing, tedy možnost definovat parametry funkce pouze pomocí metod, které implementují bez nutnosti implementovat jednotné rozhraní. Následně pak také proběhla diskuse o výkonu programů napsaných ve Scale. Pokud Vás náplň školení zaujala či máte nějaký dotaz, neváhejte nás kontaktovat na adrese info@bcvsolutions.eu.