Tellər arasında: Vue.js yaradıcısı Evan You ilə reportaj

Məşhur mütərəqqi JavaScript çərçivəsi olan vuejs.org-un yaradıcısı Evan Sizdən müsahibə aldım. Evan Patreon kampaniyasının maliyyəsi ilə Vue-də tam işləyir. Əvvəllər Google və Meteor-da çalışırdı.

Bu yazı əvvəlcə istehsalçılar məhsullarını tikənlərin iştirak etdiyi reportaj seriyası arasında Bağlantılar arasında yerləşdirildi.

Uşaqlığınız və harada böyüdüyünüz barədə bir az danışın.

Tamam, buna görə Çində anadan olmuşam, doğma şəhərim Wuxi adlanır. Şanxayın yanında olan orta ölçülü bir şəhərdir. Əslində, üç il ərzində orta məktəb üçün Şanxaya getdim və geri və irəli getdim. Orta məktəbdən sonra kollec üçün ABŞ-a getdim. Güman edirəm ki, kompüterlərə erkən giriş əldə etdim, amma həqiqətən çox proqramlaşdırmaya girmədim. Oyunlara daha çox maraq göstərirdim və orta məktəbdə oxuduğum müddətdə Flash ilə çox oynadım, çünki bu interaktiv hekayə təcrübələrini hazırlamaqdan həzz aldım.

İlk kompüteri ilə Evan, 1996

İlk proqramlaşdırma təcrübəniz nə idi?

"Bir şey qurmaq və dərhal dünya ilə bölüşmək bacarığına görə məni JavaScript cəlb etdi. İnternetə qoyursunuz və URL əldə edirsiniz, onu brauzerlə hər kəsə göndərə bilərsiniz. Bu, məni internetə və JavaScript-yə cəlb edən hissə idi. ”

Mən ABŞ-da kollecə gedəndə, düzünü desəm, nə etmək istədiyimi bilmirdim və studiya sənəti və sənət tarixi ixtisası üzrə idim. Məzun olmaq istəyəndə studiya sənəti və sənət tarixi ilə məşğul olan bir iş tapmaq olduqca çətin olduğunu başa düşdüm.

Fikirləşdim ki, bəlkə maraqlarıma daha yaxşı uyğunlaşan və daha çox bacarıq inkişaf etdirən bir magistr proqramına gedə bilərəm. Parsons'a getdim və Dizayn və Texnologiya üzrə Gözəl Sənətlər Magistrini oxudum. Hər kəs yarı dizayner və yarısı inkişaf etdirici olduğu üçün çox gözəl bir proqram idi. Açıq sənədlər, emal, alqoritmik animasiyalar kimi şeyləri sizə öyrətdilər və siz də tətbiq və interfeys dizayn etməlisiniz.

Parsons həqiqətən bir çox JavaScript öyrətməmişdi, amma sadəcə bir şey qurmaq və dərhal dünya ilə paylaşmaq bacarığına görə məni JavaScript-yə cəlb etdilər. İnternetə qoyursunuz və URL əldə edirsiniz, onu brauzerlə hər kəsə göndərə bilərsiniz. Məni yalnız vebə və JavaScript-yə cəlb edən hissə idi.

O vaxt, Chrome təcrübələri yenicə buraxılmışdı və mən tamamilə partladılmışdım. Dərhal JavaScript-ə girdim və özüm öyrənməyə başladım və Chrome təcrübələrinə bənzər şeylər yaratmağa başladım. Bu şeyləri portfelimə qoydum və sonra Google Creative Lab-da işə götürən tərəfindən seçildi. Beş proqramın bir hissəsi olaraq iştirak etdim. Hər il Creative Lab beş yeni məzunu işə qəbul edir. Əsasən bir kopirayter, yaradıcı texnoloq, qrafik dizayneri, strateq və vəhşi işarədən ibarət kiçik bir komandadır.

Tamam, Vue.js ilə həll etməyə çalışdığınız mövcud problemi nə vaxt və ya necə aşkar etdiniz?

Google-dakı işim brauzerdə çox sayda prototip hazırlamışdı. Bu fikrimiz var idi və mümkün qədər sürətli bir şey əldə etmək istədik. Bəzi layihələr o dövrdə Angular istifadə etdi. Mənə görə, Angular məlumat bağlayan və bir DOM ilə əlaqəli bir məlumat idarəetmə yolu olan sərin bir şey təklif etdi, buna görə özünüzü DOM-a toxunmamalısınız. Kodunuzu istədiyiniz şəkildə qurulmağa məcbur edən bütün bu əlavə anlayışları da gətirdi. Sadəcə o dövrdə istifadə etdiyim vəziyyət üçün çox ağır hiss etdim.

Fikirləşdim ki, yalnız Bucaq haqqında çox bəyəndiyim hissəni çıxarıb bütün əlavə anlayışlar olmadan həqiqətən yüngül bir şey qura bilsəm nə olar? Onun daxili tətbiqinin necə işlədiyinə də maraqlandım. Bu eksperimentə yalnız dekorativ məlumatların bağlanması kimi bu minimal xüsusiyyət dəstini təkrarlamağa çalışdım. Əsasən Vue necə başladı.

Bunun üzərində işlədim və bunun potensial olduğunu hiss etdim, çünki özümdən istifadə etməyi xoşlayıram. Ona biraz daha çox vaxt ayırdım və düzgün yığdım, ona bir ad verdim, Vue.js adlandırdım. Bu, 2013-cü ildə idi. Sonradan düşündüm: “Hey, mən buna çox vaxt ayırdım. Bəlkə də başqalarına bölüşsəm ki, heç olmasa bundan faydalansınlar və ya bəlkə də maraqlı tapsınlar. ”

2014-cü ilin fevral ayında ilk olaraq aktual bir layihə olaraq yayımladım. Mən bunu Github'a qoydum və Hacker News'a bir keçid göndərdim və faktiki olaraq ön səhifəyə səs verdi. Bir neçə saat orada qaldı. Daha sonra ilk həftə istifadəsi məlumatlarını və öyrəndiklərimi bölüşmək üçün bir məqalə yazdım.

İnsanların Github'a gedib bir layihə oynadıqlarını görmək mənim ilk təcrübəm idi. Düşünürəm ki, ilk həftədə bir neçə yüz ulduz qazandım. Mən o vaxt super həyəcanlandım.

Digər çərçivələrlə müqayisədə Vue'u təyin edən bir neçə əsas şeyi sadalamalı olsaydınız, nə deyərdiniz?

Düşünürəm ki, oradakı bütün çərçivələr baxımından Vue, ehtimal ki, Reaksiya ilə ən oxşardır, amma daha geniş mənada, bütün çərçivələr arasında, özümü tərtib etdiyim müddət mütərəqqi bir çərçivədir. İdeya budur ki, Vue sadəcə məlumat bağlayan və React-a bənzər komponentlərdən ibarət olan bu nüvədən ibarətdir. Çox diqqət mərkəzində olan, məhdud bir sıra problemləri həll edir. Reaksiya ilə müqayisədə, Vue, daha yaxın olmağa bir az daha çox diqqət ayırır. HTML, JavaScript və CSS kimi əsasları bilən insanların bunu mümkün qədər tez ala biləcəyinə əmin olmaq.

Bir çərçivə səviyyəsində, onu çox arıq və minimal bir nüvə ilə qurmağa çalışdıq, ancaq daha mürəkkəb tətbiqlər qurarkən təbii olaraq əlavə problemləri həll etməlisiniz. Məsələn marşrutlaşdırma və ya çarpaz komponent ünsiyyətini necə idarə etdiyinizi, daha böyük bir tətbiqdə vəziyyətləri bölüşün və sonra da kod bazasının modullaşdırılması üçün bu qurma vasitələrinə ehtiyacınız var. Üslubları və tətbiqinizin fərqli aktivlərini necə təşkil edirsiniz? Ember və ya Angular kimi daha tam çərçivələrin bir çoxu, çalışacağınız bütün problemlər barədə düşünülməyə çalışılır və hər şeyi çərçivəyə salmağa çalışırlar.

Ticarətdən bir az. İstifadəçinin istifadəsi ilə bağlı nə qədər fərziyyələr etsəniz, o zaman çərçivə daha az rahatlıq verə biləcəkdir. Və ya React kimi hər şeyi ekosistemə buraxın - React ekosistemi çox canlıdır. Bir çox möhtəşəm fikirlər ortaya çıxır, amma bir çox curn da var. Vue, nüvənin hələ də çox minimal bir xüsusiyyət dəsti olaraq məruz qaldığı orta zəmini seçməyə çalışır, lakin biz də bu marşrutlaşdırma həlli, dövlət idarəetmə həlli, qurma qurğusu və CLI kimi artan qəbul olunan parçaları təklif edirik. Hamısı rəsmi olaraq qorunur, yaxşı sənədləşdirilmiş, birlikdə işləmək üçün hazırlanmışdır, ancaq hamısını istifadə etmək məcburiyyətində deyilsiniz. Düşünürəm ki, bu Vue-nu digərlərindən fərqli bir çərçivə halına gətirən ən böyük şeydir.

Vue.js ilə maddi cəhətdən davamlı olmağı necə bacardınız?

"Mən bu insanlar üçün dəyər yaradıram. Buna görə nəzəri cəhətdən bu dəyərləri bir şəkildə maliyyə şəklində toplaya bilsəm, onda özümü qorumağı bacarmalıyam."

Mən bu insanlar üçün dəyər yaradıram, buna görə nəzəri cəhətdən bu dəyərləri bir şəkildə maliyyə şəklində toplaya bilsəm, o zaman özümü davam etdirə bilməliyəm. Bu JavaScript mürəkkəbləşir, çünki JavaScript ekosisteminin necə işlədiyini nəzərə alaraq insanlar üçün əvvəlcədən ödəniş etmək nisbətən çətindir.

Vue çox canlı istifadəçi bazasına malikdir. Vue istifadəçilərinin çoxu Laravelcommunity-dəndirlər və həqiqətən həvəsli və xoş insanlardır. Düşündüm ki, camaat dəstəyi işləyəcəkmi? Bu düşüncəni Patreonda sınamaq istədim. Əslində React-Hot-Loader və Redux-un yaradıcısı Dan Abramov da əvvəl Patreonda kiçik bir kampaniya aparmışdı. Əslində məni maraqlandıran da budur. Vue'dan nə qədər insanın istifadə etdiyinə dair kobud bir fikrim var. Deyək ki, 10.000 istifadəçi var. Bəlkə onlardan 1% mənə ayda on dollar vermək istəsə, bu bir şeydir.

Evanın Patreon kampaniyası

Fevral ayında Patreon kampaniyasına başladım və bu iki hissəlidir. Bir hissəsi Vue istifadə edən şəxslərə yönəldilmişdir. Tipik olaraq, mənə qəhvə almaq kimi kiçik bir məbləğdən imtina etmək istəyirlər. Sonra Vue ilə əşyalar tikdirən start-up və ya məsləhətçi dükanları kimi həqiqi sahibkarlıq subyektləri olan digər düşərgə var. Onlar üçün Vue'nın uzun müddət ərzində qorunub saxlanıldığını görmək vacibdir. Bu maddi dəstəyin Vue'nın daha davamlı olacağını və uzun müddət üçün istifadə etdiklərini etibarlı hiss edə biləcəklərini bilmək onlara rahatlıq verir.

Bunun başqa bir tərəfi Patreon mükafatlarıdır. Əgər şirkətlər bizə sponsorluq etmək istəyirlərsə, mən öz logolarımı vuejs.org saytındakı sponsor səhifəsində yerləşdirə bilərəm. Cəmiyyətin şüurunu artırır. Patreon fondlarının yarısı fiziki şəxslərdən gəlir və onlardan biri ayda 2000 dollar sponsorluq edir. Çalışdığımda işə yarayacağım barədə heç bir fikrim yox idi, amma işin bu cür olduğu ortaya çıxır. Düşünürəm ki, Patreonda ayda 4000 dollar olanda tam zamanlı atlama etdim və indi ayda 9800 dollardan çoxdur.

Onları sizə sponsorluq etməyə inandırmaq uzun müddət çəkdi? Heç şübhə etmirdilər, məsələn, yalnız bir gənc bir çərçivədəsiniz, altı ay davam edə bilməzsiniz?

Patreon kampaniyasına başladığım zaman Vue həqiqətən güclü bir böyümə göstərirdi. 2015-ci ilin əvvəlində Vue əsasən hələ də təsadüfi bir açıq mənbə layihəsi idi, lakin Laravel icması Vue ilə davam etməyə başladı. Həqiqətən heç bir pul qazana bilməyəcəyimi hiss edərdim, mənası olmaz.

Şanxayda bir başlanğıc olan Strikingly xüsusi bir təşəkkür etməliyəm. Çindəki JavaScript və Ruby icmalarında həqiqətən fəal iştirak edirlər. Əslində Vue’dan çox istifadə etmirlər, ancaq açıq mənbəli layihələrə sponsorluq etmək üçün istifadə etdikləri bu aylıq fondu var. Altı ay ərzində aylıq ilk $ 2000 sponsoru oldular.

Bu erkən mərhələdə əhəmiyyətli dərəcədə kömək etdi. Ayrıca, Laravel'in yaradıcısı Taylor Otwell də Vue'ya sponsorluq edir. 100 ilə başlamış və zamanla 200, 500 ilə vurmuşdur.

Bu qədər böyüdüyünə görə sponsorluq edə biləcəyinizi qeyd etdiniz. Hər hansı bir marketinq etməlisiniz? Yoxsa üzvi şəkildə böyüdü?

Marketinqlə məşğul olan real pulun olmadığını deyərdim. Reklam və ya bir şey almadım. Əsasən, yalnız bəzi blog yazılarını yazmaqdır. Bir çox dəfə yalnız Twitter hesabını idarə edirdim. Düşünürəm ki, bu çox şeydir. Bəzən Orta haqqında bir yazı yazardım.

Beynəlxalq bazarlarda böyük bir dartışma əldə etdiniz, bu da olduqca unikaldır. Bunun necə baş verdiyini və ABŞ xaricində inkişaf etdiriciləri cəlb etmək üçün bəzi çətinliklər və ən yaxşı təcrübələri eşitmək istərdik.

ASC Çin, 2015

Çin bazarı özünəməxsusdur. Mən Çinliyəm və Çin JavaScript cəmiyyətində olduqca yaxından iştirak edirəm. Məni tanıdıqları üçün bir çox insan Vue-ni tanıyırdı. Vue sənədlərinin bütünlüklə yaxşı yazılmış Çin dilinə tərcüməsi var idi ki, Çində Vue-nin qəbulu ilə çox kömək etdi. Bir çox istifadəçi də "Hey, bu kitabxananın müəllifi çindir." Onlar təbii olaraq heç olmasa onu yoxlamağa meyllidirlər, amma düşünürəm ki, bu, erkən mərhələlərdə bir az kömək etdi. Vue, Alibaba, Tencent və Baidu komandaları da daxil olmaqla Çində getdikcə daha çox şirkət tərəfindən istifadə edilməyə başlandı. Bunlar hamısı Çində milyardlarla dollar dəyərində olan şirkətlərdir. React eyni zamanda Çində həqiqətən də böyük bir fikir mübadiləsinə sahibdir.

Çində Jihu adlı bir Quora klonu var, insanlar orada hər cür təsadüfi suallar verirlər və mən çoxlu JavaScript və Vue.js ilə əlaqəli suallara cavab verirəm.

Asanlıqla beynəlxalq birliklərlə əlaqə qura bilməyən və ya əlaqə qurmayan şirkətlər, startaplar və ya açıq mənbə layihələri üçün təklifləriniz varmı?

Düşünürəm ki, dil baryeri ən çətin hissəsidir. Fikir budur ki, həqiqətən Çində bir şeyi itələmək üçün xüsusi səy göstərməsən, heç bir reaksiya göstərə bilməsən, heç kim bunu görməz. Əslində bunu etmək üçün Çin dilində danışa bilən, doğma Çin dilində danışa bilən birinə ehtiyacınız var.

Başqa bir maraqlı şey, əslində İtaliya, İspaniya, Portuqaliya və Yaponiya kimi dünyanın digər bölgələrindən gələn çox sayda istifadəçi var. Ən fəal iştirakçılardan bəziləri Yaponiyadan. Sənədləri tərcümə edərkən həqiqətən, həqiqətən vasvasıdırlar.

Yenidən düzəltməyəcəyinizə ümid etdiyiniz Vue qurarkən səhv etdinizmi?

"Problemi tamamilə müəyyən bir şəkildə yenidən düşünmək məcburiyyətindəyəm. Ancaq düşünürəm ki, proqram təminatının inkişafı necə gedir, çünki ilk cəhddən heç vaxt heç nə əldə etməyəcəksiniz."

Hm, bilirəm ki, yəqin ki, kifayət qədər azdır. Bu günə qədər Vue yerdən iki dəfə yenidən yazılmışdır. Aydındır ki, orijinal həyata keçirilməsində yalnız tədricən odadavamlı həll etmək mümkün olmayan problemləri olduğu üçün yenidən yazdım. Hər altı aydan bir altı aydan əvvəl kod bazasına baxdığım kimidir. Mən kimi olacağam, vay. Bu necə işlədi?

Problemi tamamilə müəyyən bir şəkildə yenidən düşünməliyəm, ancaq düşünürəm ki, proqram təminatının inkişafı necə gedir, çünki ilk cəhddən heç vaxt heç nə əldə etməyəcəksiniz.

Vue qurma səyahəti də bir inkişaf etdirici olaraq böyüyən bir səyahətdir, çünki zaman keçdikcə yeni xüsusiyyətlər əlavə etməli, onu qorumalı, səhvləri düzəltməli və bütün ekosistemin düzgün işləməsini təmin etməliydim. Sadəcə bir proqram mühəndisi kimi işləyəcəyiniz bütün problemləri sizi təbii olaraq üzə çıxarır. Sadəcə bir öyrənmə prosesidir.

Vue ilə qarşılaşdığınız emosional və ya qeyri-texniki çətinliklər var?

“Sadəcə hamını xoşbəxt edən bu əsl çərçivə olmayacaq. Daha vacib hissəsi, çərçivənizi həqiqətən sevən insanlar üçün daha yaxşı hala gətirin. İnandığınız şeyə, çərçivənizdəki ən dəyərli şeyə diqqət edin və başqalarına necə bənzədiyinizi düşünməkdənsə, çox yaxşı bir iş etdiyinizə əmin olun. "

Mütləq olmuşdur. Rəqabət baxımından çox təzyiq var. Vue hələ nisbətən naməlum olduqda, təzyiq yox idi, çünki hər hansı bir ifşa yaxşıdır. İnsanlar sizi müəyyən bir standarta uyğun tutmaq niyyətində deyillər. Vue böyüdükcə böyüdükcə təbii olaraq insanlar Vue-ni bucaqlı və ya reaksiya kimi şeylərlə müqayisə etməyə başladılar və “hey, React bunu daha yaxşı edir. Bucaq bunu daha yaxşı edir. "

Bu sizə çox təzyiq göstərir və bütün böyük uşaqlar ilə rəqabət aparmaq məcburiyyətində qala bilər. Xüsusilə indi bu tam zamanla məşğul olduğum üçün. Vue-nun ekosistemdəki yararlılığı əsasən mənim nə dərəcədə yaxşı olduğumla bağlıdır.

Ancaq bu yaxınlarda mən Elm-in müəllifi Evan Czaplicki'nin Elm üzərində işləyərkən bənzər bir təzyiq olduğunu necə danışdığını izlədim. Re, üstündə ClojureScript interfeysi olan Om vardı. PureScript var idi, orada JavaScript dillərini tərtib edən digər funksional da var, Elmin də bu kitabxanalarla necə rəqabət edə biləcəyindən narahat idi.

Daha sonra Python müəllifi Guido ilə danışdı və Guido ona məsləhət verdi, dedi: "sadəcə yaxşı bir işlə məşğul ol." Bunun arxasındakı fikir Python'un da bu problemə sahib olmasıdır. Ruby, JavaScript, Perl kimi bir çox dinamik dildə rəqabət aparır və eyni problem sahəsindədir. Öz dilində müvəffəq olan bu dillərin hamısını bitirir və onlardan istifadə edərək bu dillərdən ləzzət alan öz xüsusi bir icmalarına malikdir.

İnsanlar bir səbəbdən fərqli dillərə üstünlük verirlər. JavaScript çərçivələrinə bənzər şəkildə, insanlar bir səbəbə görə fərqli çərçivələrə üstünlük verirlər. Sadəcə hamını xoşbəxt edən bu əsl çərçivə olmayacaq. Daha vacib hissəsi, çərçivənizi həqiqətən sevən insanlar üçün daha yaxşı hala gətirin. İnandığınız şeyə, çərçivənizdəki ən dəyərli şeyə diqqət yetirin və başqalarına necə bənzədiyinizi düşünməkdənsə, əla bir iş gördüyünüzdən əmin olun.

Vue.js üçün uğurlu nəticəni nə hesab edirsiniz?

Vue.js-in əhatə dairəsi zamanla mütləq artdığına görə bu çətin sualdır. İndi bütün bu çərçivə ekosistemimiz var və doğma UI-yə Vue komponentlərini göstərən Weex kimi şeyləri araşdırmaq üçün genişlənirik.

Texnologiyanın daha çox insana əşyalar yaratmasına imkan yaratması inancına söykənən Vue'nin yaxınlaşma hissəsinə də çox əhəmiyyət verirəm.

Növbəti bir neçə yalnız proqramdan kənar əyləncəli suallardır. Proqramlaşdırmadan kənar digər hobbi və ya maraq dairələriniz nələrdir?

Anime, çox manqa oxudum. Diqqət etməmisinizsə, Vue-nın buraxılışları anime adları ilə kodlu olur. .09-da başladı, hər böyük buraxılış kodu adı bir məktub ilə böyüdü. 2.0, Shell-də Ghost olan G-dir. F əslində 1.1 üçün qorunur. 1.0 Evangelion idi.

1.0 buraxılışını qeyd etmək üçün Yapon Vue istifadəçisi tərəfindən çəkilmiş illüstrasiya (Evangelion kodlaşdırılır)Vue 2.0 üçün qeyd illüstrasiyası (Shell-də Ghost adlanır)

Həqiqətən karaoke zövq alıram.

Ən çox həyəcanlandığınız ən yaxşı texnologiyalar və ya tendensiyalar hansılardır?

Ümumi texnologiya. AR və ya VR əsərlərindən çox həyəcanlanmadığım üçün qəribədir. Həqiqətən inkişaf etdiricilərə yaxın olan bir şey haqqında danışmaq istəyirəm. Guillermo-nun İndi ilə nə etdiyi bir şey. Yaradıcılar inkişaf etdiricilər üçün alətlər qururlar və bu vasitələrin geliştirici təcrübəsi, bu da istifadəçi təcrübəsidir, lakin geliştirici alətlər üçün.

Proqramlaşdırma qəhrəmanlarınız kimlərdir? Əgər varsa

Aydındır ki, TJ Holowaychuck və Guillermo Rauch. Kompüter bilgisi ixtisası deyiləm. Mən əsasən proqramlaşdırmanı yalnız təsadüfi onlayn mənbələr və kitablar vasitəsi ilə öyrəndim, amma öyrəndiyim vacib bir yol yalnız digər insanların kodunu oxumaq idi. TJ kodunu oxuduğum zaman həmişə özümü həqiqətən zərif kimi hiss edirəm. Bu ağla gələn və mənə çox təsir edən söz. TJ mütləq mənim üçün bir qəhrəmandır.

Bu layihə frontendmasters.com, egghead.io, Microsoft Edge və Google Developers-in sponsorluqları ilə mümkündür.

Sponsorlarımız.

Bu layihəni dəstəkləmək üçün bağışlayın.

Eşitmək istədiyiniz bir istehsalçıya təklif etmək üçün xahiş edirəm bu formanı doldurun.

Twitter-də betwehewhewires-ə də rəy göndərə bilərsiniz.