Ohjelmointi

9 huippuluokan ohjelmointikieltä, jotka kannattaa oppia nyt

Suuret kielet ovat suosittuja syystä: Ne tarjoavat valtavan perustan avoimelle lähdekoodille, kirjastoille ja kehyksille, jotka helpottavat työn viimeistelyä. Tämä on seurausta vuosien vauhdista, jossa heidät valitaan uudestaan ​​ja uudesta projektista, ja asiantuntemus niiden vivahteista kasvaa kannattavaksi ja runsaaksi.

Joskus suosittujen, valtavirran ohjelmointikielten valtavat resurssit eivät riitä ratkaisemaan ongelmaa. Joskus sinun on etsittävä itsestään selvää löytääksesi oikea kieli, jossa oikea rakenne tekee eron ja tarjoaa samalla lisäominaisuuden, joka auttaa koodiasi toimimaan huomattavasti nopeammin ilman loputtomia säätämistä ja optimointia. Tämä kieli tuottaa huomattavasti vakaampaa ja tarkempaa koodia, koska se estää sinua ohjelmoimasta huolimattomaa tai väärää koodia.

Maailma on täynnä tuhansia älykkäitä kieliä, jotka eivät ole C #, Java tai JavaScript. Jotkut ovat vain harvat arvossa, mutta monilla on kukoistavia yhteisöjä, jotka liittyvät yhteiseen rakkauteen kielen laitosta kohtaan tiettyjen ongelmien ratkaisemisessa. Kymmeniä miljoonia ohjelmoijia, jotka tuntevat syntaksin, ei ehkä ole, mutta joskus on arvoa tehdä asioita hieman erilaisina, koska minkä tahansa uuden kielen kokeileminen voi maksaa merkittäviä osinkoja tulevista projekteista.

Seuraavien yhdeksän kielen tulisi olla jokaisen ohjelmoijan tutkassa. Ne eivät ehkä ole parhaita jokaiseen työhön - monet on suunnattu erikoistehtäviin. Mutta ne kaikki tarjoavat haittapuolia, jotka kannattaa tutkia ja joihin kannattaa investoida. Voi olla päivä, jolloin jokin näistä kielistä osoittautuu olevan juuri sitä, mitä projektisi tai pomo tarvitsee.

Kotkin: Java harkitaan uudelleen

Java on hieno kieli, joka tukee joitain kaikkien aikojen suosituimpia alustoja, mutta se on vanhenemassa ja tuskakohdat ovat tulossa hieman liian tunnetuiksi. Kotlin on Venäjän JetBrains-tiimin aivolapsi, jotka ovat tuoneet meille upeita IDE: itä, kuten IntelliJ. Kotlin on tarkoitettu kääntämään nopeasti, olemaan rinnakkain Java: n kanssa ja korjaamaan joitain pahimpia asioita, jotka vievät Java-kehittäjien aikaa.

Parasta voi olla huomio, jota kiinnitetään nollattamattomiin arvoihin, kaikkien olio-ohjelmoijien kohtaloon. Jos sinusta tuntuu, että puolet koodistasi tarkistaa nolla-arvoja, Kotlin-kehittäjät kuulivat huutosi. Kotlin ottaa suuren askeleen tämän ongelman ratkaisemiseksi, ellei kerta kaikkiaan, niin ainakin suurimman osan ajasta pakottamalla kehittäjät nimenomaisesti kutsumaan muuttujat, jotka saattavat olla nollia. Sitten se tarkistaa automaattisesti joitain pahimpia virheitä, joita voimme tehdä heidän kanssaan.

Kotlin on suunniteltu toimimaan olemassa olevan Java-koodin kanssa, joten se on hyvä vaihtoehto joukkueille, jotka haluavat parantaa koodikantaa vähitellen. Se myös kääntyy JavaScriptiksi tai alkuperäiseksi koodiksi, jos tarvitset sitä. Google tunnisti kielen arvon, ja nyt Android-kehittäjät, jotka haluavat käyttää Kotlinia, ovat hyvin tuettuja.

Tämä varovainen strategia on osoittautunut suosituksi, koska se antaa tiimin omaksua kielen hitaasti. Kotlin-ryhmä on saanut monia faneja suurissa pankeissa, konsultointiryhmissä ja sovellusyrityksissä.

Erlang: Toimiva ohjelmointi reaaliaikaisille järjestelmille

Erlang aloitti syvällä puhelinkytkinten pelottavien alueiden sisällä ruotsalaisen Ericssonin puhelimessa. Kun Ericssonin ohjelmoijat alkoivat kehua "yhdeksän 9: n" suorituskykyään toimittamalla 99,9999999 prosenttia tiedoista Erlangin kanssa, Ericssonin ulkopuoliset kehittäjät alkoivat huomata.

Erlangin salaisuus on toiminnallinen paradigma. Suurin osa koodista on pakko toimia omassa pienessä maailmassaan, jossa se ei voi vahingoittaa muuta järjestelmää sivuvaikutusten kautta. Toiminnot tekevät kaiken työnsä sisäisesti, käynnissä pienissä "prosesseissa", jotka toimivat hiekkalaatikoina ja puhuvat toisilleen vain sähköpostiviestien kautta. Et voi vain napata osoittinta ja muuttaa tilaa nopeasti missä tahansa pinossa. Sinun täytyy pysyä puheluhierarkiassa. Se voi vaatia hieman enemmän miettimistä, mutta virheiden leviäminen on vähemmän todennäköistä.

Malli helpottaa myös ajonaikaisen koodin määrittämistä, mikä voi toimia samanaikaisesti. Kun samanaikaisuus on niin helposti havaittavissa, ajonaikainen ajastin voi hyödyntää erittäin alhaisia ​​yleiskustannuksia prosessin määrittämisessä ja purkamisessa. Erlang-fanit haluavat kerskailla 20 miljoonan "prosessin" suorittamisesta samanaikaisesti Web-palvelimella.

Jos rakennat reaaliaikaista järjestelmää, jossa ei ole tilaa pudotetuille tiedoille, kuten matkapuhelinkytkimen laskutusjärjestelmä, tutustu Erlangiin.

Go: Yksinkertainen ja dynaaminen

Google ei ollut ensimmäinen organisaatio, joka tutki kielten kokoelmaa, mutta vain havaitsi niiden olevan sotkuisia, monimutkaisia ​​ja usein hitaita. Vuonna 2009 yritys julkaisi ratkaisunsa: staattisesti kirjoitettu kieli, joka näyttää C: ltä, mutta sisältää taustatietoa pelastaakseen ohjelmoijia tarvitsematta määritellä tyyppejä ja taistella malloc-puheluita. Go: n avulla ohjelmoijilla voi olla käännetyn C: n tiiviys ja rakenne sekä dynaamisen komentokielen helppous.

Vaikka Sun ja Apple seurasivat samanlaista tietä Java- ja Swift-sovellusten luomisessa, Google teki yhden merkittävästi erilaisen päätöksen Go: n kanssa: Kielen luojat halusivat pitää Go: n "riittävän yksinkertaisena pitääkseen yhden ohjelmoijan päässä." Rob Pike, yksi Goin tekijöistä, kertoi tunnetusti Ars Technicalle, että "joskus voit saada enemmän pitkällä aikavälillä viemällä asioita pois". Siten on olemassa muutama erikoinen lisäosa, kuten geneeriset tuotteet, tyypin periytyminen tai väitteet, vain puhtaat, yksinkertaiset lohkot if-then-else -koodista, joka manipuloi merkkijonoja, taulukoita ja hash-taulukoita.

Kieli on tiettävästi vakiintunut Googlen valtavan imperiumin sisällä ja se on saamassa hyväksyntää muissa paikoissa, joissa Pythonin ja Rubyn dynaamisen kielen ystävät voidaan houkutella hyväksymään osa kootusta kielestä johtuvasta tiukkuudesta.

Jos olet käynnistysyritys, joka yrittää saada Googlen huomion ja sinun on rakennettava palvelinpuolen liiketoimintalogiikkaa, Go on hyvä paikka aloittaa.

OCaml: monimutkainen datahierarkian jonglööri

Jotkut ohjelmoijat eivät halua määritellä muuttujiensa tyyppejä, ja heille olemme rakentaneet dynaamiset kielet. Toiset nauttivat varmuudesta määrittää, onko muuttujassa kokonaisluku, merkkijono vai kenties esine. Heille monet käännetyistä kielistä tarjoavat kaiken haluamansa tuen.

Sitten on niitä, jotka haaveilevat monimutkaisista tyyppihierarkioista ja puhuvat jopa tyyppisten "algebrojen" luomisesta. He kuvittelevat heterogeenisten tyyppien luetteloita ja taulukoita, jotka kootaan ilmaisemaan monimutkaisia, monitasoisia tietojen ekstravagantteja. He puhuvat polymorfismista, mallin mukaisista primitiivistä ja tietojen kapseloinnista. Tämä on vasta alkua heidän haluamansa monimutkaisen, hyvin jäsennellyn tyyppien, metatyyppien ja metametyyppien maailmalle.

Heille on OCaml, ohjelmointikieliyhteisön vakava pyrkimys popularisoida monia edellä mainittuja ideoita. Tarjolla on kohteiden tuki, automaattinen muistinhallinta ja laitteen siirrettävyys. Jopa OCaml-sovelluksia on saatavana Applen App Storesta.

Ihanteellinen projekti OCamlille saattaa olla symbolisen matematiikkasivuston rakentaminen algebran opettamiseksi.

TypeScript: haluamasi JavaScript

Kaikki voivat käyttää JavaScriptiä, mutta kukaan ei näytä pitävän siitä ohjelmoinnista. Tai näyttää siltä, ​​että jokaisella on nykyään suosikki esiprosessori tai superprosessori, joka laajentaa ja parantaa kieltä. TypeScript on nykyinen suosikki, koska se lisää tyyppejä kaikkiin muuttujiin, mikä saa Java-ohjelmoijat tuntemaan olonsa hieman turvallisemmaksi.

Suurin syy siihen, että yhä useampi kehittäjä on kiinnostunut TypeScriptistä, on Angular, loistava kehys verkkosovellusten rakentamiseen, joka satunnaisesti kirjoitetaan TypeScriptiin. Mielenkiintoinen ryppy on, että sinun ei tarvitse käyttää TypeScriptiä kulmien käyttämiseen. Voit nauttia koodin laadusta ja yhdistää sen vanhaan JavaScriptiin. Sinun ei tarvitse valita.

Syynä on se, että TypeScript on JavaScriptin superset. Kehittäjät lisäsivät kirjoittamisen tavalla, joka toimii hyvin vanhanaikaisella JavaScriptilla, mikä on varsin hyödyllistä, jos toimistossa on ihmisiä, jotka eivät pidä ajatuksesta tyyppeistä tai joilla on dogmaattisia mielipiteitä siitä, kuinka tyypit ahdistavat tyyliään. Tyypit ovat käytännössä valinnaisia, ja ihmiset, jotka käyttävät aikaa määrittelemään tyypit, voivat hyötyä.

Vahvalla kirjoittamisella on monia etuja, kuten virheiden varhainen saaminen ja työkalujen yleisen laadun parantaminen. Tyyppien lisäämisen avulla älykkäät muokkaajat voivat auttaa sinua älykkäillä ehdotuksilla, kun teet mestariteosasi. Koodin täydentäminen on paljon nopeampaa ja tarkempaa, kun koodin valmistumisrutiinit tietävät jotain toiminnoista ja argumenteista. Tämä tarkoittaa vähemmän sormien liikkumista näppäimistöllä. TypeScript-ystävät ovat varmoja, että tällaiset edut houkuttelevat aidalla olevia kaikkia voimakkaasti määritellyn kielen voimasta.

Ruoste: Turvallinen ja käyttökelpoinen järjestelmäkieli

Etupään ohjelmoijat eivät ole ainoita, joilla on hauskaa. Ruoste on kuin kunnostettu versio C: stä, jossa on runsaasti polymorfista kirjoittamista sekoitettuna konepellin alle. Se on voittanut "rakastetuimman ohjelmointikielen" Stack Overflow -äänestäjiltä viimeisen kahden vuoden ajan peräkkäin, mikä näkyy myös Stack Overflow'n kielten suosioindeksissä. Vielä muutama vuosi sitten Rust oli noin 50 listalla, ja tänä vuonna se nousi 18: een.

Miksi? Ehkä siksi, että Rust siivoaa monet C: n ongelmista tekemättä liikaa kädensijaa tai vaatimalla, että kehittäjät luovuttavat virtuaalisia suoratakkeja. Järjestelmän ohjelmoijat rakastavat olla turvautumatta roskien keräämiseen, joka on erinomainen palvelu, kunnes se käynnistyy juuri sopimattomimpaan aikaan. Ruoste saa sinut tuntemaan, että olet vastuussa siitä, mitä tapahtuu muistissa olevalle numerolle, eikä odota, että jokin palvelu tekee työn puolestasi.

Kirjoitusjärjestelmä on yleinen ja joustava, tarjoten sellaista polymorfismia, joka on Haskellin innoittama, ainakin abstraktisti. Toteutuessaan kääntäjä kuitenkin mukauttaa rakenteen kullekin tyypille, jota kehittäjät haluavat kutsua "monomorfismiksi". Kieli lisää muutamia muita rajoituksia, jotta kehittäjät eivät pääse kiskoilta. Esimerkiksi jokainen arvo on "omistettu" - mikä tarkoittaa oikeastaan ​​sitä, että sitä voidaan käyttää vain kerran, mikä estää sotkeutuneen verkoston viitteitä muista ohjelman osista, jotka toimivat ikään kuin heillä olisi täysi hallinta arvon suhteen.

Kaikki nämä ominaisuudet sekä muutama muu - kuten kilpailuehtoinen ketjutus - tarkoittavat, että uusi ohjelmoija voi alkaa kirjoittaa järjestelmäkoodia törmäämättä pahimpiin anti-malleihin, jotka ovat pitkään pahoinpidelneet C-ohjelmoijia. Saat kaiken kovan ja tehokkaan hauskan kirjoittamalla C: n kääntäjällä, joka havaitsee monet pahimmat virheet ennen kuin koodi edes suoritetaan.

Scala: Toimiva ohjelmointi JVM: ssä

Jos tarvitset projektille olio-orientoitujen hierarkioiden koodia, mutta rakastat toiminnallista paradigmaa, sinulla on useita valintoja. Jos Java on sinun alueesi, Scala on valinta sinulle.

Scala toimii JVM: llä ja tuo kaikki toiminnallisen ohjelmoinnin selkeät suunnittelurajat Java-maailmaan toimittamalla koodin, joka sopii Java-luokan spesifikaatioihin ja linkit muihin JAR-tiedostoihin. Jos näillä muilla JAR-tiedostoilla on sivuvaikutuksia ja muita välttämättömiä ikäviä päänsärkyä, olkoon niin. Koodisi on puhdas.

Tyyppimekanismi on voimakkaasti staattinen ja kääntäjä tekee kaiken työn päätelläksesi tyypit. Primitiivisten tyyppien ja kohdetyyppien välillä ei ole eroa, koska Scala haluaa kaiken laskeutuvan yhdestä ur-objektikutsusta Any. Syntaksi on paljon yksinkertaisempi ja puhtaampi kuin Java; Scalan ihmiset kutsuvat sitä "matalaksi seremoniaksi". Voit jättää kappalepitkät CamelCase-muuttujien nimet takaisin Java Landiin.

Scala tarjoaa monia ominaisuuksia, joita toiminnallisilta kieliltä odotetaan, kuten laiska arviointi, hännän rekursio ja muuttumattomat muuttujat, mutta niitä on muokattu toimimaan JVM: n kanssa. Perusmetatyypit tai kokoelmamuuttujat, kuten linkitetyt luettelot tai hash-taulukot, voivat olla joko muutettavissa tai muuttumattomia. Hännän rekursio toimii yksinkertaisemmilla esimerkeillä, mutta ei monimutkaisilla, vastavuoroisesti rekursiivisilla esimerkeillä. Ideat ovat kaikki olemassa, vaikka JVM voi rajoittaa toteutusta. Jälleen kerran, se sisältää myös kaiken Java-alustan läsnäolon ja avoimen lähdekoodin yhteisön kirjoittaman olemassa olevan Java-koodin kokoelman. Se ei ole huono kompromissi monille käytännön ongelmille.

Jos sinun on taitettava tietoja tuhannen prosessorin klusterissa ja sinulla on kasa vanhaa Java-koodia, Scala on loistava ratkaisu.

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