Between the Wires: Viðtal við Vue.js skaparann ​​Evan You

Ég tók viðtal við Evan You, skapara vuejs.org sem er vinsæll framsækinn JavaScript ramma. Evan vinnur á Vue í fullu starfi með fjármögnun frá Patreon herferðinni. Áður starfaði hann hjá Google og Meteor.

Þessi grein var upphaflega birt á Between the Wires, viðtalsröð þar sem þeir sem eru að byggja vörur fyrir forritara.

Segðu okkur aðeins frá bernsku þinni og hvar þú ólst upp.

Allt í lagi, svo ég fæddist í Kína, heimabæ minn heitir Wuxi. Það er meðalstór borg, sem er rétt við hliðina á Shanghai. Reyndar fór ég til Shanghai í menntaskóla í þrjú ár og pendlaði fram og til baka. Eftir menntaskóla fór ég til Bandaríkjanna í háskóla. Ætli ég hafi fengið snemma aðgang að tölvum en komst reyndar ekki of mikið í forritun. Ég hafði meiri áhuga á leikjum og spilaði mikið með Flash þegar ég var í menntaskóla, því ég hafði mjög gaman af því að gera þessar gagnvirku frásagnarupplifanir.

Evan með sína fyrstu tölvu, 1996

Hver var fyrsta forritunarupplifun þín?

„Ég laðaðist að JavaScript vegna hæfileikans til að byggja bara eitthvað og deila því samstundis með heiminum. Þú setur það á vefinn, og þú færð vefslóð, þú getur sent það til allra sem eru með vafra. Það var sá hluti sem laðaði mig bara að vefnum og JavaScript. “

Þegar ég fór í háskóla í Bandaríkjunum vissi ég heiðarlega ekki hvað ég vildi gera og var með aðalnám í myndlistarlist og listasögu. Þegar ég var að fara að útskrifast áttaði ég mig á því að það var ansi erfitt að finna vinnu við að vinna myndlist og listasögu.

Ég reiknaði með að ég gæti farið á meistaranám sem passaði betur við áhugamál mín og þróað meiri færni. Ég fór til Parsons og lærði meistaranám myndlistar fyrir hönnun og tækni. Þetta var virkilega flott forrit því allir voru hálf hönnuðir og hálf verktaki. Þeir kenndu þér hluti eins og openFrameworks, úrvinnslu, reiknirit hreyfimyndir og þú varst líka að hanna forrit og tengi.

Parsons kenndi í raun ekki mikið af JavaScript, en ég laðaðist að JavaScript vegna hæfileikans til að byggja bara eitthvað og deila því samstundis með heiminum. Þú setur það á vefinn, og þú færð vefslóð, þú getur sent það til allra sem eru með vafra. Það var sá hluti sem laðaði mig bara að vefnum og JavaScript.

Á þeim tíma var Chrome tilraunum nýkomið út og mér var algerlega sprengt. Ég stökk strax í JavaScript og byrjaði að læra það sjálfur og byrjaði að smíða hluti svipaða Chrome tilraunum. Ég setti þessa hluti í eignasafnið mitt og þá tókst það einhvern veginn upp hjá ráðningaraðila hjá Google Creative Lab. Ég tók þátt sem hluti af fimm prógramminu. Á hverju ári ræður Creative Lab fimm nýnemum. Það er í grundvallaratriðum lítið teymi með auglýsingatextahöfundur, skapandi tæknifræðingur, grafískur hönnuður, strategist og wildcard.

Allt í lagi, hvenær eða hvernig uppgötvaðir þú núverandi vandamál sem þú ert að reyna að leysa með Vue.js?

Starf mitt hjá Google var mikið af frumgerð í vafranum. Við höfðum þessa hugmynd og við vildum fá eitthvað áþreifanlegt eins hratt og mögulegt er. Sum verkefnanna notuðu Angular á þeim tíma. Fyrir mig bauð Angular eitthvað töff sem er gagnabindandi og gagnastýrð leið til að takast á við DOM, svo þú þarft ekki að snerta DOM sjálfan. Það færði líka öll þessi aukahugtök sem neyddu þig til að skipuleggja kóðann eins og hann vildi. Það fannst mér bara of þungt fyrir notkunarmálið sem ég hafði á þeim tíma.

Ég reiknaði með, hvað ef ég gæti bara dregið út þann hluta sem mér líkaði mjög vel við Angular og smíðað eitthvað virkilega létt án allra auka hugtaka sem um ræðir? Ég var líka forvitinn um hvernig innri framkvæmd hennar virkaði. Ég byrjaði þessa tilraun til að reyna að endurtaka þetta lágmarks eiginleikasett, eins og yfirlýsing um bindandi gögn. Það var í grundvallaratriðum hvernig Vue byrjaði.

Ég vann við það og fannst það eiga möguleika, því ég naut þess að nota það sjálfur. Ég lagði aðeins meiri tíma í það og pakkaði almennilega saman, gaf því nafn, kallaði það Vue.js. Þetta var árið 2013. Seinna hugsaði ég: „Hey, ég lagði svo mikinn tíma í þetta. Kannski ætti ég að deila því með öðrum svo þeir gætu að minnsta kosti notið góðs af því, eða kannski finnst þeim það áhugavert. “

Í febrúar 2014 var það þannig að ég gaf það fyrst út sem raunverulegt verkefni. Ég setti það út á Github og sendi hlekk á Hacker News og það fékk reyndar atkvæði á forsíðuna. Það var þar í nokkrar klukkustundir. Seinna skrifaði ég grein til að deila upplýsingum um notkun vikunnar og það sem ég lærði.

Þetta var mín fyrsta reynsla að sjá fólk fara til Github og fara með aðalhlutverk í verkefni. Ég held að ég hafi fengið nokkur hundruð stjörnur fyrstu vikuna. Ég var ofboðslega spennt þá.

Ef þú þyrftir að telja upp nokkur kjarnaatriði sem skilgreindu Vue miðað við önnur ramma, hvað myndir þú segja?

Ég held, hvað varðar öll umgjörð þarna úti, Vue er líklega líkast React, en í víðari skilningi, meðal allra ramma, er hugtakið sem ég mynduð sjálfur framsækið ramma. Hugmyndin er sú að Vue samanstendur af þessum kjarna sem er bara gagnabinding og íhlutir, svipað og React. Það leysir mjög einbeitt, takmarkað mengi vandamála. Í samanburði við React leggur Vue aðeins meiri áherslu á nálgun. Að tryggja að fólk sem þekkir grunnatriði eins og: HTML, JavaScript og CSS geti sótt það eins hratt og mögulegt er.

Á ramma stigi reyndum við að byggja það með mjög halla og lágmarks kjarna, en þegar þú byggir flóknari forrit þarftu náttúrulega að leysa viðbótar vandamál. Til dæmis venja, eða hvernig þú meðhöndlar þvermál samskipta, deilir ríkjum í stærra forriti, og þá þarftu líka þessi smíðaverkfæri til að móta kóðagrunn þinn. Hvernig skipuleggur þú stíla og mismunandi eignir forritsins þíns? Margar af fullkomnari rammanum eins og Ember eða Angular, þeir reyna að vera skoðaðir um öll vandamálin sem þú ætlar að lenda í og ​​reyna að gera allt innbyggt í umgjörðina.

Það er svolítið slökkt á viðskiptum. Því fleiri forsendur sem þú gerir varðandi notkunarmál notandans, því minni sveigjanleiki mun ramminn að lokum hafa efni á. Eða skildu allt eftir á vistkerfið eins og React - React vistkerfið er mjög, mjög lifandi. Það eru mikið af frábærum hugmyndum að koma út en það er líka mikið um tyggjó. Vue reynir að velja miðjuna þar sem kjarninn er enn óvarinn sem mjög lágmarks aðgerðasett, en við bjóðum einnig upp á þessi stig sem hægt er að samþykkja, eins og leiðarlausn, lausnir við stjórnun ríkisins, tækjabúnað fyrir byggingu og CLI. Þeir eru allir opinberlega viðhaldnir, vel skjalfestir, hannaðir til að vinna saman, en þú þarft ekki að nota þá alla. Ég held að það sé líklega það stærsta sem gerir Vue sem umgjörð, frábrugðinn öðrum.

Hvernig tókst þér að verða fjárhagslega sjálfbær með Vue.js?

„Ég er að skapa verðmæti fyrir þetta fólk, svo fræðilega séð ef ég get einhvern veginn safnað þessum gildum í fjárhagslegu formi, þá ætti ég að geta staðið undir mér sjálfum.“

Ég er að skapa verðmæti fyrir þetta fólk, svo fræðilega séð ef ég get einhvern veginn safnað þessum gildum í fjárhagslegu formi, þá ætti ég að geta staðið undir mér. Þetta verður flókið vegna þess að JavaScript ramma er tiltölulega erfitt fyrir fólk að borga fyrirfram í ljósi þess hvernig JavaScript vistkerfið hefur virkað.

Vue er með mjög lifandi notendagrunn. Margir notendur Vue eru frá Laravelcommunity og þeir eru líka mjög áhugasamir og ágætur einstaklingar. Ég hugsaði, myndi fjöldafjármögnun vinna? Ég vildi bara prófa þessa hugmynd á Patreon. Dan Abramov, skapari React-Hot-Loader og Redux, gerði reyndar einnig litla herferð á Patreon áður. Það er í raun það sem vekur áhuga minn. Ég hef grófa hugmynd um það hversu margir nota Vue. Segjum að það séu 10.000 notendur. Ef 1% þeirra eru kannski tilbúnir að gefa mér tíu dalir á mánuði, þá er það eitthvað.

Patreon herferð Evans

Í febrúar hóf ég Patreon herferð og það er hlutur í tveimur hlutum. Einn hluti er miðaður við einstaklinga sem nota Vue. Venjulega eru þeir bara tilbúnir að gefa upp litla fjárhæð, eins og að kaupa mér kaffi. Svo eru aðrar búðirnar með raunverulegum rekstrareiningum, eins og sprotafyrirtæki eða ráðgjafaverslanir, sem hafa smíðað efni með Vue. Það er mikilvægt fyrir þá að sjá að Vue er viðhaldið til langs tíma litið. Það veitir þeim hugarró að vita að fjárhagslegur stuðningur þeirra mun gera Vue sjálfbærari og þeir geta fundið fyrir því að nota það til langs tíma litið.

Annar þáttur þess er umbun Patreon. Ef fyrirtæki eru tilbúnir að styrkja okkur, þá gæti ég sett merki þeirra upp á bakhjarlsíðu á vuejs.org. Það vekur athygli samfélagsins. Helmingur Patreon-sjóða kemur frá einstaklingum og einn þeirra styrkti $ 2000 á mánuði. Ég hafði enga hugmynd um hvort það myndi ganga þegar ég prófaði það, en það kemur í ljós að það er eins og það er að virka. Ég held að ég hafi stökkið í fullu starfi þegar ég átti 4000 dollarar á mánuði á Patreon og nú eru þeir orðnir yfir 9800 dollarar á mánuði.

Tók það langan tíma að sannfæra þá um að styrkja þig? Voru þeir efins yfirleitt, eins og að þú sért bara ungur ramma, gætirðu ekki staðið í sex mánuði?

Þegar ég hóf Patreon herferðina var Vue þegar að sýna virkilega sterkan vöxt. Snemma árs 2015 var Vue að mestu leyti bara af handahófi með opinn uppspretta verkefni, en Laravel samfélagið byrjaði að ganga á fullt með Vue. Mér leið eins og ef ég gæti í raun ekki þénað peninga út úr þessu, þá væri það ekki skynsamlegt.

Ég verð að þakka sérstaklega fyrir Strikingly sem er sprotafyrirtæki með aðsetur í Shanghai. Þeir taka virkan þátt í JavaScript og Ruby samfélögum í Kína. Þeir nota Vue reyndar ekki mikið, en þeir hafa þennan mánaðarlega sjóð sem þeir nota til að styrkja verkefni með opinn hugbúnað. Þeir voru fyrsti $ 2000 á mánuði styrktaraðili í sex mánuði.

Það hjálpaði verulega á fyrstu stigum. Einnig er Taylor Otwell, skapari Laravel, einnig að styrkja Vue. Hann byrjaði með 100 og lenti í því upp í 200 og 500 með tímanum.

Þú nefndir að þú gætir fengið kostun vegna þess að það óx svo fljótt. Áttir þú að gera einhverja markaðssetningu? Eða óx það lífrænt?

Ég myndi segja að það séu ekki allir raunverulegir peningar í markaðssetningu. Ég keypti hvorki auglýsingar né neitt. Það er aðallega, bara að skrifa nokkrar bloggfærslur. Margoft var ég bara að stjórna Twitter reikningnum. Ég held að það sé nokkurn veginn það. Stundum myndi ég skrifa færslu á Medium.

Þú endaðir með að fá mikla grip á alþjóðlegum mörkuðum, sem er líklega nokkuð einstakt. Okkur þætti vænt um að heyra hvernig það gerðist og nokkrar af þeim áskorunum og bestu aðferðum sem fylgja verktaki utan Bandaríkjanna.

JSConf Kína, 2015

Kínverski markaðurinn er einstakur. Ég er kínverskur og er ansi þátttakandi í kínverska JavaScript samfélaginu. Margir þekktu Vue vegna þess að þeir þekktu mig. Við höfðum þessa heildar þýðingu á Vue skjölum yfir á virkilega vel skrifaða kínversku, svo það hjálpaði mikið við upptöku Vue í Kína. Margir notendur vita líka: „Hey, höfundur þessa bókasafns er kínverskur.“ Þeim finnst náttúrulega tilhneigingu til að minnsta kosti kíkja á það, en ég held að það hafi hjálpað töluvert í upphafi. Vue var nýbúið að nota fleiri og fleiri fyrirtæki í Kína, þar með talið teymi í Fjarvistarsönnun, Tencent og Baidu. Þetta eru öll milljarð dollara metin fyrirtæki í Kína. React hefur líka virkilega stóran hugarburð í Kína.

Það er til Quora klón í Kína sem heitir Zhihu, fólk spyr alls konar handahófsspurninga þar og ég svara mikið af JavaScript og Vue.js spurningum vegna þeirra.

Ert þú með einhverjar uppástungur fyrir fyrirtæki, sprotafyrirtæki eða opinn hugbúnaðarverkefni sem eru ekki auðveldlega fær um að eiga í samskiptum við alþjóðasamfélög?

Ætli tungumálahindrunin sé líklega erfiðasti hlutinn. Hugmyndin er að ef þú leggur þig ekki virkilega fram við að þrýsta á eitthvað í Kína, þá mun enginn taka eftir því, nema þú sért eins stór og React. Þú þarft einhvern sem getur talað kínversku, einhvern sem getur talað móðurmál kínversku til að gera það í raun.

Annar áhugaverður hlutur er að það eru reyndar margir aðrir notendur frá öðrum heimshlutum eins og Ítalía, Spánn, Portúgal og Japan. Sumir virkustu framlaganna eru frá Japan. Þeir eru virkilega, mjög nákvæmir við að þýða skjölin.

Gerðir þú einhver mistök við að byggja Vue sem þú vonar að muni aldrei gera aftur?

„Ég verð að endurhugsa vandamálið alveg á ákveðinn hátt, en ég held að það sé bara hvernig hugbúnaðarþróun gengur vegna þess að þú myndir aldrei fá neitt rétt frá fyrstu tilraun.“

Hm, ég veit, það eru líklega talsvert margir. Hingað til hefur Vue verið endurskrifað frá grunni tvisvar. Augljóslega skrifaði ég um það aftur vegna þess að upphaflega útfærslan átti í vandamálum sem bara var ekki hægt að leysa með eldföstum smám saman. Það er eins og á sex mánaða fresti sem ég skoða kóðagrunninn frá sex mánuðum síðan. Ég verð eins og, vá. Hvernig virkaði þetta meira að segja?

Ég verð að endurhugsa vandamálið alveg á ákveðinn hátt, en ég held að það sé bara hvernig hugbúnaðarþróun gengur vegna þess að þú myndir aldrei fá neitt rétt bara frá fyrstu tilraun.

Ferðin til að byggja Vue er líka ferð til að vaxa aðeins sem verktaki, því með tímanum þurfti ég að bæta við nýjum eiginleikum, viðhalda honum, laga villur og tryggja að allt vistkerfið virkaði rétt saman. Það afhjúpar þig náttúrulega fyrir öllum þeim vandamálum sem þú myndir lenda í sem hugbúnaðarverkfræðingur. Þetta er bara námsferli.

Hafa verið tilfinningalegir eða tæknilegir erfiðleikar sem þú hefur lent í vegna Vue?

„Það mun ekki verða þessi einu sönnu ramma sem gerir bara alla hamingjusama. Mikilvægari hlutinn er að gera hann betri fyrir fólkið sem raunverulega hefur gaman af ramma þínum. Einbeittu þér að því sem þú telur vera það verðmætasta í þínum ramma og vertu bara viss um að þú sért að vinna frábært starf, frekar en að hafa áhyggjur af því hvernig þú berð þig saman við aðra. “

Það hafa örugglega verið. Það er mikill pressa hvað varðar samkeppni. Þegar Vue var enn tiltölulega óþekktur, þá er sá þrýstingur ekki til staðar þar sem útsetning er góð. Fólk ætlar ekki að halda þér við ákveðinn staðal. En eftir því sem Vue hefur orðið stærra og stærra byrjaði náttúrulega fólk að bera saman Vue við hluti eins og Hyrnd eða Bjóða og þeir benda á hluti eins og: „hey, React gerir þetta betur. Hyrndur gerir þetta betur. “

Það setur mikla pressu á þig og það getur verið stressandi að þurfa að keppa við alla stóru krakkana. Sérstaklega núna þegar ég er að vinna þetta í fullu starfi. Hagkvæmni Vue í vistkerfinu er í grundvallaratriðum í beinum tengslum við hversu vel mér gengur.

En nýlega horfði ég bara á ræðu Evan Czaplicki, höfundar Elm, þar sem hann talaði um hvernig hann hefði svipaðan þrýsting þegar hann var að vinna að Elm. Það var Om, ClojureScript viðmótið ofan á React. Það var PureScript, það er önnur hagnýting sem samanstendur af JavaScript tungumálum þarna úti, hann hafði líka áhyggjur af því hvernig Elm gæti keppt við þessi bókasöfn.

Seinna talaði hann við Guido, höfund Python, og Guido gaf honum ráð, sagði hann, „gerðu bara gott starf.“ Hugmyndin á bak við það er að Python átti líka við þennan vanda að stríða. Það keppir við fullt af kraftmiklum tungumálum, eins og Ruby, JavaScript, Perl, og það er líka á sama vandamálasviði. Það endar öll þessi tungumál sem eru vel heppnuð í sjálfu sér og þau hafa sitt eigið samfélag sem notar þau og nýtur þessara tungumála.

Fólk kýs mismunandi tungumál af ástæðu. Svipað og JavaScript rammar, fólk vill frekar mismunandi ramma af ástæðu. Það er ekki að fara að vera þessi einu sönnu ramma sem gleður bara alla. Mikilvægari hlutinn er að gera hann betri fyrir fólkið sem raunverulega hefur gaman af ramma þínum. Einbeittu þér að því sem þú telur vera það verðmætasta í þínum ramma og vertu bara viss um að þú sért að vinna frábært starf, frekar en að hafa áhyggjur af því hvernig þú berð þig saman við aðra.

Hvað myndir þú telja árangursríka niðurstöðu fyrir Vue.js?

Það er hörð spurning vegna þess að umfang Vue.js hefur örugglega aukist með tímanum. Við höfum nú allt þetta vistkerfi innan ramma og við stækkum einnig til að kanna hluti eins og Weex sem gerir Vue íhluta að innfæddum notandi HÍ.

Mér er líka mjög annt um aðgengishlutann í Vue, sem á rætur sínar að rekja til þeirrar trúar að tæknin eigi að vera að gera fleirum kleift að byggja hluti.

Næstu eru bara skemmtilegar spurningar utan forritunar. Hvað eru nokkur önnur áhugamál eða áhugamál sem þú hefur utan forritunar?

Anime, ég las mikið af manga. Ef þú hefur ekki tekið eftir því eru útgáfur Vue kóðanefndar með anime nöfnum. Þetta byrjaði í .09, hvert stórt útgáfu kóðaheiti er aukið með bréfi. 2.0 er G sem er Ghost in the Shell. F er í raun frátekið fyrir 1.1. 1.0 var Evangelion.

Teikning teiknuð af japönskum notanda Vue til að fagna útgáfu 1.0 (kóðinn Evangelion)Helgiboðskort fyrir Vue 2.0 (nafngreindur draugur í skelinni)

Ég hef mjög gaman af karaoke.

Hvað er einhver topp tækni eða þróun sem þú ert mest spennt fyrir?

Almenn tækni. Það er skrýtið vegna þess að ég er ekkert of spennt fyrir AR eða VR efni. Mig langar virkilega að tala um eitthvað sem er nær verktaki. Eitthvað eins og það sem Guillermo er að gera með Now. Hönnuðir smíða verkfæri fyrir forritara og reynslu verktakans af þessum verkfærum, það er einnig notendaupplifun en fyrir verkfæri verktaki.

Hverjir eru nokkrar af forritunarhetjunum þínum? Ef þú ert með eitthvað.

Augljóslega TJ Holowaychuck og Guillermo Rauch. Ég er ekki meiriháttar tölvunarfræði. Ég lærði í grundvallaratriðum forritun í gegnum bara af handahófi á netinu og bækur, en mikilvæg leið sem ég lærði var bara með því að lesa kóða annarra. Þegar ég les kóðann hjá TJ finnst mér alltaf vera mjög glæsilegt. Það er orðið sem kemur upp í hugann og það hafði mikil áhrif á mig. TJ er örugglega hetja fyrir mig.

Þetta verkefni er gert mögulegt með kostun frá frontendmasters.com, egghead.io, Microsoft Edge og Google Developers.

Styrktaraðilar okkar.

Styrkja til að styðja þetta verkefni.

Fylltu út þetta form til að leggja til framleiðanda sem þú vilt heyra frá.

Þú getur líka sent athugasemdir til betweenthewires á Twitter.