Nastal čas škálovatelnosti, čas Scaly

Málokdo to čekal, ale je to tady. V Et neteře se rodí Scala entuziasté. Jako odborníci na Javu nalézáme nově zalíbení i ve Scale, která svými pokročilými vlastnostmi navazuje na vlastnosti Javy, ale jako mladší, modernější jazyk měla šanci poučit se už od svého raného vývoje z některých nepříliš šťastných rozhodnutí designérů Javy a naopak využít vlastností časem prověřených.

Tam, kde je v Javě vhodné dodržovat určitá pravidla (viz Effective Java od Joshe Blocha), aby byl kód dostatečně defenzivním a rozšiřitelným, Scala přináší nové konstrukce, které samy o sobě vynucují a zajišťují best practices nevynutitelné kompilátorem Javy.

Máme mnoho důvodů proč nás Scala baví a chceme se jí nadále zabývat:

  • To, co jsme se naučili v Javě, využijeme i ve Scale. Scala je jazykem pro Java platformu (JVM) a je interoperabilní s existujícím Java kódem.
  • Scala jako jazyk je škálovatelná. Drží se dobře definované, poměrně malé množiny vlastností jazyka, které jsou rozšiřitelné, a hlavně je lze skládat způsobem, který třeba Java neumožňuje. Především díky tomu lze pak programovat na vyšší úrovni, bez zbytečného boilerplate kódu. Výsledný kód typicky zabírá méně místa a je čitelnější (bez nicneříkajících opakujících se konstrukcí). Kompaktně navržený typový systém unifikující funkcionální a objektové typy to umožňuje.
  • Scala vás vede k tomu využívat naplno možnosti dnešního HW, tedy k tomu, aby byly škálovatelné i vaše aplikace. Výchozí přístup je tam, na rozdíl od Javy, funkcionální s immutable datovými strukturami, což jde velmi dobře dohromady s paralelním zpracováním s pomocí actor modelu inspirovaného Erlangem. Typicky pak nemusíte řešit klasické problémy jako kritické sekce, zámky a podobné "radosti", které jsou sice řešitelné, ale většina programátorů v nich vždycky nějakou chybu nechá.
  • Ač se to nemusí zdát, Scala už prošla dlouhým vývojem, stojí na silných teoretických základech funkcionálních jazyků, čistě objektově orientovaných jazyků a naprosté provázanosti funkcí a objektů do kompaktního celku, na vlastnostech a principech prověřených praxí i výzkumem na univerzitní úrovni. Málokterý jazyk se při svém vývoji poučil z tolika předchozích jazyků. Od roku 2001, kdy Scala vznikla (koncem roku 2003 byla vydána první verze pro platformu Java), se stal ze Scaly vyspělý jazyk připravený pro produkční použití.
  • Hlavním autorem Scaly je Martin Odersky, člověk o jehož fundovanosti a zkušenostech s návrhem jazyků a překladačů není pochyb. Nyní za Scalou stojí také společnost Typesafe, kterou Martin Odersky spoluzaložil a která zaštiťuje stack technologií pro vývoj ve Scale. Kromě kapitálu od investorů získala také řadu zajímavých osobností z Java sféry (naposledy Roda Johnsona).
  • Scalu lze díky její škálovatelnosti využít pro malé skripty i rozsáhlé distribuované systémy, využívající všechny výhody komponentového, objektově orientovaného vývoje. Scalu používají společnosti jako Twitter, LinkedIn, Xerox, Siemens, Amazon.com, SONY aj.
  • Scala je jazyk, který vám “neháže klacky pod nohy”, ale je jazykem praktickým, konstrukce jazyka “nedrhnou”, nenutí k psaní zbytečného kódu. Scala umožňuje přeměnit duševní potenciál programátora poměrně přímočaře do logiky programu, je jazykem, který “roste s vámi a s vašimi nároky”.

Nechte se spolu s námi zlákat možnostmi, které Scala nabízí, na našem blogu se jim můžeme společně věnovat.

Článek obsahuje 3 komentáře

  • dl

    1
    A co Clojure a ClojureScript?
  • Vlastimil Menčík

    2
    Clojure je (alespoň pro mě - původně Javistu) příliš Lisp :) a také se nechci vzdávat statického typování. Z mojeho pohledu se syntax Scaly a Javy zase tolik neliší.
  • Radek

    3
    http://java.dzone.com/articles/oy-scalac