Programovanie

9 špičkových programovacích jazykov, ktoré sa teraz oplatí naučiť

Veľké jazyky sú populárne z nejakého dôvodu: Ponúkajú obrovský základ otvoreného zdrojového kódu, knižníc a rámcov, ktoré uľahčujú dokončenie práce. Je to výsledok rokov hybnosti, v ktorých sú opakovane vyberaní pre nové projekty a odborné znalosti v ich nuansách rastú hodnotné a bohaté.

Niekedy obrovské zdroje populárnych bežných programovacích jazykov nestačia na vyriešenie vášho konkrétneho problému. Niekedy musíte hľadať správny jazyk, kde je správna štruktúra rozdielna, a zároveň ponúknuť túto ďalšiu funkciu, ktorá pomôže vášmu kódu bežať podstatne rýchlejšie bez nekonečného ladenia a optimalizácie. Tento jazyk produkuje omnoho stabilnejší a presnejší kód, pretože vám bráni v programovaní nedbanlivého alebo nesprávneho kódu.

Svet je plný tisícov šikovných jazykov, ktoré nie sú C #, Java alebo JavaScript. Niektoré si cení len pár, ale mnohé majú prosperujúce komunity spojené spoločnou láskou k jazykovému zariadeniu pri riešení určitých problémov. Možno nebudú desiatky miliónov programátorov, ktorí poznajú syntax, ale niekedy má zmysel robiť veci trochu inak, pretože experimenty s akýmkoľvek novým jazykom môžu byť pri budúcich projektoch prínosné.

Nasledujúcich deväť jazykov by malo byť na radare každého programátora. Nemusia byť najlepšie pre každú prácu - mnohé sú zamerané na špecializované úlohy. Všetky však ponúkajú výhody, ktoré sa oplatí preskúmať a investovať do nich. Môže sa stať, že jeden z týchto jazykov preukáže, že je presne to, čo váš projekt - alebo šéf - potrebuje.

Kotkin: Java to prehodnotila

Java je vynikajúci jazyk, ktorý podporuje niektoré z najpopulárnejších platforiem vôbec, ale už trochu starne a body bolesti sú príliš známe. Kotlin je mozkom dieťaťa tímu JetBrains v Rusku, ktorý nám priniesol úžasné IDE ako IntelliJ. Kotlin má slúžiť na rýchlu kompiláciu, koexistenciu s Javou a opravu niektorých najhorších problémov, ktoré zaberajú čas vývojárov Javy.

Najlepšou časťou môže byť pozornosť venovaná hodnotám s možnou hodnotou null, prekliatím všetkých objektovo orientovaných programátorov. Ak máte pocit, že polovica vášho kódu kontroluje nulové hodnoty, vývojári Kotlin počuli vaše výkriky. Kotlin urobí veľký krok k vyriešeniu tohto problému, ak nie raz a navždy, tak aspoň väčšinu času nútením vývojárov, aby výslovne vyvolávali premenné, ktoré by mohli byť nulové. Potom automaticky skontroluje niektoré z najhorších chýb, ktoré s nimi môžeme urobiť.

Kotlin je navrhnutý pre prácu s existujúcim kódom Java, čo je dobrá voľba pre tímy, ktoré chcú postupne vylepšovať kódovú základňu. Tiež to bude kompilácia až po JavaScript alebo natívny kód, ak to práve potrebujete. Google rozpoznal hodnotu jazyka a teraz sú vývojári pre Android, ktorí chcú používať Kotlin, dobre podporovaní.

Táto opatrná stratégia sa ukázala byť populárnou, pretože umožňuje tímu pomaly si osvojiť jazyk. Skupina Kotlin si získala veľa fanúšikov vo veľkých vývojových tímoch vo veľkých bankách, poradenských skupinách a firmách zaoberajúcich sa aplikáciami.

Erlang: Funkčné programovanie pre systémy v reálnom čase

Erlang začínal hlboko vo strašidelných ríšach telefónnych prepínačov vo švédskom telekomunikačnom ústave Ericsson. Keď sa programátori spoločnosti Ericsson začali chváliť výkonom „deviatich deviatich“, poskytnutím 99,9999999 percent údajov spoločnosťou Erlang si vývojári mimo spoločnosti Ericsson začali všímať.

Erlangovým tajomstvom je funkčná paradigma. Väčšina kódu je nútená pracovať v jeho vlastnom malom svete, kde nemôže poškodiť zvyšok systému prostredníctvom vedľajších účinkov. Tieto funkcie vykonávajú všetku svoju prácu interne a fungujú v malých „procesoch“, ktoré fungujú ako karantény a vzájomne sa rozprávajú iba prostredníctvom poštových správ. Nemôžete iba chytiť ukazovateľ a rýchlo meniť stav kdekoľvek v zásobníku. Musíte zostať v hierarchii hovorov. Môže to vyžadovať trochu viac premýšľania, ale je menej pravdepodobné, že sa chyby rozšíria.

Tento model tiež uľahčuje bežeckému kódu určiť, čo môže bežať súčasne. Pretože súbežnosť je tak ľahko zistiteľná, plánovač behu môže využiť veľmi nízku réžiu pri nastavovaní a vytrhávaní procesu. Fanúšikovia Erlang sa radi chvália spustením 20 miliónov „procesov“ súčasne na webovom serveri.

Ak budujete systém v reálnom čase bez priestoru pre vynechané dáta, ako je napríklad fakturačný systém pre prepínač mobilného telefónu, vyskúšajte Erlang.

Choď: Jednoduché a dynamické

Google nebol prvou organizáciou, ktorá zisťovala zbierku jazykov, len aby ich našla neprehľadne, zložito a často pomaly. V roku 2009 spoločnosť uviedla svoje riešenie: staticky napísaný jazyk, ktorý vyzerá ako C, ale obsahuje inteligenciu na pozadí, ktorá programátorom ušetrí zadávanie typov a žonglovanie s hovormi malloc. S programom Go môžu mať programátori stručnosť a štruktúru skompilovaného jazyka C a jednoduché použitie dynamického skriptovacieho jazyka.

Zatiaľ čo Sun a Apple nasledovali podobnú cestu pri vytváraní Javy a Swiftu, Google urobil s Go jedno výrazne odlišné rozhodnutie: Tvorcovia tohto jazyka chceli, aby bol Go „dostatočne jednoduchý na to, aby držal v hlave jedného programátora.“ Rob Pike, jeden z tvorcov spoločnosti Go, slávne povedal pre Ars Technica, že „niekedy môžete z dlhodobého hľadiska získať viac tým, že si veci odnesiete.“ Existuje teda niekoľko komparzistických doplnkov, ako sú generické typy, dedenie typu alebo tvrdenia, iba čisté a jednoduché bloky kódu if-then-else, ktorý manipuluje s reťazcami, poľami a hašovacími tabuľkami.

Jazyk je údajne dobre zavedený v rozsiahlej ríši spoločnosti Google a získava si uznanie aj na iných miestach, kde môžu byť milovníci dynamického jazyka Python a Ruby prinútení prijať niektoré prísnosti, ktoré vychádzajú z kompilovaného jazyka.

Ak ste začínajúcim podnikateľom a chcete upútať pozornosť spoločnosti Google a potrebujete vybudovať obchodnú logiku na strane servera, Go je skvelým miestom, kde začať.

OCaml: Žonglér s komplexnou dátovou hierarchiou

Niektorí programátori nechcú špecifikovať typy svojich premenných a pre nich sme vytvorili dynamické jazyky. Iní majú istotu, že môžu určiť, či premenná obsahuje celé číslo, reťazec alebo možno objekt. Mnoho kompilovaných jazykov pre nich ponúka všetku požadovanú podporu.

Potom sú tu tí, ktorí snívajú o prepracovaných hierarchiách typov a dokonca hovoria o vytváraní „algebry“ typov. Predstavujú si zoznamy a tabuľky heterogénnych typov, ktoré sú spojené a vyjadrujú zložité viacúrovňové extravagancie údajov. Hovoria o polymorfizme, primitívnych vzorkách a zapuzdrení údajov. Toto je iba začiatok zložitého, vysoko štruktúrovaného sveta typov, metatypov a metametatypov, po ktorých túžia.

Pre nich je tu OCaml, čo je veľká snaha komunity programovacích jazykov popularizovať mnohé z vyššie spomenutých myšlienok. K dispozícii je podpora objektov, automatická správa pamäte a prenosnosť zariadenia. V obchode Apple App Store sú dokonca k dispozícii aj aplikácie OCaml.

Ideálnym projektom pre OCaml by mohlo byť vytvorenie symbolického matematického webu pre výučbu algebry.

TypeScript: JavaScript, ktorý sa vám bude páčiť

Každý môže používať JavaScript, ale zdá sa, že nikto v ňom nemá rád programovanie. Alebo by sa to zdalo, pretože každý má dnes svoj obľúbený pred procesor alebo super procesor, ktorý rozširuje a zdokonaľuje jazyk. Aktuálny obľúbený je TypeScript, pretože do všetkých premenných pridáva typy, vďaka čomu sa programátori v Java cítia o niečo bezpečnejšie.

Najväčším dôvodom, prečo sa teraz viac vývojárov zaujíma o TypeScript, je Angular, skvelý rámec pre vytváranie webových aplikácií, ktorý sa práve píše v TypeScript. Zaujímavou vráskou je, že na použitie Angular nemusíte používať TypeScript. Môžete si vychutnať kvalitu jeho kódu a zlúčiť ho so starým kódom JavaScript. Nemusíte si vyberať.

Dôvod je ten, že TypeScript je nadmnožinou JavaScriptu. Vývojári pridali písanie spôsobom, ktorý dobre hrá so staromódnym jazykom JavaScript, čo je celkom užitočné, ak sú v kancelárii ľudia, ktorým sa nepáči predstava typov, alebo majú dogmatické názory na to, ako typy stiesňujú ich štýl. Typy sú skutočne voliteľné a ľudia, ktorí si dajú čas na špecifikáciu typov, môžu zožať úspech.

Silné písanie má mnoho výhod, ako je včasné chytenie niektorých chýb a zlepšenie všeobecnej kvality nástrojov. Pridávanie typov umožňuje inteligentným editorom, aby vám pomohli s inteligentnými návrhmi pri vytváraní majstrovského diela. Dokončenie kódu je oveľa rýchlejšie a presnejšie, keď rutiny dokončovania kódu vedia niečo o funkciách a argumentoch. To znamená menší pohyb prstov po klávesnici. Milovníci TypeScript sú si istí, že výhody ako sú tieto, prilákajú každého, kto je na hranici, na silu silne rozhodného jazyka.

Rust: Bezpečný a použiteľný systémový jazyk

Front-end programátori nie sú len tí, ktorí sa bavia. Rust je ako zrekonštruovaná verzia C s mnohými polymorfnými typizáciami zmiešanými pod kapotou. Za posledné dva roky po sebe vyhral „najobľúbenejší programovací jazyk“ od voličov Stack Overflow, česť, ktorá sa odráža aj v indexe jazykovej popularity Stack Overflow. Len pred niekoľkými rokmi sa Rust pohyboval na zozname na hranici okolo 50 a tento rok poskočil na 18.

Prečo? Možno preto, že Rust čistí veľa drsných problémov s C bez toho, aby príliš držal ruky alebo trval na tom, aby vývojári nenasadzovali virtuálne priame vesty. Systémoví programátori milujú nespoliehanie sa na odvoz odpadu, skvelú službu, kým nenastartuje presne v najnevhodnejšom čase. Rust vám dáva pocit, že máte na starosti to, čo sa stane s číslom v pamäti, a nečakáte, že za vás urobí prácu nejaká služba.

Systém na písanie je všeobecný a flexibilný a ponúka druh polymorfizmu, ktorý je inšpirovaný Haskellom, aspoň abstraktne. Po implementácii však kompilátor prispôsobí štruktúru pre každý typ, čo vývojári radi nazývajú „monomorfizmus“. Tento jazyk pridáva niekoľko ďalších obmedzení, aby vývojárom zabránil ísť z koľajiska. Každá hodnota je napríklad „vlastnená“ - čo v skutočnosti znamená, že ju možno spotrebovať iba raz, čím sa zabráni spleti odkazov z iných častí programu, ktoré pôsobia, akoby mali nad hodnotou úplnú kontrolu.

Všetky tieto funkcie plus niekoľko ďalších - napríklad závitovanie bez závodných podmienok - znamená, že nový programátor môže začať písať systémový kód bez toho, aby narazil na niektoré z najhorších anti-vzorov, ktoré majú dlho chybné programátory C. Získate všetku náročnú a výkonnú zábavu pri písaní textu C s kompilátorom, ktorý zachytí mnohé z najhorších chýb ešte pred spustením kódu.

Scala: Funkčné programovanie na JVM

Ak potrebujete pre svoj projekt jednoduchosť kódu objektovo orientovaných hierarchií, ale milujete funkčnú paradigmu, máte niekoľko možností. Ak je Java vaša oblasť, Scala je voľba pre vás.

Scala pracuje na JVM a prináša do sveta Java všetky čisté striktné požiadavky funkčného programovania dodaním kódu, ktorý vyhovuje špecifikáciám triedy Java a odkazom na ďalšie súbory JAR. Ak majú tieto ďalšie súbory JAR vedľajšie účinky a ďalšie nevyhnutne nepríjemné bolesti hlavy, tak to bude. Váš kód bude čistý.

Mechanizmus typov je silne statický a kompilátor robí všetku prácu, aby odvodil typy. Medzi primitívnymi typmi a typmi objektov nie je žiadny rozdiel, pretože Scala chce, aby všetko zostúpilo z jedného volania ur-objektu Any. Syntax je oveľa jednoduchšia a čistejšia ako Java; Ľudia z Scaly to nazývajú „nízky obrad“. Názvy svojich premenných CamelCase, ktoré môžete nechať na odsek, môžete nechať späť v Java Land.

Scala ponúka mnoho funkcií očakávaných od funkčných jazykov, ako napríklad lenivé hodnotenie, rekurzia chvosta a nemenné premenné, ale boli upravené tak, aby fungovali s JVM. Základné metatypy alebo premenné kolekcie, ako napríklad prepojené zoznamy alebo hašovacie tabuľky, môžu byť premenlivé alebo nemenné. Rekurzia chvosta pracuje s jednoduchšími príkladmi, ale nie s komplikovanými, vzájomne sa rekurzívnymi príkladmi. Myšlienky sú tu, aj keď implementáciu môže JVM obmedziť. Opäť tiež prichádza so všetkou všadeprítomnosťou platformy Java a rozsiahlou zbierkou existujúcich kódov Java napísaných komunitou otvorených zdrojov. To nie je zlý kompromis pre mnoho praktických problémov.

Ak musíte žonglovať s dátami v klastri s tisíc procesormi a mať kopu starších kódov Java, Scala je skvelým riešením.

$config[zx-auto] not found$config[zx-overlay] not found