Miért van a módja a funkcionális programozásnak az imperatív, a programozó feljegyzései által

Nemrégiben számos hasonló kérdést kaptam a blog olvasói részéről. Mondjuk, programozóvá akarok lenni. és érdekel a kizárólag funkcionális programozás. Milyen nyelvet ajánlana Önnek, hogy elinduljon, és hol találjon anyagokat rajta? Véleményem szerint tehát a kemény valóság az, hogy egyik funkcionális nyelv sem alkalmas az első szerepére.

Nem, könnyen elsajátíthatod Erlangt vagy más funkcionális nyelvet. A probléma az, hogy nem lesz könnyű megtalálni az FP-vel kapcsolatos munkát, a gyakorlati tapasztalat nélkül a programozás során. Mert általában a funkcionális nyelveken az emberek kezdik írni, rengeteg táplált szart az imperatív nyelvekkel. Így már van néhány, valószínűleg elég sok, a programozási tapasztalat. Az ilyen embereket nem érdekli a kezdő felhasználók elmagyarázása, például a Git használatának módja vagy a Linux csomagok telepítésének módja. Feltételezik, hogy már ismernie kell ezeket a dolgokat.

Talán aggódsz, hogy ha elkezded a kötelességgel, kevesebbet fogsz tudni az FP-ről. Ez nem így van. Először is, a mi időnkben minden programozó megkezdi az utat Basic, Pascal és más imperatív nyelvekkel. Úgy tűnik, hogy senki sem akadályozta meg a FP-t. Másodszor, semmi sem akadályozza meg a funkcionális stílusban az imperatív nyelvek írását. Amennyire megértem, a közelmúltban még divatossá vált. A programozók Java-ban - és igyekeznek nem örökölni, és csak akkor tiszta funkciókat írni, amikor csak lehetséges. Végül az OP-tól eltérő paradigmák ismerete nem zavarja, hanem éppen ellenkezőleg, segít az OP-nek az elsajátításában.

Kiderül, hogy a tiszta funkcionális nyelvek valójában nem léteznek. Mint látszólag és tiszta objektum-orientált nyelvek. A programnak mellékhatásai vannak, ellenkező esetben semmi sem, ezért haszontalan. Következésképpen, minden funkcionális nyelvben léteznek elengedhetetlen elemek. A Scala és az OCaml hibrid nyelvek, mind FP, mind OOP. Az SML-ben vannak hivatkozások. Haskellben van egy monad IO. A Clojure és más lisps valójában Python makrókkal és normál multithreading-kel. Erlang általában a legtisztább objektum-orientált nyelv. sokkal tisztább, mint például a Java vagy a C ++.

Azt is meg kell jegyeznünk, hogy ahhoz, hogy elkezdhessék igazán értékelni a keretprogramot, meg kell tapasztalnia az imperatív programozás minden szörnyűségét az Ön tapasztalatai szerint. Megtudhatja, hogy milyen módon próbálja meg kijavítani egy hibát az öt eljárásból álló modulban, amelyek mindegyike 1000 sor Perl kódból áll. Mondanom sem kell, mindez - változó adatokkal, globális változókkal és hatemeletes hierarchiákkal. A hiba ebben az esetben a toll, a versenyfeltétel vagy a memóriazavar jelenléte.

Tehát milyen elengedhetetlen programozási nyelv kezdődik? Azt tanácsolom, hogy válasszon egyet az értelmezett nyelvek közül - Perl. Python vagy Ruby. Melyiket választani - ez nem számít, egyformán szörnyűek is. Ezek a nyelvek azért érdekesek, mert mindenképpen hasznosak lesznek arra, hogy apró szkripteket készítsenek rutinmunkának. Emellett aktívan használják nagy webes projektekben, mint a Yandex, a Rambler, a Mail.ru vagy a LiveJournal. Nem tudom, mennyit szeretnél dolgozni az egyik ilyen cégnél, de feltétlenül értékes élményben lesz részed.

Talán nem nagyon érdekli a webfejlesztés. Akkor tetszene a Java vagy a C #. Az első esetben sokkal könnyebb lesz a funkcionális nyelvekre váltani a JVM alatt, például Scala vagy Clojure. C # érdemes választani, ha nagyon szereti a Microsoft termékeit, és érdekli az F # vagy az OCaml nyelvét.

Erősen ajánlom, hogy olyan funkcionális nyelvre összpontosítson, amelyet valahol valaha használ. Erlang, Scala és Clojure könnyen hivatkozhat ilyen nyelvekre. A róka dialektusai nagyon hasonlítanak egymáshoz, így talán egy jó választás is lehet. Vannak olyan pletykák, hogy valahol az OCaml-re írnak, de még nem volt egyetlen munkám. Ismeretes, hogy a Haskell programozói számára elérhető álláshelyek léteznek, de nemrég nem értem, hogyan lehet írni valamit.

Haskell. mindazonáltal érdekes az agy megszakítása. Jó módon. Miután fél évvel a Haskell-be írták, kétségtelenül jobb programozó lesz Erlangban, Java-ban vagy az ott írt írásokban. Néhány könyv a funkcionális programozásban példák a Haskell kódjára. Így, minden valószínűség szerint ismerni fogja őt, nem fog fájni.

Az FP konkrét anyaga nem tanácsos, hiszen minden a programnyelv megválasztásától függ. Számos könyv létezik a funkcionális programozásról, sőt, angolul és oroszul is. Véleményem szerint nincs oktatási anyaghiány.

Nos, végeredményben megjegyzem, hogy nem úgy teszek, mintha tudnám az utolsó pillanatban az igazságot. Lehet, hogy ez most valahol üresedés haskelista az egyetlen követelmény, hogy a jelölt - a képesség, hogy a Google, hogy érvényteleníti sok a fent leírt.

Tetszik a post? Ossza meg másokkal:

Kapcsolódó cikkek