Vir sommige mense word 'n nuwe programmeringstaal die beste vermy. Waarom, redeneer hulle, het ons nog 'n taal nodig??
Moet ons nie al genoeg hê nie??
Nie die bestaande gereedskap om die werk af te handel nie?
En dan is daar die onvermoeide soekers wat spring by die geleentheid om nuwe dinge te probeer en oor juwele te struikel. Vir hulle is leer 'n doel op sigself, en hulle het nie veel oortuigend nodig om hul naweke weg te brand met die bou van 'n konsoles gebaseerde kaartspel in daardie onduidelik, nuwe taal nie..
Dit maak nie saak aan watter kamp u behoort nie, daar is iets buite debat: ons wil almal tyd spandeer aan iets wat 'n blink toekoms sal hê.
Vir die mense in die nalatenskapskamp het hul gunsteling bestaande taal reeds baie momentum en sal hulle 'n blink toekoms hê. Vir hulle moet ek daaraan herinner dat hul nou volwasse ontwikkelingsgereedskapketting 'kool-hulp' was wat baie mense geweier het om te drink. En so is dit vandag; nuwe tegnologie word bygevoeg om nuwe probleme op te los of om die pyn van ontwikkeling te vergemaklik.
As iets dit radikaal genoeg doen, is die kans goed dat dit aanhou om die gedagtegang te haal en die toppunt te bereik. As dit gebeur, wil jy nie agterbly nie. ��
En vir diegene wat graag met die blink dinge wil hardloop, is 'n waarskuwing: om pret te hê as programmeerder, maar ons moet oppas om nie ons energie doelloos te mors nie.
seker, Brain is 'n ongelooflike gedraaide, legkaartagtige, prettige klein taal, maar dit is onwaarskynlik dat u voordeel daaruit trek deur dit ernstig na te streef. U wil iets nuut, verstandig en 'n stewige basis hê.
1 Hoe hierdie tale gekies is
1.2 Sterk gemeenskapsbelang
1.3 Gefokusde, goed gedefinieerde USP
1.4 Duidelike, konsekwente sintaksis
3 2. Roes
7 Gevolgtrekking en vrywaring
Hoe hierdie tale gekies is
Taalkeuse is 'n intimiderende werk, veral as nuwe tale oorweeg word vir toekomstige voordele verbonde aan indiensneming en bevrediging. Elke taalskrywer is oortuig daarvan dat hulle die perfekte taal opgebou het en al die probleme opgelos het om op te los. Hoe sny jy dan??
Vir hierdie pos het ek gefokus op enkele parameters om my soektog binne redelike grense te hou.
Ek het spesifiek tale wat baie, baie nuut is, vermy.
Nuut, ek bedoel tale wat minder as 5-6 jaar oud is, en veral die tale wat nie stabiliteit bereik het nie (dit is 1.0 vrystelling). Dit sluit ongelukkig 'n paar ware juwele in Crystal, Maar ek hoop om eendag terug te kom en oor die sukses daarvan te skryf. ��
'N Kodeblad in Crystal ("Vinnig soos C, glad soos vryf")
Vir my is 5-12 jaar die lieflike plek, dit is wanneer 'n taal gestabiliseer het, en meer verfynings uitgewerk word. Natuurlik is daar uitsonderings op hierdie reël, en dit sal waar van toepassing oorweeg word.
Hierdie een is 'n no-brainer, maar word dikwels geïgnoreer as ons opgewonde raak oor iets nuuts. Vir baie mense is die steun van 'n groot onderneming genoeg presedent vir sukses, maar dit is nie altyd waar nie.
Ja, Apple's Objekt-C en nou floreer Swift omdat dit die enigste opsies in 'n hoogs beheerde ekosisteem was, maar Facebook's D en hack ('n lelike aanpak van 'n reeds lelike taal, na my mening) bly weinig meer as eksperimente.
Die ideale kombinasie is 'n taal wat deur 'n groot, stabiele onderneming ondersteun word en in gewildheid ontplof (soos React).
Maar die vleis van die saak is steeds die gemeenskap. As 'n taal nie 'n gons skep nie, en daar nie voldoende aanbieders is om op te voed en te populariseer nie, klim dit nie uit die GitHub-graf nie.
Vir my sluit dit volwasse, boeiende tale uit soos racket en Erlang, aangesien hulle plat op die groeikurwe gebly het.
Gefokusde, goed gedefinieerde USP
Die derde ding waarna ek op soek is, is 'n duidelike doelwit vir die taal. Byvoorbeeld, 'n beter weergawe van PHP wat naamkwessies regstel en saamstel met die inheemse PHP werk nie vir my nie.
Ek sal eerlikwaar dadelik die verbetering van slegs sintaksis van die hand wys. Die geskiedenis het getoon dat die nut vriendelikheid met betrekking tot tale verpes, so as al die nuwe tale daarop fokus, is dit 'n aangenamer ervaring, is ek bang dat dit nie die lys sal maak nie.
Duidelike, konsekwente sintaksis
Ja ek weet. Ek het net gesê dat sintaksis nie saak maak nie. Wel, om presies te wees, het ek gesê dat "slegs sintaksisverbeterings" nie saak maak nie. Maar gesê, die sintaksis bly een van die belangrike faktore in die produktiwiteit en instandhouding van programmeerders, so dit is iets wat waarskynlik in my berekeninge hier sal verskyn.
Saam met sintaksis kom die idee van konsekwentheid voor. Funksiename, module-strukturering, ens., Is sleutel dinge wat 'n taal nie kan bekostig om verkeerd te raak nie. Dit is 2018, om God ontwil, en 'n ander PHP-agtige taalontwerp sal 'n skande vir ons almal wees. Laat ons dus begin met ons top vyf aanbevelings.
Vir die mense by die MIT was die beskikbare tale vir datawetenskap op die beste 'n kompromie. Python, met al sy duidelikheid en gewildheid, het nie inheemse konstrukte gehad vir die hantering van data-voorwerpe nie. Aangesien dit 'n geïnterpreteerde taal was, was Python vir hulle traag (nie die biblioteke nie, let wel, want hulle is meestal in C geskryf).
Maar miskien was die grootste afskakeling die klonterige gelyktydigheidsmodel, en die gebrek aan 'n parallelle rekenaarmodel, waarvan laasgenoemde 'n stapelvoedsel in superrekenaarkunde is.
As gevolg daarvan, Julia is gebore.
Julia het sy stabiele vrylating op 29 September 2018 bereik, skaars 'n paar dae voordat hierdie artikel geskryf is (praat oor tydsberekening!). Dit is wat die amptelike webwerf te sê het oor sy vermoëns:
Julia presteer met numeriese berekening. Die sintaksis daarvan is ideaal vir wiskunde, baie numeriese datatipes word ondersteun, en parallelisme is buite die kassie beskikbaar. Julia se veelvuldige versending is 'n natuurlike pasmaat om getal- en skikkingsagtige datatipes te definieer.
Sintaksisgewys, Julia kan gesien word as 'n kombinasie van Python en C. Ja, dit is waarskynlik die eerste keer dat 'n taal op albei hierdie eienskappe gemik en geslaag het..
Om sake eenvoudig te hou, handhaaf Julia nie streng tik nie, en tog vlam dit vinnig. Hier is 'n paar maatstawwe:
Die amptelike Julia-maatstawwe
Soos u kan sien, is Julia effens erger as C, maar blaas Java en Python uit die water. En watter soort lekkernye bied Julia aan??
Nou, hier is die implementering van 'n funksie vir die berekening van die skuinssy van die regte driehoek:
Uiteindelik, terwyl die meeste Julia ekosisteem is baie gekant na wiskundige werk, glo ek dat dit 'n blink algemene doel het.
Dit is die eerste taal volgens my kennis wat eersteklas ondersteuning vir parallelle rekenaarverwerking het, dus dit sal geen verrassing wees dat dit meer gewild word in die web- en IoT-domeine nie.
As u die nuwe Firefox-blaaiervrystellings probeer het, weet u dat dit uiteindelik na jare van werk lyk asof hulle 'n markaandeel van Chrome kan wegneem.
As die blaaier lig en snaaks voel en vinnig weergee, is dit alles te danke aan die taal wat Mozilla spesiaal ontwikkel het: Rust.
Om te sê dat Rust 'n blink toekoms het, sal 'n leuen wees; die taal is alreeds 'n reuse-sukses, en as u nog nie daarvan gehoor het nie, is dit omdat die toepassingsgebied daarvan gespesialiseerd is en die doelwit eng: die vervanging van C ++! Ja, ons het uiteindelik 'n taal wat nie net daartoe in staat is nie, maar dit reeds doen.
Vir mense wat gefrustreerd is met C ++ se oorbelaste uitdagings vir ontwerp en geheue-bestuur, kom Rust as 'n vars asem.
So lyk 'n Rust-program:
Kort en elegant, na my mening. Roes volg die funksionele programmeringsbenadering, wat u kode komposisioneel maak en daar is geen objekgeoriënteerde hiërargieë waarmee u kan worstel nie.
Dus, wat gee Rust die moed om na C ++ te gaan? Dit is die nuwe geheue-model. Eerder as om op die ou nuwe () / delete () dans te vertrou, stel Rust die idee van eienaarskap bekend.
Eerder as om geheue direk toe te ken en toe te laat, "leen" roestveranderlikes van mekaar, met streng beperkings wat deur die samesteller geplaas is. Die algehele konsep is te ingewikkeld om in enkele woorde te verklaar, dus kyk gerus na die amptelike dokumente om meer te leer.
Die punt is dat dit 100% geheue-veiligheid tot gevolg het sonder die behoefte van 'n vullisversamelaar, wat 'n groot saak is.
Roes het die stelselprogrammeringswêreld deur 'n storm gebring. Dit word reeds op sommige platforms ondersteun, met die gebruik van blaaiers en weergawemotors wat C / C ++ vinnig op produksiestelsels vervang word, en dit word gebruik om bedryfstelsels te skryf.
Natuurlik, dit is nie almal se koppie tee om 'n ander blaaier of toestelbestuurder te skep nie, maar Rust versprei homself alreeds na ander domeine. Ons het reeds verskeie ten volle funksionele, belaglik vinnige webraamwerke in Rust, en al hoe meer toepassingsbiblioteke word ontwikkel.
Eerlik, as u belangstel in 'n opwindende toekoms, is Rust die perfekte taal en is dit nou die perfekte tyd. Roes is 'n vliegtuig wat vertrek het, maar daar is nog tyd om aan boord te kom as dit na die sterre mik!
Leer Roes van Dmitri Nesteruk.
Onder die tale wat op ontwikkelaarsgeluk fokus, is die eerste plek permanent vir Ruby gereserveer. Dit is 'n taal wat soos poësie lees en genoeg kortpaaie het om geestelike wrywing te verminder deur die grootte.
Geen wonder dat die Rails-raamwerk steeds die volle stapelontwikkeling vir ernstige ontwikkelaars en startups oorheers nie. Maar nie almal was tevrede met Rails nie, veral nie een van sy belangrikste ontwikkelaars nie – José Valim. Ek dink die skepper self verduidelik die ontstaan ​​van hierdie taal die beste in 'n onderhoud:
Dit is 'n lang verhaal, maar ek sal probeer om dit kort en soet te maak. In 2010 het ek gewerk aan die verbetering van die prestasies van Rails toe ek met meerkernstelsels gewerk het, want ons masjiene en produksiestelsels word met al hoe meer kernpakke gestuur. Die hele ervaring was egter nogal frustrerend, aangesien Ruby nie die regte hulpmiddel bied om gelyktydige probleme op te los nie. Dit is toe ek na ander tegnologieë begin kyk en uiteindelik verlief geraak het op die Erlang Virtual Machine.
Ek het meer en meer Erlang begin gebruik, en met ervaring het ek opgemerk dat ek sommige konstrukte in baie ander tale, insluitend funksionele, ontbreek. Dit is toe ek besluit het om Elixir te skep, as 'n poging om verskillende konstrukte en uitstekende gereedskap bo-op die Erlang VM te bring.
En kyk, Elixir is gebore!
Net soos Scala verbeter in die Java-taal, maar op dieselfde virtuele masjien onder (die JVM) teiken, maak Elixir ook voordeel uit die dekades-oue, slagbewese Erlang-virtuele masjien.
Nou, 'n bespreking oor Erlang is buite die bestek van hierdie artikel, maar die minimum wat u moet weet, is dat dit die besbewaarde geheim van die telekombedryf is: as ons telefoonnetwerke baie betroubaarder is as ons webgebaseerde stelsels, dan is dit alles te danke aan Erlang.
In nog eenvoudiger terme is dit wat dit beteken. As u 'n intydse stelsel soos klets bou, is Elixir baie, veel minder RAM-honger en stabiel as Ruby (of PHP, Python en Java, vir die saak).
'N Masjien wat Ruby gebruik en maks. 10.000 gelyktydige verbindings gebruik, kan maklik 200,000 hanteer as Elixir gebruik word en nog steeds genoeg RAM het om 2D-speletjies uit te voer!
Sintaksies kopieer Elixir Ruby onbeskaamd en die dominante webraamwerk, Phoenix, kopieer Rails skaamteloos. Ek sou ook sê dat dit 'n goeie ding is, want saam met Laravel, Grails, Masonite, ens., Bereik ons ​​'n punt waar alle tale spooragtige raamwerke het wat die oorgang kan vergemaklik. Sommige spot met die 'gebrek aan oorspronklikheid', maar ek kla die minste nie.
uiteindelik, Elixir is een van daardie tegnologieë wat verfrissend, aangenaam en verdoemend prakties is. Verskeie Ruby (en selfs nie-Ruby) winkels verhuis na Elixir, en groot maatskappye soos Pinterest gebruik dit in produksie met uiters bevredigende resultate..
Baie mense dink dat Node.js 'n maklike poging tot gelyktydigheid was en binnekort deur Elixir vervang sou word. Ek moet sê ek stem saam met hulle. ��
In 2017 het ek / O, Google 'n bom op die niksvermoedende skare ontketen. Die maatskappy het formeel aangekondig Kotlin as die primêre taal vir Android-ontwikkeling, wat skokgolwe deur die bedryf stuur.
Noudat Google aktief op soek was na die vervanging van Java kom dit nie as 'n verrassing nie, omdat hy deur 'n Oracle-hofsaak gebyt is; Die aanneming van Kotlin was egter ietwat onverwags, en die kans is goed dat Google binnekort met sy virtuele masjien sal uitgaan. Maar voorlopig geniet Kotlin 'n oplewing.
Kotlin is ontwikkel deur JetBrains, 'n maatskappy wat beter bekend is vir sy reeks onverskrokke goeie kode-redakteurs. Een daarvan, IntelliJ IDEA, vorm die basis van die Android Studio. Die ontwerpdoelwitte van Kotlin is veiligheid, noukeurigheid en 100% interoperabiliteit met Java.
Meer as enigiets anders werk die Kotlin-samesteller ekstra hard om die uitsonderings wat so algemeen in die Java-wêreld voorkom, uit te skakel. Dit neem ook die spreekwoordelike Java-woordelikheid nogal af, wat vir baie 'n verligting sal wees.
Hier is 'n wonderlike kodevergelyking tussen Java en Kotlin:
Die Kotlin-kode is aansienlik korter en baie minder kognitiewe oorbelasting om deur te ploeg.
Maar laat ons een ding duidelik stel: dit is onwaarskynlik dat Kotlin Java sal vervang, hoewel dit vinnig 'n gunsteling is. Ek glo dat klein- tot mediumgrootte spanne tien jaar verder nie verder as Kotlin sal kyk nie, terwyl groot groepe voortgaan om Java bloot te gebruik as gevolg van nalatige redes..
Dit gesê, Kotlin het 'n buitengewone toekoms, want dit doen alles wat Java doen, kan saamsmelt met Java-kode sonder dat iemand dit opmerk, en dit is baie aangenamer!
God weet ek moes myself terughou vir hierdie plek! Alles binne-in my het geskreeu "Elm! Elm! ", Maar maak nie saak hoe revolusionêr sy idees is, of hoe heilig die sintaksis is nie, Elm moet nog gesien word as 'n hoofstroomalternatief vir vooraanstaande werk. �� Kom ons gaan in elk geval na die hoofstroom: TypeScript.
Daar is uitstekende kanse waarvan u gehoor het tikwerk: Hoekvormig was die eerste raamwerk wat dit vanaf weergawe 2 aangeneem het, en mense het vinnig kennis geneem. Dit is omdat TypeScript 'n aantal benodigde en fantastiese supermoondhede toevoeg tot die beroemdste programmeertaal ter wêreld.
Hier is die verbeterings wat TypeScript aan die tafel bring:
✓ Sterk tik: Laastens is 'n string nie 'n getal nie, en 'n getal is nie 'n voorwerp wat nie 'n leë skikking is nie!
✓ Klasse en modules: Ja, klasse is standaard in ES6, maar dit is ook opgeneem in TypeScript, behalwe 'n netjiese module-stelsel.
✓ Tik inferensie: By komplekse tipes kan die tipe maklik deur die samesteller uitgepluis word, wat u hoofpyn spaar.
✓ Asynchroniseer / wag: Die sleutelwoorde en patrone wat asynchroniseer / wag, is fundamenteel, dus hoef u nie meer met Beloftes en Terugbel om te skakel nie!
Naamruimtes, generika, tuples. . . Ek kon aanhou, maar dit moet voldoende wees om te sê dat TypeScript een van die slegste ontwikkelingservarings omskakel in een van die beste.
Die impak van TypeScript kan nie ontken word nie. Dit het soortgelyke pogings soos Google's Dart uit die veld gedryf (alhoewel dit 'n comeback deur Flutter, 'n mobiele ontwikkelingsraamwerk) probeer maak, en JS-ontwikkelaars die oë kan oopmaak vir die voordele van sterker tipes.
U sal miskien verbaas wees om te weet dat die skepper van Node.js, in die openbaar betreur sy skepping, werk aan 'n nuwe tydsduur (daar is tans geen amptelike webwerf nie; net die GitHub-repo) met TypeScript as primêre taal.
Gevolgtrekking en vrywaring
Spesifieke tale kry net soveel gewildheid as dié in hierdie artikel, maar is om verskillende redes nie in die lys opgeneem nie. Hier is 'n vinnige blik:
Golang: Reeds gevestig as hoofstroom, indien nie baie gewild nie, taal. Ek glo wel op hierdie punt het Golang verskeie mededingers wat sy markaandeel laag sal hou.
R: R is reeds warm onder datawetenskaplikes, en dit is onwaarskynlik dat toepassingsontwikkelaars baie sal lok. Boonop moet ons nie vergeet dat die biblioteek vir masjienleer stadig op pad is na al die belangrikste tale nie (ter wille van God, selfs PHP het dit nou!), Dus hoef u net 'n rukkie te wag. ��
Swift: Apple het 'n ystergreep op hul ekostelsel, en Swift is die enigste taal wat daar beskikbaar is. Geen twyfel nie, vroeër was doelstelling C die woede, net soos Swift nou. Ek beskou dit as bedrog en weier om dit hier in te sluit. ��
Die toekoms is altyd onseker, en een manier om u loopbaan te bewerkstellig is om te hou by wat reeds werk en te weier om 'afgelei te word'. As u dit doen, is Java, PHP, Python, Ruby, ens. Almal uitstekende tale om by te hou. Vir sommige van ons is die norm egter nie genoeg nie. Hulle wil uitgaan en ondersoek en wed op die toekoms. As u in laasgenoemde kamp val, moet een van hierdie vyf tale bo-aan u taaklys wees.
Laastens, as u probeer om 'n taal te assesseer, moet u nie toelaat dat die inspanning wat u ingesluit het, u oorweldig nie, want dit is nie soveel nie. As u al 'n paar programmeringstale ken, kan u dit binne twee maande leer deur 5-6 uur per week te spandeer. Terwyl die geluk en geldelike opbrengste wat in die toekoms opgelewer kan word, 'n paar keer meer sal wees.
Het ek hier kritiese taal misgeloop? Of het ek iets verkeerd oor die tale wat hier gelys word? As dit so is, kan u asseblief 'n opmerking lewer en my help verbeter. ��