Programavimas

9 pažangiausios programavimo kalbos, kurias verta išmokti dabar

Didelės kalbos yra populiarios dėl priežasties: jos siūlo didžiulį atvirojo kodo, bibliotekų ir sistemų pagrindą, kuris palengvina darbą. Tai yra daugelio metų pagreičio rezultatas, kai jie ne kartą pasirenkami naujiems projektams, o jų niuansų patirtis auga verta ir gausu.

Kartais tam, kad išspręstumėte jūsų problemą, nepakanka didžiulių populiarių, įprastų programavimo kalbų išteklių. Kartais, norėdami rasti reikiamą kalbą, turite pažvelgti už akivaizdžių ribų, o tinkama struktūra daro įtaką, tuo pačiu pasiūlant tą papildomą funkciją, kuri padėtų jūsų kodui veikti žymiai greičiau, nesibaigiant be pakeitimų ir optimizavimo. Ši kalba sukuria žymiai stabilesnį ir tikslesnį kodą, nes neleidžia programuoti aplaidaus ar neteisingo kodo.

Pasaulis yra užpildytas tūkstančiais protingų kalbų, kurios nėra C #, „Java“ ar „JavaScript“. Kai kuriuos vertina tik nedaugelis, tačiau daugelis turi klestinčias bendruomenes, kurias sieja bendra meilė kalbos įstaigai sprendžiant tam tikras problemas. Programuotojų, žinančių sintaksę, gali būti ne dešimtys milijonų, tačiau kartais vertinga elgtis šiek tiek kitaip, nes eksperimentuodami su bet kuria nauja kalba gali būti mokami dideli dividendai už būsimus projektus.

Šios devynios kalbos turėtų būti kiekvieno programuotojo radare. Jie gali būti ne patys geriausi kiekvienam darbui - daugelis jų yra skirti specializuotoms užduotims. Bet visi jie siūlo privalumų, kuriuos verta ištirti ir į kuriuos reikia investuoti. Gali būti diena, kai viena iš šių kalbų pasirodys būtent tai, ko reikia jūsų projektui ar bosui.

Kotkinas: Java persvarstyta

„Java“ yra puiki kalba, palaikanti kai kurias iš visų laikų populiariausias platformas, tačiau ji šiek tiek sensta, o skausmo taškai tampa šiek tiek per daug žinomi. Kotlinas yra „JetBrains“ komandos Rusijoje smegenys, atnešę mums nuostabių IDE, tokių kaip „IntelliJ“. „Kotlin“ yra skirtas greitai kompiliuoti, egzistuoti kartu su „Java“ ir išspręsti kai kuriuos blogiausius klausimus, užimančius „Java“ kūrėjų laiką.

Geriausia dalis gali būti tai, kad dėmesys skiriamas niekinėms vertėms, visų objektyvių programuotojų bane. Jei manote, kad pusė jūsų kodo tikrina, ar nėra nulinių verčių, „Kotlin“ kūrėjai išgirdo jūsų klyksmus. Kotlinas žengia didelį žingsnį link šios problemos sprendimo, jei ne kartą ir visiems laikams, tai bent jau dažniausiai priverčdamas kūrėjus aiškiai kviesti kintamuosius, kurie gali būti niekiniai. Tada jis automatiškai patikrina, ar nėra blogiausių klaidų, kurias galime su jais padaryti.

„Kotlin“ sukurtas dirbti su esamu „Java“ kodu, todėl tai yra geras pasirinkimas komandoms, kurios nori palaipsniui tobulinti kodų bazę. Jis taip pat sudarys „JavaScript“ ar savąjį kodą, jei jums to prireiks. „Google“ pripažino kalbos vertę, o dabar „Android“ kūrėjai, norintys naudoti „Kotlin“, yra gerai palaikomi.

Ši atsargi strategija pasirodė esanti populiari, nes tai leidžia komandai lėtai perimti kalbą. „Kotlin“ grupė sulaukė daugybės gerbėjų didelėse didžiųjų bankų, konsultavimo grupių ir programų firmų kūrėjų komandose.

„Erlang“: funkcinis programavimas realaus laiko sistemoms

Erlangas prasidėjo giliai baisiose telefonų komutatorių sferose Švedijos „Ericsson“ telefone. Kai „Ericsson“ programuotojai pradėjo girtis „devynių 9-ųjų“ našumu, pateikdami 99,9999999 procentus duomenų su „Erlang“, kūrėjai už „Ericsson“ pradėjo atkreipti dėmesį.

Erlango paslaptis yra funkcinė paradigma. Dauguma kodo yra priversti veikti savo mažame pasaulyje, kur jis negali sugadinti likusios sistemos per šalutinius efektus. Funkcijos atlieka visą savo darbą viduje, veikia mažais „procesais“, kurie veikia kaip smėlio dėžės ir tarpusavyje kalba tik per pašto žinutes. Negalite tik paimti rodyklės ir greitai pakeisti būseną bet kurioje rietuvės vietoje. Jūs turite likti skambučių hierarchijoje. Tai gali pareikalauti šiek tiek daugiau apmąstymų, bet rečiau klaidos plinta.

Modelis taip pat palengvina vykdymo laiko kodo nustatymą, kas gali veikti tuo pačiu metu. Kai taip lengva nustatyti lygiagretumą, vykdymo laiko planuoklis gali pasinaudoti labai mažomis pridėtinėmis sąnaudomis nustatydamas ir nutraukdamas procesą. „Erlang“ gerbėjai mėgsta pasigirti tuo, kad žiniatinklio serveryje vienu metu vykdo 20 milijonų „procesų“.

Jei kuriate realaus laiko sistemą, kurioje nėra vietos numestiems duomenims, pvz., Atsiskaitymo už mobiliojo telefono jungiklį sistemą, patikrinkite „Erlang“.

Eiti: paprasta ir dinamiška

„Google“ nebuvo pirmoji organizacija, apklaususi kalbų kolekciją, tik nustatydama, kad jos netvarkingos, sudėtingos ir dažnai lėtos. 2009 m. Bendrovė išleido savo sprendimą: statiškai įvestą kalbą, kuri atrodo kaip C, tačiau apima foninį intelektą, kad programuotojai neišgelbėtų nurodinėti tipų ir žongliruoti malloc skambučiais. Naudodamiesi „Go“, programuotojai gali turėti kompiliuoto C susiskirstymą ir struktūrą, taip pat lengvai naudoti dinaminę scenarijų kalbą.

Nors „Sun“ ir „Apple“ kurdami „Java“ ir „Swift“ ėjo panašiu keliu, „Google“ su „Go“ priėmė vieną labai skirtingą sprendimą: kalbos kūrėjai norėjo, kad „Go“ būtų „pakankamai paprasta, kad būtų galima laikyti vienoje programuotojo galvoje“. Robas Pike'as, vienas iš „Go“ kūrėjų, garsiai pasakojo „Ars Technica“, kad „kartais ilgainiui gali gauti daugiau, išsinešdamas daiktus“. Taigi yra nedaug pagyvintų priedų, tokių kaip bendrieji, tipų paveldėjimas ar tvirtinimai, tik švarūs, paprasti „if-then-else“ kodai, valdantys eilutes, masyvus ir maišos lenteles.

Pranešama, kad kalba yra gerai įsitvirtinusi didžiulėje „Google“ imperijoje ir vis labiau sutinkama kitose vietose, kur dinamiškos kalbos mėgėjai „Python“ ir „Ruby“ gali būti priversti priimti tam tikrą griežtumą, kurį teikia kompiliuojama kalba.

Jei esate startuolis, bandantis patraukti „Google“ dėmesį ir jums reikia sukurti tam tikrą serverio verslo logiką, „Go“ yra puiki vieta pradėti.

„OCaml“: sudėtingas duomenų hierarchijos žonglierius

Kai kurie programuotojai nenori nurodyti jų kintamųjų tipų, ir jiems mes sukūrėme dinamines kalbas. Kiti mėgaujasi tikrumu nurodydami, ar kintamasis turi sveikąjį skaičių, eilutę, o gal objektą. Jiems daugelis sudarytų kalbų siūlo visą norimą palaikymą.

Tada yra tų, kurie svajoja apie įmantrias tipų hierarchijas ir netgi kalba apie tipų „algebrų“ kūrimą. Jie įsivaizduoja heterogeninių tipų sąrašus ir lenteles, kurie sujungiami sudėtingoms, daugiapakopėms duomenų ekstravagancijoms išreikšti. Jie kalba apie polimorfizmą, modelius atitinkančius primityvus ir duomenų kaupimą. Tai tik sudėtingo, labai struktūrizuoto jų trokštamų tipų, metatipų ir metametipų pasaulio pradžia.

Jiems yra „OCaml“ - rimta programavimo kalbos bendruomenės pastanga populiarinti daugelį minėtų idėjų. Yra objektų palaikymas, automatinis atminties valdymas ir įrenginio perkėlimas. „Apple App Store“ yra net „OCaml“ programų.

Idealus OCaml projektas gali būti sukurti simbolinę matematikos svetainę, kurioje būtų mokoma algebros.

„TypeScript“: jums patiksianti „JavaScript“

Visi gali naudoti „JavaScript“, bet atrodo, kad niekam nepatinka jame programuoti. Arba taip atrodytų, nes kiekvienas šiandien turi savo mėgstamą išankstinį ar superprocesorių, kuris pratęsia ir tobulina kalbą. „TypeScript“ yra dabartinis mėgstamiausias, nes prie visų kintamųjų pridedami tipai, todėl „Java“ programuotojai jaučiasi šiek tiek saugesni.

Didžiausia priežastis, dėl kurios „TypeScript“ dabar domisi daugiau kūrėjų, yra „Angular“ - tai puiki programa kurti žiniatinklio programas, kurios tiesiog parašomos „TypeScript“. Įdomi raukšlė yra ta, kad norint naudoti „Angular“ nereikia naudoti „TypeScript“. Galite mėgautis jo kodo kokybe ir sujungti jį su savo senąja „JavaScript“. Jums nereikia rinktis.

Priežastis ta, kad „TypeScript“ yra „JavaScript“ viršutinis rinkinys. Kūrėjai pridėjo tekstą taip, kad jis puikiai atitiktų senamadišką „JavaScript“, o tai yra labai naudinga, jei biure yra žmonių, kuriems nepatinka tipų idėja arba kurie laikosi dogmatiškos nuomonės apie tai, kaip tipai sutraukia jų stilių. Tipai yra iš tikrųjų neprivalomi, o žmonės, skyrę laiko nurodyti tipus, gali gauti naudos.

Griežtas spausdinimas turi daug privalumų, pavyzdžiui, ankstyvas klaidų gavimas ir bendros įrankių kokybės gerinimas. Pridėdami tipus, išmanieji redaktoriai gali padėti jums pateikti protingų pasiūlymų, kai kuriate savo šedevrą. Kodo užbaigimas yra daug greitesnis ir tikslesnis, kai kodo užbaigimo kasdienybė žino ką nors apie funkcijas ir argumentus. Tai reiškia, kad klaviatūra pirštus mažiau judės. „TypeScript“ mėgėjai yra tikri, kad tokie pranašumai vilioja kiekvieną, esantį ant tvoros, apie tvirtai nustatytos kalbos galią.

Rūdys: saugi ir tinkama sistemų kalba

Ne tik priekiniai programuotojai linksminasi. Rūdys yra tarsi atnaujinta C versija su daugybe polimorfinių tipų, sumaišytų po gaubtu. Per pastaruosius dvejus metus iš eilės „Stack Overflow“ rinkėjai laimėjo „labiausiai mėgstamą programavimo kalbą“ - tai garbė, kurią atspindi ir „Stack Overflow“ kalbos populiarumo rodiklis. Vos prieš kelerius metus Rustas sąraše svyravo apie 50, o šiemet jis šoktelėjo iki 18.

Kodėl? Galbūt dėl ​​to, kad „Rust“ išvalo daugelį „C“ problemų, nedarydamas per daug laiko rankose ar reikalaudamas, kad kūrėjai neduotų virtualių tiesių skrybėlių. Sistemos programuotojai mėgsta nepasitikėti šiukšlių surinkimu - puikia paslauga, kol ji neprasideda pačiu netinkamiausiu laiku. Rūdys verčia jus jaustis taip, lyg būtumėte atsakingi už tai, kas nutinka atmintyje esančiam skaičiui, ir nelaukiate, kol kokia nors tarnyba atliks darbą už jus.

Rašymo sistema yra bendra ir lanksti, siūlanti tokį polimorfizmą, kurį bent jau abstrakčiai įkvėpė Haskellas. Kai jis bus įgyvendintas, kompiliatorius pritaikys kiekvieno tipo struktūrą, kurią kūrėjai mėgsta vadinti „monomorfizmu“. Kalba prideda keletą kitų apribojimų, kad kūrėjai nenukryptų nuo bėgių. Kiekviena reikšmė, pavyzdžiui, yra „nuosavybė“ - o tai iš tikrųjų reiškia, kad ją galima suvartoti tik vieną kartą, užkertant kelią susipainiojusiam nuorodų tinklui iš kitų programos dalių, veikiančių taip, tarsi jos visiškai valdytų vertę.

Visos šios savybės ir dar keletas dalykų, pvz., Siūlai be lenktynių, reiškia, kad naujasis programuotojas gali pradėti rašyti sistemos kodą, nepaleisdamas blogiausių anti-modelių, kurie ilgai kenkė C programuotojams. Jūs rašote C naudodamiesi sudėtingomis, našiomis linksmybėmis su kompiliatoriumi, kuris užfiksuos daugelį blogiausių klaidų dar nepaleidus kodo.

„Scala“: funkcinis JVM programavimas

Jei jums reikia kodo paprastumo objektui skirtose hierarchijose jūsų projektui, bet jums patinka funkcinė paradigma, turite keletą pasirinkimų. Jei „Java“ yra jūsų sritis, „Scala“ yra jums tinkamiausias pasirinkimas.

„Scala“ veikia su JVM, todėl „Java“ pasaulyje pateikiami visi švaraus dizaino programavimo griežtumai, suteikiant kodą, atitinkantį „Java“ klasės specifikacijas, ir sąsajas su kitais JAR failais. Jei tie kiti JAR failai turi šalutinį poveikį ir kitus būtinus nemalonius galvos skausmus, tebūnie. Jūsų kodas bus švarus.

Tipo mechanizmas yra labai statiškas, o kompiliatorius atlieka visą darbą, norėdamas padaryti išvadą apie tipus. Nėra skirtumo tarp primityvių tipų ir objektų tipų, nes „Scala“ nori, kad viskas kiltų iš vieno ur-objekto skambučio Bet koks. Sintaksė yra daug paprastesnė ir švaresnė nei „Java“; „Scala“ žmonės tai vadina „žema ceremonija“. Galite palikti pastraipų ilgio „CamelCase“ kintamųjų pavadinimus atgal į „Java Land“.

„Scala“ siūlo daug funkcijų, kurių tikimasi iš funkcinių kalbų, tokių kaip tingus vertinimas, uodegos rekursija ir nekintami kintamieji, tačiau jos buvo modifikuotos, kad veiktų su JVM. Pagrindiniai metatipai ar rinkinio kintamieji, pvz., Susieti sąrašai ar maišos lentelės, gali būti keičiami arba nekintami. Uodegos rekursija veikia su paprastesniais pavyzdžiais, bet ne su išsamiais, abipusiai rekursyviais pavyzdžiais. Idėjų yra, net jei įgyvendinimą gali riboti JVM. Vėliau, tai taip pat yra visa „Java“ platformos visur esanti informacija ir gilus esamų „Java“ kodų rinkinys, parašytas atvirojo kodo bendruomenės. Tai nėra blogas kompromisas dėl daugelio praktinių problemų.

Jei turite žongliruoti duomenimis tūkstančių procesorių grupėje ir turėti seno „Java“ kodo krūvą, „Scala“ yra puikus sprendimas.

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