Proč jsme se pustili do Scaly

Chcete svobodu se vyjádřit a posouvat (se) dopředu i za cenu občasného šlápnutí vedle nebo vám jde o eliminování chyb? Možná jednodušeji, chcete prgat podle pravidel nebo podle sebe?

Scala nám zatím připadá jako pokrokový a moderní programovací jazyk. Je to esence přístupu, kterému věříme (více na stránce O nás) a který aplikujeme na prostředí programovacích jazyků.

Pokud svážete lidi tím, aby programovali podle nějakých pravidel, psali přesně daný kód a měli co nejméně chyb, dosáhnete s vysokou pravděpodobností podobného kódu u všech vývojářů. Nebude zřejmě nijak kriticky chybový a bude více či méně odpovídat pravidlům. Ale to je vše. Velice pravděpodobně se bude veškerý pokrok odehrávat pouze v rámci takto nastavených pravidel (např. postupné snižování chybovosti), ale nic víc.

My věříme, že nikdo není nejchytřejší a sepisovat seznamy pravidel a následně kontrolovat, zda podle nich všichni pracují, nic nového nepřinese. Věříme tomu, že lidé se mezi sebou sami shodnou na nejlepší možné podobě kódu a jeho metrikách, či dalších důležitých věcech, tak aby odvedli co nejlepší práci (a je v pořádku, že si na to vytvoří seznam vlastních pravidel). Oproti prostředí, kde jsou lidé hodnoceni za plnění pravidel, jde o diametrálně odlišný pohled.

Jak se nám Scala přihodila

Vlasta Menčík si jednoho dne řekl, že v rámci existujících pravidel už se nedá bez enormního úsilí posunout o významnou část dál a přišel s inovací. Přišel s tím, že bychom měli zkusit Scalu. Například proto, že na vyjádření stejné věci potřebujete daleko méně kódu a je vhodnější ve vícevláknovém prostředí, které je v našich aplikacích nejčastější.

Přesvědčil další kolegy a pustili se do přípravných prací a vytipování optimální zakázky, aby zjistil pozitiva i negativa v praxi. Zároveň dostal svobodu postupovat tak, jak uzná za vhodné a zároveň zodpovědnost popř. motivaci na úspěšné praktické použití. V této chvíli zjišťujeme výhody a nevýhody a budeme v budoucnu informovat o reálných přínosech.

Nechtěli jsme, aby inovace, pokrok a zodpovědnost stáli na jediném člověku – nějakém řediteli, který bude vybírat a nařizovat týmu vývojářů, jaké technologie mají používat. V takovém případě bychom zcela jistě slýchávali z úst vývojářů věty jako „my jsme říkali, že takhle to nepůjde“ a zažívali jejich neochotu se podílet na vyřešení problému.

Vydali jsme se cestou, která dává lidem svobodu na jedné straně a zodpovědnost za výsledek na straně druhé. V dalších článcích se pokusíme vám přiblížit, kam tato cesta vede, jaké má slepé uličky a nevýhody, ale také kam nás posouvá a co vše nám umožňuje.

Článek obsahuje 10 komentářů

  • kokos

    1
    prgat, to je teda slovo. neco spatne naprogramovat by asi bylo: tak jsem to pekne oprgal, hahaha.
  • oldjay

    2
    to pozadí je vzkutku oslnivé
  • LiveLongAndProsper

    3
    Off topic dotaz: V jakém IDE programujete? Eclipse?
  • Vlastimil Menčík

    4
    Většina z nás používá Eclipse, resp. Scala IDE (http://typesafe.com/stack/scala_ide_download). Máme tady i zastánce vi :) Řada lidí ale pro Scalu preferuje IntelliJ, která je (zatím) trochu napřed.
  • Radek

    5
    Trochu skepticismu kolem Scaly od cloveka co dela se scalou 6 let... http://java.dzone.com/articles/oy-scalac
  • Vlastimil Menčík

    6
    Jak už je v posledním odstavci článku uvedeno, nic na světě nemá jenom výhody. Chceme si ale na ně udělat vlastní názor.
  • Radek

    7
    zkouseli jste uz psring scala? http://blog.springsource.org/2012/12/10/introducing-spring-scala/
  • Vlastimil Menčík

    8
    Zkoušel jsem si s tím hrát. Zatím je to work-in-progress, ale to, že to dělají přímo SpringSource, je IMHO dobrá vyhlídka do budoucna. Mám to jako jedno z témat v připravované přednášce o Dependency injection ve Scale: http://dev.etnetera.cz/cz/scala/prednaska_scala_dependency_injection.html
  • Josef

    9
    Můžu se zeptat na jakém projektu (stači případně jen typově) jste scalu nasadili ? Nebo ji planujete pouzivat i v interni codebase, napriklad prepsani konfiuracniho modulu do scaly kvuli pohodlne praci s xml, apd... Nebojite se, ze si ostatni javisti ve firme scalu neosvoji a vy budete sam na udrzovani scala modulu a projektu a stanete se scala supportem? Ono naucit se scalu pouzivat imperativne neni zrovna tezke, ale programovat funkcionalne (assigmentless kod s referencni transparentnosti) a vubec prejit na jiny styl architektury aplikaci a pripadne zahodit servlet kontainery a vzit to zgruntu od serveru je ve firmach docela utopie :-)
  • Vlastimil Menčík

    10
    Jak už Lukáš psal v článku, jestli něco je nebo není utopie, záleží především na konkrétní firmě. Aktuálně řešíme jeden nový projekt (nemalou veřejně dostupnou webovou aplikaci pro komerčního klienta), který bychom v minulosti asi řešili v Javě a servletech. Myslíme si ale, že použitím Scaly a Play! dosáhneme lepšího výsledku. Co se týče technologií, tak ani teď nejsme jako firma zcela homogenní. Kromě Javy tu máme i PHP a i v té Javě používáme technologie, na které se u nás specializuje třeba jeden konkrétní tým. Scalu ale nechceme držet v "laboratorních" podmínkách, ale chceme jí šířit jak interně, tak externě.