5 új programozási nyelv, amit tudnia kell

Egyesek számára az új programozási nyelv tanulása túlzás, amit a legjobb elkerülni. Miért, ó miért, vitatkoznak, kell még egy nyelv?

Nincs már elegünk?

A meglévő eszközök nem végzik el a munkát?

És ott vannak azok a fáradhatatlan keresők, akik megragadják a lehetőséget, hogy új dolgokat próbáljanak ki, és drágakövekbe botlanak. A tanulás öncélú, és nem kell sok meggyőzésük ahhoz, hogy a hétvégéket eltüntessenek egy konzolalapú kártyajáték felépítésével ezen a homályos, új nyelven.

Nem számít, melyik táborhoz tartozol, van valami, ami vitán felül áll: mindannyian olyasmire akarunk időt fordítani, aminek fényes jövője lesz.

Az örökölt táborban élők számára kedvenc nyelvük már most is rengeteg lendületet kapott, és továbbra is szép jövő előtt áll. Emlékeztetnem kell őket arra, hogy a mára kiforrott preferált fejlesztési eszközláncuk egykor „kool-segítség” volt, amelyet sokan nem voltak hajlandók inni. És ez ma is így van; új technológiákat adnak hozzá az új problémák megoldására vagy a fejlődés fájdalmának enyhítésére.

Ha valami ezt elég radikálisan megteszi, nagy eséllyel továbbra is elragadja a mindshare-t, és eléri a csúcsot. Amikor ez megtörténik, nem akar lemaradni. 🙂

És azoknak, akik szeretnek futni a fényes cuccokkal, figyelmeztetés: programozóként elengedhetetlen a szórakozás, de vigyázni kell, hogy ne pazaroljuk az energiáinkat céltalanul.

Biztos, Agyfasz egy hihetetlenül csavaros, rejtvényszerű, szórakoztató kis nyelv, de nem valószínű, hogy hasznot húzhat belőle, ha komolyan foglalkozik vele. Valami újat akarsz, ami értelmes és szilárd alapokon nyugszik.

Hogyan választották ki ezeket a nyelveket

A nyelvválasztás megfélemlítő munka, különösen akkor, ha az új nyelvek bevezetését fontolgatják a foglalkoztatás és az elégedettség jövőbeli előnyei miatt. Minden nyelvíró szilárdan meg van győződve arról, hogy megalkotta a lehetséges tökéletes nyelvet, és megoldotta az összes megválaszolandó problémát. Akkor hogyan vágod?

Ebben a bejegyzésben néhány paraméterre összpontosítottam, hogy a keresésem ésszerű határokon belül maradjon.

Kiadási dátum

Kifejezetten kerültem a nagyon-nagyon új nyelveket.

Új, az íráskor 5-6 évnél fiatalabb nyelvekre gondolok, és főleg azokra, amelyek még nem érték el a stabilitást (azaz 1.0 kiadás). Ez sajnos kizár néhány igazi gyöngyszemet, mint pl Kristály, De remélem, hogy egyszer visszatérek ehhez, és írok a sikeréről. 🙂

Egy kódrészlet a Crystalban („Fast as C, Slick as Ruby”)

Számomra az 5-12 év az édes pont, amikor egy nyelv stabilizálódott, és újabb finomítások zajlanak. Most természetesen vannak kivételek e szabály alól, és ezeket adott esetben figyelembe vesszük.

Ez egy tökmindegy, de gyakran figyelmen kívül hagyják, ha valami új dolog miatt izgulunk. Sok ember számára egy nagy cég támogatása elég precedens a sikerhez, de ez nem mindig igaz.

Igen, az Apple Objective-C és most a Swift virágzott, mert ez volt az egyetlen lehetőség egy erősen ellenőrzött ökoszisztémában, de a Facebook D és Csapkod (szerintem csúnya felfogás egy amúgy is csúnya nyelvet) alig marad több kísérletnél.

Az ideális kombináció egy olyan nyelv lenne, amelyet egy nagy, stabil cég támogat, és robbanásszerűen népszerű (mint például a React).

De a dolog húsa továbbra is a közösség. Ha egy nyelv nem kelt feltűnést, és nincs elég fejlesztő az oktatáshoz és népszerűsítéshez, akkor nem fog kimászni a GitHub sírjából.

Számomra ez kizárja az olyan érett, lenyűgöző nyelveket, mint pl Ütő és Erlangmivel laposak maradtak a növekedési görbén.

Fókuszált, jól meghatározott USP

A harmadik dolog, amit keresek, egy világos cél a nyelv számára. Például a PHP egy jobb verziója, amely kijavítja az elnevezési problémákat, és natív PHP-re fordít, nem működik számomra.

Az előnyök túl kicsik ahhoz, hogy igazolják a repedéseket, ha mindenki megpróbál rátérni. Ezzel a mércével nem tudom elutasítani az ehhez hasonló próbálkozásokat CoffeeScriptés sok más hasonló JavaScript-nyelvre fordítható nyelv.

Őszintén szólva, azonnal el kell vetnem a csak szintaktikai fejlesztéseket. A történelem azt mutatta, hogy a hasznosság felülmúlja a barátságosságot, ha nyelvekről van szó, így ha minden új nyelvre összpontosít, kellemesebb élményt nyújt, attól tartok, nem kerül fel a listára.

Világos, következetes szintaxis

Igen, tudom. Csak azt mondtam, hogy a szintaxis nem számít. Nos, hogy pontos legyek, azt mondtam, hogy a „csak szintaktikai fejlesztések” nem számítanak. Ennek ellenére a szintaxis továbbra is a programozó termelékenységének és karbantarthatóságának egyik jelentős tényezője, így ez minden bizonnyal szerepel az itteni számításaimban.

  Hogyan tanuljunk szilárdságot 2022-ben – 11 kurzus/forrás

A szintaxis mellett megjelenik a konzisztencia gondolata is. A függvények elnevezése, a modulok felépítése stb. kulcsfontosságú dolgok, amelyeket egy nyelv nem engedhet meg magának. 2018 van, az isten szerelmére, és egy újabb PHP-szerű nyelvi dizájn kár lenne mindannyiunk számára. Tehát minden további nélkül kezdjük az öt legfontosabb javaslatunkkal.

1. Julia

Az MIT munkatársai számára az adattudomány számára elérhető nyelvek a legjobb esetben is kompromisszumot jelentettek. A Python egyértelműsége és népszerűsége ellenére hiányoztak az adatobjektumok kezelésére szolgáló natív konstrukciók. Továbbá, mivel egy tolmácsolt nyelv, a Python lassú volt számukra (nem a könyvtárak, ne feledje, mivel többnyire C-ben írják).

De a legnagyobb kitörést talán a nehézkes párhuzamossági modell és a párhuzamos számítási modell hiánya jelentette, amely utóbbi a szuperszámítástechnika alapvető eleme.

Ennek eredményeként Julia született.

A Julia 2018. szeptember 29-én érte el stabil megjelenését, alig néhány nappal a cikk megírása előtt (beszéljen az időzítésről!). Íme, amit a hivatalos webhely mond a képességeiről:

Julia kiváló a numerikus számítástechnikában. Szintaxisa kiváló a matematikához, számos numerikus adattípus támogatott, és a párhuzamosság már a dobozból is elérhető. Julia többszörös küldése természetes módon illeszkedik a szám- és tömbszerű adattípusok meghatározásához.

Szintaktikailag a Julia a Python és a C kombinációjaként fogható fel. Igen, valószínűleg ez az első alkalom, hogy egy nyelv mindkét tulajdonságot megcélozza, és sikeres is.

Az egyszerűség kedvéért Julia gyorsan dolgozik, és nem kényszeríti ki a szigorú gépelést. Íme néhány benchmark:

A hivatalos Julia benchmarkok

Amint látja, Julia valamivel rosszabb, mint a C, de kifújja a Java-t és a Python-t a vízből. És milyen szemrevalót kínál Julia?

Nos, itt van egy függvény megvalósítása egy derékszögű háromszög befogójának kiszámításához:

Végül, míg a legtöbb Julia ökoszisztéma erősen a matematikai munka felé hajlik, úgy gondolom, hogy fényes, általános célú jövője van.

Tudomásom szerint ez az első nyelv, amely első osztályú támogatást nyújt a párhuzamos számításokhoz, így nem lesz meglepő, ha egyre nagyobb népszerűségre tesz szert a weben és az IoT-tartományokban.

2. Rozsda

Ha kipróbálta az új Firefox böngészőkiadásokat, tudja, hogy több évnyi munka után végre úgy tűnik, hogy képesek lesznek elvenni némi piaci részesedést a Chrome-tól.

Ha a böngésző könnyednek és lendületesnek tűnik, és gyorsan renderel, ez a Mozilla speciálisan kifejlesztett nyelvének köszönhető: Rozsda.

Hazugság lenne azt állítani, hogy Rustnak fényes jövője van; A nyelv már most is hatalmas sikert aratott, és ha még nem hallottál róla, annak az az oka, hogy az alkalmazási területe speciális, célja pedig ijesztő: a C++ leváltása! Igen, végre van egy nyelvünk, amely nemcsak képes erre, hanem már csinálja is.

A C++ túlterhelt tervezési és memóriakezelési kihívásai miatt frusztrált emberek számára a Rust egy leheletnyi friss levegőt jelent.

Így néz ki egy Rust program:

Tömör és elegáns, szerintem. A Rust a funkcionális programozási megközelítést követi, ami a kódot jobban összeállíthatóvá teszi, és nincsenek objektum-orientált hierarchiák, amelyekkel birkózni kellene.

Tehát mi adja Rustnak a bátorságot, hogy a C++ után menjen? Ez az új memóriamodell. Ahelyett, hogy a régi new()/delete() táncra hagyatkozna, Rust bevezeti a tulajdonjog gondolatát.

Ahelyett, hogy közvetlenül lefoglalnák és hozzáférnének a memóriához, a Rust változók „kölcsönkérik” egymástól, a fordító által meghatározott szigorú korlátozásokkal. Az átfogó koncepció túl bonyolult ahhoz, hogy néhány szóban elmagyarázzuk, ezért nyugodtan nézze meg a hivatalos dokumentumok többet tanulni.

A lényeg az, hogy ez 100%-os memóriabiztonságot eredményez, szemétgyűjtő nélkül, ami nagy dolog.

A Rust viharvert kapott a rendszerprogramozási világban. Egyes platformokon már támogatott, a böngészők és a renderelő motorok gyorsan lecserélik a C/C++ kódot éles rendszereken, és operációs rendszerek írására használják.

Persze nem mindenki teázik egy újabb böngészőt vagy eszközillesztőt, de a Rust máris elterjed más tartományokra. A Rustban már több teljesen működőképes, nevetségesen gyors webes keretrendszerünk van, és egyre több alkalmazáskönyvtár készül.

Őszintén szólva, ha érdekli egy izgalmas jövő, a Rust a tökéletes nyelv, és most itt a tökéletes idő. A Rust egy repülőgép, amely felszállt, de még van ideje felszállni a fedélzetre, miközben a csillagok felé tart!

Tanul Rozsda Dmitri Nesteruktól.

3. Elixír

A fejlesztői boldogságra összpontosító nyelvek között az első helyet véglegesen a Rubynak tartották fenn. Ez egy olyan nyelv, amely úgy olvas, mint a költészet, és elegendő gyorsbillentyűvel rendelkezik ahhoz, hogy nagyságrenddel csökkentse a mentális súrlódást.

  Képes diavetítés lejátszása a Chromecaston

Nem csoda tehát, hogy a Rails keretrendszer továbbra is uralja a komoly fejlesztők és induló vállalkozások full stack fejlesztését. De nem mindenki volt elégedett a Rails-szel, különösen az egyik fő fejlesztője – José Valim. Szerintem maga az alkotó magyarázza el legjobban ennek a nyelvnek a keletkezését egy interjú:

Ez egy hosszú történet, de igyekszem rövidre és édesre írni. 2010-ben a Rails teljesítményének javításán dolgoztam, amikor többmagos rendszerekkel dolgoztam, mivel gépeinket és gyártórendszereinket egyre több maggal szállítjuk. Az egész tapasztalat azonban meglehetősen frusztráló volt, mivel a Ruby nem biztosítja a megfelelő eszközt a párhuzamossági problémák megoldásához. Ekkor kezdtem el más technológiák után nézni, és végül beleszerettem az Erlang virtuális gépbe.

Egyre gyakrabban kezdtem el használni az Erlang-ot, és tapasztalattal azt vettem észre, hogy hiányzik néhány más nyelven elérhető konstrukció, beleértve a funkcionálisakat is. Ekkor döntöttem el, hogy létrehozom az Elixir-t, hogy megpróbáljam különböző konstrukciókat és kiváló szerszámokat hozni az Erlang virtuális gép tetejére.

És íme, Elixír született!

Ahogy a Scala továbbfejleszti a Java nyelvet, de ugyanazt a virtuális gépet (a JVM-et) célozza meg, az Elixir kihasználja a több évtizedes, harcokban bevált Erlang virtuális gépet.

Nos, az Erlang-ról szóló vita túlmutat e cikk keretein, de a minimum, amit tudnod kell, hogy ez a távközlési iparág legjobban őrzött titka: ha telefonhálózataink sokkal megbízhatóbbak, mint a webalapú rendszereink, akkor mindez annak köszönhető, hogy Erlang.

Még egyszerűbben fogalmazva, ez ezt jelenti. Ha valós idejű rendszert épít, mint például a chat, az Elixir sokkal kevésbé éhes és kevésbé stabil RAM, mint a Ruby (vagy a PHP, a Python és a Java).

Egy Rubyt futtató gép, amelyen maximum 10 000 egyidejű kapcsolat áll rendelkezésre, könnyen kezelni tud 200 000-et Elixir használatakor, és még mindig elegendő RAM-mal rendelkezik a 2D játékok futtatásához!

Elixir kódrészlet

Szintaxist tekintve az Elixir szégyentelenül másolja a Rubyt, a domináns webes keretrendszer, a Phoenix pedig szégyentelenül másolja a Rails-t. Azt mondanám, hogy ez is jó dolog, mert a Laravel, Grails, Masonite stb. mellett elérjük azt a pontot, ahol minden nyelv rendelkezik Rails-szerű keretrendszerrel, amely megkönnyíti az átmenetet. Lehet, hogy néhányan kigúnyolják az „eredetiség hiányát”, de én legalább nem panaszkodom.

Végül, Elixír egyike azoknak a technológiáknak, amelyek frissítőek, kellemesek és átkozottul praktikusak. Számos Ruby (sőt nem Ruby) üzlet költözik az Elixirbe, és olyan nagy cégek, mint a Pinterest, rendkívül kielégítő eredményekkel használják a gyártásban.

Sokan úgy gondolják, hogy a Node.js egy ideiglenes kísérlet volt a párhuzamosságra, és hamarosan az Elixir váltja fel. Azt kell mondanom, hogy egyetértek velük. 🙂

4. Kotlin

A 2017-es I/O-ban a Google bombát eresztett a gyanútlan tömegre. A cég hivatalosan bejelentette Kotlin mint az Android fejlesztésének elsődleges nyelve, lökéshullámokat küldve az iparágon keresztül.

Most, hogy a Google aktívan keresi a Java leváltását, nem meglepő, miután elharapta az Oracle-per; A Kotlin elfogadása azonban némileg váratlan volt, és még mindig jó esély van arra, hogy a Google hamarosan kijön a virtuális gépével. Egyelőre azonban Kotlin túlfeszültségnek örvend.

A Kotlint a JetBrains fejlesztette ki, egy olyan cég, amely ismertebb az őrülten jó kódszerkesztő programcsomagjáról. Ezek egyike, az IntelliJ IDEA az Android Studio alapkövét alkotja. A Kotlin tervezési céljai a biztonság, a tömörség és a Java-val való 100%-os interoperabilitás.

A Kotlin fordító mindennél jobban keményen dolgozik, hogy kiküszöbölje a Java világban oly gyakori nullmutató kivételeket. A Java közmondásos bőbeszédűségét is eléggé leveszi, ami sokak számára megkönnyebbülést jelent majd.

Íme egy csodálatos kód-összehasonlítás a Java és a Kotlin között:

A kép jóváírása: hype.codes

A Kotlin-kód lényegesen rövidebb, és sokkal kevesebb kognitív túlterheltséggel bír.

De egy dolgot tisztázzunk: nagyon valószínűtlen, hogy a Kotlin leváltja a Java-t, bár gyorsan kedvencévé válik. Úgy gondolom, hogy tíz év elteltével a kis- és közepes méretű csapatok nem fognak tovább nézni Kotlinnál, míg a nagy csoportok továbbra is a Java használatát pusztán örökölt okok miatt fogják használni.

Ennek ellenére a Kotlin rendkívül fényes jövő előtt áll, mivel mindent megtesz, amit a Java, tud egyesülni a Java kóddal anélkül, hogy bárki észrevenné, és sokkal kellemesebb!

5. TypeScript

Isten tudja, hogy vissza kellett fognom magam ezért a helyért! Bennem minden azt üvöltötte, hogy „Elm! Elm!”, de bármennyire is forradalmiak az ötletei, vagy mennyire isteni a szintaxis, az Elm még mindig nem tekinthető a front-end munka főbb alternatívájának. 🙁 Mindenesetre térjünk át a mainstreamre: a TypeScriptre.

  A Gmail blokkolása az Outlook bejelentkezési kísérleteinek kijavítása

A JavaScript olyan, mint az erdei bogyó: csúnya és gusztustalan, de túl kell élned vele, ha túl akarod élni a front-end fejlesztés dzsungelét. Sok kísérlet történt a cseréjére (és nagy valószínűséggel az új WebAssembly szabvány is sikerülni fog), de ami igazán felkeltette mindenki figyelmét, az a Microsoft által fejlesztett szuperkészlet volt.

Nagyszerű esélyek vannak, amelyekről már hallott Gépelt: Az Angular volt az első keretrendszer, amely a 2-es verziótól kezdve alkalmazta, és az emberek gyorsan észrevették. Ennek az az oka, hogy a TypeScript néhány nagyon szükséges és fantasztikus szuperképességet ad a világ leghíresebb programozási nyelvéhez.

Igen, végre lehet natív JavaScript kódot írni anélkül, hogy szenvednénk és megátkoznánk a születését!

Íme a TypeScript által a táblázathoz nyújtott fejlesztések:

✓ Erős gépelés: Végül a karakterlánc nem szám, és a szám nem objektum, ami nem egy üres tömb!

✓ Fordítási idejű típusellenőrzés: Ha a kód megfelelően fordítódik, többé-kevésbé garantált, hogy mentes a JavaScript futási környezet szemölcseitől.

✓ Osztályok és modulok: Igen, az osztályok szabványosak az ES6-ban, de a TypeScriptben is benne vannak, a szép modulrendszeren kívül.

✓ Típuskövetkeztetés: Összetett típusok esetén a típust a fordító könnyen ki tudja találni, így némi fejfájást megkímél.

✓ Async/wait: Az async/wait kulcsszavak és minták alapvetőek, így nem kell többé vacakolni az ígéretekkel és visszahívásokkal!

Névterek, általánosságok, sorok . . . Sorolhatnám még hosszan, de elég azt mondani, hogy a TypeScript az egyik legrosszabb fejlesztési tapasztalatot a legjobbak közé alakítja.

TypeScript kódrészlet

A TypeScript hatása nem tagadható. Kiszorította a mezőnyből az olyan hasonló próbálkozásokat, mint a Google Dartja (bár a Flutter, a mobilfejlesztési keretrendszer révén próbál visszatérni), és felnyitotta a JS-fejlesztők szemét az erősebb típusok előnyeire.

Ennek eredményeként olyan jelentős könyvtárak, mint a React, D3, Vue (még a jQuery is!) már TypeScript verzióval rendelkeznek, és a világ legjobb szoftverboltjaiban minden JavaScript kód TypeScript kódként íródik. A TypeScript-fejlécek már elérhetőek a Node.js-hez is (őszintén szólva, ha egy csomópont javítani tudja a párhuzamossági sztoriját és javítani tudja a silány memóriakezelését, akkor örökké tart).

Meglepődhet, ha megtudja, hogy a Node.js létrehozója, miután nyilvánosan sajnálkozva alkotása, dolgozik a új futtatókörnyezet (jelenleg nincs hivatalos webhely; csak a GitHub repo), amelynek elsődleges nyelve a TypeScript.

A legjobb hír? A TypeScript egy kicsi nyelvet tanulni jelentős előnyökkel jár a jövőben. Ha Ön középhaladó JavaScript-fejlesztő, két napon belül elegendő TypeScript-et kell beszereznie, hogy átvigye az összes meglévő kódot!

Következtetés és felelősség kizárása

Egyes nyelvek egyre nagyobb népszerűségnek örvendenek, mint a jelen cikkben szereplők, de különböző okok miatt nem kerültek fel a listára. Íme egy gyors áttekintés:

  • Golang: Már bejáratott nyelv, ha nem is túl népszerű. Úgy gondolom, hogy jelenleg a Golangnak számos versenytársa van, akik alacsonyan fogják tartani piaci részesedését.
  • R: Az R már most is felkapott az adattudósok körében, és nem valószínű, hogy ez nagyon vonzza az alkalmazásfejlesztőket. Emellett nem szabad megfeledkeznünk arról, hogy a gépi tanulási könyvtárak lassan minden nagyobb nyelvbe bekerülnek (az isten szerelmére, már a PHP-ben is megvannak!), így csak várni kell egy kis időt. 🙂
  • Swift: Az Apple vaskos markolattal rendelkezik az ökoszisztémán, és a Swift az egyetlen elérhető nyelv. Korábban az Objective C volt a düh, ahogy most Swift. Megcsalásnak tartom, ezért nem vagyok hajlandó ide sorolni. 😀

A jövő mindig bizonytalan, és a karriered egyik módja az, ha ragaszkodsz ahhoz, ami már működik, és nem hajlandó „elterelni”. Ha így tesz, a Java, a PHP, a Python, a Ruby stb. kiváló nyelvek. Néhányunk számára azonban a norma nem elég. Ki akarnak menni felfedezni és nagyot fogadni a jövőre. Ha az utóbbi táborba tartozol, akkor ezen öt nyelv egyikének szerepelnie kell a teendők listáján.

Végül, amikor megpróbál egy nyelvet értékelni, ne hagyja, hogy az erőfeszítés eluralkodjon rajtad, mert ez nem olyan sok. Ha már ismersz néhány programozási nyelvet, akkor ezek közül bármelyiket megtanulhatod maximum két hónapon belül, heti 5-6 órát ráfordítva. Míg a jövőben generálható boldogság és pénzbeli hozam ennek többszöröse lesz.

Kihagytam valami kritikus nyelvezetet? Vagy lehet, hogy valamit rosszul csinálok az itt felsorolt ​​nyelvekkel? Ha igen, kérjük, írjon megjegyzést, és segítsen javítani. 🙂