Programmēšana

9 progresīvas programmēšanas valodas, kuras ir vērts mācīties jau tagad

Lielās valodas ir populāras kāda iemesla dēļ: tās piedāvā lielu atvērtā koda, bibliotēku un ietvaru pamatu, kas atvieglo darba pabeigšanu. Tas ir rezultāts vairāku gadu impulsam, kurā viņi tiek atkal un atkal izvēlēti jauniem projektiem, un zināšanas par to niansēm kļūst vērtīgas un bagātīgas.

Dažreiz ar populāro, parasto programmēšanas valodu plašajiem resursiem nepietiek, lai atrisinātu jūsu konkrēto problēmu. Dažreiz jums ir jāraugās pāri acīmredzamajam, lai atrastu pareizo valodu, kur pareizā struktūra rada atšķirību, vienlaikus piedāvājot šo papildu funkciju, lai palīdzētu jūsu kodam darboties ievērojami ātrāk, bezgalīgi pārveidojot un neoptimizējot. Šī valoda rada ievērojami stabilāku un precīzāku kodu, jo tas neļauj programmēt aplietu vai nepareizu kodu.

Pasaule ir piepildīta ar tūkstošiem gudru valodu, kas nav C #, Java vai JavaScript. Dažus no tiem vērtē tikai daži, taču daudziem ir plaukstošas ​​kopienas, kas noteiktu problēmu risināšanā ir saistītas ar kopēju mīlestību pret valodas iespējām. Iespējams, ka nav desmitiem miljonu programmētāju, kuri zina sintaksi, bet dažreiz ir vērts darīt lietas nedaudz savādāk, jo eksperimentēšana ar jebkuru jaunu valodu var dot ievērojamas dividendes par nākotnes projektiem.

Katra programmētāja radarā jābūt šādām deviņām valodām. Iespējams, ka tie nav vislabākie katrā darbā - daudzi ir vērsti uz specializētiem uzdevumiem. Bet tie visi piedāvā priekšrocības, kuras ir vērts izpētīt un ieguldīt. Var gadīties, ka kāda no šīm valodām izrādās tieši tā, kas nepieciešama jūsu projektam vai priekšniekam.

Kotkins: Java pārdomāta

Java ir lieliska valoda, kas atbalsta dažas no visu laiku populārākajām platformām, taču tā kļūst nedaudz novecojusi, un sāpju punkti kļūst mazliet pārāk pazīstami. Kotlins ir JetBrains komandas Krievijā smadzeņu bērns, tie, kas mums ir atveduši brīnišķīgus IDE, piemēram, IntelliJ. Kotlin ir paredzēts ātri apkopot, pastāvēt līdzās ar Java un novērst dažus no vissliktākajiem jautājumiem, kas aizņem Java izstrādātāju laiku.

Labākā daļa var būt uzmanība, kas pievērsta nenovērtējamām vērtībām, visu objektorientēto programmētāju bane. Ja jums šķiet, ka puse no jūsu koda pārbauda nulles vērtības, Kotlin izstrādātāji dzirdēja jūsu kliedzienus. Kotlins sper lielu soli šīs problēmas risināšanā, ja ne reizi par visām reizēm, tad vismaz lielāko daļu laika, liekot izstrādātājiem skaidri izsaukt mainīgos, kas varētu būt nulle. Tad tas automātiski pārbauda dažas sliktākās kļūdas, kuras mēs ar tām varam pieļaut.

Kotlin ir paredzēts darbam ar esošo Java kodu, padarot to par labu iespēju komandām, kuras vēlas pakāpeniski uzlabot kodu bāzi. Tas arī tiks apkopots līdz JavaScript vai vietējam kodam, ja jums tas ir vajadzīgs. Google atzina valodas vērtību, un tagad Android izstrādātāji, kuri vēlas izmantot Kotlin, tiek labi atbalstīti.

Šī piesardzīgā stratēģija ir izrādījusies populāra, jo ļauj komandai valodu pieņemt lēnām. Kotlin grupa ir ieguvusi daudz fanu lielās bankās, konsultāciju grupās un lietotņu firmās.

Erlang: Funkcionāla programmēšana reāllaika sistēmām

Erlangs sākās dziļi zviedru telekomunikāciju Ericsson spokaino sfēru sfērā. Kad Ericsson programmētāji sāka lielīties par tā “deviņu 9” veiktspēju, piegādājot 99,9999999 procentus datu kopā ar Erlang, izstrādātāji ārpus Ericsson sāka pievērst uzmanību.

Erlanga noslēpums ir funkcionālā paradigma. Lielākā daļa koda ir spiesta darboties savā mazajā pasaulē, kur tas nevar sabojāt pārējo sistēmu, izmantojot blakusparādības. Funkcijas visu savu darbu veic iekšēji, darbojoties mazos “procesos”, kas darbojas kā smilšu kastes un savā starpā runā tikai ar pasta ziņojumu starpniecību. Jūs nevarat vienkārši paķert rādītāju un ātri mainīt stāvokli jebkurā vietā kaudzītē. Jums jāpaliek zvanu hierarhijā. Tas var prasīt nedaudz vairāk pārdomu, taču kļūdas retāk izplatīsies.

Modelis arī atvieglo izpildlaika kodu, lai noteiktu, kas var darboties vienlaikus. Tā kā vienlaicīgumu ir tik viegli noteikt, izpildlaika plānotājs var izmantot ļoti zemo pieskaitāmo daļu, izveidojot un izjaucot procesu. Erlang fani labprāt lepojas ar to, ka Web serverī vienlaikus tiek palaisti 20 miljoni “procesu”.

Ja jūs veidojat reāllaika sistēmu, kurā nav vietas nomestiem datiem, piemēram, norēķinu sistēmu par mobilā tālruņa komutatoru, pārbaudiet Erlang.

Iet: vienkāršs un dinamisks

Google nebija pirmā organizācija, kas apsekoja valodu kolekciju, lai tikai tās uzskatītu par pārblīvētām, sarežģītām un bieži lēnām. 2009. gadā uzņēmums izlaida savu risinājumu: statiski ierakstīta valoda, kas izskatās kā C, bet ietver fona izlūkošanu, lai glābtu programmētājus no nepieciešamības norādīt veidus un žonglēt ar malloc zvaniem. Izmantojot Go, programmētājiem var būt kompilētā C saīsinājums un struktūra, kā arī viegli izmantot dinamisko skriptu valodu.

Kamēr Sun un Apple, veidojot Java un Swift, gāja līdzīgu ceļu, Google ar Go pieņēma vienu ievērojami atšķirīgu lēmumu: Valodas veidotāji vēlējās, lai Go būtu “pietiekami vienkāršs, lai turētos vienā programmētāja galvā”. Robs Pīķe, viens no Go veidotājiem, slavenajam Ars Technica teica, ka "dažreiz jūs varat iegūt vairāk ilgtermiņā, atņemot lietas". Tādējādi ir maz tādu piedauzīgu ekstru kā, piemēram, vispārīgi, veida mantojums vai apgalvojumi, tikai tīri, vienkārši kodi, ja-tad-cits, ir bloki, kas manipulē ar virknēm, masīviem un jaukšanas tabulām.

Tiek ziņots, ka šī valoda ir labi izveidojusies Google milzīgajā impērijā, un tā kļūst pieņemama citās vietās, kur dinamiskas valodas Python un Ruby cienītājus var pamudināt pieņemt daļu no stingrības, kas nāk no sastādītās valodas.

Ja esat iesācējs, kurš cenšas piesaistīt Google uzmanību, un jums ir jāizveido servera puses biznesa loģika, Go ir lieliska vieta, kur sākt.

OCaml: sarežģīts datu hierarhijas žonglieris

Daži programmētāji nevēlas norādīt savu mainīgo tipus, un viņiem mēs esam izveidojuši dinamiskās valodas. Citiem patīk noteikt, vai mainīgajam ir vesels skaitlis, virkne vai varbūt objekts. Viņiem daudzas apkopotās valodas piedāvā visu vēlamo atbalstu.

Tad ir tādi, kas sapņo par sarežģītām tipu hierarhijām un pat runā par tipu “algebru” izveidi. Viņi iedomājas neviendabīgu tipu sarakstus un tabulas, kas tiek apvienoti, lai izteiktu sarežģītas, daudzlīmeņu datu ekstravagances. Viņi runā par polimorfismu, modeļiem atbilstošiem primitīviem un datu iekapsulēšanu. Tas ir tikai sākums sarežģītajai, ļoti strukturētajai tipu, metatipu un metametatipu pasaulei, kuru viņi vēlas.

Viņiem ir OCaml - nopietns programmēšanas valodas kopienas centiens popularizēt daudzas no iepriekšminētajām idejām. Ir pieejams objektu atbalsts, automātiska atmiņas pārvaldība un ierīces pārvietojamība. Apple App Store ir pieejamas pat OCaml lietotnes.

Ideāls OCaml projekts varētu būt simboliskas matemātikas vietnes izveide, lai mācītu algebru.

TypeScript: JavaScript, kas jums patiks

Ikviens var izmantot JavaScript, taču šķiet, ka nevienam nepatīk tā programmēšana. Vai arī tas varētu šķist tāpēc, ka šodien ikvienam ir savs iecienītākais priekšprocesors vai superprocesors, kas paplašina un uzlabo valodu. TypeScript ir pašreizējais iecienītākais, jo tas pievieno tipus visiem mainīgajiem, kaut kas padara Java programmētājus mazliet drošākus.

Lielākais iemesls, kāpēc vairāk izstrādātāju tagad interesē TypeScript, ir Angular, lielisks ietvars tīmekļa lietojumprogrammu veidošanai, kas vienkārši tiek rakstīts TypeScript. Interesanta grumbiņa ir tā, ka jums nav jāizmanto TypeScript, lai izmantotu Angular. Jūs varat izbaudīt tā koda kvalitāti un apvienot to ar savu mantoto JavaScript. Jums nav jāizvēlas.

Iemesls ir tāds, ka TypeScript ir JavaScript superset. Izstrādātāji mašīnrakstīšanu pievienoja tā, lai tas labi atbilstu vecmodīgam JavaScript, kas ir diezgan noderīgi, ja birojā ir cilvēki, kuriem nepatīk ideja par veidiem vai kuriem ir dogmatiski viedokļi par to, kā veidi krampj viņu stilu. Veidi faktiski nav obligāti, un cilvēki, kuri atvēl laiku, lai norādītu veidus, var gūt labumu.

Spēcīgai rakstīšanai ir daudz priekšrocību, piemēram, agri noķert dažas kļūdas un uzlabot rīku vispārējo kvalitāti. Veidu pievienošana ļauj viedajiem redaktoriem jums palīdzēt ar gudriem ieteikumiem, izstrādājot savu šedevru. Kodu pabeigšana ir daudz ātrāka un precīzāka, ja koda pabeigšanas rutīnas kaut ko zina par funkcijām un argumentiem. Tas nozīmē mazāku pirkstu kustību uz tastatūras. TypeScript cienītāji ir pārliecināti, ka šādas priekšrocības pievilinās ikvienu, kurš atrodas uz žoga, par stingri noteiktas valodas spēku.

Rūsa: droša un izmantojama sistēmu valoda

Priekšpuses programmētāji nav vienīgie, kas izklaidējas. Rūsa ir kā atjaunota C versija, kurā zem pārsega ir sajaukts daudz polimorfu tipu. Tas pēdējos divus gadus pēc kārtas ir ieguvis “visvairāk mīlēto programmēšanas valodu” no Stack Overflow vēlētājiem, tas ir gods, kas atspoguļojas arī Stack Overflow valodas popularitātes rādītājā. Tikai pirms dažiem gadiem Rusts šajā sarakstā svārstījās ap 50, un šogad tas pieauga līdz 18.

Kāpēc? Varbūt tāpēc, ka Rust iztīra daudzus C jautājumus, nedarot pārāk lielu rokturi vai uzstājot, lai izstrādātāji nedod virtuālas taisnas jakas. Sistēmas programmētājiem patīk nepaļauties uz atkritumu savākšanu, tas ir lielisks serviss, līdz tas sāk darboties tieši visnepiemērotākajā laikā. Rūsa liek jums justies kā atbildīgam par to, kas notiek ar atmiņā esošo numuru, nevis gaidāt, kad kāds serviss veiks darbu jūsu vietā.

Rakstīšanas sistēma ir vispārēja un elastīga, piedāvājot tādu polimorfismu, kādu vismaz abstraktā veidā iedvesmo Haskels. Tomēr, kad tas tiek ieviests, kompilators pielāgo katra veida struktūru, ko izstrādātāji vēlas saukt par “monomorfismu”. Valoda pievieno vēl dažus ierobežojumus, lai atturētu izstrādātājus no sliedēm. Katra vērtība, piemēram, ir “piederoša” - kas patiesībā nozīmē, ka to var patērēt tikai vienu reizi, novēršot samudžinātu atsauces tīklu no citām programmas daļām, kas darbojas tā, it kā tām būtu pilnīga kontrole pār vērtību.

Visas šīs funkcijas, kā arī vēl dažas - piemēram, pavedieni bez sacīkstēm bez sacīkšu apstākļiem - nozīmē, ka jaunais programmētājs var sākt rakstīt sistēmas kodu, neiedarbojoties dažos no vissliktākajiem anti-modeļiem, kas jau ilgi ir nomocījuši C programmētājus. Jūs saņemat visu cieto, augstas veiktspējas prieku, rakstot C ar kompilatoru, kas noķers daudzas vissliktākās kļūdas, pirms kods pat darbojas.

Scala: Funkcionāla programmēšana JVM

Ja jums projektam nepieciešama objektorientētu hierarhiju koda vienkāršība, bet jums patīk funkcionālā paradigma, jums ir vairākas izvēles iespējas. Ja Java ir jūsu valstība, Scala ir izvēle jums.

Scala darbojas ar JVM, ieviešot visas funkcionālās programmēšanas dizaina stingrās prasības Java pasaulē, piegādājot kodu, kas atbilst Java klases specifikācijām, un saites ar citiem JAR failiem. Ja šiem citiem JAR failiem ir blakusparādības un citas obligātas nepatīkamas galvassāpes, lai tā būtu. Jūsu kods būs tīrs.

Tipa mehānisms ir ļoti statisks, un sastādītājs veic visu darbu, lai secinātu tipus. Starp primitīvajiem un objektu tipiem nav atšķirības, jo Scala vēlas, lai viss nokristu no viena ur-objekta izsaukuma Any. Sintakse ir daudz vienkāršāka un tīrāka nekā Java; Skalas ļaudis to sauc par “zemu ceremoniju”. Jūs varat atstāt rindkopas garos CamelCase mainīgo nosaukumus atpakaļ Java zemē.

Scala piedāvā daudzas funkcijas, kuras tiek sagaidītas no funkcionālajām valodām, piemēram, slinks novērtējums, astes rekursija un nemaināmi mainīgie, taču tās ir pārveidotas darbam ar JVM. Pamata metatipi vai kolekcijas mainīgie, piemēram, saistītie saraksti vai jaukšanas tabulas, var būt maināmi vai nemaināmi. Astes rekursija darbojas ar vienkāršākiem piemēriem, bet ne ar sarežģītiem, savstarpēji rekursīviem piemēriem. Idejas ir visas, pat ja īstenošanu var ierobežot JVM. Tad atkal tas nāk arī ar visu Java platformas visuresamību un dziļu esošo Java kodu kolekciju, ko uzrakstījusi atvērtā pirmkoda kopiena. Tas nav slikts kompromiss daudzām praktiskām problēmām.

Ja jums jāžonglē dati ar tūkstoš procesoru kopu un jums ir kaudze ar mantotu Java kodu, Scala ir lielisks risinājums.

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