Računalniki Windows Internet

Najboljši programski jezik na svetu. Pet obetavnih programskih jezikov s svetlo prihodnostjo

JavaScript je dober za dodajanje osnovne interaktivnosti na spletne strani, ko pa je koda vaše spletne aplikacije na tisoče vrstic kode, postanejo očitne njene slabosti. Zato je Google ustvaril Dart, jezik, za katerega podjetje meni, da bo nov materni jezik za spletno programiranje.

Tako kot JavaScript tudi Dart uporablja sintakse in ključne besede podobni tistim, ki se uporabljajo v jeziku C. Vendar je ena pomembna razlika v tem, da JavaScript temelji na prototipih, vendar so predmeti v Dartu opredeljeni z uporabo razredov in vmesnikov, kot v C ++ ali Javi. Dart programerjem omogoča tudi dodatno opredelitev spremenljivk s statičnimi tipi. Zamisel je, da bi Dart postal tako znan, dinamičen in prilagodljiv kot JavaScript, hkrati pa razvijalcem omogočil pisanje kode, ki je hitra in enostavna za izvedbo ter težko naredi napake, ki jih je težko najti.

Nekaj ​​mest, kjer lahko uporabite Dart. Zasnovan je tako, da se izvaja na odjemalcu ali na strežniku (a la Node.js), vendar je edini način za zagon odjemalčeve različice Darta tako, da ga navzkrižno prevede v JavaScript. Vendar tudi po tem ne bo deloval v vseh brskalnikih. Ker pa je Dart izdan pod brezplačno licenco BSD, lahko vsak prodajalec, ki se strinja z Googlovimi pogoji, ta jezik uporablja v svojih izdelkih. Google mora le prepričati celotno industrijo.


Programski jezik v študiji # 2: Cejlon

Gavin King zanika, da bi Cejlon, jezik, ki ga razvija pri Red Hat -u, moral postati "morilec Jave". King je dobro poznan kot ustvarjalec okvira za mirovanje objektov mirovanja za Javo. Obožuje Javo, vendar meni, da je treba še veliko izboljšati.

Nekatere stvari, ki jih King ne mara v Javi, so izčrpna sintaksa jezika, pomanjkanje prvovrstnih in funkcij višjega reda ter pomanjkanje podpore za metaprogramiranje. Še posebej ga žalosti pomanjkanje deklarativne skladnje za opredelitev strukturiranih podatkov, za katero King pravi, da "Javo enači z XML". Ceylon želi rešiti vse te težave.

King in njegova ekipa ne nameravata znova izumiti kolesa. Cejlonskega navideznega stroja ne bo, cejlonski prevajalnik bo ustvaril bajtkodo java, ki jo je mogoče zagnati v JVM. Toda Ceylon bo več kot le prevajalnik. Strateški cilj tega projekta je ustvarjanje novega razvojnega kompleta za Ceylon, ki bo nadomestil Javo, za katero King pravi, da je "napihnjena", nerodna in še vedno ni popolnoma posodobljena.

To je težka naloga in Red Hat doslej ni izdal nobenih pripomočkov za Ceylon. King pravi, da bo prevajalnik izšel letos. Vendar ne pričakujte, da bo kmalu prišlo do programske opreme, napisane v "100% čistem Cejlonu".


Študirani programski jezik # 3: Pojdi

Koda F # je nekoliko podobna kodi OCaml, vendar vsebuje svojo zanimivo skladnjo. Na primer, za lažje znanstvene izračune so lahko številske vrste podatkov v F # enote. F # ponuja tudi konstrukcije za olajšanje asinhronih V / I, paralelizacijo CPU -ja in izhodne procese v GPU.

Po dolgem obdobju zorenja v Microsoftovih raziskavah je F # zdaj dobavljen z Visual Studio 2010. Še bolje, vendar ne za celotno podjetje, je Microsoft dal na voljo odprtokodno licenco Apache prevajalnika in korenske knjižnice F #. Z njim lahko začnete brezplačno in ga celo uporabite v sistemih Mac in Linux (z uporabo časa izvajanja Mono).


Študirani programski jezik # 5: Opa

Spletno programiranje je zelo zapleteno. Tudi najpreprostejše spletne aplikacije so sestavljene iz neskončnih vrstic, napisanih v več jezikih: HTML in JavaScript za odjemalca, Java ali PHP za strežnik, SQL za bazo podatkov itd.

Opa ne nadomešča nobenega od teh jezikov ločeno. Poleg tega jih poskuša nadomestiti vse naenkrat, kar predstavlja popolnoma novo paradigmo v spletnem programiranju. V aplikaciji Opa so odjemalski uporabniški vmesnik, logika strežnika in baza podatkov V / I napisani v istem jeziku, Opa.

To se doseže s kombinacijo odjemalskih in strežniških okvirov. Prevajalnik Opa se odloči, kje naj se izvaja ta program(na odjemalcu, strežniku ali oboje tam in tam) in nato izvede njegovo kodo. Za odjemalske programe Opa prevede v ustrezno kodo JavaScript, vključno s klici AJAX.

Seveda bi moralo biti s tovrstnim integriranim sistemom na koncu nekaj čarobnega. Izvajalni čas Opa združuje lasten spletni strežnik in sistem za upravljanje baz podatkov, ki ga ni mogoče nadomestiti s samostojnimi alternativami. Vendar to morda ni tako pomembno glede na sposobnost razvoja sodobnih podatkovnih spletnih aplikacij z le nekaj ducati vrstic kode. Opa je na voljo brezplačno in naprej ta trenutek je na voljo za 64-bitne platforme Linux in Mac OS X, medtem ko so druga vrata še v razvoju.


Študirani programski jezik # 6: Fantom

Ali želite ustvariti aplikacije Java ali .Net? Če pišete na Fantom, se lahko odločite in nato celo spremenite platformo. To je zato, ker je bil Fantom že od vsega začetka zgrajen za mobilnost med različnimi platformami. Projekt Fantom ni sestavljen samo iz prevajalnika, ki lahko odda bajtno kodo za JVM ali .Net CLI, ampak tudi niz API -jev, ki ločujejo API -je Java in .Net ter ustvarjajo dodatno plast prenosljivosti.

Načrtuje se, da se bo mobilnost Fantoma še povečala. Prevajalnik iz Fantoma v JavaScript je že na voljo, naslednji cilji pa lahko vključujejo projekt prevajalnika LLVM, Parrot VM in Objective-C za iOS.

Fantom se brezplačno distribuira pod licenco Academic Free License 3.0 in je na voljo za Windows in Unix podobne platforme (vključno z Mac OS X).


Študiral je programski jezik # 7: Zimbu

Zimbujeva skladnja je zaradi svoje mešane narave edinstvena in specifična, hkrati pa ima veliko funkcij. Uporablja izraze in operatorje, podobne tistim, ki se uporabljajo v jeziku C, vendar z lastnimi ključnimi besedami, vrstami podatkov in strukturami blokov. Podpira upravljanje pomnilnika, niti in kanale.

Edino vprašanje je prenosljivost. Čeprav je Zimbu preveden jezik, njegov prevajalnik proizvaja kodo ANSI C, binarne datoteke pa je mogoče ustvariti samo na platformah z vgrajenim prevajalnikom C.

Žal se projekt Zimbu še razvija. Prevajalnik in nekaj vzorčnih programov lahko ustvarite sami, vendar se vsa veljavna koda Zimbu ne bo sestavila in zagnala po pričakovanjih. Vse navedene funkcije še niso razvite, nekatere od predstavljenih pa ne delujejo pravilno. Tudi jezikovna specifikacija se bo sčasoma verjetno spremenila in po potrebi dodala ključne besede, vrste in skladnjo. Posledično je tudi dokumentacija nepopolna. Če pa želite poskusiti, so potrebni pogoji že na voljo pod licenco Apache.


Študirani programski jezik # 8: X10

Vzporedna obdelava je bila nekoč specializirana niša za razvoj programske opreme, vendar je s širjenjem večjedrnih procesorjev in porazdeljenega računalništva vzporednost postala priljubljena. Na žalost trenutni programski jeziki ne sledijo temu trendu. Zato IBM Research ustvarja X10, jezik, zasnovan posebej za sodobne vzporedne arhitekture, katerega cilj je "desetkratna" produktivnost razvijalcev.

Vzporednost v X10 je možna zahvaljujoč programskemu modelu PGAS (skupni model globalnega naslovnega prostora). Koda in podatki so razdeljeni v bloke in razdeljeni v različne "prostore", s čimer je olajšano skaliranje programa iz prototipa z enim navojem (en presledek) v večnitnega, ki deluje na enem ali več večjedrnih procesorjih (več presledkov ) v gruči z visoko zmogljivostjo.

Koda X10 je najbolj podobna Javi. Izvajalno okolje X10 je v bistvu na voljo kot vdelane izvedljive datoteke in datoteke razreda za JVM. Prevajalnik X10 lahko odda izvorno kodo C ++ ali Java. V prihodnje načrtujemo razvoj združljivosti z Javo.

Jezik se medtem razvija, čeprav je že precej razvit. Prevajalnik in čas izvajanja sta na voljo za različne platforme, vključno z Linuxom, Mac OS X in Windows. Dodatni pripomočki so interaktivno razvojno okolje (IDE), ki temelji na Eclipse, in razhroščevalnik, ki sta licencirana pod javno licenco Eclipse.


Študirani programski jezik # 9: haXe

Za pisanje prenosne kode je mogoče uporabiti številne jezike. Prevajalniki C so na voljo za skoraj vse arhitekture CPE -ja, bajt -koda Java pa se bo izvajala povsod, kjer je JVM. Toda haXe (izgovarja se "hex") je več kot le prenosljiv. Je jezik z več platformami, ki se lahko uporablja v različnih operacijskih okoljih, od vgrajenih

V svetu, ki se dinamično spreminja, ko se le včeraj spoštovani poklici sprevržejo v nič, mnogi ljudje iščejo kaj početi v življenju, tako da je to zanimivo in relevantno za današnji čas, hkrati pa donosno. Zelo pogosto takšna iskanja vodijo v programiranje: dobri programerji, tudi v CIS, zaslužijo na tisoče dolarjev, imajo veliko prostega časa, zmožnost dela na daljavo in možnost za karierno rast.

Poleg teh prednosti se programiranje razlikuje tudi po tem, da za obvladovanje ni treba več let brisati hlač na univerzah. Samoizobraževanje tukaj odloča o vsem, internet ima vse potrebnih materialov za uspešno samostojno učenje katerega koli programskega jezika: lekcije v besedilni obliki, video vaje, navodila, nasveti izkušenih strokovnjakov in drugo izobraževalno gradivo. Na ta način lahko enostavno obvladate sodobne programske tehnologije in poiščete resnično dostojno službo.

Toda preden se lotite posla, si morate odgovoriti na eno pomembno vprašanje: kateri sodobni programski jeziki bodo pomembni v letu 2017, za katerega od njih bi morali porabiti čas in trud? Tu je veliko odvisno od pravilnega odgovora - zapletenost in hitrost učnega procesa, minimalni prag za vstop v resnično dejavnost, nadaljnje možnosti za kariero.

Obetavna področja programiranja in jezikov za leto 2017

Če se želite odločiti za določen programski jezik za študij (enega ali več), morate najprej odgovoriti na vprašanje: na katerem področju programiranja bi oseba rada delala. Najbolj priljubljena in hitro razvijajoča se področja so zdaj:

Tehnologije spletnega programiranja. Razvoj spletnih strani, spletne storitve in bančništvo, spletne trgovine, ciljne strani za podjetja in podobno - vse to je del spletnega programiranja. Vedno več ljudi na planetu postaja uporabnikov interneta, postaja vse hitrejše in cenejše, celo ljudje zrele in starejše starosti postajajo aktivni uporabniki interneta. V letu 2017 se ta trend le še stopnjuje in zgornja meja njegovega razvoja še ni vidna. Zato je zelo koristno učiti se programskih jezikov, povezanih z internetom. Seznam najbolj priljubljenih med njimi bo predstavljen spodaj;

Programiranje za pripomočke: pametni telefoni, tablični računalniki, pametne ure, očala za navidezno resničnost in drugo. Je tudi zelo zanimivo in hitro razvijajoče se področje dejavnosti. Milijarde ljudi po vsem svetu uporabljajo pripomočke, berejo novice o njih, gledajo videoposnetke, poslušajo glasbo in počnejo veliko drugih stvari. Vse te elektronske funkcije so možne zahvaljujoč dobro napisani programski opremi. Pogosto stane veliko več kot sama fizična naprava. Programiranje na tem področju je zdaj zelo donosno. Omeniti velja, da se tukaj najpogosteje uporabljajo programski jeziki. visoka stopnja.

Kateri jezik izbrati

Nemogoče je reči, kateri jezik je najsodobnejši. Mnogi od njih se uporabljajo zelo široko in aktivno. Kar pa zadeva obetavne programske jezike, so najboljši naslednji:

  • Java. Najbolj vsestranski in priljubljen programski jezik, ki ga je mogoče uporabiti za razvoj aplikacij za računalnike in pripomočkov, zlasti za Android OS. Ima razumljivo skladnjo, se uči precej enostavno in hitro, prve programe Java je mogoče napisati nekaj tednov po začetku usposabljanja. Glavna značilnost, zaradi katere je zelo obetavna, je uporaba za programiranje za Android, ki se zdaj zelo hitro razvija;
  • C #. Odlična možnost za osebo, ki se želi svoje dejavnosti posvetiti pisanju programov za računalniške sisteme. Jezik CI Sharp (C #) je osnova, na kateri je napisana večina Microsoftovih programov za različne platforme in storitve. Uporablja se lahko za razvoj spletnih aplikacij z uporabo .NET in Azure, pa tudi za programe neposredno za Windows, različne poslovne aplikacije in številne druge stvari. Malo se potiti, da se spopadeš s C #, vendar se bo na dolgi rok obrestovalo;
  • PHP. Če je vaša naloga pisati kakovostne skripte in interaktivne predloge za internetne vire ali biti skrbnik strežnika, ki je zdaj zelo donosen poklic, bo PHP najboljši način uresničiti takšno željo. Sodobni jeziki programiranje preprosto ne more brez tega predstavnika. Tako hitro in enostavno se uči - če temeljito in redno študirate PHP, se lahko v 2-3 letih prijavite za zelo dobro delovno mesto in ustrezno plačo.

Seveda to še zdaleč ni popolna značilnost jezikov in njihove razvrstitve, a tudi tako majhen seznam je povsem dovolj, da sami izberete dobro in obetavno področje dejavnosti.

Celoten pregled sodobnih programskih jezikov lahko traja predolgo, vendar to ni tako potrebno, saj se je treba spomniti glavne stvari - oseba, ki obvlada kateri koli jezik, bo zagotovo našla svoje mesto na področju programiranje. In znanje enega od teh jezikov bo nujno dovolj za dober denar in reševanje zanimivih problemov.

Skoraj 60 let je minilo, odkar se je leta 1957 pojavil prvi programski jezik na visoki ravni Fortran, in ni presenetljivo, da je programiranje tako dolgo napredovalo. Pojavile so se nove tehnologije, novi koncepti in programske paradigme ter seveda novi jeziki. Ustvarjanje programskega jezika je praviloma posledica povpraševanja časa: nove naloge pogosto zahtevajo nova orodja za njihovo reševanje, ki bodo delo opravila bolje kot njihovi predhodniki. V zvezi s tem se vsako leto pojavi več novih jezikov, ki absorbirajo vse najboljše, kar se je nabralo v desetletjih praktičnega programiranja, in hkrati prinašajo nekaj novega. Nekaj ​​najbolj zanimivi jeziki programiranje, ki so se pojavili pred kratkim, vendar so se že razvili kot močna in sodobna orodja za razvijalca in bodo obravnavani v tem članku.

Swift

Brezplačen jezik glavni namen ustvaril s strani Apple za razvoj za iOS in OS X. Jezik je združljiv z Objective-C, kar omogoča uporabo obeh jezikov v enem programu. Razvoj jezika se je začel leta 2010 pod vodstvom Chrisa Lattnerja, Appleovega vodje razvoja. Swift si je že od mnogih sposodil ideje obstoječih jezikih zelo različne smeri: od C ++ do Haskella. Uradna predstavitev jezika je bila junija 2014 skupaj s 500-stranskim priročnikom o njegovi uporabi. Na Swiftu lahko delate v programskem okolju Xcode 6 za iOS. Jezikovna različica 3.0 dodaja podporo za Linux.
Jezik je veliko vzel iz Objective-C; hkrati pa je postavljen kot varnejši in hitrejši. Po mnenju razvijalcev koda Swift deluje 1,5-krat hitreje od podobne kode Objective-C.

Hack

Jezik, ki ga je razvil Facebook; po videzu podoben PHP. Programska koda v Hacku se izvede na posebnem virtualnem stroju, ki podpira tudi PHP. Jezik je odprtokoden - Hack je odprt za vsakogar, ki želi sodelovati pri njegovem izboljšanju. Čeprav jezik temelji na znanem PHP-ju, je razvijalcem uspelo ustvariti popolnoma novo in zelo zanesljivo orodje za hitro ustvarjanje spletna mesta in druge aplikacije. Rezultat je tako navdušil Facebook, da so bili vsi projekti podjetja preneseni na Hack - dejstvo, ki govori samo zase.

Julija

Nov jezik za matematične izračune. Na skladnjo jezika so vplivali Matlab in drugi matematični jeziki, vendar obstajajo tudi pomembne razlike. Jezik sam je napisan v C in C ++; programska koda jezika se izvede na virtualnem stroju LLVM, za katerega je Julia opremljena s prevajalnikom JIT. Zahvaljujoč kompilaciji je bila dosežena velika hitrost aplikacijskega dela, primerljiva s programi, napisanimi v C ++.
Jezik podpira porazdeljeno računalništvo, preobremenitev funkcij in paralelizacijo kode. Glavna naloga Julije: delo z velikim obsegom izračunov ob ohranjanju visoke zmogljivosti. V te namene je bila jeziku dodana tudi podpora za računalništvo v oblaku. Poleg čisto matematične težave s pomočjo Julije je mogoče ustvariti tudi programe za splošno uporabo.

Pikado

Jezik, ki ga je Google ustvaril kot nadomestek za JavaScript. Zaradi nekaterih "temeljnih napak" v JavaScriptu, ki jih ni mogoče odpraviti, je bilo odločeno, da se ustvari nov jezik za spletno programiranje. Hkrati je bilo treba jezik ustvariti čim bolj podoben obstoječim, da bi poenostavili prehod in poučili prišleke. Trenutno se programi Dart izvajajo na dva načina: skozi navidezni stroj Dart VM in s prevodom v JavaScript. Dart naj bi v prihodnosti nadomestil JavaScript kot univerzalni jezik za spletno programiranje.

Vnesite Skript

Še en jezik, ki se postavlja kot nadomestek za JavaScript. Znani Anders Hejlsberg, avtor Delphi, C # in Turbo Pascal, je postal razvijalec novega jezika. Skript tipa je odprt jezik nazaj združljiv z Java Script. Prevajalnik pretvori kodo skripta tipa v JavaScript, ki ga nato izvede brskalnik. Za razliko od JS, novi jezik podpira vse možnosti objektno usmerjenega programiranja, pa tudi povezovanje modulov. Združljivost Type Script in JavaScript omogoča uporabo obstoječe kode JavaScript v novih projektih Script Type, vključno s priljubljenimi knjižnicami JS. Obstaja podpora za generično paradigmo programiranja.

  • Prevajanje

Če programske jezike razdelimo po priljubljenosti, so razdeljeni v tri ešalone. Prvi ešalon vključuje glavne jezike, kot so Java, JavaScript, Python, Ruby, PHP, C #, C ++ in Objective-C. Čeprav nekateri vodilni jeziki morda upadajo, je bolje, da poznate enega ali več od njih, če želite enostavno najti delo.


Jeziki druge stopnje poskušajo prodreti v mainstream, a tega še niso dosegli. Dokazali so svojo vrednost z izgradnjo močnih skupnosti, vendar jih večina konzervativnih IT podjetij še vedno ne uporablja. Scala, Go, Swift, Clojure in Haskell so jeziki, ki bi jih uvrstil v drugi ešalon. Nekatera podjetja uporabljajo te jezike za posamezne storitve vendar je široka uporaba redka (z izjemo Swifta, ki začenja prehitevati Objective-C kot primarni jezik za iOS). Go in Swift imata dobre možnosti za prehod iz stopnje 2 v stopnjo 1 v naslednjih dveh do treh letih.


Večina jezikov v prvem ešalonu je trdno zakoreninjena v svojih stališčih. Zato izguba jezika z vodilnega položaja traja veliko časa in jezik drugega ešalona se zelo težko prebije v prvega.


Obetavni jeziki iz tega članka spadajo v tretji ešalon in se šele začenjajo. Nekateri jeziki so že vrsto let v tretjem ešalonu, ne da bi pridobili priljubljenost, drugi pa so na sceno prišli v nekaj letih. Tako na primer jeziki, o katerih bo govora v članku.

Obetavni jeziki: Zakaj pet?

Pet programskih jezikov, o katerih bo govora, je zelo novih (možno je, da boste o nekaterih slišali prvič) in očitno imajo odlične možnosti, da se v naslednjih 2-3 letih prebijejo v drugi ešalon. Morda bo nekoč eden od teh jezikov uspel iztisniti jezike prvega ešalona.


Zato je bilo za ta seznam izbranih teh pet jezikov:


Elm postaja vse bolj priljubljen v skupnosti JavaScript, predvsem med tistimi, ki imajo raje funkcionalno programiranje, ki je v porastu. Tako kot TypeScript ali Dart se Elm prevaja v JavaScript.


Rust je sistemski programski jezik, namenjen predvsem nišam, ki uporabljajo C in C ++. Zato je presenetljivo, da priljubljenost tega jezika med spletnimi razvijalci hitreje raste. To dejstvo postane bolj smiselno, ko ugotovite, da je bil jezik ustvarjen v Mozilli, ki je želela dati boljšo možnost spletnim razvijalcem, ki so prisiljeni pisati kodo na nizki ravni, hkrati pa je bolj zmogljiv kot PHP, Ruby, Python ali JavaScript. Rust je bil v anketi za razvijalce StackOverflow leta 2016 tudi najboljši v kategoriji "Priljubljena tehnologija" (kar pomeni, da bi večina uporabnikov želela še naprej uporabljati jezik).


Kotlin obstaja že približno pet let, šele letos pa je dosegel različico 1.0, pripravljeno za proizvodnjo. Kljub temu, da še ni dosegel priljubljenosti Scala, Groovy ali Clojure - treh najbolj priljubljenih in zrelih jezikov (razen Jave) za JVM - izstopa iz mnogih drugih jezikov JVM in se zdi pripravljen na zaseda mesto med voditelji te skupine. ... Jezik izvira iz JetBrains (ustvarjalec priljubljene IntelliJ IDEA IDE). Zato je zasnovan s poudarkom na produktivnosti razvijalcev.


Crystal je še en jezik, ki upa, da bo program na ravni C prinesel v svet spletnih razvijalcev na visoki ravni. Crystal cilja na skupnost Ruby, ker njegova skladnja je podobna in včasih enaka kot Ruby. Že tako veliko novih podjetij Ruby še naprej raste, Crystal pa lahko igra ključno vlogo pri dvigu zmogljivosti teh aplikacij na naslednjo raven.


Elixir je navdihnil tudi ekosistem Ruby, namesto da bi poskušal prinesti koristi, podobne C, se osredotoča na izgradnjo zelo dostopnih, odzivnih sistemov, tj. s čim ima Rails po mnenju kritikov težave. Elixir te prednosti dosega z Erlang VM, ki ima trden ugled, ki temelji na 25 -letnem uspehu v telekomunikacijski industriji. Phoenix (spletni okvir za Elixir) skupaj z velikim in cvetočim ekosistemom daje temu jeziku dodatno privlačnost.


Zdaj pa poglejte, kako se štirje od teh petih jezikov povzpnejo po lestvici priljubljenosti (na podlagi podatkov StackOverflow in GitHub):




Vsak od teh jezikov se ponaša s strastno skupnostjo in lastnim tedenskim glasilom. Če razmišljate o učenju mladega jezika z vznemirljivimi možnostmi za prihodnost, preberite kratke predstavitve za vsakega od teh petih jezikov, ki so jih napisali izkušeni navdušenci in voditelji v svojih ekosistemih.

Brest

Elm je uporabnostno usmerjen funkcionalni programski jezik, ki prevede v visoko zmogljivo kodo JavaScript. Uporabite ga lahko, tudi skupaj z JavaScript, za ustvarjanje uporabniške vmesnike na internetu. Glavne prednosti Elma pred JavaScript so zanesljivost, enostavnost vzdrževanja in osredotočenost na zabavno programiranje. Natančneje:

  • Brez izjem pri izvajanju: Koda Elm ima ugled nikoli ne mečite izjem v času izvajanja... Sploh ne, da "undefined ni funkcija."
  • Legendarni prijazni prevajalnik: Elm prevajalnik pogosto pohvale za najbolj koristna poročila o hroščih med konkurenco. "Če se zbere, običajno deluje", je splošno prepričanje, tudi po večji predelavi. Zaradi tega je veliko lažje vzdrževanje velikih projektov kot sorazmernih projektov JS.
  • Semantična različica: elm-package samodejno uveljavi pomenske različice. Če avtor paketa poskuša narediti prelomne API-je, ne da bi dvignil številko glavne različice, bo elm-package to zaznal in zavrnil objavo. nova različica paket. Noben drug znani upravitelj paketov tako zanesljivo ne uveljavlja pomenskih različic.
  • Hiter in funkcionalen: Elm je čist funkcionalni jezik, ki zagotavlja, da ni mutacij ali stranskih učinkov. To ne samo, da zagotavlja odlično razširljivost kode Elm, ampak tudi pomaga pri upodabljanju uporabniškega vmesnika aplikacije hitreje kot React, Angular ali Ember.
  • Zmogljiva orodja: elm-format formatira izvorno kodo v skladu s standardom skupnosti. Nič več polemik glede konvencij o kodiranju. Samo pritisnite gumb »Shrani« v urejevalniku in vaša koda izgleda čudovito. elm-test prihaja z "baterijami", ki podpirajo enotno in naključno testiranje. elm-css vam omogoča, da napišete kodo Elm, ki se prevede v datoteko css, tako da lahko svojo kodo razdelite med aplikacijo in slogovne liste, da zagotovite, da vaše konstante nikoli ne bodo sinhronizirane.

Koda Elm lahko deluje tudi z JavaScript. To pomeni, da ga lahko v majhnih odmerkih vbrizgate v kodo JS in še vedno lahko uporabite ogromen ekosistem JS, ne da bi znova odkrili kolo.

Kotlin

Kotlin je statično tipkan jezik, ki cilja na JVM in JavaScript. Kotlin se je rodil zaradi potrebe po JetBrainsu, ki je iskal nov jezik za razvoj svoje zbirke orodij (ki je bila večinoma napisana v Javi). Nekaj, kar bi jim omogočilo uporabo obstoječe kodne baze in hkrati rešilo nekatere težave, ki jih je povzročila Java. In prav rešitve teh skupnih napak se pojavijo pri pisanju programsko opremo opredelil večino značilnosti Kotlina.

  • Jedrnatost: zmanjšati količino oznake, ki je potrebna za izražanje določenih konstruktov.
  • Vsestranskost: ustvarite jezik, ki je primeren za vse vrste industrijske uporabe, pa naj bo to splet, mobilni razvoj, namizne ali strežniške aplikacije.
  • Varnost: naj jezik sam obravnava nekatere pogoste napake, povezane z vprašanji, kot so izjeme pri ničelnih referencah.
  • Interakcija: Dovolite jeziku interakcijo z obstoječimi kodnimi bazami, knjižnicami in okviri Java, da boste lahko postopno uresničili in povečali rezultate svoje naložbe.
  • Instrumenti: JetBrains izdeluje orodja in jih prepričuje, da je mogoče številne rutinske naloge avtomatizirati in voditi do učinkovitejšega in produktivnejšega razvoja. Tako bi moral jezik zlahka dopuščati uporabo pomožnih orodij.

Kotlin je bil in bo vedno pragmatičen - iskal je pogoste težave, s katerimi se pogosto srečujemo pri pisanju kode in jih poskušamo rešiti. Kot rdeča nit teče skozi različne jezikovne funkcije, kot so:

  • Privzeto ničelno varno: Vrste Kotlin privzeto niso ničelne, kar preprečuje nadležne izjeme ničelnih sklicev / kazalcev.
  • Delegacija prvega razreda: zmožnost prenosa funkcionalnosti člana razreda na zunanjo funkcijo, kar olajša ponovno uporabo in izboljšanje sestave.
  • Sporazum: niz konvencij, ki vam omogočajo pisanje izrazne kode, ki utira pot močno tipkanemu DSL -ju, ki izboljša berljivost in olajša preoblikovanje.
    html (head (title (title (+ "XML encoding with Kotlin")) body (p (+ "This is some HTML")))

Kotlin 1.0 je bil izdan februarja 2016 po več kot petih letih razvoja in obsežnem preizkušanju v resničnih projektih. Trenutno uporablja več kot deset izdelkov JetBrains, ki uporabljajo Kotlin. Uporabljajo ga tudi podjetja, kot so Amex, NBC Digital, Expedia in Gradle.


Prejeti Dodatne informacije obiščite kotlinlang.org


Ta del je bil napisan

1. Pri izbiri programskega jezika za projekt izbira nastane med dvema stranema - izberite staro preverjeno orodje ali nov, lep, funkcionalen, a malo preizkušen in zato nezanesljiv jezik. Kaj je v tej situaciji najpametnejše? Kakšna so tveganja vsake od rešitev in kako se z njimi spopasti?

Igor Zilberg, SmartHead
Orodja je treba izbrati glede na ustreznost naloge in prisotnost izkušene ekipe, ki pozna izbrana orodja. Tveganja pri delu z novimi orodji so zmanjšana z raziskavami, oblikovanjem dokaza koncepta in vključevanjem izkušenih svetovalcev. Nove tehnologije je treba nenehno preučevati, vendar jih uporabljati le, če so bolje prilagojene določeni nalogi.

Aleksander Makarčuk, qb
Za podjetja koncept "lepega jezika" ne obstaja. Na nov nepreverjen jezik lahko stavite le, če je zagotovljeno, da bo projektu podarjen poseben USP, ki ga stranke lahko občutijo, in kar je najpomembneje, da ga želijo plačati. Če je ta pogoj izpolnjen, lahko izberete nov jezik, vendar boste morali prevzeti vsa tveganja, povezana z njim.

Grigorij Nikonov, Actis Wunderman
Seveda je odvisno od projekta in zrelosti jezika samega. Če projekt dopušča ali je uporaba jezika predpogoj in so na voljo potrebne knjižnice predmetov, potem je povsem mogoče dovoliti poskus. Tveganja so očitna: pasti, na katere lahko naletite na pol poti. Očitno je tudi zmanjšanje teh tveganj: če je mogoče, izvedite raziskavo pred začetkom projekta in se prepričajte, da je na forumih ali pri proizvajalcu vsaj vsaj aktivna podpora za jezik.

, ADV
V tem primeru je vse odvisno od časa in proračuna projekta. Če sta oba zelo omejena, potem nobena raziskava ni upravičena in lahko prinese velike težave, do popolnega propada projekta.

Aleksej Fedorov, "Sošolci"
Odgovor je v veliki meri odvisen od predvidenega trajanja projekta. Če je to majhen projekt po meri, ki ga je treba hitro opraviti, ga predati in pozabiti - potem lahko izberete kar želite. Če je to več let velik projekt, je bolje izbrati preverjene tehnologije, za katere lahko najamete toliko strokovnjakov, ki jih potrebujete. Če želite oceniti, koliko strokovnjakov za to ali ono tehnologijo je v vaši regiji, je dovolj, da uporabite katero koli razumno storitev, na primer LinkedIn ali HeadHunter. Nato morate pogledati nefunkcionalne zahteve: obremenitev, varnost, odpornost na napake itd.

2. Kateri so bistveni dejavniki, ki zagotavljajo, da se lahko jezik uporablja in ga je treba uporabljati v produkciji?

Igor Zilberg, SmartHead
Nihče in nič ne daje garancij na tem svetu. Zanašamo se na naše izkušnje in skupno dobro prakso.

Aleksander Makarčuk, qb
Obstajajo tri glavne značilnosti, ki kažejo, da je uporaba določenega jezika donosna in varna. Prvič, prisotnost "žive" skupnosti v tem jeziku, drugič, prisotnost uspešnih primerov, in tretjič, podpora jezika s strani velikih prodajalcev.

Grigorij Nikonov, Actis Wunderman
Prisotnost "zrelih" knjižnic in okvirov tematike, aktivna internetna skupnost, ki ponuja nasvete pri reševanju problemov, odsotnost negativnih ocen o stabilnosti in uspešnosti končne aplikacije.

Aleksej Persianov, Mihail Parfenjuk, ADV
Dejavniki so skupnost danega jezika, število izvedenih projektov, število razvijalcev itd. Izdaja v novem in surovem jeziku skriva velika vprašanja podpore.

Aleksej Fedorov, "Sošolci"
Uradno jamstvo je mogoče podpreti le s pogodbo. Če obstaja resen prodajalec (na primer Oracle, SAP, IBM), ki na primer zagotavlja, da bo njegova tehnologija podprta naslednjih 10 let, in je bila s tem prodajalcem podpisana ustrezna pogodba o podpori, načeloma lahko to štejete za nekakšno garancijo ... Težava je v tem, da je to običajno zelo drago, kakovost podpore velikih prodajalcev pa je običajno ogabna.

Zato je bila v zadnjih letih v svetu sprejeta drugačna praksa - odprta koda. Če imate odprtokodno orodje (jezik, okvir, bazo podatkov ali karkoli drugega) z odprtokodno izvorna koda, potem vam to daje nekaj zagotovila, da če v tem orodju nenadoma odkrijete napako, lahko v skrajnih primerih to napako popravite z lastnimi rokami. To lastnost odprtokodnih rešitev se mi zdi ključna za današnje poslovanje.

3. Kako ravnati, če razvijalec ali celo več razvijalcev predlaga spremembo programskega jezika, vendar stanje kaže, da njihove strasti ne podpirajo ustrezne poslovne zahteve glede tehnologije?

Igor Zilberg, SmartHead
Razvijalci nimajo poslovnih zahtev. Podjetje jih predstavlja. Vendar pa je poslovanje odvisno od kakovosti kode, ki jo pišejo razvijalci. Če torej želijo razvijalci uporabiti tehnologijo, ki očitno ni primerna za reševanje poslovnega problema, morajo razvijalce prepričati ali spremeniti. Ustrezen in izkušen razvijalec je sposoben razumeti poslovne zahteve in zanje uporabiti najprimernejšo rešitev. Takih težav nismo imeli. V naši praksi se pogosteje dogaja obratno: kupec, namesto da bi oblikoval poslovne zahteve, vpliva na izbiro tehnologije (pogosto v škodo uresničevanja lastnih zahtev).

Aleksander Makarčuk, qb
Če prehod v nov jezik ni podprt z oprijemljivimi argumenti in ne obljublja resnih prednosti za projekt, potem ni potreben. Razvijalci pa morajo to seveda razložiti, da ekipa ne bi imela vtisa, da jih ne poslušajo.

Grigorij Nikonov, Actis Wunderman
Držite se konservativne politike in ne spreminjajte jezika brez dobrega razloga. Vedno bo še kakšen projekt, na katerem boste preizkusili nov jezik.

Aleksej Persianov, Mihail Parfenjuk, ADV
Razvijalce lahko srečate na pol poti le v primeru notranjega projekta ali če je napisano za usposabljanje ekipe. V tem primeru je tveganje neuspeha majhno, v primeru neuspeha pa uporabne izkušnje prenesemo v prihodnost. V nasprotnem primeru podjetje ne bo cenilo perfekcionizma razvijalcev.

Aleksej Fedorov, "Sošolci"
Najprej se je treba vprašati, kaj je utemeljitev ideje o spremembi jezika. Kaj bo dal? Kakšne so prednosti in kakšne so slabosti? Koliko stane takšen prehod in kakšen je časovni okvir? Kakšna so tveganja?

Če vam odgovori, ki jih prejmete, ustrezajo s poslovnega vidika, nadaljujte. Če niste zadovoljni, morate razvijalcem poskušati posredovati razloge, zakaj jih zavrnete.

4. Kdaj se splača prehod iz enega jezika v drugega?

Igor Zilberg, SmartHead
Stroške spremembe platforme in s tem povezane koristi je nemogoče oceniti zunaj konteksta projekta. Takšna odločitev je lahko sprejeta le na podlagi premišljenega pristopa v okviru določenega projekta, ne pa na podlagi „univerzalnih“ mnenj ali pravil.

Aleksander Makarčuk, qb
Kdaj bo to prineslo oprijemljive, tako neposredne kot posredne dobičke, zaradi pojava nove USP v projektu, zaradi česar bo izdelek konkurenčnejši.

Grigorij Nikonov, Actis Wunderman
V primeru, ko uporaba novega jezika omogoča bistveno optimizacijo celotne življenjske verige predmetnega področja: od oblikovanja, razvoja in testiranja aplikacije do implementacije ter kasnejših posodobitev in izboljšav zaradi lastnosti jezika in ekosistem okoli njega.

Aleksej Persianov, Mihail Parfenjuk, ADV
Ko se jezikovna podpora ukine, hkrati pa se število strokovnjakov na trgu nagiba k ničli. Ali če popolnoma izgubite staro ekipo brez sposobnosti obdržati tehnologijo. Ko bo dobiček iz jezika večji od stroškov njegove zamenjave.

Aleksej Fedorov, "Sošolci"
Ko imate vi in ​​vaši sodelavci jasen odgovor na zgornja vprašanja.

5. Ali menite, da obstaja uveljavljena divizija pri uporabi jezikov za posebne naloge? Če da, kako natančno vidite to? Bi se lahko pojavil jezik ali že obstaja, ki bo spremenil situacijo in prevzel večino razvijalcev?

Igor Zilberg, SmartHead
Seveda obstaja nekaj tipičnih uporab za različne platforme (ne jezikov). Na primer Java in .NET za relativno velike poslovne aplikacije ali storitve. Node.js za večnitnost in pošiljanje sporočil. Vsega ni mogoče našteti. Vendar so te meje zelo, zelo zabrisane in odvisne tudi od regije. V ZDA na primer obstajajo nekoliko drugačne izkušnje z uporabo, »modo« in tipičnimi aplikacijami platform, kot so naše.

Aleksander Makarčuk, qb
Po eni strani obstaja dobro uveljavljena razdelitev jezikov po aplikacijah, po drugi strani pa so regionalni in stroškovni dejavniki precej pomembni: stroški vstopa v tehnologijo, podpora itd. Kar zadeva nastanek novih jezikov, je tukaj treba opozoriti na naslednje. V zadnjih nekaj letih se je raven komunikacije močno povečala, programski jeziki pa so v bistvu enaki. Morda bo nadaljnja revolucija v komunikacijah prinesla povsem nove razvojne tehnologije.

Grigorij Nikonov, Actis Wunderman
Načeloma obstaja takšna delitev: C in C ++ se tradicionalno uporabljata za razvoj na nizki ravni, Java in C # veljata za jezike za splošno rabo, primerne za široko paleto nalog od poslovne logike do mobilne aplikacije... Python, Ruby in PHP so osredotočeni predvsem na spletni razvoj, JavaScript na brskalniške aplikacije. Mislim, da drastične spremembe na tem področju niso možne, čeprav se včasih spreminja moda za jezike in okvire - zdaj na primer jezik Go začenja pridobivati ​​popularnost.

Aleksej Persianov, Mihail Parfenjuk, ADV
Da. Nekatere stvari je bolje implementirati v različne jezike zaradi hitrosti dela in enostavnosti uporabe, na primer v projektih php zaradi "počasnosti" jezika, lahko implementirate klepet v Node ali agregator v Javi - rezultat bo boljši.

Vsako leto vsak nov jezik prejme lovoriko "najboljših" in pritegne razvijalce, vendar so doslej verjetno položaji preverjenih jezikov neomajni. V prihodnosti je lahko vse.

Aleksej Fedorov, "Sošolci"
Večina sodobnih programskih jezikov, ki jih poznamo, je večnamenskih, torej lahko sprejemajo zelo različne odločitve.

Kar se tiče novega jezika, ja, tak jezik se lahko pojavi, vendar zaradi precej močne inercije industrije ne mislim, da bo v naslednjih 5 letih nekdo s porcelana potisnil Javo in C / C ++. Če bi izbral neke vrste "konja", bi dal JavaScript. Danes opažamo izjemno rast v industriji pri vsem, kar je povezano z JavaScript. Okviri se rojevajo kot gobe po dežju. Internetni hrup okoli te tehnologije je ogromen. Poglejmo, kam vse to vodi.

6. Ali naj bi bil programer DevOps (ima sposobnosti programerja in sistemskega administratorja)? Kaj storiti z dejstvom, da večina programerjev noče razvijati kompetenc in je na tem področju odgovorna?

Aleksej Persianov, Mihail Parfenjuk, ADV
Za nastavitev okolja običajno uporabljajo storitve skrbnika sistema. Verjetno pa je smiselno, da mora oseba, ki piše kodo, nastaviti spletno mesto za optimalno izvedbo dane kode. Tako boste prihranili čas in stroške.

7. Ali bi morali pri svojih projektih uporabljati mikroservise?

Aleksej Persianov, Mihail Parfenjuk, ADV
Dokončnega odgovora ni, je pa naš odgovor pritrdilen. Seveda lahko dodajo veliko težav, pomagajo pa tudi pri reševanju mnogih. Na primer, zahvaljujoč mikro storitvam je mogoče različne dele aplikacije zapisati v različne programske jezike, mogoče je povečati naložene dele aplikacije itd.

8. Ali mora razvijalec biti sposoben delati s široko paleto sodobnih spletnih tehnologij in jezikov?

Aleksej Persianov, Mihail Parfenjuk, ADV
V zadnjih letih je front-end naredil velik preskok, medtem ko v strežniških jezikih razvoj ni tako opazen. Razvijalec mora seveda poznati osnove sorodnih področij, vendar je nemogoče biti guru v strežniških jezikih in v jezikih na strani odjemalcev, vsak mora narediti svoje in biti v tem pravi profesionalec.