5 uut programmeerimiskeelt, mida peaksite teadma

Mõne inimese jaoks on uue programmeerimiskeele õppimine ülemäärane, mida on kõige parem vältida. Miks, oh miks, väidavad nad, et meil on vaja veel ühte keelt?


Kas meil pole juba piisavalt?

Kas pole olemasolevaid tööriistu, mis töö ära teevad?

Ja siis on neid väsimatuid otsijaid, kes hüppavad võimaluse poole proovida uusi asju ja komistavad kalliskivide otsa. Neile on õppimine eesmärk omaette ja nad ei vaja nädalavahetustel konsoolipõhise kaardimängu ehitamiseks selles varjatud ja uues keeles palju veenvat..

Pole tähtis, millisesse laagrisse te kuulute, on midagi vaieldamatut: me kõik tahame kulutada aega millelegi, millel on helge tulevik.

Pärandlaagris olevate inimeste jaoks on nende lemmikkeelel juba palju impulsse ja sellel on ka helge tulevik. Neile pean meelde tuletama, et nende praeguseks küps eelistatud arendustööriist oli kunagi kool-aid, mida paljud keeldusid joomast. Ja nii see on täna; uute probleemide lahendamiseks või arenguvalude leevendamiseks on lisatud uusi tehnoloogiaid.

Kui midagi teeb seda piisavalt radikaalselt, on tõenäoline, et see jätkab mõistmise jagamist ja jõuab tippu. Kui see juhtub, ei taha te maha jääda. ��

Ja neile, kellele meeldib läikiva kraamiga joosta, hoiatus: lõbutsemine on programmeerijana hädavajalik, kuid peame olema ettevaatlikud, et mitte oma energiat sihipäraselt raisata.

Muidugi, Brainfuck on uskumatult väänatud, mõistatusele sarnane, lõbus väike keel, kuid tõenäoliselt ei saa sellest tõsisemat lavastust tehes kasu. Tahad midagi, mis on uus, mõistlik ja millel on tugev alus.

Kuidas need keeled valiti?

Keelevalik on hirmutav töö, eriti kui kaalutakse uute keelte kasutamist tulevikus tööhõive ja rahulolu osas. Kõik keele autorid on kindlalt veendunud, et nad on loonud võimalikult täiusliku keele ja lahendanud kõik seal pakutavad probleemid. Kuidas siis lõigata?

Selle postituse jaoks keskendusin mõnele parameetrile, et hoida otsingut mõistlikes piirides.

Väljalaske kuupäev

Eriti väldin keeli, mis on väga-väga uued.

Uus, ma mõtlen keeli, mis on alla 5-6 aasta vanad alates kirjutamisest, ja eriti neid keeli, mis pole veel stabiilsust saavutanud (see on 1.0 väljalase). See välistab kahjuks mõned tõelised kalliskivid Kristall, Kuid ma loodan, et jõuan selle juurde tagasi ja kirjutan selle õnnestumisest mõni päev. ��

Koodilõik Crystalis („Kiire nagu C, libe kui rubiin”)

Minu jaoks on 5–12 aastat magus koht, mis on siis, kui keel on stabiliseerunud ja töötatakse välja veel täpsustusi. Nüüd on sellest reeglist muidugi erandeid ja neid kaalutakse vajaduse korral.

Tugev kogukondlik huvi

See ei ole mõtleja, kuid sageli ignoreeritakse seda, kui oleme millestki uuest vaimustuses. Nüüd on paljude ettevõtete jaoks suurettevõtte toetus edu saavutamiseks piisav pretsedent, kuid see pole alati tõsi.

Jah, Apple’i Objective-C ja nüüd Swift arenesid edukalt, sest need olid ainsad võimalused kõrgelt kontrollitud ökosüsteemis, kuid Facebooki D ja Häkkima (minu arvates on kole inetu juba niigi inetu keelekasutus) ainult eksperimentideks.

Ideaalne kombinatsioon oleks keel, mida toetab suur, stabiilne ettevõte ja plahvatuslikult kasvav populaarsus (näiteks React).

Kuid asja liha on ikkagi kogukond. Kui mõni keel ei tekita buzzit ja harimiseks ja populariseerimiseks pole piisavalt devisid, ei kavatse ta oma GitHubi hauast välja ronida.

Minu jaoks välistab see küpsed, põnevad keeled Maila ja Erlang, kuna nad on püsinud kasvukõveral ühtlasena.

Keskendunud, täpselt määratletud USP

Kolmas asi, mida ma otsin, on keele selge eesmärk. Näiteks ei tööta minu jaoks parem PHP versioon, mis parandab nimetamise probleemid ja kompileerib natiivse PHP-le.

Eelised on lihtsalt liiga väikesed, et õigustada pragusid, mis tekivad, kui kõik proovivad selle poole liikuda. Selle mõõdupuu järgi ei saa ma muud teha, kui sellised katsed tagasi lükata CoffeeScript, ja paljud teised sarnased keeled JavaScripti keelteks.

Ausalt, olen kohustatud viivitamata loobuma ainult süntaktilistest parandustest. Ajalugu on näidanud, et kasulikkus tõstab keelte puhul sõbralikkust, nii et kui kõikidele uutele keeltele keskendumine on meeldivam kogemus, siis kardan, et see ei koosta seda loendit.

Selge, ühtlane süntaks

Jah, ma tean. Ma lihtsalt ütlesin, et süntaksil pole tähtsust. Noh, täpsustuseks ütlesin, et ainult süntaksi täiendused ei oma tähtsust. Kuid sellegipoolest on süntaks üks olulisi programmeerija produktiivsuse ja hooldatavuse tegureid, nii et see on midagi, mida tuleb siin minu arvutustes esile tõsta..

Koos süntaksiga tuleb ka idee järjepidevusest. Funktsioonide nimetamine, moodulite struktureerimine jne on peamised asjad, mida keel ei saa endale lubada, et valesti sattuda. See on aasta 2018 jumala pärast ja teine ​​PHP-taoline keelekujundus oleks meile kõigile häbi. Alustame siis meie viie parima soovitusega ilma täiendava vaevata.

1. Julia

MIT-i inimeste jaoks olid parimateks kompromissideks andmeteaduses kasutatavad keeled. Pythonil puudusid kogu oma selguse ja populaarsuse jaoks loomulikud konstruktsioonid andmeobjektide käsitlemiseks. Kuna Python oli tõlgendatav keel, oli nende jaoks aeglane (mitte raamatukogud, pange tähele, sest need on enamasti kirjutatud C-keeles).

Kuid võib-olla oli suurimaks väljalülituseks kohmakas samaaegsusmudel ja paralleelse arvutusmudeli puudumine, millest viimane on superarvuti põhitegevus.

Tulemusena, Julia sündis.

Julia jõudis stabiilse väljaandeni 29. septembril 2018, vaevalt paar päeva enne selle artikli kirjutamist (rääkige ajastusest!). Ametlik veebisait oma võimaluste kohta on järgmine:

Julia paistab silma numbrilise andmetöötlusega. Selle süntaks sobib matemaatikas suurepäraselt, paljud numbrilised andmetüübid on toetatud ja paralleelsus on saadaval karbist välja. Julia korduvlähetus sobib loomulikult numbri ja massiivilaadsete andmetüüpide määratlemiseks.

Süntaktiliselt võib Juliat vaadelda kui Pythoni ja C kombinatsiooni. Jah, see on tõenäoliselt esimene kord, kui keel on mõlemale omadusele suunatud ja õnnestunud.

Asjade lihtsuse huvides ei kehtesta Julia ranget masinakirja ja on siiski kiire. Siin on mõned võrdlusalused:

Ametlikud Julia mõõdupuud

Nagu näete, on Julia pisut kehvem kui C, kuid puhub Java ja Python veest välja. Ja milliseid silmailu pakub Julia?

Noh, siin on parempoolse kolmnurga hüpotenuusi arvutamise funktsiooni rakendamine:

Lõpuks, kuigi suurem osa Juliast ökosüsteem on tugevalt matemaatilise töö poole kaldu, usun, et sellel on helge üldotstarbeline tulevik.

See on minu teada esimene keel, millel on paralleelse arvutuse esmaklassiline tugi, nii et pole üllatav, kui see veebis ja IoT-domeenides üha populaarsemaks saab.

2. Rooste

Kui olete proovinud uusi Firefoxi brauseri väljaandeid, siis teate, et pärast aastatepikkust tööd näib, et nad võiksid tõenäoliselt Chrome’ilt mõne turuosa ära võtta.

Kui brauser tunneb end kergelt ja käredalt ning renderdab kiiresti, on see kõik tänu spetsiaalselt Mozilla arendatud keelele: Rooste.

Öelda, et Roostil on helge tulevik, on vale; keel on juba tohutu edukus ja kui te pole sellest veel kuulnud, siis sellepärast, et selle rakendusala on spetsialiseerunud ja selle eesmärk on hirmutav: C ++ asendamine! Jah, lõpuks on meil keel, mis mitte ainult pole võimeline seda tegema, vaid juba teeb seda ka.

Inimestele, kes on pettunud C ++ liiga koormatud disaini ja mäluhalduse väljakutsetest, tuleb rooste kui värsket õhku.

Roosteprogramm näeb välja järgmine:

Minu arvates lühike ja elegantne. Rooste järgib funktsionaalse programmeerimise lähenemisviisi, mis muudab teie koodi paremini komposteeritavaks ja puuduvad objektorienteeritud hierarhiad, millega maadleda.

Mis annab Roostile julguse minna edasi pärast C ++? See on uus mälumudel. Vanale uuele () / kustuta () tantsule tuginemise asemel tutvustab Rust omanduse mõtet.

Selle asemel, et mälu otse eraldada ja sellele juurde pääseda, „roostetavad” muutujad „laenavad” üksteiselt, koostaja poolt seatud rangete piirangutega. Üldine kontseptsioon on mõne sõnaga seletamiseks liiga keeruline, nii et tutvuge julgelt küsimusega ametlikud dokumendid et rohkem teada saada.

Mõte on selles, et tulemuseks on 100-protsendiline mälu turvalisus ilma prügikoguja vajaduseta, mis on suur asi.

Rooste on süsteemi programmeerimise maailma tormi alla võtnud. Seda toetatakse juba mõnel platvormil, jõuseadme brauserid ja renderdusmootorid asendavad tootmissüsteemides kiiresti C / C ++ koodi ja seda kasutatakse operatsioonisüsteemide kirjutamiseks.

Muidugi, mitte igaüks ei pea tassi teed uue brauseri või seadme draiveri loomiseks, kuid Rust levib juba teistesse domeenidesse. Meil on Rustis juba mitu täielikult funktsionaalset, naeruväärselt kiiret veebiraamistikku ning üha enam arendatakse rakenduste teeke.

Ausalt, kui olete huvitatud põnevast tulevikust, on Rust ideaalne keel ja nüüd on ideaalne aeg. Rooste on lennuk, mis on startinud, kuid tähtede poole suundudes on veel aega lennukisse pääseda!

Õppige Rooste Dmitri Nesterukilt.

3. Eliksiir

Arendajate õnnele keskenduvate keelte hulgas on esimene koht Ruby jaoks püsivalt reserveeritud. See on keel, mida loetakse nagu luulet ja millel on piisavalt otseteid vaimse hõõrdumise vähendamiseks suurusjärgu võrra.

Pole siis ime, et Rails-raamistik domineerib tõsiste arendajate ja idufirmade täieliku virna arendamisel endiselt. Kuid mitte kõik polnud Railsiga rahul, eriti selle üks põhiarendajaid – José Valim. Arvan, et looja ise selgitab selle keele geneesi kõige paremini inglise keeles intervjuu:

See on pikk lugu, kuid püüan selle lühikeseks ja armsaks muuta. 2010. aastal tegelesin mitmetuumaliste süsteemidega töötades Rails’i jõudluse parandamisega, kuna meie masinad ja tootmissüsteemid tarnivad üha enam südamikke. Kogu kogemus oli aga üsna pettumust valmistav, kuna Ruby ei paku õiget vahendit samaaegsusprobleemide lahendamiseks. Siis hakkasin uurima teisi tehnoloogiaid ja armusin lõpuks Erlangi virtuaalmasinasse.

Hakkasin Erlangi üha enam kasutama ja kogemuste põhjal märkasin, et mul puuduvad mõned konstruktsioonid, mis on saadaval paljudes teistes keeltes, sealhulgas funktsionaalsed. See oli siis, kui otsustasin luua Elixiri, kui katset tuua Erlangi VM-i peale erinevad konstruktsioonid ja suurepärased tööriistad.

Ja vaata, Eliksiir sündis!

Nii nagu Scala täiustab Java keelt, kuid sihib sama virtuaalset masinat (JVM), kasutab ka Elixir ära aastakümnete vanuse, lahingutega tõestatud Erlangi virtuaalmasina.

Nüüd jääb Erlangi üle peetav arutelu selle artikli reguleerimisalast välja, kuid minimaalselt peaksite teadma, et see on telekommunikatsioonitööstuse kõige paremini hoitud saladus: kui meie telefonivõrgud on palju usaldusväärsemad kui meie veebipõhised süsteemid, on see kõik tänu Erlang.

Veel lihtsamalt öeldes tähendab see seda. Kui loote reaalajas süsteemi, näiteks vestlust, on Elixir palju, palju vähem näljane ja stabiilne RAM-i korral kui Ruby (või PHP, Python ja Java).

Masin, mis töötab Ruby abil ja mille maksimum on näiteks 10 000 samaaegset ühendust, saab Elixiri kasutamisel hõlpsalt hakkama 200 000-ga ja sellel on siiski piisavalt RAM-i 2D-mängude käitamiseks!

Elixiri koodilõik

Süntaktiliselt kopeerib Elixir häbitult Rubiini ja tema domineeriv veebiraamistik Phoenix kopeerib häbematult Railsit. Ma ütleksin, et see on ka hea asi, sest koos Laraveli, Grailsi, Masoniidi jt-ga jõuame punkti, kus kõigil keeltel on Rails-laadne raamistik, mis hõlbustab üleminekut. Mõni võib karjuda „originaalsuse puudumise” üle, kuid kõige vähem ma ei kurda.

Lõpuks, Eliksiir on üks neist tehnoloogiatest, mis on värskendav, meeldiv ja neetud praktiline. Mitmed Ruby (ja isegi mitte Ruby) poed kolivad Elixirisse ja suured ettevõtted nagu Pinterest kasutavad seda tootmises äärmiselt rahuldavate tulemustega.

Paljud inimesed arvavad, et Node.js oli hämmastav samaaegne katse ja see asendatakse peagi Elixiriga. Pean ütlema, et olen nendega nõus. ��

4. Kotlin

2017. aastal käivitas I / O Google pahaaimamatu rahvahulga pommi. Ettevõte teatas ametlikult Kotlin kui Androidi arendamise peamist keelt, edastades lööklaineid kogu tööstuse kaudu.

Nüüd, kui Google on aktiivselt otsinud Java asendada, ei ole üllatav pärast Oracle’i kohtuasja hammustamist; Kotlini omaksvõtt oli siiski mõnevõrra ootamatu ja on veel hea võimalus, et Google ilmub oma virtuaalse masinaga varsti välja. Praegu aga naudib Kotlin hüppeliselt.

Kotlini töötas välja JetBrains, ettevõte, kes on tuntud oma meeletult heade koodiredaktorite komplekti poolest. Üks neist, IntelliJ IDEA, moodustab Android Stuudio aluspõhja. Kotlini disaini eesmärgid on ohutus, lakoonilisus ja 100% -line koostalitlusvõime Java-ga.

Kotlini kompilaator teeb rohkem kui midagi muud, et kaotada kõik Java-maailmas nii levinud null-osuti erandid. Samuti võtab see üsna kõvasti alla vanasõna Java kõnekuse, mis on paljudele kergenduseks.

Siin on suurepärane võrdlus Java ja Kotlini vahel:

Kujutise krediit: hype.codes

Kotlini kood on märkimisväärselt lühem ja tunduvalt vähem kognitiivset ülekoormust, et seda läbi künda.

Kuid võtkem üks asi selgeks: Kotlin ei asenda Java tõenäoliselt eriti tõenäoliselt, ehkki see on kiiresti muutumas kiireks lemmikuks. Usun, et kümne aasta pärast ei vaata väikesed ja keskmise suurusega meeskonnad kaugemale Kotlinit, samal ajal kui suured rühmad jätkavad Java kasutamist ainult pärandlikel põhjustel.

Sellegipoolest on Kotlinil äärmiselt helge tulevik, kuna ta teeb kõike seda, mida Java teeb, saab Java-koodiga sulanduda ilma, et keegi seda märkaks, ja see on palju meeldivam!

5. TypeScript

Jumal teab, et pidin end selle koha pärast vaos hoidma! Kõik minu sees karjus: “Elm! Elm! ”, Kuid hoolimata sellest, kui revolutsioonilised tema ideed on või kui jumalik süntaks on, tuleb Elmile siiski pakkuda esiotstarbelise töö peavoolu alternatiivi. �� Liikugem igatahes edasi peavoolu: TypeScripti.

JavaScript on nagu metsamarjad: kole ja ebameeldiv, kuid peate seda kõht täis laskma, kui soovite eluetapi džunglist üle elada. Selle asendamiseks tehti palju katseid (ja tõenäoliselt õnnestub uus WebAssembly standard õnnestub), kuid see, mis tõmbas kõigi tähelepanu, oli Microsofti välja töötatud supersetts..

Kui olete kuulnud, on suurepäraseid võimalusi TypeScript: Nurgeline oli esimene raamistik, mis võttis selle kasutusele alates versioonist 2 ja inimesed võtsid selle kiiresti meelde. Seda seetõttu, et TypeScript lisab maailma kõige kuulsamale programmeerimiskeelele nii hädavajalikke kui ka fantastilisi suurriike.

Jah, lõpuks on võimalik kirjutada JavaScripti kood ilma, et peaksite sündima kannatusi ja neetud!

Siin on lisaseadmed, mida TypeScript tabelisse toob:

✓ Tugev kirjutamine: Lõpuks, string ei ole number ja number pole objekt, mis pole tühi massiiv!

✓ Tüüpkontroll kompileerimise ajal: Kui teie kood kompileerub õigesti, on enam-vähem tagatud, et see pole JavaScripti käitustüügastest vaba.

✓ Klassid ja moodulid: Jah, klassid on ES6-s standardsed, kuid lisaks korrektsele moodulisüsteemile on need kaasatud ka TypeScripti.

✓ Tüübi järeldus: Keeruliste tüüpide korral saab tüübi kompilaator hõlpsalt välja mõelda, hoides sellega pisut peavalu.

✓ Async / oota: Asünk / ootamise märksõnad ja mustrid on põhilised, nii et ärge enam jagage lubaduste ja tagasihelistamisega!

Nimeruumid, geneerilised ravimid, nimetused. . . Võiksin edasi minna, kuid peaks piisama, kui öelda, et TypeScript teisendab ühe halvima arengukogemuse üheks parimaks.

TypeScripti koodilõik

TypeScripti mõju ei saa eitada. See tõukas sarnased katsed, nagu Google’i Dart, väljast välja (ehkki see üritab tagasitulekut mobiilse arendusraamistiku Flutteri kaudu) ja avas JS-i arendajate silmad tugevamate tüüpide eelistele..

Selle tulemusel on sellistel olulistel raamatukogudel nagu React, D3, Vue (isegi jQuery!) Nüüd TypeScripti versioon ja maailma parimates tarkvarapoodides kirjutatakse kogu JavaScripti kood TypeScripti koodina. TypeScripti päised on nüüd saadaval ka Node.js jaoks (kui ausõlm saab parandada oma samaaegsuse lugu ja paika panna oma üürikese mäluhalduse, kestab see igavesti).

Võib-olla olete üllatunud, kui teate pärast Node.js loojat avalikult kahetseb tema looming, töötab a uus käitusaeg (praegu pole ühtegi ametlikku veebisaiti; ainult GitHubi repot), mille põhikeeleks on TypeScript.

Parim uudis? TypeScript on väike keel, mida õppida millest tulevikus on märkimisväärset kasu. Kui olete JavaScripti arendaja, siis korjate kahe päeva jooksul TypeScripti piisavalt, et kogu olemasolev kood üle pordida!

Järeldus ja kohustustest loobumine

Konkreetsed keeled on saavutanud sama palju populaarsust kui need, mis selles artiklis, kuid neid pole mitmesugustel põhjustel loendisse lisatud. Siin on lühike ülevaade:

  • Golang: Juba välja kujunenud kui üldine, kui mitte eriti populaarne keel. Usun, et praegusel hetkel on Golangil mitu konkurenti, kes hoiavad oma turuosa madalal.
  • R: R on andmeteadlaste seas juba kuum ja see ei meelita tõenäoliselt rakenduste arendajaid palju. Pealegi ei tohi me unustada, et masinõppega raamatukogud on aeglaselt jõudmas kõigisse suurematesse keeltesse (jumala pärast, isegi PHP-l on need nüüd olemas!), Nii et peate vaid mõnda aega ootama. ��
  • Swift: Appleil on nende ökosüsteemi raudne haare ja Swift on seal ainus saadaolev keel. Pole kahtlust, et varasem eesmärk C oli raev, nagu nüüd Swift. Minu arvates on see petmine ja seetõttu keeldun selle siia lisamast. ��

Tulevik on alati ebakindel ja üks võimalus oma karjääris edasi liikuda on kinni pidada sellest, mis juba töötab, ja keelduda „segadusest”. Kui teete seda, on Java, PHP, Python, Ruby jne kõik suurepärased keeled, millest kinni pidada. Mõnele meist ei piisa normist. Nad tahavad minna välja ja uurida ning tuleviku osas suuri panuseid teha. Kui jääte viimasesse leeri, peaks üks neist viiest keelest olema teie ülesannete loendi ülaosas.

Lõpuks, kui proovite keelt hinnata, ärge laske kaasneval pingutusel teid üle koormata, sest see pole nii palju. Kui teate juba mõnda programmeerimiskeelt, saate neist õppida maksimaalselt kahe kuu jooksul, kulutades 5–6 tundi nädalas. Arvestades, et tulevikus saadav õnn ja rahaline tulu on mitu korda suurem.

Kas ma igatsesin siin mingit kriitilist keelt? Või on mul siin loetletud keeltes midagi viga? Kui jah, siis palun jätke kommentaar ja aidake mul seda paremaks muuta. ��

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map