Računala Windows Internet

Najbolji programski jezik na svijetu. Pet obećavajućih programskih jezika sa svijetlom budućnošću

JavaScript je dobar za dodavanje osnovne interaktivnosti web stranicama, ali kada je kôd vaše web aplikacije tisuće redaka koda, njegove slabosti postaju očite. Zato je Google stvorio Dart, jezik za koji vjeruje da će biti novi maternji jezik za programiranje weba.

Kao i JavaScript, Dart koristi sintakse i ključne riječi slični onima koji se koriste u jeziku C. Međutim, jedna značajna razlika je ta što se JavaScript temelji na prototipovima, objekti u Dartu definirani su pomoću klasa i sučelja, kao u C ++ ili Javi. Dart također omogućuje programerima da dodatno definiraju varijable sa statičkim tipovima. Ideja je učiniti Dart poznatim, dinamičnim i fleksibilnim poput JavaScripta, a istovremeno omogućiti programerima da pišu kôd koji je brz i jednostavan za izvođenje, a teško napraviti teško pronaći greške.

Postoji nekoliko mjesta na kojima možete koristiti Dart. Dizajniran je za pokretanje na klijentu ili na poslužitelju (a la Node.js), ali jedini način za pokretanje klijentske verzije Darta je unakrsna kompilacija u JavaScript. Međutim, ni nakon toga neće se pokrenuti u svim preglednicima. No, budući da je Dart objavljen pod besplatnom BSD licencom, svaki prodavatelj koji se slaže s Googleovim uvjetima slobodan je koristiti ovaj jezik u svojim proizvodima. Googleu preostaje samo uvjeriti cijelu industriju.


Programski jezik koji se proučava # 2: Cejlon

Gavin King negira da bi Cejlon, jezik koji razvija u Red Hat -u, trebao postati "Java ubojica". King je poznat kao tvorac okvira za hibernacijsko objektno mapiranje objekata za Javu. On voli Javu, ali misli da ima još mnogo toga za poboljšati.

Neke od stvari koje King ne voli u Javi su opširna sintaksa jezika, nedostatak funkcija prve klase i višeg reda te nedostatak podrške za metaprogramiranje. Posebno ga žalosti nedostatak deklarativne sintakse za definiranje strukturiranih podataka, za koju King kaže da "izjednačava Javu s XML -om". Ceylon nastoji riješiti sve ove probleme.

King i njegov tim ne planiraju izumiti kotač. Neće postojati cejlonski virtualni stroj, cejlonski prevoditelj će proizvesti java bytecode koji se može pokrenuti na JVM -u. No Ceylon će biti više od običnog prevoditelja. Strateški cilj ovog projekta je stvaranje novog razvojnog kompleta za Ceylon koji će zamijeniti Javu, za koju King kaže da je "napuhana", neugodna i još uvijek nije potpuno modernizirana.

Ovo je težak zadatak, a Red Hat do sada nije objavio nikakve alate za Ceylon. King kaže da bi kompajler trebao izaći ove godine. Ali ne očekujte uskoro bilo kakav softver napisan na "100% čistom Cejlonu".


Proučeni programski jezik # 3: Idi

Kôd F # donekle je sličan kodu OCaml, ali sadrži vlastitu zanimljivu sintaksu. Na primjer, radi lakšeg znanstvenog izračunavanja, numerički tipovi podataka u F # mogu biti jedinice. F # također nudi konstrukcije za olakšavanje asinkronog I / O, paralelizaciju CPU -a i izlazne procese na GPU.

Nakon dugog sazrijevanja u Microsoftovom istraživanju, F # se sada isporučuje s Visual Studio 2010. Još bolje, ali ne i za cijelu korporaciju, Microsoft je učinio F # kompajler i root knjižnicu dostupnom pod Apache licencom otvorenog koda. Možete započeti s njim besplatno, pa čak i koristiti ga na Mac i Linux sustavima (koristeći vrijeme izvođenja Mono).


Proučavani programski jezik # 5: Opa

Web programiranje je vrlo složeno. Čak se i najjednostavnije web aplikacije sastoje od beskrajnih redova napisanih na više jezika: HTML i JavaScript za klijenta, Java ili PHP za poslužitelj, SQL za bazu podataka itd.

Opa ne zamjenjuje nijedan od ovih jezika zasebno. Štoviše, pokušava ih zamijeniti sve odjednom, predstavljajući potpuno novu paradigmu u web programiranju. U Opa aplikaciji, korisničko sučelje klijenta, logika poslužitelja i I / O baza podataka napisani su na istom jeziku, Opa.

To se postiže kombinacijom okvira na strani klijenta i poslužitelja. Opa prevoditelj odlučuje gdje će se izvoditi ovaj program(na klijentu, poslužitelju ili i tamo i tamo), a zatim izvršava svoj kôd. Za klijentske programe, Opa se prevodi u odgovarajući JavaScript kod, uključujući AJAX pozive.

Naravno, s ovakvim integriranim sustavom na kraju bi trebalo izaći nešto čarobno. Opa runtime integrira vlastiti web poslužitelj i sustav za upravljanje bazom podataka koji se ne može zamijeniti samostalnim alternativama. Međutim, to možda i nije toliko važno s obzirom na mogućnost razvoja modernih web aplikacija zasnovanih na podacima sa samo nekoliko desetaka redaka koda. Opa se isporučuje besplatno i uključuje ovaj trenutak dostupan je za 64-bitne Linux i Mac OS X platforme, dok su drugi portovi još u razvoju.


Proučavani programski jezik # 6: Fantom

Želite li izraditi Java ili .Net aplikacije? Ako pišete na Fantomu, možete napraviti izbor, pa čak i promijeniti platformu. To je zato što je Fantom od samog početka izgrađen za mobilnost na više platformi. Projekt Fantom ne sastoji se samo od prevoditelja koji može izlaziti bajt kod za JVM ili .Net CLI, već i skup API -ja koji razdvajaju Java i .Net API -je i stvaraju dodatni sloj prenosivosti.

Planira se dodatno povećati mobilnost Fantoma. Kompilator iz Fantoma u JavaScript već je dostupan, a sljedeći ciljevi mogu uključivati ​​projekt prevoditelja LLVM, Parrot VM i Objective-C za iOS.

Fantom se besplatno distribuira pod Akademskom besplatnom licencom 3.0 i dostupan je za Windows i Unix slične platforme (uključujući Mac OS X).


Studirao programski jezik # 7: Zimbu

Zbog svoje mješovite prirode, Zimbuova sintaksa jedinstvena je i specifična, ali istodobno ima puno značajki. Koristi izraze i operatore slične onima koji se koriste u C -u, ali s vlastitim ključnim riječima, vrstama podataka i strukturama blokova. Podržava upravljanje memorijom, niti i cjevovode.

Jedino je pitanje prenosivost. Iako je Zimbu prevedeni jezik, njegov prevoditelj proizvodi ANSI C kod, a binarne datoteke mogu se stvoriti samo na platformama s ugrađenim C prevodiocem.

Nažalost, projekt Zimbu je još uvijek u razvoju. Prevoditelj i neki uzorci programa mogu se sami izgraditi, ali neće se svi valjani Zimbu kodovi kompajlirati i pokrenuti kako se očekivalo. Nisu sve deklarirane funkcije još razvijene, a neke od već prikazanih ne rade ispravno. Specifikacije jezika također će se vjerojatno mijenjati s vremenom, dodavajući ključne riječi, vrste i sintaksu po potrebi. Posljedično, i dokumentacija je nepotpuna. Međutim, ako želite isprobati, preduvjeti su već dostupni pod Apache licencom.


Proučavani programski jezik # 8: X10

Paralelna obrada podataka nekada je bila specijalizirana niša za razvoj softvera, ali s širenjem višejezgrenih procesora i distribuiranog računalstva, paralelizam je stekao popularnost. Nažalost, trenutni programski jezici ne prate ovaj trend. Zato IBM Research stvara X10, jezik posebno dizajniran za moderne paralelne arhitekture čiji je cilj "deseterostruka" produktivnost programera.

Paralelnost u X10 moguća je zahvaljujući programskom modelu PGAS (zajednički model globalnog adresnog prostora). Kôd i podaci se raspodjeljuju u blokovima i distribuiraju u različite "prostore", čime se olakšava skaliranje programa s prototipa s jednim navojem (jedan razmak) na više s navojem koji radi na jednom ili više procesorima s više jezgri (više razmaka) ) u klasteru visokih performansi.

Kod X10 najsličniji je Javi. U biti, vrijeme izvođenja X10 dostupno je i kao ugrađene izvršne datoteke i datoteke klasa za JVM. Prevoditelj X10 može ispisati izvorni kod C ++ ili Java. U budućnosti se planira razvoj kompatibilnosti s Javom unaprijed.

U međuvremenu se jezik razvija, iako je već prilično razvijen. Prevodilac i vrijeme izvođenja dostupni su za razne platforme, uključujući Linux, Mac OS X i Windows. Dodatni uslužni programi su interaktivno razvojno okruženje (IDE) zasnovano na Eclipseu i program za otklanjanje pogrešaka koji su licencirani pod javnom licencom Eclipse.


Proučavani programski jezik # 9: haXe

Za pisanje prijenosnog koda mogu se koristiti mnogi jezici. C kompajleri su dostupni za gotovo sve CPU arhitekture, a Java bytecode će se izvoditi gdje god se nalazi JVM. Ali haXe (izgovara se "hex") više je od prijenosnog. To je jezik na više platformi koji se može koristiti u različitim radnim okruženjima, od ugrađenih

U svijetu koji se dinamično mijenja, kada se tek jučer cijenjena zanimanja pretvaraju u ništa, mnogi ljudi traže nešto čime će se baviti u životu kako bi bilo i zanimljivo i relevantno za sadašnje vrijeme, a istodobno i isplativo. Vrlo često takva pretraživanja dovode do programiranja: dobri programeri, čak i u ZND -u, zarađuju tisuće dolara, imaju puno slobodnog vremena, mogućnost rada na daljinu i imaju priliku za rast karijere.

Osim ovih prednosti, programiranje se razlikuje i po tome što za njegovo savladavanje ne morate trošiti godine na brisanje hlača na sveučilištima. Samoobrazovanje ovdje odlučuje o svemu, internet ima sve potrebnih materijala za uspješno samostalno učenje bilo kojeg programskog jezika: lekcije u tekstualnom obliku, video vodiči, upute, savjeti iskusnih stručnjaka i drugi obrazovni materijali. Na taj način lako možete svladati suvremene programske tehnologije i pronaći uistinu pristojan posao.

No prije nego što prijeđete na posao, morate si odgovoriti na jedno važno pitanje: koji će moderni programski jezici biti relevantni u 2017., na koji od njih biste trebali uložiti vrijeme i trud? Ovdje mnogo ovisi o točnom odgovoru - složenosti i brzini procesa učenja, minimalnom pragu za ulazak u stvarnu aktivnost, daljnje izglede za karijeru.

Obećavajuća područja programiranja i jezika za 2017. godinu

Da biste se odlučili za određeni programski jezik za učenje (jedan ili više), prvo morate odgovoriti na pitanje: u kojem bi području programiranja osoba voljela raditi. Najpopularnija područja koja se brzo razvijaju su:

Tehnologije web programiranja. Razvoj web stranica, mrežne usluge i bankarstvo, internetske trgovine, odredišne ​​stranice za tvrtke i slično - sve je to dio web programiranja. Sve više ljudi na planeti postaje korisnik interneta, postaje sve brže i jeftinije, čak i ljudi zrelije i starije dobi postaju aktivni korisnici interneta. U 2017. godini ovaj se trend samo pojačava i gornja granica njegova razvoja još nije vidljiva. Stoga je vrlo korisno učiti programske jezike povezane s internetom. Popis najpopularnijih od njih bit će predstavljen u nastavku;

Programiranje za gadgete: pametni telefoni, tableti, pametni satovi, naočale za virtualnu stvarnost i drugo. To je također vrlo zanimljivo područje koje se brzo razvija. Milijarde ljudi diljem svijeta koriste gadgete, čitaju vijesti o njima, gledaju videozapise, slušaju glazbu i rade mnoge druge stvari. Sve ove elektroničke funkcije moguće su zahvaljujući dobro napisanom softveru. Često košta mnogo više od samog fizičkog uređaja. Programiranje na ovom području sada je vrlo isplativo. Vrijedi napomenuti da se ovdje najčešće koriste programski jezici. visoka razina.

Koji jezik izabrati

Nemoguće je reći koji je jezik najmoderniji. Mnogi od njih koriste se vrlo široko i aktivno. No, kada su u pitanju obećavajući programski jezici, najbolji su sljedeći:

  • Java. Najsvestraniji i najpopularniji programski jezik s kojim možete razvijati aplikacije za računala i gadgete, posebno za Android OS. Ima razumljivu sintaksu, uči se prilično lako i brzo, prvi Java programi mogu se napisati nekoliko tjedana nakon početka obuke. Glavna karakteristika koja ga čini vrlo obećavajućim je njegova upotreba za programiranje za Android, koji se sada razvija vrlo brzo;
  • C #. Izvrsna opcija za osobu koja se želi posvetiti pisanju programa za računalne sustave. Upravo je jezik CI Sharp (C #) osnova na kojoj je napisana većina programa za različite platforme i usluge iz Microsofta. Može se koristiti za razvoj web aplikacija pomoću .NET -a i Azure -a, kao i programa izravno za Windows, raznih poslovnih aplikacija i mnogih drugih stvari. Malo je znojiti se uhvatiti se u koštac s C #, ali to će se dugoročno isplatiti;
  • PHP. Ako je vaš zadatak pisati visokokvalitetne skripte i interaktivne predloške za internetske resurse ili biti administrator poslužitelja, što je sada vrlo isplativo zanimanje, tada će PHP biti najbolji način ostvariti takvu želju. Moderni jezici programiranje jednostavno ne može bez ovog predstavnika. On tako brzo i lako uči - ako temeljito i redovito učite PHP, onda se za 2-3 godine možete prijaviti za vrlo dobro radno mjesto i odgovarajuću plaću.

Naravno, to je daleko od potpune karakteristike jezika i njihove klasifikacije, ali i tako mali popis sasvim je dovoljan da sami odaberete dobro i obećavajuće područje djelovanja.

Cjelovit pregled suvremenih programskih jezika mogao bi potrajati predugo, ali to nije toliko potrebno, jer vrijedi zapamtiti ono glavno - osoba koja tečno govori bilo koji jezik zasigurno će moći pronaći svoje mjesto na području programiranje. A poznavanje jednog od ovih jezika nužno će biti dovoljno za dobru zaradu i rješavanje zanimljivih problema.

Skoro 60 godina je prošlo otkako se 1957. godine pojavio prvi programski jezik na visokoj razini Fortran, pa ne čudi što je programiranje skočilo naprijed kroz tako dugo vrijeme. Pojavile su se nove tehnologije, novi koncepti i programske paradigme i, naravno, novi jezici. U pravilu je stvaranje programskog jezika posljedica zahtjeva vremena: novi zadaci često zahtijevaju nove alate za njihovo rješavanje, koji će posao obaviti bolje od svojih prethodnika. S tim u vezi svake se godine pojavljuje nekoliko novih jezika koji upijaju sve najbolje što se nakupilo desetljećima praktičnog programiranja i istovremeno donose nešto novo. Neki od većine zanimljivi jezici programiranja koji su se pojavili tek nedavno, ali su se već etablirali kao moćni i moderni alati za programere i bit će razmotreni u ovom članku.

Brz

Slobodan jezik Opća namjena napravio od strane Applea za razvoj za iOS i OS X. Jezik je kompatibilan s Objective-C, što omogućuje korištenje oba jezika u jednom programu. Razvoj jezika započeo je 2010. godine pod vodstvom Chrisa Lattnera, Appleova voditelja razvoja. Swift je već posudio ideje od mnogih postojećih jezika vrlo različiti smjerovi: od C ++ do Haskella. Službeno predstavljanje jezika dogodilo se u lipnju 2014. zajedno s priručnikom od 500 stranica o tome kako ga koristiti. Na Swiftu možete raditi u programskom okruženju Xcode 6 za iOS. Jezična verzija 3.0 dodaje podršku za Linux.
Jezik je mnogo preuzeo od Objective-C; u isto vrijeme pozicioniran je kao sigurniji i brži. Prema programerima, Swift kod radi 1,5 puta brže od sličnog Objective-C koda.

Hack

Jezik koji je razvio Facebook; izgledom sličan PHP -u. Programski kod na Hacku izvršava se na posebnom virtualnom stroju koji također podržava PHP. Jezik je otvorenog koda - Hack je otvoren za svakoga tko želi sudjelovati u njegovom poboljšanju. Iako se jezik temelji na dobro poznatom PHP-u, programeri su uspjeli stvoriti potpuno novi i vrlo pouzdan alat za brzo stvaranje web stranice i druge aplikacije. Rezultat je toliko impresionirao Facebook da su svi projekti tvrtke prebačeni u Hack - činjenica koja govori sama za sebe.

Julija

Novi jezik za matematičke izračune. Na sintaksu jezika utjecali su Matlab i drugi matematički jezici, ali postoje i značajne razlike. Sam jezik je napisan na C i C ++; programski kod jezika izvršava se na virtualnom stroju LLVM, za koji je Julia opremljena JIT kompajlerom. Zahvaljujući kompilaciji postignuta je velika brzina rada na aplikacijama, usporediva s programima napisanim u C ++.
Jezik podržava distribuirano računanje, preopterećenje funkcija i paralelizaciju koda. Glavni zadatak Julije: rad s velikim brojem izračuna uz održavanje visokih performansi. U tu je svrhu jeziku dodana i podrška za računalstvo u oblaku. Osim čisto matematički problemi uz pomoć Julije moguće je i stvaranje programa opće namjene.

Strijelica

Jezik koji je Google stvorio kao zamjenu za JavaScript. Zbog nekih "temeljnih nedostataka" u JavaScriptu koji se ne mogu popraviti, odlučeno je stvoriti novi jezik za web programiranje. Istodobno, jezik je morao biti stvoren što je moguće sličnije postojećim, kako bi se pojednostavio prijelaz i naučilo pridošlice. Trenutno se Dart programi izvode na dva načina: kroz virtualni stroj Dart VM i prijevodom na JavaScript. U budućnosti će Dart zamijeniti JavaScript kao univerzalni jezik za web programiranje.

Upišite Skripta

Drugi jezik koji se postavlja kao zamjena za JavaScript. Poznati Anders Hejlsberg, autor Delphi, C # i Turbo Pascal, postao je programer novog jezika. Skripta tipa je otvoren jezik unatrag kompatibilan s Java Script. Prevoditelj pretvara kod skripte tipa u JavaScript, koji zatim izvršava preglednik. Za razliku od JS-a, novi jezik podržava sve mogućnosti objektno orijentiranog programiranja, kao i povezivanje modula. Type Script i JavaScript kompatibilnost omogućuju korištenje postojećeg JavaScript koda u novim projektima Type Script, uključujući popularne JS knjižnice. Postoji podrška za generičku paradigmu programiranja.

  • Prijevod

Ako programske jezike podijelimo prema popularnosti, oni su podijeljeni u tri ešalona. Prvi ešalon uključuje glavne jezike kao što su Java, JavaScript, Python, Ruby, PHP, C #, C ++ i Objective-C. Iako neki od vodećih jezika možda nestaju, bolje je poznavati jedan ili više njih ako želite lako pronaći posao.


Jezici drugog reda pokušavaju se probiti u mainstream, ali to još nisu postigli. Dokazali su svoju vrijednost izgradnjom jakih zajednica, ali ih većina konzervativnih IT kompanija još uvijek ne koristi. Scala, Go, Swift, Clojure i Haskell jezici su koje bih svrstao u drugi ešalon. Neke tvrtke koriste te jezike za individualne usluge ali je široka upotreba rijetka (s izuzetkom Swifta, koji počinje prestizati Objective-C kao primarni jezik za iOS). Go i Swift imaju dobre šanse za prijelaz s razine 2 na razinu 1 u sljedeće dvije do tri godine.


Većina jezika u prvom ešalonu čvrsto je ukorijenjena u svojim pozicijama. Stoga gubitak jezika s vodećeg mjesta oduzima znatnu količinu vremena, a jezik drugog ešalona vrlo je teško probiti se u prvi.


Jezici koji obećavaju iz ovog članka pripadaju trećem ešalonu i oni tek počinju svoj put prema gore. Neki su jezici dugi niz godina u trećem ešalonu bez stjecanja popularnosti, dok su drugi na scenu izašli u samo nekoliko godina. Kao, na primjer, jezici o kojima će biti riječi u članku.

Obećavajući jezici: Zašto pet?

Pet programskih jezika o kojima će biti riječi vrlo su novi (moguće je da ćete za neke čuti prvi put) i očito imaju izvrsne šanse za proboj u drugi ešalon u sljedeće 2-3 godine. Možda će jednog dana jedan od ovih jezika uspjeti istisnuti jezike prvog ešalona.


Zato je za ovaj popis odabrano ovih pet jezika:


Brijest dobiva popularnost u JavaScript zajednici, prvenstveno među onima koji preferiraju funkcionalno programiranje, koje je u porastu. Kao i TypeScript ili Dart, Elm se prenosi u JavaScript.


Rust je programski jezik za sustav usmjeren prvenstveno na niše koje koriste C i C ++. Stoga je iznenađujuće vidjeti da popularnost ovog jezika sve brže raste među web programerima. Ova činjenica postaje značajnija kada saznate da je jezik stvoren u Mozilli, koja je htjela dati bolju opciju web razvojnim programerima koji moraju pisati kôd niske razine, a istovremeno je performansnija od PHP, Ruby, Python ili JavaScript. Rust je također proglašen najboljim u kategoriji "Omiljena tehnologija" u anketi za programere StackOverflow 2016. (što znači da bi većina korisnika željela nastaviti koristiti jezik).


Kotlin postoji oko pet godina, no tek je ove godine stigao do verzije 1.0 spremne za proizvodnju. Unatoč činjenici da još nije postigao popularnost Scala, Groovy ili Clojure - tri najpopularnija i najzrelija (osim Jave) jezika za JVM - izdvaja se od mnogih drugih jezika JVM -a i čini se da je spreman zauzeti mjesto među vođama ove grupe. ... Jezik je nastao u JetBrainsu (tvorcu popularnog IntelliJ IDEA IDE -a). Stoga je osmišljen s naglaskom na produktivnost programera.


Crystal je još jedan jezik koji se nada da će dovesti izvedbu programa na razini C u svijet web programera na visokoj razini. Crystal cilja na Ruby zajednicu jer njegova je sintaksa slična, a ponekad i identična, Rubyju. Već veliki broj Ruby startupa nastavlja rasti, a Crystal može odigrati ključnu ulogu u pomaganju podizanju performansi ovih aplikacija na višu razinu.


Elixir je također dobio inspiraciju iz Ruby ekosustava, ali umjesto da pokuša donijeti prednosti poput C-a, usredotočuje se na izgradnju visoko dostupnih, osjetljivih sustava, tj. s čime Rails ima problem prema kritikama. Elixir ove prednosti postiže s Erlang VM -om, koji ima solidnu reputaciju izgrađenu na 25 godina uspjeha u telekomunikacijskoj industriji. Phoenix (web okvir za Elixir), zajedno s velikim i cvjetajućim ekosustavom, daje ovom jeziku dodatnu privlačnost.


Sada pogledajte kako se četiri od ovih pet jezika penju na ljestvici popularnosti (na temelju podataka StackOverflow i GitHub):




Svaki od ovih jezika ima strastvenu zajednicu i vlastiti tjedni bilten. Ako razmišljate o učenju mladog jezika s uzbudljivim mogućnostima za budućnost, pročitajte kratke prezentacije za svaki od ovih pet jezika, koje su napisali iskusni entuzijasti i vođe u svojim ekosustavima.

Brijest

Elm je funkcionalni programski jezik usmjeren na upotrebljivost koji se kompilira u JavaScript kod visokih performansi. Možete ga koristiti, uključujući zajedno s JavaScriptom, za stvaranje korisnička sučelja na internetu. Glavne prednosti Elma u odnosu na JavaScript su pouzdanost, lakoća održavanja i fokus na zabavu programiranja. Konkretnije:

  • Nema izuzetaka za vrijeme izvođenja: Brijestov kod ima reputaciju nikada ne bacajući iznimke za vrijeme izvođenja... Nimalo da "undefined nije funkcija".
  • Legendarni ljubazni prevoditelj: Elm kompajler često pohvale za najkorisnije izvještaje o greškama među konkurencijom. "Ako se sastavi, obično samo funkcionira" uobičajeno je uvjerenje, čak i nakon velikog prepravljanja. To čini velike projekte brijestova mnogo lakšim za održavanje od razmjernih JS projekata.
  • Semantička verzija: elm-package automatski provodi semantičke verzije. Ako autor paketa pokuša unijeti promjene u API-ju bez podizanja glavnog broja verzije, elm-package će to otkriti i odbiti objavljivanje. nova verzija paket. Nijedan drugi poznati upravitelj paketa ne provodi tako pouzdano semantičko određivanje verzija.
  • Brz i funkcionalan: Brijest je čisti funkcionalni jezik koji osigurava da nema mutacija ili nuspojava. Ovo ne samo da pruža izvrsnu skalabilnost Elm koda, već mu pomaže i da generira korisničko sučelje aplikacije brže od React, Angular ili Ember.
  • Moćni alati: elm-format formatira izvorni kod prema standardu zajednice. Nema više kontroverzi oko konvencija kodiranja. Samo kliknite gumb "Spremi" u svom uređivaču i vaš kôd izgleda lijepo. elm-test dolazi s "baterijama" koje podržavaju i jedinično i nasumično testiranje. elm-css omogućuje vam pisanje Elm koda koji se kompilira u css datoteku, tako da svoj kôd možete podijeliti između svoje aplikacije i stilskih tablica kako biste osigurali da vaše konstante nikada neće izaći iz sinkronizacije.

Elm kod također može komunicirati s JavaScriptom. Odnosno, možete ga ubrizgati u malim dozama u svoj JS kôd, a i dalje možete koristiti ogroman JS ekosustav bez ponovnog pronalaska kotača.

Kotlin

Kotlin je statički upisan jezik koji cilja JVM i JavaScript. Kotlin je rođen iz potrebe za JetBrains -om, koji je tražio novi jezik za razvoj svog alata (koji je uglavnom bio napisan na Javi). Nešto što bi im omogućilo korištenje postojeće baze kodova i istovremeno riješilo neke probleme koje je Java uzrokovala. I upravo se rješenja ovih uobičajenih nedostataka javljaju pri pisanju softver definirao većinu karakteristika Kotlina.

  • Konciznost: smanjiti količinu predznaka potrebnog za izražavanje određenih konstrukata.
  • Svestranost: stvoriti jezik prikladan za bilo koju vrstu industrijske primjene, bilo da je to web, mobilni razvoj, desktop ili poslužiteljske aplikacije.
  • Sigurnost: dopustite jeziku da sam rješava neke od uobičajenih pogrešaka koje se odnose na probleme poput iznimki nulte reference.
  • Interakcija: Dopustite jeziku interakciju s postojećim Java kodnim bazama, knjižnicama i okvirima kako biste mogli postupno implementirati i iskoristiti rezultate svog ulaganja.
  • Instrumenti: JetBrains izrađuje alate i čini ih iz uvjerenja da se mnogi rutinski zadaci mogu automatizirati i dovesti do učinkovitijeg i produktivnijeg razvoja. Dakle, jezik bi trebao lako dopustiti uporabu pomoćnih alata.

Kotlin je bio i uvijek će biti pragmatičan - tražeći uobičajene probleme s kojima se često susrećemo prilikom pisanja koda i pokušavamo im pomoći u rješavanju. Prolazi kao crvena nit kroz različite jezične značajke kao što su:

  • Prema zadanim postavkama null-safe: Kotlin tipovi prema zadanim postavkama ne mogu se poništiti, čime se izbjegavaju dosadne iznimke nulte reference / pokazivača.
  • Delegacija prve klase: mogućnost delegiranja funkcionalnosti člana razreda na vanjsku funkciju, što olakšava ponovnu uporabu i poboljšanje sastava.
  • Sporazum: skup konvencija koje vam omogućuju pisanje ekspresivnog koda, otvarajući put snažno tipiziranom DSL -u koji poboljšava čitljivost i olakšava preradu.
    html (head (title (title (+ "XML encoding with Kotlin")) body (p (+ "Ovo je neki HTML")))

Kotlin 1.0 objavljen je u veljači 2016. nakon više od pet godina razvoja i opsežnog testiranja na stvarnim projektima. Trenutno postoji više od deset JetBrains proizvoda koji koriste Kotlin. Koriste ga i tvrtke kao što su Amex, NBC Digital, Expedia i Gradle.


Primiti dodatne informacije posjetite kotlinlang.org


Ovaj dio je napisan

1. Prilikom odabira programskog jezika za projekt, izbor se javlja između dvije strane - odaberite stari provjereni alat ili novi, lijep, funkcionalan, ali malo provjeren, pa stoga i nepouzdan jezik. Što je najpametnije učiniti u ovoj situaciji? Koji su rizici svakog rješenja i kako se s njima nositi?

Igor Zilberg, SmartHead
Alate treba odabrati ovisno o primjerenosti zadatka i prisutnosti iskusnog tima koji je upoznat s odabranim alatima. Rizici pri radu s novim alatima minimizirani su istraživanjem, stvaranjem dokaza o konceptu i uključivanjem iskusnih konzultanata. Nove tehnologije moraju se stalno proučavati, ali primjenjivati ​​samo ako bolje odgovaraju određenom zadatku.

Aleksandar Makarčuk, qb
Za poslovanje koncept "lijepog jezika" ne postoji. Možete se kladiti na novi neprovjereni jezik samo ako je zajamčeno da će projektu dati poseban USP koji korisnici mogu osjetiti, i što je najvažnije, žele ga platiti. Ako je ovaj uvjet ispunjen, tada možete odabrati novi jezik, ali ćete morati preuzeti sve rizike povezane s njim.

Grigorij Nikonov, Actis Wunderman
Naravno, to ovisi o projektu i zrelosti samog jezika. Ako projekt dopušta ili je upotreba jezika preduvjet, a dostupne su potrebne biblioteke predmeta, onda je sasvim moguće dopustiti eksperiment. Rizik je očit: zamke na koje se može naići na pola puta. Smanjivanje ovih rizika također je očito: ako je moguće, provedite istraživanje prije početka projekta i pobrinite se da u najmanju ruku postoji aktivna podrška za jezik na forumima ili od proizvođača.

, ADV
U tom slučaju sve ovisi o vremenu i proračunu projekta. Ako su oboje vrlo ograničeni, onda svako istraživanje nije opravdano i može donijeti veliki problemi, do potpunog neuspjeha projekta.

Aleksej Fedorov, "Kolege"
Odgovor uvelike ovisi o planiranom trajanju projekta. Ako je ovo mali projekt izrađen po mjeri koji treba brzo obaviti, predati i zaboraviti na njega - tada možete izabrati što god želite. Ako je ovo veliki projekt godinama, onda je bolje izabrati provjerene tehnologije za koje možete zaposliti potreban broj stručnjaka. Kako biste procijenili koliko stručnjaka za određenu tehnologiju postoji u vašoj regiji, dovoljno je koristiti bilo koju razumnu uslugu, na primjer, LinkedIn ili HeadHunter. Zatim morate pogledati nefunkcionalne zahtjeve: opterećenje, sigurnost, toleranciju grešaka itd.

2. Koji su bitni čimbenici koji osiguravaju da se jezik može i treba koristiti u proizvodnji?

Igor Zilberg, SmartHead
Nitko i ništa ne daju jamstva na ovom svijetu. Oslanjamo se na svoje iskustvo i zajedničku najbolju praksu.

Aleksandar Makarčuk, qb
Tri su glavne značajke koje ukazuju na to da je isplativo i sigurno koristiti određeni jezik. Prvo, prisutnost "žive" zajednice na ovom jeziku, drugo, prisutnost uspješnih slučajeva, i treće, podrška jeziku od strane velikih prodavača.

Grigorij Nikonov, Actis Wunderman
Prisutnost "zrelih" predmetnih knjižnica i okvira, aktivna internetska zajednica koja nudi savjete u rješavanju problema, odsutnost negativnih kritika o stabilnosti i izvedbi konačne aplikacije.

Aleksej Persianov, Mihail Parfenjuk, ADV
Čimbenici su zajednica danog jezika, broj implementiranih projekata, broj programera itd. Produkcijsko izdanje na novom i sirovom jeziku skriva velika pitanja podrške.

Aleksej Fedorov, "Kolege"
Službeno jamstvo može biti potkrijepljeno samo ugovorom. Ako postoji ozbiljan dobavljač (na primjer, Oracle, SAP, IBM), koji jamči, na primjer, da će njegova tehnologija biti podržana sljedećih 10 godina, te je s tim dobavljačem potpisan odgovarajući Ugovor o podršci, u načelu, ovo možete smatrati nekom vrstom jamstva ... Problem je u tome što je to obično vrlo skupo, a kvaliteta podrške velikih dobavljača obično je odvratna.

Stoga je posljednjih godina u svijetu usvojena drugačija praksa - open source. Ako imate alat otvorenog koda (jezik, okvir, bazu podataka ili bilo što drugo) s otvorenim kodom izvorni kod, onda vam to daje izvjesno jamstvo da ako se u ovom alatu iznenada pronađe greška, tada u ekstremnim slučajevima možete ispraviti ovu pogrešku vlastitim rukama. To svojstvo open source rješenja smatram ključnim za današnje poslovanje.

3. Kako postupiti ako programer ili čak nekoliko programera predloži promjenu programskog jezika, ali situacija pokazuje da njihovu strast ne podupiru odgovarajući poslovni zahtjevi za tehnologijom?

Igor Zilberg, SmartHead
Programeri nemaju poslovne zahtjeve. Posao ih predstavlja. Međutim, poslovanje ovisi o kvaliteti koda koji programeri pišu. Stoga, ako programeri žele koristiti tehnologiju koja očito nije prikladna za rješavanje poslovnog problema, onda moraju ili uvjeriti programere ili je promijeniti. Odgovarajući i iskusni programer sposoban je razumjeti poslovne zahtjeve i na njih primijeniti najprikladnije rješenje. Nismo imali takvih problema. U našoj se praksi češće događa suprotno: kupac, umjesto da formulira poslovne zahtjeve, utječe na izbor tehnologije (često na štetu provedbe vlastitih zahtjeva).

Aleksandar Makarčuk, qb
Ako prijelaz na novi jezik nije podržan opipljivim argumentima i ne obećava ozbiljne prednosti za projekt, onda to nije potrebno. No, programeri, naravno, moraju to objasniti kako tim ne bi imao dojam da ih ne sluša.

Grigorij Nikonov, Actis Wunderman
Pridržavajte se konzervativne politike i ne mijenjajte jezik bez dobrog razloga. Uvijek će postojati još jedan projekt na kojem ćete isprobati novi jezik.

Aleksej Persianov, Mihail Parfenjuk, ADV
Razvojne programere možete upoznati na pola puta samo u slučaju internog projekta ili ako je napisano za obuku tima. U tom slučaju, rizici neuspjeha su mali, a u slučaju kvara, korisno iskustvo prenosi se u budućnost. Inače, posao neće cijeniti perfekcionizam programera.

Aleksej Fedorov, "Kolege"
Prvo se treba zapitati na čemu se temelji ideja o promjeni jezika. Što će to dati? Koje su prednosti, a koje nedostaci? Kolika je cijena takvog prijelaza i koji je vremenski okvir? Koji su rizici?

Ako vam odgovori koje primate odgovaraju s poslovnog gledišta, samo naprijed. Ako niste zadovoljni, morate pokušati programerima prenijeti razloge zašto ih odbijate.

4. Kada se isplati cijena prelaska s jednog jezika na drugi?

Igor Zilberg, SmartHead
Nemoguće je procijeniti troškove promjene platforme i srodne koristi izvan konteksta projekta. Takva se odluka može donijeti samo na temelju namjernog pristupa u okviru određenog projekta, a ne na temelju bilo kakvih „univerzalnih“ mišljenja ili pravila.

Aleksandar Makarčuk, qb
Kada će to podrazumijevati opipljivu dobit, izravnu i neizravnu, zbog pojave novog USP -a u projektu, koji će proizvod učiniti konkurentnijim.

Grigorij Nikonov, Actis Wunderman
U slučaju kada upotreba novog jezika omogućuje značajnu optimizaciju čitavog životnog lanca predmetnog područja: od dizajna, razvoja i testiranja aplikacije do implementacije te naknadnih ažuriranja i poboljšanja zbog svojstava jezika i ekosustava oko njega.

Aleksej Persianov, Mihail Parfenjuk, ADV
Kad se jezična podrška prekine, a istodobno, broj stručnjaka na tržištu teži nuli. Ili ako potpuno izgubite stari tim bez mogućnosti zadržavanja tehnologije. Kad će zarada od jezika biti veća od cijene prebacivanja.

Aleksej Fedorov, "Kolege"
Kad vi i vaše kolege imate jasne odgovore na gornja pitanja.

5. Mislite li da postoji uspostavljena podjela u korištenju jezika za posebne zadatke? Ako da, kako to točno vidite? Može li se pojaviti jezik ili već postoji koji će promijeniti situaciju i preuzeti većinu programera?

Igor Zilberg, SmartHead
Naravno, postoje neke tipične uporabe za različite platforme (ne za jezike). Na primjer Java i .NET za relativno velike poslovne aplikacije ili usluge. Node.js za multitreading i razmjenu poruka. Ne može se sve nabrojati. Međutim, te su granice vrlo, vrlo zamagljene i također ovise o regiji. U SAD -u, na primjer, postoji nešto drugačije iskustvo korištenja, "mode" i tipičnih primjena platformi od našeg.

Aleksandar Makarčuk, qb
S jedne strane, postoji dobro uspostavljena podjela jezika prema aplikacijama, ali s druge strane, regionalni i troškovni čimbenici prilično su važni: cijena ulaska u tehnologiju, podrška itd. S obzirom na pojavu novih jezika, ovdje je potrebno primijetiti sljedeće. U posljednjih nekoliko godina razina komunikacije značajno je porasla, a programski jezici su u biti isti. Možda će daljnja revolucija u komunikacijama zahtijevati potpuno nove razvojne tehnologije.

Grigorij Nikonov, Actis Wunderman
U načelu postoji takva podjela: C i C ++ tradicionalno se koriste za razvoj na niskoj razini, Java i C # smatraju se jezicima opće namjene prikladnima za širok raspon zadataka od poslovne logike do mobilne aplikacije... Python, Ruby i PHP fokusirani su uglavnom na web razvoj, JavaScript na aplikacije preglednika. Ne mislim da su moguće drastične promjene na ovom području, iako se moda za jezike i okvire ponekad mijenja - sada, na primjer, jezik Go počinje dobivati ​​popularnost.

Aleksej Persianov, Mihail Parfenjuk, ADV
Da. Neke stvari je bolje implementirati u različiti jezici zbog brzine rada i jednostavnosti korištenja, na primjer, u php projektima zbog "sporosti" jezika, možete implementirati chat u Nodeu ili agregator u Javi - rezultat će biti bolji.

Svake godine svaki novi jezik dobiva lovorike "najboljih" i privlači programere, ali zasad su vjerojatno pozicije provjerenih jezika nepokolebljive. U budućnosti sve može biti.

Aleksej Fedorov, "Kolege"
Većina modernih programskih jezika koje poznajemo su višenamjenski, odnosno mogu donositi vrlo različite odluke.

Što se tiče novog jezika, da, takav se jezik može pojaviti, ali zbog prilično jake inercije industrije, ne mislim da će u sljedećih 5 godina netko gurnuti Javu i C / C ++ s pijedestala. Ako izaberem neku vrstu "konja", onda bih stavio JavaScript. Danas vidimo ogroman rast u industriji u svemu što se odnosi na JavaScript. Okviri se rađaju poput gljiva nakon kiše. Internetska buka oko ove tehnologije velika je. Pogledajmo kamo sve ovo vodi.

6. Treba li programer biti DevOps (imati vještine programera i administratora sustava)? Što učiniti s činjenicom da većina programera odbija razvijati kompetencije i biti odgovorna u ovom području?

Aleksej Persianov, Mihail Parfenjuk, ADV
Za postavljanje okruženja obično koriste usluge administratora sustava. No, vjerojatno ima smisla da osoba koja piše kôd treba moći postaviti web mjesto za optimalno izvršavanje zadanog koda. Time ćete uštedjeti vrijeme i troškove.

7. Trebate li koristiti mikroservise u svojim projektima?

Aleksej Persianov, Mihail Parfenjuk, ADV
Ne postoji jasan odgovor, ali naš je odgovor potvrdan. Naravno, mogu dodati mnogo problema, ali će i pomoći u rješavanju mnogih. Na primjer, zahvaljujući mikro uslugama, različiti dijelovi aplikacije mogu se pisati na različitim programskim jezicima, moguće je skalirati učitane dijelove aplikacije itd.

8. Treba li programer biti sposoban raditi sa širokim rasponom suvremenih web tehnologija i jezika?

Aleksej Persianov, Mihail Parfenjuk, ADV
Posljednjih godina front-end je napravio veliki skok, dok razvoj u poslužiteljskim jezicima nije toliko zamjetan. Programer, naravno, mora poznavati osnove srodnih područja, ali nemoguće je biti guru u jezicima na strani poslužitelja i jezicima na strani klijenta, svatko mora raditi svoje i biti pravi profesionalac u tome.