5 nových programovacích jazyků, které byste měli znát

Pro některé lidi je učení se nového programovacího jazyka excesem, kterému je lepší se vyhnout. Proč, ach proč, namítají, potřebujeme ještě další jazyk?

Nemáme toho už dost?

Nevykonávají stávající nástroje svou práci?

A pak jsou tu ti neúnavní hledači, kteří se vrhnou na příležitost zkoušet nové věci a narážet na drahokamy. Učení je samo o sobě cílem a nepotřebují mnoho přesvědčování, aby spálili své víkendy budováním karetní hry na konzoli v tomto obskurním novém jazyce.

Bez ohledu na to, do kterého tábora patříte, existuje něco, o čem nelze diskutovat: všichni chceme trávit čas něčím, co bude mít světlou budoucnost.

Pro lidi v původním táboře má jejich oblíbený stávající jazyk již spoustu dynamiky a bude mít i nadále zářnou budoucnost. Musím jim připomenout, že jejich nyní vyspělý preferovaný vývojový nástrojový řetězec byl kdysi „kool-pomocí“, kterou mnozí odmítali pít. A tak je tomu i dnes; jsou přidávány nové technologie, které řeší nové problémy nebo zmírňují bolest z vývoje.

Pokud to něco udělá dostatečně radikálně, je pravděpodobné, že to bude i nadále získávat mindshare a dosáhnout vrcholu. Když se to stane, nechcete zůstat pozadu. 🙂

A pro ty, kteří rádi běhají s nablýskanými věcmi, varování: zábava je pro programátora nezbytná, ale musíme si dávat pozor, abychom zbytečně neplýtvali energií.

Tak určitě, Brainfuck je neuvěřitelně zkroucený, hádankový, zábavný malý jazyk, ale je nepravděpodobné, že by vám prospělo, když se o něj budete vážně zajímat. Chcete něco, co je nové, rozumné a má pevné základy.

Jak byly tyto jazyky vybrány

Výběr jazyka je zastrašující práce, zvláště když se uvažuje o nových jazycích pro budoucí výhody v zaměstnání a spokojenosti. Každý autor jazyka je pevně přesvědčen, že vytvořil dokonalý možný jazyk a vyřešil všechny problémy, na které je třeba odpovědět. Jak tedy stříháte?

U tohoto příspěvku jsem se zaměřil na pár parametrů, abych udržel hledání v rozumných mezích.

Datum vydání

Konkrétně jsem se vyhýbal jazykům, které jsou velmi, velmi nové.

Nové, myslím jazyky mladší než 5-6 let v době psaní, a zejména ty, které nedosáhly stability (vydání 1.0). To bohužel vylučuje některé skutečné skvosty jako Krystal, Ale doufám, že se k tomu někdy vrátím a napíšu o jeho úspěchu. 🙂

Fragment kódu v Crystal („Rychlý jako C, Slick jako Ruby“)

Pro mě je 5-12 let sladká tečka, kdy se jazyk stabilizuje a pracuje se na dalších vylepšeních. Nyní samozřejmě existují výjimky z tohoto pravidla a ty budou v případě potřeby zváženy.

Tohle je jedno, ale často se ignoruje, když se nadchneme pro něco nového. Pro mnoho lidí je podpora velké společnosti dostatečným precedentem pro úspěch, ale není to vždy pravda.

Ano, Apple Objective-C a nyní Swift prosperovaly, protože to byly jediné možnosti ve vysoce kontrolovaném ekosystému, ale Facebook D a Zaseknout (podle mého názoru ošklivý pohled na již tak ošklivý jazyk) zůstávají jen o málo více než experimenty.

Ideální kombinací by byl jazyk podporovaný velkou stabilní společností a explodující popularitou (jako React).

Ale jádrem věci je stále komunita. Pokud jazyk nevytváří rozruch a není dostatek vývojářů, kteří by ho vzdělávali a popularizovali, nevyleze ze svého hrobu na GitHubu.

Pro mě to vylučuje vyspělé, fascinující jazyky jako Raketa a Erlangprotože zůstaly ploché na růstové křivce.

Zaměřené, dobře definované USP

Třetí věc, kterou hledám, je jasný cíl pro jazyk. Nefunguje mi například lepší verze PHP, která opravuje problémy s pojmenováním a kompiluje do nativního PHP.

Výhody jsou příliš malé na to, aby ospravedlnily trhliny, pokud se na to všichni pokusí přejít. Podle tohoto měřítka si nemohu pomoci, ale pokusy jako je zamítnout CoffeeScripta mnoho dalších podobných jazyků kompilujících do JavaScriptu.

Upřímně řečeno, jsem povinen okamžitě zamítnout vylepšení pouze syntaxe. Historie ukázala, že pokud jde o jazyky, užitečnost vítězí nad přívětivostí, takže pokud se všechny nové jazyky zaměří na příjemnější zkušenost, obávám se, že se do tohoto seznamu nedostane.

Jasná, konzistentní syntaxe

Ano, já vím. Právě jsem řekl, že na syntaxi nezáleží. No, abych byl přesný, řekl jsem, že na „vylepšeních pouze syntaxe“ nezáleží. Ale to znamená, že syntaxe zůstává jedním z významných faktorů produktivity a udržovatelnosti programátorů, takže je to něco, co se v mých výpočtech zde nutně objeví.

Spolu se syntaxí přichází myšlenka konzistence. Pojmenování funkcí, strukturování modulů atd. jsou klíčové věci, které si jazyk nemůže dovolit udělat špatně. Je rok 2018, proboha, a další jazykový design podobný PHP by byla škoda pro nás všechny. Takže bez dalších okolků začneme s našimi pěti nejlepšími doporučeními.

  20 nejlepších nástrojů ER diagramů

1. Julia

Pro lidi z MIT byly jazyky dostupné pro datovou vědu přinejlepším kompromisem. Python přes veškerou jeho jasnost a popularitu postrádal nativní konstrukty pro práci s datovými objekty. Protože jde o interpretovaný jazyk, byl pro ně Python pomalý (nikoli knihovny, uvědomte si, že jsou většinou napsány v C).

Ale možná největší překážkou byl neohrabaný souběžný model a absence paralelního výpočetního modelu, z nichž druhý je základním prvkem superpočítačů.

Jako výsledek, Julie byl narozen.

Julia dosáhla svého stabilního vydání 29. září 2018, sotva pár dní před napsáním tohoto článku (mluvte o načasování!). Zde je to, co oficiální web říká o jeho schopnostech:

Julia vyniká v numerickém počítání. Jeho syntaxe je skvělá pro matematiku, je podporováno mnoho numerických datových typů a paralelismus je k dispozici ihned po vybalení. Juliino vícenásobné odeslání se přirozeně hodí pro definování číselných datových typů a datových typů podobných polí.

Z hlediska syntaxe lze Julii vnímat jako kombinaci Pythonu a C. Ano, je to pravděpodobně poprvé, kdy jazyk zacílil na obě tyto kvality a uspěl.

Aby to nebylo jednoduché, Julia je rychlá a nevynucuje si striktní psaní. Zde jsou některé benchmarky:

Oficiální Julia benchmarky

Jak můžete vidět, Julia je o něco horší než C, ale vyfoukla Java a Python z vody. A jakou pastvu pro oči Julia nabízí?

Zde je implementace funkce pro výpočet přepony pravoúhlého trojúhelníku:

Konečně, zatímco většina Julia ekosystému je silně nakloněna matematické práci, věřím, že má jasnou budoucnost pro všeobecné účely.

Pokud je mi známo, je to první jazyk, který má prvotřídní podporu pro paralelní výpočty, takže nebude žádným překvapením, když uvidíme, jak si získá větší oblibu v doménách webu a IoT.

2. Rez

Pokud jste vyzkoušeli nové verze prohlížeče Firefox, víte, že konečně, po letech práce, to vypadá, že by mohly Chrome ubrat určitý podíl na trhu.

Pokud je prohlížeč lehký a svižný a vykresluje se rychle, je to všechno díky jazyku, který Mozilla speciálně vyvinula: Rez.

Tvrdit, že Rust má světlou budoucnost, bude lež; jazyk je již obrovský úspěch, a pokud jste o něm ještě neslyšeli, je to proto, že jeho oblast použití je specializovaná a jeho cíl je děsivý: nahradit C++! Ano, konečně máme jazyk, který to nejen umí, ale už to dělá.

Pro lidi frustrované přetíženým designem a výzvami správy paměti C++ přichází Rust jako závan čerstvého vzduchu.

Takto vypadá program Rust:

Stručné a elegantní, podle mého názoru. Rust se řídí přístupem funkčního programování, díky kterému je váš kód složitelnější a neexistují žádné objektově orientované hierarchie, se kterými by se dalo zápasit.

Co tedy dodává Rustovi odvahu jít po C++? Je to nový model paměti. Spíše než se spoléhat na starý tanec new()/delete(), Rust zavádí myšlenku vlastnictví.

Namísto přímého přidělování paměti a přístupu k ní si proměnné Rust „půjčují“ od sebe navzájem, s přísnými omezeními kladenými kompilátorem. Celkový koncept je příliš komplikovaný na to, aby jej bylo možné vysvětlit několika slovy, takže se neváhejte podívat oficiální dokumenty dozvědět se více.

Jde o to, že to má za následek 100% bezpečnost paměti bez potřeby garbage collectoru, což je velký problém.

Rust vzal svět systémového programování útokem. Je již podporován na některých platformách, pohání prohlížeče a vykreslovací stroje rychle nahrazují kód C/C++ v produkčních systémech a používá se k zápisu operačních systémů.

Jistě, není to šálek čaje pro každého vytvořit si další prohlížeč nebo ovladač zařízení, ale Rust se již rozšiřuje do dalších domén. V Rustu již máme několik plně funkčních, směšně rychlých webových frameworků a vyvíjí se stále více aplikačních knihoven.

Upřímně řečeno, pokud máte zájem o vzrušující budoucnost, Rust je perfektní jazyk a nyní je ideální čas. Rust je letadlo, které vzlétlo, ale stále je čas dostat se na palubu a míří ke hvězdám!

Učit se Rez od Dmitrije Nesteruka.

3. Elixír

Mezi jazyky, které se zaměřují na štěstí vývojářů, je první místo trvale vyhrazeno Ruby. Je to jazyk, který se čte jako poezie a má dostatek zkratek, aby řádově snížil duševní tření.

Není proto divu, že framework Rails i nadále dominuje full stack vývoji pro seriózní vývojáře a startupy. Ale ne všichni byli s Rails spokojeni, zejména jeden z jeho hlavních vývojářů – José Valim. Myslím, že sám tvůrce nejlépe vysvětluje genezi tohoto jazyka v an rozhovor:

  Jak vytvořit automatizaci na iPhone nebo iPad

Je to dlouhý příběh, ale pokusím se ho zkrátit a zkrátit. V roce 2010 jsem pracoval na zlepšení výkonu Rails při práci s vícejádrovými systémy, protože naše stroje a produkční systémy jsou dodávány se stále více jádry. Celá zkušenost však byla docela frustrující, protože Ruby neposkytuje správný nástroj pro řešení problémů souběžnosti. Tehdy jsem se začal poohlížet po jiných technologiích a nakonec jsem se zamiloval do virtuálního stroje Erlang.

Začal jsem používat Erlang stále více a se zkušenostmi jsem si všiml, že mi chybí některé konstrukce dostupné v mnoha jiných jazycích, včetně těch funkčních. Tehdy jsem se rozhodl vytvořit Elixir, jako pokus přinést různé konstrukce a vynikající nástroje nad Erlang VM.

a hle, Elixír byl narozen!

Stejně jako Scala vylepšuje jazyk Java, ale zaměřuje se na stejný virtuální stroj pod ním (JVM), Elixir využívá desítky let starý, bitvami osvědčený virtuální stroj Erlang.

Nyní je diskuse o Erlangu nad rámec tohoto článku, ale minimum, které byste měli vědět, je, že je to nejlépe střežené tajemství telekomunikačního průmyslu: pokud jsou naše telefonní sítě mnohem spolehlivější než naše webové systémy, je to všechno díky Erlang.

Ještě jednodušším způsobem to znamená toto. Pokud budujete systém v reálném čase, jako je chat, Elixir je mnohem méně náročný na RAM a je stabilní než Ruby (nebo PHP, Python a Java, když na to přijde).

Stroj, na kterém běží Ruby a dosahuje maximálního počtu 10 000 souběžných připojení, může snadno zvládnout 200 000 při použití Elixir a stále má dostatek paměti RAM pro spuštění 2D her!

Fragment kódu elixíru

Syntaxicky Elixir bezostyšně kopíruje Ruby a jeho dominantní webový framework Phoenix bezostyšně kopíruje Rails. Řekl bych, že je to také dobrá věc, protože spolu s Laravel, Grails, Masonite atd. se dostáváme do bodu, kdy všechny jazyky mají rámce podobné Rails, které mohou usnadnit přechod. Někteří by se mohli vysmívat „nedostatku originality“, ale já si alespoň nestěžuji.

Konečně, Elixír je jednou z těch technologií, které jsou osvěžující, příjemné a zatraceně praktické. Několik obchodů s Ruby (a dokonce i bez Ruby) se přesouvá na Elixir a velké společnosti jako Pinterest jej používají ve výrobě s mimořádně uspokojivými výsledky.

Mnoho lidí si myslí, že Node.js byl provizorní pokus o souběžnost a brzy bude nahrazen Elixirem. Musím říct, že s nimi souhlasím. 🙂

4. Kotlin

V roce 2017 I/O vypustil Google na nic netušící dav bombu. Společnost to oficiálně oznámila Kotlin jako primární jazyk pro vývoj Androidu, který vysílá šokové vlny do celého odvětví.

Nyní, když se Google aktivně snaží nahradit Javu, není žádným překvapením poté, co byl pokousán soudním sporem Oracle; přijetí Kotlinu však bylo poněkud neočekávané a stále existuje velká šance, že Google brzy přijde se svým virtuálním strojem. Kotlin si ale zatím užívá nápor.

Kotlin byl vyvinut společností JetBrains, společností známější pro svou sadu šíleně dobrých editorů kódu. Jeden z nich, IntelliJ IDEA, tvoří základní kámen Android Studia. Cíle návrhu Kotlinu jsou bezpečnost, stručnost a 100% interoperabilita s Javou.

Více než cokoli jiného kompilátor Kotlin pracuje mimořádně tvrdě na odstranění jakýchkoli výjimek nulových ukazatelů, které jsou ve světě Java tak běžné. Dost to také snižuje příslovečnou výřečnost Java, což mnohým přijde úlevné.

Zde je skvělé srovnání kódu mezi Java a Kotlin:

Obrazový kredit: hype.codes

Kód Kotlin je výrazně kratší a má mnohem menší kognitivní přetížení.

Ale pojďme si ujasnit jednu věc: Kotlin je extrémně nepravděpodobné, že nahradí Javu, i když se rychle stává oblíbeným. Věřím, že za deset let se malé až střední týmy nepodívají dál než na Kotlin, zatímco velké skupiny budou Javu nadále používat čistě z důvodů dědictví.

To znamená, že Kotlin má extrémně světlou budoucnost, protože dělá vše, co dělá Java, může se spojit s kódem Java, aniž by si toho někdo všiml, a je mnohem příjemnější!

5. TypeScript

Bůh ví, že jsem se kvůli tomuto místu musel uskromnit! Všechno ve mně křičelo „Jilm! Elm!“, ale bez ohledu na to, jak revoluční jsou jeho myšlenky nebo jak božská syntaxe, Elm zatím není považován za mainstreamovou alternativu pro front-endovou práci. 🙁 Každopádně přejděme k tomu, co je mainstream: TypeScript.

JavaScript je jako lesní plody: ošklivý a nechutný, ale pokud chcete přežít džungli front-endového vývoje, musíte to vzít do žaludku. Bylo učiněno mnoho pokusů o jeho nahrazení (a s největší pravděpodobností uspěje nový standard WebAssembly), ale to, co skutečně upoutalo pozornost všech, byla supermnožina vyvinutá společností Microsoft.

  Ochrana aplikací heslem a správa nastavení z přepínače aplikací [Jailbreak]

Jsou skvělé šance, o kterých jste slyšeli TypeScript: Angular byl první framework, který jej přijal od verze 2 dále, a lidé si toho rychle všimli. To proto, že TypeScript přidává do nejslavnějšího programovacího jazyka na světě některé tolik potřebné a fantastické superschopnosti.

Ano, konečně je možné psát nativní kód JavaScript bez utrpení a proklínání svého narození!

Zde jsou vylepšení, která TypeScript přináší do tabulky:

✓ Silné psaní: A konečně, řetězec není číslo a číslo není objekt, což není prázdné pole!

✓ Kontrola typu v době kompilace: Pokud se váš kód zkompiluje správně, je víceméně zaručeno, že bude bez bradavic běhového prostředí JavaScriptu.

✓ Třídy a moduly: Ano, třídy jsou standardní v ES6, ale jsou zahrnuty také v TypeScriptu, kromě úhledného modulového systému.

✓ Odvozování typu: U složitých typů může kompilátor snadno určit typ, což vám ušetří bolesti hlavy.

✓ Async/wait: Klíčová slova a vzory async/wait jsou základní, takže už žádné zahrávání se sliby a zpětnými voláními!

Jmenné prostory, generika, n-tice . . . Mohl bych pokračovat dál a dál, ale mělo by stačit říci, že TypeScript převádí jednu z nejhorších vývojových zkušeností na jednu z nejlepších.

Fragment kódu TypeScript

Vliv TypeScriptu nelze popřít. Vytlačilo z pole podobné pokusy jako Dart od Googlu (ačkoli se pokouší o comeback prostřednictvím Flutter, mobilního vývojového rámce), a otevřelo oči vývojářům JS k výhodám silnějších typů.

Výsledkem je, že významné knihovny jako React, D3, Vue (dokonce i jQuery!) nyní mají verzi TypeScript a v nejlepších softwarových obchodech po celém světě je veškerý JavaScript kód zapsán jako kód TypeScript. Záhlaví TypeScriptu jsou nyní k dispozici i pro Node.js (upřímně řečeno, pokud uzel dokáže vylepšit svůj příběh souběžnosti a opravit svou mizernou správu paměti, vydrží navždy).

Možná vás překvapí, že tvůrce Node.js poté, co veřejně litovat jeho výtvor, pracuje na a nový runtime (v tuto chvíli neexistuje žádná oficiální webová stránka; pouze repozitář GitHub), který má jako primární jazyk TypeScript.

Nejlepší zpráva? TypeScript je malý jazyk se učit se značnými výhodami do budoucna. Pokud jste středně pokročilý vývojář JavaScriptu, vyzvednete si do dvou dnů dostatek TypeScriptu k přenesení veškerého vašeho stávajícího kódu!

Závěr a vyloučení odpovědnosti

Konkrétní jazyky získávají na popularitě stejně jako jazyky v tomto článku, ale z různých důvodů nebyly zařazeny do seznamu. Zde je rychlý pohled:

  • Golang: Již zavedený jako mainstreamový, ne-li velmi populární jazyk. V tuto chvíli věřím, že Golang má několik konkurentů, kteří udrží svůj podíl na trhu nízký.
  • R: R je mezi datovými vědci již žhavé a je nepravděpodobné, že by vývojáře aplikací příliš přilákalo. Kromě toho nesmíme zapomínat, že knihovny strojového učení si pomalu razí cestu do všech hlavních jazyků (proboha, už je má i PHP!), takže stačí chvíli počkat. 🙂
  • Swift: Apple má železné sevření svého ekosystému a Swift je jediný dostupný jazyk. Dříve byl Objective C zuřivý, stejně jako nyní Swift. Považuji to za podvádění, a proto to sem odmítám zařadit. 😀

Budoucnost je vždy nejistá a jedním ze způsobů, jak jít ve své kariéře, je držet se toho, co již funguje, a nenechat se „rozptýlit“. Pokud to uděláte, Java, PHP, Python, Ruby atd. jsou skvělé jazyky, kterých se můžete držet. Některým z nás však norma nestačí. Chtějí jít ven a prozkoumat a sázet ve velkém na budoucnost. Pokud spadáte do druhého tábora, jeden z těchto pěti jazyků by měl být na prvním místě vašeho seznamu úkolů.

A konečně, když se snažíte zhodnotit jazyk, nenechte se přemoci úsilím, protože to není tolik. Pokud již ovládáte několik programovacích jazyků, můžete se naučit kterýkoli z nich maximálně do dvou měsíců, přičemž strávíte 5–6 hodin týdně. Zatímco štěstí a peněžní výnosy, které lze v budoucnu generovat, budou několikanásobně vyšší.

Chyběl mi zde nějaký kritický jazyk? Nebo možná mám něco špatně ve zde uvedených jazycích? Pokud ano, zanechte prosím komentář a pomozte mi zlepšit se. 🙂

x