Programiranje

9 vrhunskih programskih jezikov, ki se jih je vredno naučiti zdaj

Veliki jeziki so priljubljeni z razlogom: ponujajo ogromno temelje odprtokodne kode, knjižnic in okvirov, ki olajšajo zaključek dela. To je rezultat dolgoletnih gibanj, v katerih so vedno znova izbrani za nove projekte, strokovno znanje o njihovih odtenkih pa se splača in obiluje.

Včasih ogromni viri priljubljenih, običajnih programskih jezikov niso dovolj za rešitev vaše težave. Včasih morate pogledati dlje od očitnega, da poiščete pravi jezik, kjer je prava struktura pomembna, hkrati pa ponuja dodatno funkcijo, ki pomaga vaši kodi teči bistveno hitreje brez neskončnega spreminjanja in optimiziranja. Ta jezik ustvarja bistveno bolj stabilno in natančno kodo, ker vam preprečuje programiranje površne ali napačne kode.

Svet je napolnjen s tisoči pametnih jezikov, ki niso C #, Java ali JavaScript. Nekatere cenijo le redki, mnogi pa imajo cvetoče skupnosti, ki jih pri reševanju določenih težav povezuje skupna ljubezen do jezika. Morda ni deset milijonov programerjev, ki bi poznali skladnjo, včasih pa je koristno narediti stvari nekoliko drugače, saj lahko eksperimentiranje s katerim koli novim jezikom prinese pomembne dividende prihodnjim projektom.

Naslednjih devet jezikov bi moralo biti na radarju vsakega programerja. Morda niso najboljši za vsako delo - mnogi so namenjeni specializiranim nalogam. Toda vsi ponujajo prednosti, ki jih je vredno raziskati in v njih vlagati. Morda se bo dan, ko se bo eden od teh jezikov izkazal kot točno tisto, kar potrebuje vaš projekt - ali šef.

Kotkin: Java ponovno preučena

Java je odličen jezik, ki podpira nekatere najbolj priljubljene platforme doslej, vendar se nekoliko stara in bolečine postajajo preveč znane. Kotlin je možganski otrok ekipe JetBrains v Rusiji, ki nam je prinesel čudovite IDE-je, kot je IntelliJ. Kotlin naj bi hitro sestavil, soobstajal z Javo in odpravil nekaj najhujših težav, ki zavzamejo čas razvijalcev Jave.

Najboljši del je lahko pozornost, ki je namenjena ničelnim vrednostim, navadam vseh objektno usmerjenih programerjev. Če menite, da polovica vaše kode preverja nične vrednosti, so razvijalci Kotlin slišali vaše krike. Kotlin naredi velik korak k reševanju te težave, če ne enkrat za vselej, pa vsaj večino časa tako, da razvijalce prisili, da izrecno prikličejo spremenljivke, ki bi lahko bile nične. Nato samodejno preveri nekaj najhujših napak, ki jih lahko naredimo z njimi.

Kotlin je zasnovan za delo z obstoječo kodo Java, zato je dobra izbira za ekipe, ki želijo postopoma izboljšati osnovo kode. Prav tako se bo zbral v JavaScript ali izvorno kodo, če boste to slučajno potrebovali. Google je prepoznal vrednost jezika in zdaj so razvijalci Androida, ki želijo uporabljati Kotlin, dobro podprti.

Ta previdna strategija se je izkazala za priljubljeno, ker ekipi omogoča, da jezik sprejema počasi. Skupina Kotlin je pridobila veliko oboževalcev v velikih razvojnih skupinah pri večjih bankah, svetovalnih skupinah in aplikacijah.

Erlang: Funkcionalno programiranje za sisteme v realnem času

Erlang je začel globoko v sablasnem kraljestvu telefonskih stikal pri Ericssonu, švedskem telekomu. Ko so se Ericssonovi programerji začeli hvaliti s svojo zmogljivostjo "devet 9", ko so z Erlangom dostavili 99,9999999 odstotkov podatkov, so razvijalci zunaj Ericssona začeli to opazovati.

Erlangova skrivnost je funkcionalna paradigma. Večina kode je prisiljena delovati v svojem malem svetu, kjer s stranskimi učinki ne more pokvariti preostalega sistema. Funkcije vse svoje delo opravljajo interno in se izvajajo v majhnih "procesih", ki delujejo kot peskovniki in se med seboj pogovarjajo le prek poštnih sporočil. Ne morete preprosto prijeti kazalca in hitro spremeniti stanje kjer koli v kupu. Morate ostati znotraj hierarhije klicev. Morda bo treba malo več razmisliti, vendar se napake redkeje širijo.

Model tudi poenostavi, da lahko med izvajanjem kode določite, kaj se lahko izvaja hkrati. S sočasnostjo, ki jo je tako enostavno zaznati, lahko načrtovalnik izvajanja izkoristi zelo nizke režijske stroške pri nastavitvi in ​​kopiranju postopka. Ljubitelji Erlanga se radi pohvalijo s tem, da na spletnem strežniku hkrati izvajajo 20 milijonov "procesov".

Če gradite sistem v realnem času, v katerem ni prostora za izpuščene podatke, na primer sistem zaračunavanja za stikalo za mobilni telefon, preverite Erlang.

Pojdi: preprosto in dinamično

Google ni bil prva organizacija, ki je raziskovala zbirko jezikov, le ugotovili so, da so neurejeni, zapleteni in pogosto počasni. Leta 2009 je podjetje izdalo svojo rešitev: statično natipkan jezik, ki je videti kot C, vendar vključuje inteligenco v ozadju, da programerjem ne bo treba določiti vrst in žonglirati s klici malloc. S programom Go imajo programerji lahkotnost in strukturo prevedenega C, skupaj z enostavnostjo uporabe dinamičnega skriptnega jezika.

Medtem ko sta Sun in Apple sledila podobni poti pri ustvarjanju Jave oziroma Swifta, je Google z Go sprejel bistveno drugačno odločitev: ustvarjalci jezika so želeli, da je Go dovolj preprost, da ga ima v glavi enega programerja. Rob Pike, eden od ustvarjalcev podjetja Go, je za Ars Technico slavno povedal, da "lahko včasih na dolgi rok dobite več, če stvari odnesete." Tako je malo živahnih dodatkov, kot so generiki, dedovanje tipov ali trditve, le čisti, preprosti bloki kode if-then-else, ki manipulirajo z nizi, nizi in zgoščenkami.

Jezik naj bi bil dobro uveljavljen v Googlovem obsežnem imperiju in je vse bolj sprejet tudi drugje, kjer lahko ljubitelje dinamičnega jezika Pythona in Rubyja nagovorimo, da sprejmejo nekaj strogosti, ki izhaja iz sestavljenega jezika.

Če ste zagon, ki poskuša pritegniti pogled Googla in morate zgraditi nekaj poslovne logike na strani strežnika, je Go odličen kraj za začetek.

OCaml: Žonglir s kompleksno hierarhijo podatkov

Nekateri programerji ne želijo določiti vrst svojih spremenljivk in zanje smo zgradili dinamične jezike. Drugi uživajo gotovost pri določanju, ali ima spremenljivka celo število, niz ali morda predmet. Zanje mnogi prevedeni jeziki ponujajo vso potrebno podporo.

Potem so tu tisti, ki sanjajo o izpopolnjeni hierarhiji tipov in celo govorijo o ustvarjanju "algebrov" tipov. Zamišljajo si sezname in tabele heterogenih vrst, ki so združeni, da izrazijo zapletene, večplastne podatkovne ekstravagance. Govorijo o polimorfizmu, primitivih, ki se ujemajo z vzorci, in kapsulaciji podatkov. To je šele začetek zapletenega, visoko strukturiranega sveta vrst, metatipov in metametatipov, ki si jih želijo.

Zanje obstaja OCaml, ki si skupnost programskih jezikov resno prizadeva za popularizacijo številnih prej omenjenih idej. Na voljo je podpora objektov, samodejno upravljanje pomnilnika in prenosljivost naprav. V Applovi trgovini App Store so na voljo celo aplikacije OCaml.

Idealen projekt za OCaml bi lahko bila izgradnja simbolične matematične spletne strani za poučevanje algebre.

TypeScript: JavaScript, ki vam bo všeč

Vsi lahko uporabljajo JavaScript, vendar nihče ne mara programiranja v njem. Tako se zdi, ker ima vsak danes svoj najljubši predprocesor ali superprocesor, ki razširja in izboljšuje jezik. TypeScript je trenutno najljubši, saj vsem vrstam doda spremenljivke, zaradi česar se Java programerji počutijo nekoliko varnejše.

Največji razlog, da se zdaj več razvijalcev zanima za TypeScript, je Angular, odličen okvir za izdelavo spletnih aplikacij, ki je slučajno napisan v TypeScriptu. Zanimiva guba je, da za uporabo Angularja ni treba uporabljati Typecripta. Uživate lahko v kakovosti njene kode in jo združite s svojim starejšim JavaScriptom. Ni vam treba izbirati.

Razlog je v tem, da je TypeScript nadnabor JavaScript. Razvijalci so tipkanje dodali na način, ki se dobro počuti s staromodnim JavaScriptom, kar je zelo koristno, če so v pisarni ljudje, ki jim ideja o tipih ni všeč ali imajo dogmatska mnenja o tem, kako tipi krčijo njihov slog. Vrste so dejansko neobvezne in ljudje, ki si vložijo čas, da določijo vrste, lahko izkoristijo koristi.

Močno tipkanje ima številne prednosti, kot je zgodnji ulov nekaterih napak in izboljšanje splošne kakovosti orodij. Dodajanje vrst vam omogoča, da vam pametni urejevalniki pomagajo pri pametnih predlogih pri izdelavi mojstrovine. Dokončanje kode je veliko hitrejše in natančnejše, če rutine dokončanja kode vedo nekaj o funkcijah in argumentih. To pomeni manj premikanja prstov na tipkovnici. Ljubitelji TypeScript-a so prepričani, da bodo takšne prednosti zvabile vsakogar, ki je na udaru, o moči močno odločnega jezika.

Rust: varen in uporaben sistemski jezik

Front-end programerji niso edini, ki se zabavajo. Rust je kot prenovljena različica C-ja z obilico polimorfnih tipk, vmešanih pod pokrov motorja. Zadnji dve leti zapored je od volivcev Stack Overflowa dobil "najbolj priljubljeni programski jezik", kar se odraža tudi v indeksu priljubljenosti jezika Stack Overflow. Pred nekaj leti se je Rust na seznamu gibal okoli 50, letos pa je skočil na 18.

Zakaj? Morda zato, ker Rust s C-om odstrani marsikatero grozno težavo, ne da bi preveč držal roke ali vztrajal, da razvijalci nadenejo virtualne suknjiče. Sistemski programerji se radi ne zanašajo na odvoz smeti, kar je odlična storitev, dokler se ta ne začne ob točno neprimernem času. Zaradi rjavenja se počutite, kot da ste sami odgovorni za to, kaj se zgodi s številko v spominu, in ne čakate, da kakšna storitev opravi delo namesto vas.

Sistem tipkanja je splošen in prilagodljiv, ponuja pa polimorfizem, ki ga Haskell navdihuje, vsaj abstraktno. Ko je izveden, pa prevajalnik prilagodi strukturo za vsako vrsto, kar razvijalci radi imenujejo »monomorfizem«. Jezik dodaja še nekaj drugih omejitev, da razvijalcem prepreči, da bi šli s tračnic. Vsaka vrednost je na primer "v lasti" - kar v resnici pomeni, da jo je mogoče porabiti le enkrat, kar preprečuje zapleteno mrežo referenc iz drugih delov programa, ki delujejo, kot da imajo popoln nadzor nad vrednostjo.

Vse te funkcije in še nekaj - na primer navoj brez pogojev - pomeni, da lahko novi programer začne pisati sistemsko kodo, ne da bi naletel na nekatere najslabše anti-vzorce, ki so že dolgo ovirali programerje C. Dobite vso trdo in visoko zmogljivo zabavo pisanja C z prevajalnikom, ki bo ujel številne najhujše napake, še preden se koda zažene.

Scala: Funkcionalno programiranje na JVM

Če za svoj projekt potrebujete preprostost kode objektno usmerjenih hierarhij, vendar imate radi funkcionalno paradigmo, imate na voljo več možnosti. Če je Java vaše kraljestvo, je Scala izbira za vas.

Scala deluje na JVM in prinaša vse čiste oblikovne omejitve funkcionalnega programiranja v svet Jave z dobavo kode, ki ustreza specifikacijam razreda Java in povezuje z drugimi datotekami JAR. Če imajo te druge datoteke JAR neželene učinke in druge nujne grde preglavice, naj bo tako. Vaša koda bo čista.

Mehanizem tipa je močno statičen in prevajalnik opravi vse delo, da sklepa na tipe. Med primitivnimi tipi in vrstami objektov ni nobene razlike, ker Scala želi, da vse izhaja iz enega ur-objektnega klica Any. Sintaksa je veliko preprostejša in jasnejša kot Java; Ljudje Scale temu pravijo "nizka slovesnost." Imena odstavkov dolgih spremenljivk CamelCase lahko pustite nazaj v Java Land.

Scala ponuja številne funkcije, ki se pričakujejo od funkcionalnih jezikov, kot so leno vrednotenje, rekurzija repa in nespremenljive spremenljivke, vendar so bile spremenjene tako, da delujejo z JVM. Osnovni metatipi ali spremenljivke zbirke, kot so povezani seznami ali hash tabele, so lahko spremenljivi ali nespremenljivi. Rekurzija repa deluje s preprostejšimi primeri, ne pa tudi z dodelanimi, medsebojno rekurzivnimi primeri. Ideje so vse, tudi če JVM morda omeji izvajanje. Potem pa prihaja tudi z vso razširjenostjo platforme Java in globoko zbirko obstoječe kode Java, ki jo je napisala odprtokodna skupnost. To ni slab kompromis za številne praktične težave.

Če morate žonglirati s podatki v tisočprocesorski gruči in imeti kup starejše kode Java, je Scala odlična rešitev.

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