Programiranje

21 vročih programskih trendov in 21 hladnih

Programerji se radi posmehujejo svetu mode, kjer trendi pihajo kot veter. Dolžine krila naraščajo in padajo, pigmenti prihajajo in odhajajo, kravate postanejo debelejše in nato tanjše. Toda v svetu tehnologije strogost, znanost, matematika in natančnost prevladujejo nad modo.

To še ne pomeni, da je programiranje poklic brez trendov. Razlika je v tem, da trende programiranja spodbujajo večja učinkovitost, večja prilagoditev in enostavnost uporabe. Nove tehnologije, ki prinesejo enega ali več od teh, zasenčijo prejšnjo generacijo. To je meritokracija, ne pa muhastost.

Sledi seznam vročega in česa ne med današnjimi programerji. Ne bodo se vsi strinjali s tem, kaj je na seznamu A, kaj na seznamu D in kaj je izpuščeno. To je tisto, zaradi česar je programiranje neskončno fascinanten poklic: hitre spremembe, strastna razprava, nenadne vrnitve.

Vroče: predprocesorji

Ne: polni jeziki

Nedolgo nazaj so morali ljudje, ki so ustvarili nov programski jezik, zgraditi vse, kar je kodo spremenilo v bit, ki je doveden v silicij. Potem je nekdo ugotovil, da bi se lahko lotil dela, ki je prišlo prej. Zdaj ljudje s pametno idejo preprosto napišejo predprocesor, ki novo kodo pretvori v nekaj starega z bogatim naborom knjižnic in API-jev.

Skriptni jeziki, kot sta Python ali JavaScript, so bili nekoč omejeni na majhne projekte, zdaj pa so temelj za resno delo. Tisti, ki jim JavaScript ni bil všeč, so ustvarili CoffeeScript, predprocesor, ki jim spet omogoča kodiranje brez zahtevnih ločil. Obstaja na desetine različic, ki sintakso napovedujejo in napovedujejo na drugačen način.

Ljudje, ki so oboževali dinamično tipkanje, so ustvarili Groovy, preprostejšo različico Jave brez preveč vztrajnih ločil. Zdi se, da obstaja več deset jezikov - Groovy, Scala, Clojure, Kotlin itd., Ki delujejo na JVM, vendar je JVM samo en. Na .Net-ovem VM lahko poganjate tudi številne jezike. Zakaj na novo izumiti kolo?

Vroče: brez strežnika

Ne: Docker

To ni ravno res. Docker zabojniki so povsod. Strežniki se ves čas vrtijo in zapirajo zabojnike. Vendar Docker zabojniki so takoooo veliko večje, kot bi morale biti.

Če dobro premislite, lahko napišete le nekaj deset vrstic resnične kode za odločanje za tisto mikro storitev, ki jo nameščate, vendar boste morali v bazion vrstic konfiguracije zagnati Node.js in karkoli drugega pravilno z Dockerjem. Da, vse je kot primer, vendar to pogreša bistvo.

Nove brezstrežniške arhitekture nam omogočajo, da uporabimo le tistih nekaj stavkov, ki bi lahko sprejeli resnične odločitve. Vse ostalo je prepuščeno ljudem, ki nam najemajo brezstrežniško platformo.

Da, čez nekaj let se bomo pritoževali zaradi zaklepanja in pomanjkanja prilagajanja, toda za zdaj so možnosti brez strežnika videti kot lepo olajšanje vseh devopov in konfiguracije.

Vroče: okviri JavaScript MV *

Ne: datoteke JavaScript

Že zdavnaj so se vsi naučili pisati JavaScript, da se prikaže opozorilno polje, ali preverite, ali e-poštni naslov v obrazcu vsebuje znak @. Zdaj so aplikacije HTML AJAX tako dovršene, da le malo ljudi začne iz nič. Preprosteje je sprejeti dodelan okvir in napisati malo lepilne kode za izvajanje vaše poslovne logike.

Zdaj je na desetine okvirov, kot so Kendo, Sencha, jQuery Mobile, AngularJS, Ember, Backbone, Meteor JS, in še veliko več, vsi pripravljeni na obdelavo dogodkov in vsebine za vaše spletne aplikacije in strani.

To so zgolj spletne aplikacije. Obstaja tudi več programov, ki ponujajo razvoj med platformami za svet pametnih telefonov / tabličnih računalnikov. Tehnologije, kot so NativeScript, PhoneGap, Apache Cordova in React Native, so nekatere od možnosti za ustvarjanje aplikacij iz tehnologije HTML5.

Vroče: ogrodja CSS

Ne: Splošni CSS

Nekoč je dodajanje malo pizzazza na spletno stran pomenilo odpiranje datoteke CSS in vključitev novega ukaza, kot je slog pisave: ležeče. Nato ste shranili datoteko in po težkem jutranjem delu odšli na kosilo. Zdaj so spletne strani tako izpopolnjene, da je datoteke nemogoče napolniti s tako preprostimi ukazi. Eden se potegne v barvo in vse izgine. To je tako, kot pravijo o zarotah in ekologijah: vse je medsebojno povezano.

Tam so okviri CSS, kot je SASS, in njegovi bratranci, kot je Compass, našli trdno podlago. Spodbujajo pismeno in stabilno kodiranje, tako da ponujajo programske konstrukcije, kot so realne spremenljivke, gnezdeči bloki in mešanice. Mogoče se ne sliši kot veliko novosti v programski plasti, vendar je velik korak naprej za oblikovalsko plast.

Vroče: SVG na platnu

Ne: Flash

Flash že leta znori ljudi, toda umetniki so rezultate vedno imeli radi. Izpostavljeni učinek upodabljanja je videti čudovito in številni nadarjeni umetniki so zgradili globok kup Flash kode, da bi ponudili prefinjene prehode in animacije. Casual igre so še vedno zelo priljubljene. Flash se torej drži življenja na spletu.

Zdaj, ko ima sloj JavaScript možnost narediti skoraj enako, izdelovalci brskalnikov in razvijalci navijajo za konec Flasha. Boljšo integracijo s slojem DOM vidijo iz novih formatov, kot je SVG (Scalable Vector Graphics). SVG in HTML vsebujeta en velik kup oznak, ki jih spletni razvijalci pogosto lažje uporabljajo. Potem obstajajo veliki API-ji, ki ponujajo dodelano risanje predmeta Canvas, pogosto s pomočjo grafičnih kartic. Sestavite jih in ostane vam malo razlogov za večjo uporabo Flasha.

Vroče: Skoraj veliki podatki (analiza brez Hadoopa)

Ne: veliki podatki (s Hadoop-om)

Vsi se radi počutijo kot Veliki človek v kampusu, in če niso, iščejo kampus ustrezne velikosti, kjer bi lahko izstopali. Zato ni presenetljivo, da ko so besede "veliki podatki" začele teči po izvršni enoti, so obleke začele zahtevati največje, najmočnejše sisteme za velike podatke, kot da bi kupili jahto ali nebotičnik.

Smešno je, da številni problemi niso dovolj veliki, da bi lahko uporabili najbolj modne rešitve za velike podatke. Seveda podjetja, kot sta Google ali Yahoo, spremljajo vse naše brskanje po spletu; imajo podatkovne datoteke, merjene v petabajtih ali jotabajtih. Toda večina podjetij ima nabore podatkov, ki se zlahka prilegajo RAM-u osnovnega računalnika. To pišem na osebnem računalniku s 16 GB RAM-a - dovolj za milijardo dogodkov s peščico bajtov. V večini algoritmov podatkov ni treba brati v pomnilnik, ker je pretakanje s SSD v redu.

Obstajali bodo primeri, ki zahtevajo hiter odzivni čas ducatov strojev v Hadoopovem oblaku, ki deluje vzporedno, vendar se bodo mnogi dobro odrezali na enem samem stroju brez težav pri usklajevanju ali komunikaciji.

Vroče: Iskra

Ne: Hadoop

Ne gre toliko za to, da se Hadoop ohlaja. Bolj gre za to, da je Apache Spark vroče, zaradi česar je model Hadoop videti nekoliko star. Spark si izposodi nekaj najboljših idej Hadoopovega pristopa k pridobivanju pomena iz velikih količin podatkov in jih posodobi z nekaj trdnimi izboljšavami, zaradi katerih koda deluje veliko, veliko hitreje. Največji je morda način, kako Spark hrani podatke v hitrem pomnilniku, namesto da zahteva, da se vse zapisuje in bere iz distribuiranega datotečnega sistema.

Seveda jih veliko ljudi združuje s hitrostjo obdelave Spark za podatke, shranjene v distribucijskem datotečnem sistemu Hadoop. Hadoop in Spark sta pogosteje partnerja kot tekmeca.

Vroče: konfiguracija zbirke podatkov

Ne: Programiranje programske opreme

Že davno so se programerji šalili, da niso vedeli, kako bo videti programiranje v naslednjem stoletju, vedeli pa so, da se bo imenovalo Fortran. Ta šala je bila tako smešna, da bi padli z dinozavrov in si zlomili leseno spodnje perilo. Potem bi se vrnili k konfiguraciji baze podatkov.

In še danes gradimo zbirke podatkov, toda tisto, kar imamo za "bazo podatkov", je zdaj velikokrat bolj dodelano in zmogljivo. Zbirke podatkovnih baz se bodo sinhronizirale po celinah, hkrati pa bodo nudile prilagodljiv kompromis med skladnostjo in hitrostjo. Nekatere storitve v oblaku, kot je Firebase, bodo nove podatke potiskale do spletnih aplikacij, ki se izvajajo na mobilnih odjemalcih.

Večina revolucije brez strežnikov temelji na spoznanju, da je veliko podatkovnih shramb v oblaku zdaj tako zmogljivih, da moramo napisati le nekaj klavzul, če pa takrat, da bomo ustvarili precej kul spletno aplikacijo.

Vroče: ogrodja iger

Ne: razvoj izvornih iger

Nekoč je razvoj iger pomenil najeti veliko razvijalcev, ki so vse v C napisali iz nič. Seveda je stalo milijon dolarjev, vendar je bilo videti super in je teklo kot veter. Zdaj si nihče ne more privoščiti razkošja kode po meri. Večina razvijalcev iger se je pred leti odrekla ponosu in za izdelavo svojih sistemov uporablja knjižnice, kot so Unity, Corona ali LibGDX. Kode C ne pišejo toliko kot navodila za knjižnice.

Ali je sramota, da naše igre niso ročno izdelane s ponosom, temveč iztisnjene z istim motorjem? Ne. Večina razvijalcev si oddahne. Ker se jim ni treba ukvarjati s podrobnostmi, se lahko osredotočijo na igro, pripovedni lok, like in umetnost.

Vroče: Statični generatorji spletnih mest

Ne: spletne strani z eno stranjo

Se spomnite, kdaj so URL-ji usmerjali na spletne strani, napolnjene s statičnim besedilom in slikami? Nato so se pojavile dinamične spletne strani z eno stranjo, ki so jih vse nadomestile z eno pametno spletno aplikacijo, ki bi zbirala zadevne podatke. Ugani kaj? Nihalo se niha nazaj in vsi otroci gradijo statične generatorje mest. Teh je na ducate. Je kot hibrid. Vse podatke shranite na en kup in nato napišete neko kodo, ki podatke zlepi v nekatere predloge, tako da obstaja ena datoteka HTML za vsak statični URL in ta izhaja iz vsake vrstice v tabeli s podatki.

Otroci mislijo, da so ta statična spletna mesta izjemno hitra in da so. Samo ne recite jim, da so stari dinamični sistemi, kot sta WordPress in Drupal, delovali približno enako, tako da so hranili predpomnilnike, ki so bili precej napolnjeni s statičnimi stranmi, ustvarjenimi z najnovejšimi podatki.

Vroče: GraphQL

Ne: POČITEK

Ni tako, kot da je REST mrtev. Samo z API-jem želimo narediti več, GraphQL pa je način za to. GraphQL vrne podatke v obliki JSON, tako kot REST. GraphQL se začne s HTTP POST, tako kot mnogi klici REST. Sintaksa GraphQL vam omogoča, da z le nekaj pritiski na tipke določite zelo zapletene poizvedbe. Tako programerji poenostavijo, da zahtevajo le tisto, kar želijo, in zmanjša količino strežniškega dela, ki ga je treba opraviti, ko nekdo želi nekoliko drugačen API.

Vroče: IDE v oblaku

Ne: lokalni IDE

Že dolgo nazaj so ljudje uporabljali prevajalnik ukazne vrstice. Nato je nekdo to integriral z urejevalnikom in drugimi orodji za ustvarjanje IDE. Zdaj je čas, da IDE zasenčijo (ha) orodja, ki temeljijo na brskalniku in vam omogočajo urejanje kode, tudi kode delujočega sistema. Če vam ni všeč, kako WordPress deluje, je na voljo z vgrajenim urejevalnikom, ki vam omogoča, da kodo spremenite takoj in tam. Microsoftov Azure vam omogoča, da na svoj portal pišete kodo lepila JavaScript. Ti sistemi ne ponujajo najboljših okolij za odpravljanje napak in pri urejanju produkcijske kode obstaja nekaj nevarnega, vendar ima ideja noge.

Začnete lahko z AWS Cloud9, Codenvy in Mozilla's WebIDE, vendar nadaljujte z raziskovanjem. Spletna orodja postajajo vse močnejša. Na Microsoftovem spletnem mestu Azure je na primer mogoče zgraditi celoten projekt analize velikih podatkov. In če začnete raziskovati možnosti brez strežnika, boste hitro ugotovili, da lahko na svojo spletno stran vpišete vso kodo v element obrazca. Takšnega, ki ni veliko večji od obrazca, ki ga uporabljate za posodobitev prijateljev na Facebooku.

Vroče: GPU

Ne: CPU

Ko je bila programska oprema enostavna in so bila navodila razporejena v lepo vrstico, je bil CPU kralj računalnika, ker je vse težko dvignil. Zdaj, ko so video igre napolnjene z obsežnimi grafičnimi rutinami, ki se lahko izvajajo vzporedno, video kartica vodi oddajo. Za modno grafično kartico je enostavno zapraviti 500, 600 ali več dolarjev, nekateri resni igralci pa jih uporabljajo več. To je več kot dvojna cena številnih osnovnih namiznih računalnikov.

Poleg tega igralci niso edini, ki se hvalijo s svojimi grafičnimi karticami. Računalniki zdaj pretvarjajo številne vzporedne aplikacije, da bi se na GPU izvajale stotine-krat hitreje. In podatkovni znanstveniki uporabljajo strežnike, opremljene z grafičnimi procesorji, da pospešijo razvoj svojih modelov strojnega učenja.

Vroče: GitHub

Ne: življenjepisi

Seveda bi se o kandidatu lahko naučili tako, da preberete napihnjen seznam dosežkov, ki vključuje podpredsednika šahovskega kluba mlajših gimnazij. Toda branje dejanske kode nekoga je toliko bogatejše in poučnejše. Pišejo dobre komentarje? Ali zapravljajo preveč časa za razbijanje predmetov v drobne razrede, ki naredijo malo? Ali obstaja prava arhitektura s prostorom za širitev? Na vsa ta vprašanja lahko odgovorite s pogledom na njihovo kodo.

Zato je sodelovanje pri odprtokodnih projektih vedno bolj pomembno za iskanje službe. Skupna raba kode iz lastniškega projekta je težka, odprtokodna koda pa je lahko povsod.

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