Alexey Grachev: Ite Frontend

Kyiv Go Meetup May 2018:

Alexey Grachev: Ite Frontend

Moderators: - Hi omnes! Gratias ago tibi, quia hic est! Hodie duos oratores officiales habemus - Lyosha et Vanya. Duo erunt, si satis temporis habemus. Primus orator est Alexey Grachev, ille narrabit nobis de GopherJS.

Alexey Grachev (infra – AG); – Ire elit sum, et officia interretiali scribo in Go. Aliquando tibi frontend agere, interdum manually ingredi. De experientia et investigatione mea loqui volo in fronte.

Legenda haec est: primum loquemur cur currere velimus Perge in fronte, tunc loquemur quomodo id fieri possit. Dupliciter - Conventus interreti et GopherJS. Videamus quid sit harum solutionum status et quid fieri possit.

Quid mali in frontend?

Omnesne consentiunt omnia cum frontend pulchrum esse?

Alexey Grachev: Ite Frontend

Nonne satis probat? Tardus aedificabis? Ecosystem? Fine.

Quoad frontendum, placet illud unum e primordium tincidunt in suo libro dixisse:

Alexey Grachev: Ite Frontend

Javascript systema typus non habet. Nunc nominabo problemata, quae in cursu operis mei inciderunt, et quomodo solvantur explicabimus.

Systema genus in genere vix dici potest systema typum in Javasript - sunt lineae quae rationem obiecti indicant, sed re vera hoc nihil ad typos habet. Solvitur haec quaestio in TypeScript (an addendi in Javasript) et influentia (typum tessellatum static in Javascript). Profecto frontis punctum iam pervenit ad problema solvendum systema speciei mali in Javascript.

Alexey Grachev: Ite Frontend

Nulla norma bibliothecae in navigatro ut talis - sunt quaedam aedificata in obiectis et functiones "magicas" in navigatoribus. Sed in Javascript nulla est bibliotheca norma talis. Quaestio haec a jQuery semel iam solvebatur (quisque usus est jQuery cum omnibus prototypis, auxiliis, muneribus ad operandum necessariis). Nunc omnes utitur Lodash;

Alexey Grachev: Ite Frontend

Infernum callback. Omnes opinor codicem Javascript viderunt abhinc circiter 5 annos, et quasi "noodle" incredibilis callbacks intricatae videntur. Hoc problema iam solutum est (emissione ES-15 vel ES-16), promissa Javascript addita sunt et omnes ad tempus facilius respirare possunt.

Alexey Grachev: Ite Frontend

Donee Promice infernum advenit... Nescio quomodo industria anterioris finis administrat, sed semper se in tesca aliqua depellunt. Nos etiam de promissis infernum facere potuimus. Tunc hanc quaestionem solvimus addito novo primitivo - async/expectato:

Alexey Grachev: Ite Frontend

Difficultas asynchrony solvitur. Async/expectandum est primitivae satis popularis in variis linguis. Python et alii hunc aditum habent - satis est bonum. Problema solverant.

Quae quaestio non solvitur? Exponentialiter crescens multiplicitas compagum, multiplicitas oecosystematis et programmatum ipsarum.

Alexey Grachev: Ite Frontend

  • Javascript syntaxing is a bit strange. Omnes novimus problemata cum additamento ordinata et obiecto et aliis iocis.
  • Javascript is multi-paradigma. Haec ratio nunc maxime urget cum ecosystematis permagna est;
    • omnes diversimode scribit, quidam structuram scribunt, quidam officiatorie scribunt, diversae tincidunt diversimode scribunt;
    • ex diversis fasciculis, diversa paradigmata, cum diversis fasciculis uteris;
    • multus of "fun" cum programmatione functionis in Javasript - bibliotheca rambda apparuit et nunc nemo programmata in hac bibliotheca legere potest.

  • Ex his omnibus magnum momentum in oecosystematis facit, et incredibiliter crevit. Fasciculi inter se repugnant: quaedam promissionibus nituntur, quaedam in async/exspecta, quaedam callbacks nituntur. Scribunt etiam in diversis paradigmatibus!
  • Hoc consilium difficile conservare facit. Cimex invenire difficile est si codicem legere non potes.

Quid est Conventus Web?

Fortissimi viri guys ex Fundatione Mozilla et plures aliae societates cum tali re congressi sunt ut interreti Conventus. Quid est hoc?

Alexey Grachev: Ite Frontend

  • Haec machina virtualis in navigatro aedificata est quae forma binaria sustinet.
  • Progressiones binarii illuc perveniunt et paene innatam efficiuntur, id est, navigatrum omni tempore "noodles codicem suggillationis omnibus partibus egere non oportet.
  • Omnes navigatores subsidium declaraverunt.
  • Cum hoc bytecodea sit, pro quavis lingua compilator scribere potes.
  • Quattuor navigatores maiores iam navem cum auxilio interretiali Conventus fecerunt.
  • Patria subsidium exspectamus in Ite mox. Haec nova architectura iam adiecta est: GOARCH=wasm GOOS=js (mox). Quantum, ut intelligo, non est muneris, sed est enuntiatio definite in Go.

Quid nunc agis? GopherJS

Dum subsidium interretialem non habemus, transpilator est sicut GopherJS.

Alexey Grachev: Ite Frontend

  • Ite signum in Javascript "purum" translatum est.
  • Currit in omnibus navigatoribus - nullae sunt novae notae quae solum a modernis navigatoribus sustentantur (hoc est Vanilla JS, quod in aliquid currit).
  • Adsunt fere omnia quae Go habet, inter goroutines et canales ... omnia quae tam amamus ac novimus.
  • Fere tota bibliotheca vexillum sustinetur, exceptis illis fasciculis quae nullum sensum ad sustentationem in navigatro facit: syscall, rete interationes (est retia/http client, sed non server, et client per XMLHttpRequest aemulatur). In genere, tota bibliotheca vexillum praesto est - hic in navigatro est, hic est Go's stdlib, quem amamus.
  • Tota sarcina ecosystem in Go, omnes solutiones tertiae factionis (temptandi, etc.) componi possunt utens GopherJS et in navigatro currere.

GopherJS facillime est - suus iustus regularis sarcina Go. Vadimus, et habemus GopherJS mandatum aedificandi applicationis;

Alexey Grachev: Ite Frontend

Hic est tam parvus mundus salve...

Alexey Grachev: Ite Frontend

...Propositum regularis Go, bibliotheca regularis regulae fmt sarcina et Binding Js ut ad pasco API perveniat. Println tandem convertetur ad stipes consolandas et navigatrum scribet "Salve gophers"! Simplex est: nos aedificamus GopherJS – eam in navigatro deducimus – omnia opera!

Quid habes in tempore? Vincula

Alexey Grachev: Ite Frontend

Sunt ligamenta omnium popularium compagum;

  • JQuery;
  • Angular.js;
  • D3.js ad insidiandum et operandum cum magna notitia;
  • React.js;
  • VueJS;
  • etiam subsidium est electronico (id est, escritorio applicationes in Electron scribere iam possumus);
  • et res iocosa est WebGL (plene applicationes graphicae reddere possumus, ludos cum 3D graphicis, musicis et omnibus comibus facere);
  • ac multae aliae ligaturae ad omnes tabulas populares tabulas et bibliothecas pertinentes.

Framework

  1. Artus interretialis iam nominatim explicatus est GopherJS - Vecty. Haec est similitudo plenae curvatae React.js, sed solum in Go, cum specialibus GopherJS.
  2. Sacculi ludi sunt (mirum!). Duos populares inveni;
    • Engo;
    • Ebiten.

Duo exempla monstrabo quid similis sit et quid in Go iam scribere possis:

Alexey Grachev: Ite Frontend

Vel hanc optionem (3D jaculatorem invenire non potui, sed forte est);

Alexey Grachev: Ite Frontend

Quid offero?

Nunc industria ante-finis in eo statu est ut omnes linguae quae antea ex Javascript clamaverunt, illuc irruant. Nunc omnia compilata sunt in "Conventus Telae". Quid opus est nobis opportunum locum ibi accipere Gopherum?

Alexey Grachev: Ite Frontend

Ite tradito sumpsit eam linguam programmandi systematicam esse, et nullae fere bibliothecae cum UI operandi sunt. Est aliquid, sed dimidium relictum est, dimidium non functionis.

Et nunc est bona facultas faciendi bibliothecas UI in Go qui percurret GopherJS! Scribere tandem potes compagem tuam! Hoc est tempus quo compaginem scribere potes, et prima adoptio erit prima, et stella eris (si bona compago est).

Multum diversis fasciculis adaptare potes qui iam in Go ecosystem ad specialia navigatoris (exempli gratia: Template engine). Iam operabuntur, ligaturas commodas facere potes ut facile contentus directe in navigatro reddere possis. Plus potes facere, exempli gratia, officium quod idem praestare potest in servo et in fronte-finem, eodem codice utens - omnia quae ante-finem tincidunt similia (tantum nunc in Go).

Ludum scribere potes! Iustus pro fun...

Haec omnia volui dicere.

Alexey Grachev: Ite Frontend

quaestiones

Quaeritur (infra post Q); – Go vel Js scribo?

AG: - Conscribitis consuetudines, vias, structuras, implicans - omnia in Go... Subscribis eventum, functionem ibi transi.

IN: β€” Sic scribo in nudo Js?

AG: – Imo, scribis quasi in Go et coniunge navigatro API (API non mutatum). Tuas ligaturas scribere potes ut epistulae ad canalem mittantur - difficile non est.

IN: - Quid de mobili?

AG: – Certo vidi: ligaturae sunt ad panni Cordubenses quod Js currit. In React Nativum - Nescio; fortasse est, fortasse non erat (non eram magnopere quaero). N-go ludus machinalis utrumque applicationes mobiles - iOS et Android sustinet.

IN: - Quaestio de Conventu interreti. Magis magisque spatium comprehenditur, non obstante compressione et "zipping"... Nonne hoc modo magis etiam ante-finem mundum occidemus?

AG: – Conventus interretialis forma binaria est, et binarius per defaltam non potest esse in ultima remissione plus quam textus... Ad runtime traheris, sed hoc idem est ac trahere vexillum bibliothecae Javascripte cum ibi non est, ita nos. uti aliquo Lodash. Nescio quantum Lodash capit.

IN: - Patet minus quam runtime...

AG: - In "puro" Javascript?

IN: - Ita. Comprimamus ante mittentes...

AG: – Sed hic textus est... Fere megabyte multum similis videtur, sed omnia (habetis totum runtime). Deinde logica negotia tua scribis, quae binarium tuum per 1% augebit. Hactenus non video hanc frontem occidere. Praeterea Conventus interretialis celerius quam Javascript operabitur ob manifestam causam - non opus est ut parsed.

IN: - Hoc punctum controversiae adhuc est... Nondum est aliqua exsecutio relationis "Vasma" (Conventus interreti) ut sine ambiguitate iudicare possit. Ratione, sic: omnes intellegimus binarium celerius esse, sed exsecutio eiusdem V8 efficax est.

AG: - Ita.

IN: – Compilatio ibi operatur vere frigidissima et non est magnum commodum futurum.

AG: – Conventus interretialis etiam magnis guys fiunt.

IN: – Mihi adhuc difficile videtur iudicare Conventus Web. Colloquia multos annos iam fuerunt, sed paucae res gestae verae sunt quae sentiri possunt.

AG: β€” Fortasse. Videbimus.

IN: – Problemata in tergo non habemus... Fortasse has difficultates in fronte relinquere debemus? Quid illuc?

AG: - Baculum opificum anterioris lineae servare debemus.

Quidam ads

Gratias tibi ago pro manendo nobiscum. Placetne tibi vasa nostra? Vis videre plus interesting contentus? Suscipe nos ponendo ordinem vel commendando amicos; cloud VPS for developers from $4.99, unicum analogum de ingressu servientibus, quod a nobis pro vobis est inventum: Tota veritas de VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps e $19 vel quomodo ministrator communicabit? (praesto cum RAID1 et RAID10, usque ad 24 coros et usque ad 40GB DDR4).

Dell R730xd 2x vilius in Equinix Tier IV centri Amstelodami? Tantum hic 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV from $199 in Belgio! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - from $99! Read about Quomodo aedificare infrastructuras: Ed. classis cum usu Dell R730xd E5-2650 v4 servientibus valet 9000 nummis Europaeis?

Source: www.habr.com