Stojí za to naučit se nový programovací jazyk?
„Který programovací jazyk je obecně lepší než jiný?“ je toto opravdu správně položená otázka? Podle mého názoru programování není jen o syntaxi, jazyku nebo paradigmatu, ale schopnosti řešit konkrétní problémy tím nejlepším způsobem.
Abychom věděli, který způsob je ten nejlepší pro dané případy užití, potřebujeme spoustu zkušeností. Získat je může být obtížné. Každý problém, který řešíme je unikátní a jde k němu přistupovat mnoha různými způsoby.
Otázkou tedy je: „Jaké postupy a návyky můžeme uplatňovat, abychom tomuto chaosu dosud nevyšlapaných cest čelili informovaně a udrželi krok?”
Existuje řada způsobů, které nám v tom mohou pomoci. Můžeme používat techniky jako TDD sami, BDD v teamu, refactoring starého kódu, požádat kolegy o code-review, programovat párově, zkoušet katy, číst články a knihy, navštěvovat Code Retreat, Dojo nebo konference a meetupy.
Ve všech těchto způsobech vidím jeden podstatný společný atribut a to je výstup z komfortní zóny. Přinést jiné řešení nebo ho jen vidět jinde nám umožňuje přehodnotit naše vlastní návyky.
To se nám může podařit i naučením se nového programovacího jazyku. Taková zkušenost nás nejen donutí vybočit ze zajetých kolejí, ale také může změnit způsob našeho myšlení a obecně přístup k vývoji. Martin Fowler o tom napsal článek už v roce 2007 a myslím si, že měl v mnohém pravdu.
Jednoznačně velkým diskutovaným tématem, které změnilo myšlení nejednoho programátora je funkcionální paradigma, které v poslední době zažívá velký comeback. Jeho deklarativnost může výrazně usnadnit chápaní data flow, zjednodušit návrh softwaru a také elegantně vyřešit, často komplexní témata jako je concurrency či parallelism.
V poslední době mezi vývojáře přichází stále více do povědomí jazyky jako Haskell, Clojure, Elm, Elixir, Reason a další. Například mezi mé oblíbence patří Elixir a v poslední době pronikám lehce do Clojure.
Avšak funkcionální charakteristiky nejsou jen v silně funkcionálních jazycích. Dokumentace Pythonu věnuje tomuto tématu celou kapitolu, JavaScript, s knihovnami jako Rambda a Lodash, získává více funkcionální nádech a dokonce i Java 8 přichází s podporou lambda výrazů. V těchto jazycích lze využít funkcionální principy ve prospěch návrhu, čitelnosti nebo rychlosti programu.
V Praze se funkcionálním programováním zabývají organizace jako Prague Lambda, Elm Prague nebo FSharping. Mezi jejich cíle patří zvýšení povědomí o tomto tématu u veřejnosti a poskytnutí společné platformy pro setkávání nadšenců funkcionálního programování.
Ve spolupráci s těmito skupinami připravujeme meetup s vlastnostmi konference nesoucí jméno LambdUp, kde vystoupí světoví odborníci, od kterých uslyšíme talky o Clojure, Elixiru nebo F#. První ročník startuje 6. prosince 2017. Nebudou chybět ani workshopy v dopoledních hodinách a to na témata Elm a Elixir. Více na LambdUp.io.
Výše jsem se zaměřil na funkcionální paradigma jako prostředek změny a výstupu z komfortní zóny. V mém případě to byl jazyk Elixir, který mi přinesl nový pohled a směr, kterým se chci dále rozvíjet. Pojmy jako pure function, pipeline, pattern matching nebo rekurze s tail call optimization se staly mým denním chlebem a často mi chybí v jazycích, kde nejsou implementované.
Přeji vám Happy Coding!