Za razvijalce JavaScript, več možnosti pomeni težke izbire


Učenje programiranja jezik je samo del postati razvijalec programske opreme. Te dni programska oprema za pisanje vključuje ekosistem orodij iz programov, ki jih razvijalci uporabljajo za napotitev svoje kode v storitve računalništva v oblaku, ki jih izvajajo. Izbira orodij je del naloge.

Tisti, ki pišejo kodo, ki teče v vašem brskalniku, so imeli tradicionalno manj možnosti kot njihovi back-end vrstniki, ki napišeta kodo, ki se izvaja na strežnikih. Brskalniki prvenstveno vodijo programski jezik JavaScript, medtem ko razvijalci back-end morajo izbrati vrtoglavo število programskih jezikov in povezanih orodij.

To se spreminja v času eksplozije v orodjih, ki omogočajo lažje življenje razvijalcem na čelu. Nova orodja so mešani blagoslov: večja izbira je dobra, vendar orodja lahko hitro padajo in izstopajo iz naklonjenosti.

Razvijalci se zdaj močno zanašajo na okvire aplikacij – svežnje delov za večkratno uporabo in splošno strukturo za gradnjo programske opreme. V začetku leta 2015 je bil najpogosteje prenesen JavaScript okvir Backbone, glede na podatke, ki jih je zbral NPM, ki omogoča orodja za upravljanje paketov JavaScript kode. Do konca tega leta ga je prevzela takratna nova knjižnica Reacta Facebook. Zdaj, manj kot štiri leta kasneje, Backbone je padel na peto mesto, za novimi okviri, kot je upstart Vue, ki se je povečala v uporabi v zadnjih dveh letih, glede na podatke, ki jih je NPM predstavil prejšnji mesec.

Ta turbulenca ustvarja izzive za razvijalce in delodajalce. Kot mnogi programerji, Joe Previte, vodilni inženir v svetovalni družbi v Scottsdaleju v Arizoni, poskuša slediti najnovejšim tehnologijam, tako da dela v stranskih projektih v svojem prostem času. Toda pogosto skrbi, da se osredotoča na napačne stvari ali da se lahko preveč raztegne. "Cilj v vsaki karieri je postati strokovnjak za to znanje," pravi. "Delo v JavaScriptu, ki ima vse te nove knjižnice in okvire, bi lahko globoko potopili v React in nato prešli na nekaj drugega v celoti za naslednji projekt in morali preživeti šest mesecev učenja, namesto da bi razvili globoko strokovno znanje v eni tehnologiji. "

To je tudi izziv za delodajalce, ki morajo privabiti razvijalce in zagotoviti, da bodo orodja, ki se uporabljajo za gradnjo svoje programske opreme, podprta v prihodnjih letih. "To je kot pogled v kristalno kroglo," pravi Matt Tucker, izvršni direktor in soustanovitelj podjetja Koan, ki daje programsko opremo za upravljanje ekip. "Stavite na to, kaj se bo še vedno zgodilo že nekaj let, uravnotežiti tehnične premisleke s premisleki skupnosti".

Zakaj je tako zapleteno?

Jose Aguinaga, CTO kriptocurrency podjetja MyBit, je zaznamoval dezorientirano naravo sodobnega razvoja JavaScript v širokem skupnem članku 2016. V njem je prikazal izmišljen pogovor med razvijalcem, ki v nekaj letih ni posvečal pozornosti JavaScriptu in nekdo, ki je pospešil najnovejše trende. Malo aktualni razvijalec želi pridobiti nekaj podatkov s strežnika in ga prikazati na spletni strani ter vse bolj razočaran, saj kolega predlaga uporabo novih orodij z imeni, kot so Grunt, Gulp in Broccoli.

Del pogovornega pogovora Hosea Aguinage 2016 med dvema razvijalcema JavaScripta.

Jose Aguinaga

Članek je bil satiričen, vendar so omenjena orodja resnična. Predlogi Aguinaginega izmišljenega hipsterja so verjetno pretiravali, vendar bi bilo veliko utemeljitev za uporabo teh orodij smiselno v večjih projektih. "Orodja postajajo bolj zapletena, ker je programska oprema, ki jo gradimo, bolj zapletena," pravi Tucker.

To je relativno nov pojav v sprednjem delu, pravi Quincy Larson, ustanovitelj izobraževalnega mesta FreeCodeCamp. Zgodovinsko gledano je bil JavaScript uporabljen predvsem za to, da so spletne strani interaktivne. Razvijalci lahko napišete kodo, ki je hodila uporabniku, tako da je izpolnil obrazec ali dovolil, da bi preklopili skozi digitalni foto album, programer pa bi to lahko pozneje pozabljal, dokler ni bila stran preoblikovana. Zdaj pa se razvijalci vse pogosteje pozivajo, naj zgradijo programsko opremo v namiznem slogu, ki se izvaja v programih brskalnika, kot je Koan, programska oprema za upravljanje projektov Trello ali aplikacijska aplikacija Slack za klepet na delovnem mestu.

Te bolj zapletene aplikacije zahtevajo, da ekipe razvijalcev sodelujejo na kodah, jo posodobijo, ko uporabniki odkrivajo hrošče in sčasoma dodajajo nove funkcije. Naraščajoče stabilno orodje JavaScript želi olajšati življenje programerjem tako, da jih osvobodi ponovnega ustvarjanja skupnih lastnosti iz nič, olajša drugim, da razumejo in spremenijo svojo kodo ali olajšajo iskanje napak v velikih kodnih bazah.

Razvijalci že od sredine devetdesetih let prejšnjega stoletja izdelujejo takšna orodja za back-end programiranje, vendar razvijalci na čelu igrajo do konca. Vzpon in padec orodij JavaScript bi lahko imitiral vzpon in padec njihovih predhodnih predhodnikov na stisnjenem časovnem traku.

Turbulence se lahko še poglabljajo z drugimi programskimi trendi. Koan CTO Arend Naylor opozarja na naraščajočo priljubljenost "funkcionalnega programiranja", ki v bistvu otežuje kodo v enem delu programa, da bi zmotil kodo v drugem delu istega programa. React's Facebook je med orodji, ki ponujajo podporo za funkcionalno programiranje, ki postaja vse pogostejše, ker programska oprema postane bolj zapletena.

Učne veščine za prihodnost

Ta nestabilnost odvrača nekatere upravitelje od uporabe orodij, ki jih ustvarijo zunanji sodelavci. Brian Leroux, CTO za zagon računalništva v oblaku Začetek, pravi, da podjetje skuša v največji možni meri preprečiti sklicevanje na okvire JavaScript ali druga orodja tretjih oseb. To ne pomeni, da Begin nikoli ne uporablja teh orodij, vendar Leroux pravi, da lahko nova različica knjižnice razbije staro kodo lahko dolgoročno ustvari več dela za razvijalce, tudi če to pomaga hitreje izdelati izdelek.

Kljub temu so knjižnice, kot je React, postala norma in obstaja nekaj soglasja, da lahko prihranijo napor. Naylor pravi, da ekipa Koan ne bo uporabljala knjižnic, če lahko preprosto reproducirajo svojo funkcionalnost znotraj podjetja, vendar se ekipa zanaša na React in sorodna orodja. CTO in razvijalci pravijo, da pri izbiri tehnologij gledajo na velikost skupnosti za projektom. Kakovostno orodje z enim samim razvijalcem, ki bi ga lahko prizadel avtobus, otežuje projekt na projektu.

Za upravljanje nepredvidljivosti se praktično vsi strinjajo, da se morajo razvijalci najprej osredotočiti na gradnjo trdnih programskih osnov, zlasti v JavaScriptu. "Ko obvladate osnove, je vse to samo drugačna blagovna znamka," pravi Leroux. Previte, na primer, je lahko iztovoril službo, ki dela z Reactom, čeprav je bila njegova prva izkušnja z Vuejem.

Toda Aguinaga trdi, da ni dovolj dovolj, da bi se seznanil z osnovami. Želi razvijalcem seznaniti s sodobnimi orodji, ki zahtevajo drugačen način razmišljanja, kot je React. "Na koncu nisem zaposlila ljudi, ki so dobro izgledali na papirju, ker se niso dotaknili Reacta," pravi. "Potrebujem ljudi, ki so lahko produktivni [using React] od prvega dne naprej. "

Tudi če menedžerji za zaposlovanje niso tako strogi kot Aguinaga, razvijalci ne morejo pričakovati, da bodo za vedno imeli enake veščine. Dobra novica je v tem, da večina razvijalcev ne bo več čez noč. Še vedno obstaja veliko podjetij, ki imajo programsko opremo, zgrajeno na Backbone, in te družbe bodo razvijalce potrebovale za ohranjanje te programske opreme že več let. To omogoča razvijalcem čas, da svoje znanje izboljšajo v drugih orodjih.

Slaba novica je, da morajo razvijalci običajno naučiti novih stvari v svojem času. "Nimam veliko prijateljev, ki so razvijalci, in ne razumejo, zakaj sam preživim toliko časa sami doma," pravi Eleftheria Batsou, vodja programerja v Solunu v Grčiji.

"Sprva sem si želela, da ni bilo toliko novih stvari," pravi. Toda stalna sprememba je del tega, kar ohranja zanimivo delo. "Všeč mi je, da se te stvari razvijajo. Da, težko je, vendar mi je res všeč. "


Več velikih WIRED zgodbe