Programavimas

21 karšto programavimo tendencija ir 21 šalta

Programuotojai mėgsta pasišaipyti iš mados pasaulio, kuriame tendencijos pučia kaip vėjeliai. Sijono ilgis kyla ir krinta, pigmentai ateina ir praeina, kaklaraiščiai storėja, tada plonėja. Tačiau technologijų pasaulyje griežtumas, mokslas, matematika ir tikslumas valdo užmiršimą.

Tai nereiškia, kad programavimas yra profesija, neturinti tendencijų. Skirtumas tas, kad programavimo tendencijas lemia didesnis efektyvumas, didesnis pritaikymas ir paprastas naudojimas. Naujos technologijos, teikiančios vieną ar daugiau iš jų, užtemdo ankstesnę kartą. Tai meritokratija, o ne kaprizas-okratija.

Toliau pateikiamas sąrašas, kas karšta ir ko nėra tarp šių dienų programuotojų. Ne visi sutiks su tuo, kas įrašyta A, kas D sąraše ir kas liko. Štai kas daro programavimą be galo patrauklia profesija: greiti pokyčiai, aistringos diskusijos, staigūs sugrįžimai.

Karšta: išankstiniai procesoriai

Ne: Visos kalbos kaupiasi

Ne taip seniai žmonės, sukūrę naują programavimo kalbą, turėjo sukurti viską, kas kodą pavertė silicio paduodamais bitais. Tada kažkas suprato, kad jie gali prisirišti prie ankstesnio darbo. Dabar protingos idėjos turintys žmonės tiesiog parašo išankstinį procesorių, kuris naują kodą paverčia kažkuo senu, turėdamas gausų bibliotekų ir API rinkinį.

Skriptų kalbos, tokios kaip „Python“ ar „JavaScript“, kažkada apsiribojo mažais projektais, tačiau dabar jos yra rimto darbo pagrindas. Tie, kurie nemėgo „JavaScript“, sukūrė „CoffeeScript“ - išankstinį procesorių, leidžiantį jiems vėl koduoti, be varginančių skyrybos ženklų. Yra dešimtys variantų, kurie sintaksę nurodo ir nulemia kitaip.

Žmonės, pamėgę dinamišką spausdinimą, sukūrė „Groovy“ - paprastesnę „Java“ versiją be pernelyg atkaklių skyrybos ženklų. Panašu, kad JVM yra dešimtys kalbų - „Groovy“, „Scala“, „Clojure“, „Kotlin“ ir kt., Tačiau yra tik viena JVM. Daug kalbų galite paleisti ir .Net VM. Kodėl reikia iš naujo išrasti ratą?

Karšta: be serverio

Ne: dokeris

Tai nėra tiesa. Docker konteineriai yra visur. Serveriai visą laiką sukasi ir uždaro konteinerius. Tačiau „Docker“ konteineriai yra soooo daug didesni, nei jie turi būti.

Gerai pagalvoję, galite parašyti tik kelias dešimtis eilių realaus sprendimų priėmimo kodo tai mikropaslaugai, kurią diegiate, tačiau turėsite išmesti bazilijoną konfigūracijos eilučių, kad prasidėtų „Node.js“ ir bet kas kitas teisingai su Docker. Taip, visa tai yra katilinė, bet to trūksta.

Naujos be serverio architektūros leido įdiegti tik tuos kelis „jei tada“ kitus teiginius, kurie priima tikrus sprendimus. Visa kita paliekama žmonėms, kurie mums nuomoja serverio platformą.

Taip, po kelerių metų skųsime dėl užrakinimo ir pritaikymo trūkumo, tačiau kol kas be serverio parinktys atrodo malonus palengvinimas nuo visų programų ir konfigūracijos.

Karšta: „JavaScript MV *“ sistemos

Ne: „JavaScript“ failai

Seniai visi išmoko rašyti „JavaScript“, kad atsirastų įspėjimo langelis, arba patikrino, ar formos el. Pašto adrese yra @ ženklas. Dabar HTML AJAX programos yra tokios sudėtingos, kad mažai žmonių pradeda nuo nulio. Paprasčiau priimti sudėtingą sistemą ir parašyti šiek tiek klijų kodo, kad įgyvendintumėte savo verslo logiką.

Dabar yra dešimtys sistemų, tokių kaip „Kendo“, „Sencha“, „jQuery Mobile“, „AngularJS“, „Ember“, „Backbone“, „Meteor JS“ ir daugybė kitų.

Tai tik žiniatinklio programos. Taip pat yra keletas variantų, kurie siūlo įvairių platformų plėtrą išmaniųjų telefonų / planšetinių kompiuterių pasaulyje. Tokios technologijos kaip „NativeScript“, „PhoneGap“, „Apache Cordova“ ir „React Native“ yra kelios galimybės kurti programas iš HTML5 technologijos.

Karšta: CSS sistemos

Ne: bendroji CSS

Kažkada prie tinklalapio pridėjus šiek tiek pizzazz reikėjo atidaryti CSS failą ir įtraukti naują komandą, pvz., šrifto stilius: kursyvas. Tada išsaugojote bylą ir nuėjote pietauti po sunkaus ryto darbo. Dabar tinklalapiai yra tokie sudėtingi, kad neįmanoma užpildyti failo tokiomis paprastomis komandomis. Vienas spalvos pakoregavimas ir viskas dingsta. Tai panašu į tai, ką jie sako apie sąmokslus ir ekologijas: viskas yra tarpusavyje susiję.

Štai CSS sistemos, tokios kaip SASS, ir jos pusbroliai, pavyzdžiui, „Compass“, atrado tvirtą pagrindą. Jie skatina raštingą, stabilų kodavimą siūlydami programavimo konstrukcijas, tokias kaip realūs kintamieji, lizdų blokai ir papildiniai. Galbūt tai neskamba kaip daug naujumo programavimo lygmenyje, tačiau tai yra didelis šuolis į priekį dizaino sluoksnyje.

Karšta: SVG ant drobės

Ne: „Flash“

„Flash“ daugelį metų varė žmones iš proto, tačiau atlikėjams visada patiko rezultatai. Anti-alias atvaizdavimas atrodo puikiai, ir daugelis talentingų menininkų sukūrė gilų „Flash“ kodo šūsnį, kad galėtų pasiūlyti sudėtingų perėjimų ir animacijų. Laisvalaikio žaidimai ir toliau yra labai populiarūs. Taigi „Flash“ prilimpa prie gyvenimo internete.

Dabar, kai „JavaScript“ sluoksnis turi galimybę padaryti tą patį, naršyklių kūrėjai ir kūrėjai džiaugiasi „Flash“ pabaigos. Jie mato geresnę integraciją su DOM sluoksniu iš naujų formatų, tokių kaip SVG (Scalable Vector Graphics). SVG ir HTML sudaro viena didelė krūva žymelių, kurias žiniatinklio kūrėjams dažnai lengviau naudoti. Tada yra didelės API, kurios siūlo sudėtingą piešinį ant „Canvas“ objekto, dažnai naudojant vaizdo plokštes. Sujunkite juos ir jums beliks kelios priežastys, kodėl daugiau naudoti „Flash“.

Karšta: beveik dideli duomenys (analizė be Hadoopo)

Ne: dideli duomenys (su Hadoop)

Visiems patinka jaustis Didžiuoju miesteliu, o jei ne, jie ieško tinkamo dydžio miestelio, kuriame galėtų išsiskirti. Tada nenuostabu, kad kai žodžiai „didieji duomenys“ pradėjo sklisti per vadovų komplektą, kostiumai ėmė prašyti didžiausių, galingiausių didžiųjų duomenų sistemų, tarsi pirktų jachtą ar dangoraižį.

Juokingiausia, kad daugelis problemų nėra pakankamai didelės, kad būtų galima panaudoti fantaziškiausius didžiųjų duomenų sprendimus. Žinoma, tokios kompanijos kaip „Google“ ar „Yahoo“ stebi visą mūsų naršymą internete; jie turi duomenų bylas, matuojamas petabaitais arba yotabaitais. Tačiau dauguma įmonių turi duomenų rinkinius, kurie gali lengvai tilpti į pagrindinio kompiuterio RAM. Rašau tai asmeniniame kompiuteryje su 16 GB RAM - pakanka milijardui įvykių su saujomis baitų. Daugumoje algoritmų duomenų nereikia skaityti į atmintį, nes srautas iš SSD yra puikus.

Bus atvejų, kai reikalingas greitas dešimčių mašinų, esančių „Hadoop“ debesyje, veikiantis lygiagrečiai, laikas, tačiau daugelis puikiai sujungs vieną mašiną be jokių koordinavimo ar ryšio rūpesčių.

Karšta: kibirkštis

Ne: Hadoopas

Ne tiek daug, kad Hadoopas atvėsta. Tai daugiau, kad „Apache Spark“ yra raudona, todėl „Hadoop“ modelis atrodo šiek tiek senas. „Spark“ pasiskolino keletą geriausių Hadoopo požiūrio idėjų išgaunant iš didelių duomenų kiekių idėjų ir atnaujino jas keletu patikimų patobulinimų, kurie leidžia kodui veikti daug, daug greičiau. Didžiausias gali būti tai, kad „Spark“ saugo duomenis greitoje atmintyje, užuot reikalaudama, kad viskas būtų parašyta ir nuskaityta iš paskirstytos failų sistemos.

Žinoma, daugelis žmonių sujungia abu šiuos duomenis naudodami „Spark“ apdorojimo greitį duomenims, saugomiems Hadoop paskirstytoje failų sistemoje. „Hadoop“ ir „Spark“ yra dažniau partneriai nei konkurentai.

Karšta: duomenų bazės konfigūracija

Ne: programinės įrangos programavimas

Jau seniai programuotojai juokavo, kad nežinojo, kaip programavimas atrodys kitą šimtmetį, tačiau žinojo, kad tai bus vadinama „Fortran“. Šis pokštas buvo toks juokingas, kad jie nukris nuo dinozaurų ir sulaužys medinius apatinius. Tada jie grįžo prie duomenų bazės konfigūravimo.

Ir mes vis dar kuriame duomenų bazes šiandien, tačiau tai, ką mes galvojame kaip apie „duomenų bazę“, dabar yra daug kartų sudėtingesnė ir galingesnė. Pasirinktinės duomenų bazės sinchronizuos save žemynuose, tuo pačiu užtikrindamos lanksčią kompromisą tarp nuoseklumo ir greičio. Kai kurios debesų paslaugos, pvz., „Firebase“, išstums naujus duomenis į žiniatinklio programas, veikiančias mobiliuosiuose klientuose.

Didžioji dalis serverių revoliucijos yra pagrįsta supratimu, kad daugelis debesų duomenų saugyklų dabar yra tokios galingos, kad mums reikia parašyti tik keletą „jei tada“ kitų sąlygų, kad sukurtume gana šaunią internetinę programą.

Karšta: žaidimų rėmai

Ne: vietinių žaidimų kūrimas

Kažkada žaidimų kūrimas reiškė samdyti daugybę kūrėjų, kurie viską parašė C nuo nulio. Žinoma, tai kainavo bazilijoną dolerių, bet atrodė puikiai ir bėgo kaip vėjas. Dabar niekas negali sau leisti pritaikyto kodo prabangos. Dauguma žaidimų kūrėjų atsisakė pasididžiavimo prieš daugelį metų ir savo sistemoms kurti naudoja tokias bibliotekas kaip „Unity“, „Corona“ ar „LibGDX“. Jie nerašo tiek C kodo, kiek instrukcijos bibliotekoms.

Ar gaila, kad mūsų žaidimai nėra rankų darbo iš pasididžiavimo, o štampuojami naudojant tą patį variklį? Ne. Daugelis kūrėjų palengvėjo. Kadangi jiems nereikia spręsti detalių, jie gali sutelkti dėmesį į žaidimą, pasakojimo lanką, personažus ir meną.

Karšta: statiniai svetainių generatoriai

Ne: Vieno puslapio žiniatinklio programos

Pamenate, kai URL nukreipė į tinklalapius, užpildytus statiniu tekstu ir vaizdais? Tada atsirado dinamiškos, vieno puslapio žiniatinklio programos, kurios visas pakeitė viena protinga žiniatinklio programėle, kuri atgautų atitinkamus duomenis. Spėk? Švytuoklė svyruoja atgal, o visi vaikai kuria statinių vietų generatorius. Jų yra dešimtys. Tai tarsi hibridas. Jūs sudedate visus duomenis į vieną krūvą ir tada parašote kodą, kuris įklijuoja duomenis į kai kuriuos šablonus, kad kiekvienam statiniam URL būtų po vieną HTML failą, kuris atsirado iš kiekvienos duomenų lentelės eilutės.

Vaikai mano, kad šios statiškos vietos yra labai greitos ir yra. Tik nesakykite jiems, kad senosios dinaminės sistemos, tokios kaip „WordPress“ ir „Drupal“, veikė panašiai, laikydamos talpyklas, kurios buvo beveik užpildytos statiniais puslapiais, sukurtais naujausiais duomenimis.

Karšta: „GraphQL“

Ne: POILSIS

Nėra taip, lyg poilsis būtų miręs. Tiesiog mes norime padaryti daugiau su API, o „GraphQL“ yra būdas tai padaryti. „GraphQL“ pateikia duomenis JSON, kaip ir „REST“. „GraphQL“ prasideda nuo HTTP POST, kaip ir daugelis REST skambučių. Tiesiog „GraphQL“ sintaksė leidžia nurodyti labai sudėtingas užklausas tik keliais klavišų paspaudimais. Tai palengvina programuotojų prašymą tik to, ko jie nori, ir sumažina serverio darbo, kurį reikia atlikti, kai kas nors nori šiek tiek kitokios API, kiekį.

Karšta: debesų IDE

Ne: vietiniai IDE

Jau seniai žmonės naudojo komandinės eilutės kompiliatorių. Tada kažkas tai integravo su redaktoriumi ir kitais įrankiais, kad sukurtumėte IDE. Dabar atėjo laikas IDE užtemdyti (ha) naršyklės įrankiais, leidžiančiais redaguoti kodą, net ir veikiančios sistemos kodą. Jei jums nepatinka, kaip veikia „WordPress“, jame yra įmontuotas redaktorius, leidžiantis pakeisti kodą iškart tada. „Microsoft Azure“ leidžia rašyti „JavaScript“ klijų kodą tiesiai į savo portalą. Šios sistemos nesiūlo geriausios derinimo aplinkos, o redaguojant gamybos kodą yra kažkas pavojingo, tačiau idėja turi kojų.

Galite pradėti nuo „AWS Cloud9“, „Codenvy“ ir „Mozilla's WebIDE“, bet toliau tyrinėkite. Internetiniai įrankiai tampa vis galingesni. Pavyzdžiui, „Microsoft Azure“ svetainėje galima sukurti visą didelių duomenų analizės projektą. Ir jei pradėsite tyrinėti galimybes be serverio, greitai suprasite, kad galite visą savo kodą įrašyti į formos elementą tinklalapyje. Tokia, kuri nėra daug didesnė už formą, kurią naudojate atnaujindami savo draugus „Facebook“.

Karšta: GPU

Ne: procesorius

Kai programinė įranga buvo paprasta ir instrukcijos buvo išdėstytos gražioje eilutėje, procesorius buvo kompiuterio karalius, nes jis sunkiai kėlė visas jėgas. Dabar, kai vaizdo žaidimai yra užpildyti plačia grafine tvarka, kuri gali veikti lygiagrečiai, vaizdo plokštė vykdo pasirodymą. Puošniai vaizdo plokštei lengva išleisti 500, 600 ar daugiau dolerių, o kai kurie rimti žaidėjai naudoja daugiau nei vieną. Tai daugiau nei dvigubai kainuoja daugelio pagrindinių stalinių kompiuterių kainą.

Be to, ne tik žaidėjai giriasi savo GPU kortelėmis. Kompiuterininkai dabar konvertuoja daugybę lygiagrečių programų, kad jos GPU veiktų šimtus kartų greičiau. Duomenų mokslininkai naudoja serverius, supakuotus su GPU, kad pagreitintų mašininio mokymosi modelių kūrimą.

Karšta: „GitHub“

Ne: Résumés

Žinoma, apie kandidatą galėtumėte sužinoti perskaitę išpūstą pasiekimų sąrašą, kuriame yra jaunesniųjų šachmatų klubo viceprezidentas. Bet skaityti tikrąjį kieno nors kodą yra taip turtingiau ir pamokomiau. Ar jie rašo gerus komentarus? Ar jie sugaišta per daug laiko skirstydami daiktus į mažas klases, kuriose mažai? Ar yra tikra architektūra, kurioje yra galimybių plėstis? Į visus šiuos klausimus galima atsakyti žvilgtelėjus į jų kodą.

Štai kodėl dalyvavimas atvirojo kodo projektuose tampa vis svarbesnis ieškant darbo. Bendrinti kodą iš patentuoto projekto yra sunku, tačiau atvirojo kodo kodas gali būti visur.