Alexey Grachev: αž‘αŸ…αžαžΆαž„αž˜αž»αž

Kyiv Go Meetup αžαŸ‚αž§αžŸαž—αžΆ αž†αŸ’αž“αžΆαŸ† 2018αŸ–

Alexey Grachev: αž‘αŸ…αžαžΆαž„αž˜αž»αž

αžŠαžΉαž€αž“αžΆαŸ†αŸ– - αžŸαž½αžŸαŸ’αžαžΈβ€‹αž’αŸ’αž“αž€β€‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‚αŸ’αž“αžΆ! αžŸαžΌαž˜αž’αžšαž‚αž»αžŽαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž“αŸ…αž‘αžΈαž“αŸαŸ‡! αžαŸ’αž„αŸƒαž“αŸαŸ‡αž™αžΎαž„αž˜αžΆαž“αžœαžΆαž‚αŸ’αž˜αž·αž“αž•αŸ’αž›αžΌαžœαž€αžΆαžšαž–αžΈαžšαžšαžΌαž”αž‚αžΊ αž›αžΈαž’αžΌαžŸαžΆ αž“αž·αž„αžœαŸ‰αžΆαž“αŸ‹αž™αŸ‰αžΆαŸ” αžœαžΆαž“αžΉαž„αž˜αžΆαž“αž–αžΈαžšαž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αž˜αžΆαž“αž–αŸαž›αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αŸ” αžœαžΆαž‚αŸ’αž˜αž·αž“αžŠαŸ†αž”αžΌαž„αž‚αžΊ Alexey Grachev αž‚αžΆαžαŸ‹αž“αžΉαž„αž”αŸ’αžšαžΆαž”αŸ‹αž™αžΎαž„αž’αŸ†αž–αžΈ GopherJS αŸ”

Alexey Grachev (αžαž‘αŸ…αž“αŸαŸ‡ - AG)αŸ– - αžαŸ’αž‰αž»αŸ†αž‡αžΆαž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ Go αž αžΎαž™αžαŸ’αž‰αž»αŸ†αžŸαžšαžŸαŸαžšαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž‚αŸαž αž‘αŸ†αž–αŸαžšαž“αŸ…αž€αŸ’αž“αž»αž„ Go αŸ” αž–αŸαž›αžαŸ’αž›αŸ‡αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž‡αžΆαž˜αž½αž™ frontend αž–αŸαž›αžαŸ’αž›αŸ‡αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αžœαžΆαžŠαŸ„αž™αžŠαŸƒαŸ” αžαŸ’αž‰αž»αŸ†β€‹αž…αž„αŸ‹β€‹αž“αž·αž™αžΆαž™β€‹αž’αŸ†αž–αžΈβ€‹αž”αž‘β€‹αž–αž·αžŸαŸ„αž’β€‹αžšαž”αžŸαŸ‹β€‹αžαŸ’αž‰αž»αŸ†β€‹αž“αž·αž„β€‹αž€αžΆαžšβ€‹αžŸαŸ’αžšαžΆαžœβ€‹αž‡αŸ’αžšαžΆαžœβ€‹αž‘αŸ…β€‹αž€αŸ’αž“αž»αž„ Go on the frontend αŸ”

αžšαžΏαž„αž–αŸ’αžšαŸαž„αž‚αžΊαž“αŸαŸ‡αŸ– αžŠαŸ†αž”αžΌαž„αž™αžΎαž„αž“αžΉαž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž˜αžΌαž›αž αŸαžαž»αžŠαŸ‚αž›αž™αžΎαž„αž…αž„αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš Go β€‹β€‹αž“αŸ…αž›αžΎαž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž˜αž»αž αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž™αžΎαž„αž“αžΉαž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αžœαžΆαž’αžΆαž…αž’αŸ’αžœαžΎαž”αžΆαž“αŸ” αž˜αžΆαž“αžœαž·αž’αžΈαž–αžΈαžšαž™αŸ‰αžΆαž„ - Web Assembly αž“αž·αž„ GopherJS αŸ” αžαŸ„αŸ‡αž˜αžΎαž›αžαžΆαžαžΎαžŸαŸ’αžαžΆαž“αž—αžΆαž–αž“αŸƒαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‡αžΆαž’αŸ’αžœαžΈ αž“αž·αž„αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž’αžΆαž…αž’αŸ’αžœαžΎαž”αžΆαž“αŸ”

αžαžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαžαž»αžŸαž‡αžΆαž˜αž½αž™αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž˜αž»αž?

αžαžΎβ€‹αž‚αŸ’αžšαž”αŸ‹β€‹αž‚αŸ’αž“αžΆβ€‹αž™αž›αŸ‹β€‹αžŸαŸ’αžšαž”β€‹αžαžΆβ€‹αž’αŸ’αžœαžΈβ€‹αž‚αŸ’αžšαž”αŸ‹β€‹αž™αŸ‰αžΆαž„β€‹αž›αŸ’αž’β€‹αž‡αžΆαž˜αž½αž™β€‹αž“αžΉαž„β€‹αž•αŸ’αž“αŸ‚αž€β€‹αžαžΆαž„β€‹αž˜αž»αžβ€‹αž¬?

Alexey Grachev: αž‘αŸ…αžαžΆαž„αž˜αž»αž

αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž˜αž·αž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž‘αŸ? αžŸαžΆαž„αžŸαž„αŸ‹αž™αžΊαž? αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž’αŸαž€αžΌ? αž›αŸ’αž’

αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„ Frontend αžαŸ’αž‰αž»αŸ†αž…αžΌαž›αž…αž·αžαŸ’αžαžŸαž˜αŸ’αžšαž„αŸ‹αžŸαž˜αŸ’αžαžΈαžŠαŸ‚αž›αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ Frontend αž˜αŸ’αž“αžΆαž€αŸ‹αž”αžΆαž“αž“αž·αž™αžΆαž™αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ€αžœαž—αŸ…αžšαž”αžŸαŸ‹αž‚αžΆαžαŸ‹αŸ–

Alexey Grachev: αž‘αŸ…αžαžΆαž„αž˜αž»αž

Javascript αž˜αž·αž“αž˜αžΆαž“αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαž—αŸαž‘αž‘αŸαŸ” αž₯αž‘αžΌαžœαž“αŸαŸ‡αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αžŠαžΆαž€αŸ‹αžˆαŸ’αž˜αŸ„αŸ‡αž”αž‰αŸ’αž αžΆαžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž‡αž½αž”αž”αŸ’αžšαž‘αŸ‡αž€αŸ’αž“αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΆαžšαž„αžΆαžšαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ† αž αžΎαž™αž–αž“αŸ’αž™αž›αŸ‹αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αž–αž½αž€αž‚αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αŸ”

αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαž—αŸαž‘αž‡αžΆαž‘αžΌαž‘αŸ…αžŸαŸ’αž‘αžΎαžšαžαŸ‚αž˜αž·αž“αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž αŸ…αžαžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαž—αŸαž‘αž“αŸ…αž€αŸ’αž“αž»αž„ Javasript αž‘αŸ - αž˜αžΆαž“αž”αž“αŸ’αž‘αžΆαžαŸ‹αžŠαŸ‚αž›αž”αž„αŸ’αž αžΆαž‰αž–αžΈαž”αŸ’αžšαž—αŸαž‘αž“αŸƒαžœαžαŸ’αžαž»αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαžΆαž˜αž–αž·αžαžœαžΆαž˜αž·αž“αž˜αžΆαž“αž’αŸ’αžœαžΈαž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αž”αŸ’αžšαž—αŸαž‘αž‘αŸαŸ” αž”αž‰αŸ’αž αžΆαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž“αŸ…αž€αŸ’αž“αž»αž„ TypeScript (αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ… Javasript) αž“αž·αž„ Flow (αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž”αŸ’αžšαž—αŸαž‘αž‹αž·αžαž·αžœαž“αŸ’αžαž“αŸ…αž€αŸ’αž“αž»αž„ Javascript)αŸ” αžαžΆαž˜αž–αž·αžαž‘αŸ… Frontend αž”αžΆαž“αžˆαžΆαž“αžŠαž›αŸ‹αž…αŸ†αžŽαž»αž…αž“αŸƒαž€αžΆαžšαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž“αŸƒαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαž—αŸαž‘αž˜αž·αž“αž›αŸ’αž’αž“αŸ…αž€αŸ’αž“αž»αž„ Javascript αžšαž½αž…αž αžΎαž™αŸ”

Alexey Grachev: αž‘αŸ…αžαžΆαž„αž˜αž»αž

αž˜αž·αž“αž˜αžΆαž“αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€αž”αŸ‚αž”αž“αŸαŸ‡αž‘αŸ - αž˜αžΆαž“αžœαžαŸ’αžαž»αžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™αž“αž·αž„αž˜αž»αžαž„αžΆαžš "αžœαŸαž‘αž˜αž“αŸ’αž" αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αž€αŸ’αž“αž»αž„ Javascript αž˜αž·αž“αž˜αžΆαž“αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαžŠαžΌαž…αž“αŸ„αŸ‡αž‘αŸαŸ” αž”αž‰αŸ’αž αžΆαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž˜αŸ’αžαž„αžšαž½αž…αž˜αž€αž αžΎαž™αžŠαŸ„αž™ jQuery (αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž”αžΆαž“αž”αŸ’αžšαžΎ jQuery αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž‚αŸ†αžšαžΌαž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž‡αŸ†αž“αž½αž™αž€αžΆαžš αž˜αž»αžαž„αžΆαžšαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžšαžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš)αŸ” αž₯αž‘αžΌαžœαž“αŸαŸ‡αž˜αž“αž»αžŸαŸ’αžŸαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž”αŸ’αžšαžΎ Lodash:

Alexey Grachev: αž‘αŸ…αžαžΆαž„αž˜αž»αž

αž αŸ…αžαŸ’αžšαž‘αž”αŸ‹αž‘αŸ…αž‹αžΆαž“αž“αžšαž€αŸ” αžαŸ’αž‰αž»αŸ†αž‚αž·αžαžαžΆαž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž”αžΆαž“αžƒαžΎαž‰αž€αžΌαžŠ Javascript αž”αŸ’αžšαž αŸ‚αž› 5 αž†αŸ’αž“αžΆαŸ†αž˜αž»αž“ αž αžΎαž™αžœαžΆαž˜αžΎαž›αž‘αŸ…αžŠαžΌαž…αž‡αžΆ "αž‚αž»αž™αž‘αžΆαžœ" αž“αŸƒαž—αžΆαž–αžŸαŸ’αž˜αž»αž‚αŸ’αžšαžŸαŸ’αž˜αžΆαž‰αž˜αž·αž“αž‚αž½αžšαž±αŸ’αž™αž‡αžΏαž“αŸƒαž€αžΆαžšαž αŸ…αžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αžœαž·αž‰αŸ” αž₯αž‘αžΌαžœαž“αŸαŸ‡αž”αž‰αŸ’αž αžΆαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™ (αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™ ES-15 ឬ ES-16) αž€αžΆαžšαžŸαž“αŸ’αž™αžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ… Javascript αž αžΎαž™αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž’αžΆαž…αžŠαž€αžŠαž„αŸ’αž αžΎαž˜αž”αžΆαž“αžŸαŸ’αžšαž½αž›αž‡αžΆαž„αž˜αž½αž™αžšαž™αŸˆαŸ”

Alexey Grachev: αž‘αŸ…αžαžΆαž„αž˜αž»αž

αžšαž αžΌαžαž‘αžΆαž›αŸ‹αžαŸ‚ Promice hell αž˜αž€αžŠαž›αŸ‹... αžαŸ’αž‰αž»αŸ†αž˜αž·αž“αžŠαžΉαž„αžαžΆαžαžΎαž§αžŸαŸ’αžŸαžΆαž αž€αž˜αŸ’αž˜αžαžΆαž„αž˜αž»αžαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŠαŸ„αž™αžšαž”αŸ€αž”αžŽαžΆαž“αŸ„αŸ‡αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž–αž½αž€αž‚αŸαžαŸ‚αž„αžαŸ‚αž”αžΎαž€αž‘αžΆαž“αžαŸ’αž›αž½αž“αž―αž„αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž–αŸ’αžšαŸƒαž…αž˜αŸ’αž›αŸ‚αž€αŸ” αž™αžΎαž„β€‹αž€αŸβ€‹αž’αžΆαž…β€‹αž’αŸ’αžœαžΎβ€‹αž“αžšαž€β€‹αžαžΆαž˜β€‹αž€αžΆαžšβ€‹αžŸαž“αŸ’αž™αžΆαŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ αž™αžΎαž„αž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž“αŸαŸ‡αžŠαŸ„αž™αž”αž“αŸ’αžαŸ‚αž˜αž”αž»αž–αŸ’αžœαž”αž‘αžαŸ’αž˜αžΈ - async/awaitαŸ–

Alexey Grachev: αž‘αŸ…αžαžΆαž„αž˜αž»αž

αž”αž‰αŸ’αž αžΆαž‡αžΆαž˜αž½αž™αž’αžŸαž˜αž€αžΆαž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αŸ” Async/await αž‚αžΊαž‡αžΆαž”αž»αž–αŸ’αžœαž”αž‘αžŠαŸαž–αŸαž‰αž“αž·αž™αž˜αž˜αž½αž™αž“αŸ…αž€αŸ’αž“αž»αž„αž—αžΆαžŸαžΆαž•αŸ’αžŸαŸαž„αŸ—αŸ” Python αž“αž·αž„αž’αŸ’αž“αž€αžŠαž‘αŸƒαž˜αžΆαž“αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸαŸ‡ - αžœαžΆαž›αŸ’αž’αžŽαžΆαžŸαŸ‹αŸ” αž”αž‰αŸ’αž αžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αŸ”

αžαžΎαž”αž‰αŸ’αž αžΆαž’αŸ’αžœαžΈαž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™? αž—αžΆαž–αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž€αžΆαž“αŸ‹αžαŸ‚αž€αžΎαž“αž‘αžΎαž„αž“αŸƒαž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒ αž—αžΆαž–αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž“αŸƒαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž’αŸαž€αžΌαž‘αžΌαžŸαŸŠαžΈ αž“αž·αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžαŸ’αž›αž½αž“αž―αž„αŸ”

Alexey Grachev: αž‘αŸ…αžαžΆαž„αž˜αž»αž

  • αžœαžΆαž€αŸ’αž™αžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ Javascript αž‚αžΊαž…αž˜αŸ’αž›αŸ‚αž€αž”αž“αŸ’αžαž·αž…αŸ” αž™αžΎαž„αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‚αŸ’αž“αžΆαžŠαžΉαž„αž–αžΈαž”αž‰αŸ’αž αžΆαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αž’αžΆαžšαŸ αž“αž·αž„αžœαžαŸ’αžαž»αž˜αž½αž™ αž“αž·αž„αžšαžΏαž„αž€αŸ†αž”αŸ’αž›αŸ‚αž„αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ”
  • Javascript αž‚αžΊαž‡αžΆαž–αž αž»αž‚αŸ†αžšαžΌαŸ” αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž–αž·αžŸαŸαžŸαž˜αž½αž™αž₯αž‘αžΌαžœαž“αŸαŸ‡ αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž’αŸαž€αžΌαž‘αžΌαžŸαŸŠαžΈαž˜αžΆαž“αž‘αŸ†αž αŸ†αž’αŸ†αžŽαžΆαžŸαŸ‹αŸ–
    • αž˜αž“αž»αžŸαŸ’αžŸαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαžŸαžšαžŸαŸαžšαžαžΆαž˜αžšαž…αž“αžΆαž”αŸαž‘αŸ’αž˜αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆ - αžαŸ’αž›αŸ‡αžŸαžšαžŸαŸαžšαžαžΆαž˜αž›αŸ†αžŠαžΆαž”αŸ‹ αžαŸ’αž›αŸ‡αžŸαžšαžŸαŸαžšαž˜αž»αžαž„αžΆαžš αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαžŸαžšαžŸαŸαžšαžαž»αžŸαž‚αŸ’αž“αžΆ
    • αž–αžΈαž€αž‰αŸ’αž…αž”αŸ‹αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆ αž‚αŸ†αžšαžΌαž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαž“αŸ…αž–αŸαž›αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž€αž‰αŸ’αž…αž”αŸ‹αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆαŸ”
    • αž˜αžΆαž“ "αž—αžΆαž–αžŸαž”αŸ’αž”αžΆαž™αžšαžΈαž€αžšαžΆαž™" αž‡αžΆαž…αŸ’αžšαžΎαž“αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž˜αž»αžαž„αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„ Javasript - αž”αžŽαŸ’αžŽαžΆαž›αŸαž™ rambda αž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αžαŸ’αž›αž½αž“ αž αžΎαž™αž₯αž‘αžΌαžœαž“αŸαŸ‡αž‚αŸ’αž˜αžΆαž“αž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αž’αžΆαž…αž’αžΆαž“αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž”αžΆαž“αžŸαžšαžŸαŸαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αž“αŸαŸ‡αž”αžΆαž“αž‘αŸαŸ”

  • αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡αž’αŸ’αžœαžΎαž±αŸ’αž™αž˜αžΆαž“αž•αž›αž”αŸ‰αŸ‡αž–αžΆαž›αŸ‹αž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„αžŠαž›αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž’αŸαž€αžΌαž‘αžΌαžŸαŸŠαžΈ αž αžΎαž™αžœαžΆαž”αžΆαž“αžšαžΈαž€αž…αž˜αŸ’αžšαžΎαž“αž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„αž˜αž·αž“αž‚αž½αžšαž±αŸ’αž™αž‡αžΏαŸ” αž€αž‰αŸ’αž…αž”αŸ‹β€‹αž˜αž·αž“β€‹αžαŸ’αžšαžΌαžœβ€‹αž‚αŸ’αž“αžΆβ€‹αž‡αžΆαž˜αž½αž™β€‹αž‚αŸ’αž“αžΆαŸ– αžαŸ’αž›αŸ‡β€‹αž•αŸ’αž’αŸ‚αž€β€‹αž›αžΎβ€‹αž€αžΆαžšβ€‹αžŸαž“αŸ’αž™αžΆ αžαŸ’αž›αŸ‡β€‹αž•αŸ’αž’αŸ‚αž€β€‹αž›αžΎ async/await αžαŸ’αž›αŸ‡β€‹αž•αŸ’αž’αŸ‚αž€β€‹αž›αžΎβ€‹αž€αžΆαžšβ€‹αž αŸ…β€‹αžαŸ’αžšαž‘αž”αŸ‹αŸ” αž‚αŸβ€‹αž€αŸβ€‹αžŸαžšαžŸαŸαžšβ€‹αžαžΆαž˜β€‹αž›αŸ†αž“αžΆαŸ†β€‹αž•αŸ’αžŸαŸαž„αŸ—β€‹αžŠαŸ‚αžš!
  • αž“αŸαŸ‡αž’αŸ’αžœαžΎαž±αŸ’αž™αž‚αž˜αŸ’αžšαŸ„αž„αž“αŸαŸ‡αž–αž·αž”αžΆαž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαžαŸ‚αž‘αžΆαŸ†αŸ” αžœαžΆαž–αž·αž”αžΆαž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαŸ’αžœαŸ‚αž„αžšαž€αž€αŸ†αž αž»αžŸ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αž·αž“αž’αžΆαž…αž’αžΆαž“αž€αžΌαžŠαŸ”

តើ Web Assembly αž‡αžΆαž’αŸ’αžœαžΈ?

αž’αŸ’αž“αž€αž€αŸ’αž›αžΆαž αžΆαž“αž˜αž€αž–αžΈ Mozilla Foundation αž“αž·αž„αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αž˜αž½αž™αž…αŸ†αž“αž½αž“αž‘αŸ€αžαž”αžΆαž“αž˜αž€αž”αž„αŸ’αž€αžΎαžαžšαžΏαž„αžŠαžΌαž…αž‡αžΆ Web Assembly αŸ” αžαžΎβ€‹αž“αŸαŸ‡β€‹αž‡αžΆβ€‹αž’αŸ’αžœαžΈ?

Alexey Grachev: αž‘αŸ…αžαžΆαž„αž˜αž»αž

  • αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€αžŠαŸ‚αž›αž‚αžΆαŸ†αž‘αŸ’αžšαž‘αŸ’αžšαž„αŸ‹αž‘αŸ’αžšαžΆαž™αž‚αŸ„αž›αž–αžΈαžšαŸ”
  • αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αŸ„αž›αž–αžΈαžšαž‘αŸ…αžŠαž›αŸ‹αž‘αžΈαž“αŸ„αŸ‡ αž αžΎαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžŸαŸ’αž‘αžΎαžšαžαŸ‚αžŠαžΎαž˜ αž–αŸ„αž›αž‚αžΊαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž‰αŸ‚αž€ "αž‚αž»αž™αž‘αžΆαžœ" αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸƒαž€αžΌαžŠ javascript αžšαžΆαž›αŸ‹αž–αŸαž›αž“αŸ„αŸ‡αž‘αŸαŸ”
  • αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž”αžΆαž“αž”αŸ’αžšαž€αžΆαžŸαž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαŸ”
  • αžŠαŸ„αž™αžŸαžΆαžšαžœαžΆαž‡αžΆ bytecode αž’αŸ’αž“αž€αž’αžΆαž…αžŸαžšαžŸαŸαžš compiler αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαžŸαžΆαžŽαžΆαž˜αž½αž™αŸ”
  • αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€αž’αŸ†αŸ—αž…αŸ†αž“αž½αž“ 4 αž”αžΆαž“αžŠαžΉαž€αž‡αž‰αŸ’αž‡αžΌαž“αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš Web Assembly αžšαž½αž…αž αžΎαž™αŸ”
  • αž™αžΎαž„αžšαŸ†αž–αžΉαž„αžαžΆαž“αžΉαž„αž˜αžΆαž“αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž–αžΈαžŠαžΎαž˜αž“αŸ…αž€αŸ’αž“αž»αž„ Go αž†αžΆαž”αŸ‹αŸ—αž“αŸαŸ‡αŸ” αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αžαŸ’αž˜αžΈαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αžšαž½αž…αž αžΎαž™αŸ– GOARCH=wasm GOOS=js (αž†αžΆαž”αŸ‹αŸ—αž“αŸαŸ‡)αŸ” αžšαž αžΌαžαž˜αž€αžŠαž›αŸ‹αž–αŸαž›αž“αŸαŸ‡ αžŠαžΌαž…αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž™αž›αŸ‹αž αžΎαž™ αžœαžΆαž˜αž·αž“αž˜αžΆαž“αž˜αž»αžαž„αžΆαžšαž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αžΆαž“αžŸαŸαž…αž€αŸ’αžαžΈαžαŸ’αž›αŸ‚αž„αžαžΆ αžœαžΆαž–αž·αžαž‡αžΆαž“αžΉαž„αž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„ Go αŸ”

αž’αŸ’αžœαžΈαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž’αŸ’αžœαžΎαž₯αž‘αžΌαžœαž“αŸαŸ‡? GopherJS

αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž›αž™αžΎαž„αž˜αž·αž“αž˜αžΆαž“αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Web Assembly αž˜αžΆαž“αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΌαž“αžŸαŸ†αž‘αŸαž„αžŠαžΌαž…αž‡αžΆ GopherJS αŸ”

Alexey Grachev: αž‘αŸ…αžαžΆαž„αž˜αž»αž

  • αž€αžΌαžŠ Go αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αž˜αŸ’αž›αž„αž‘αŸ…αž‡αžΆ Javascript "αžŸαž»αž‘αŸ’αž’" αŸ”
  • αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ - αž˜αž·αž“αž˜αžΆαž“αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαžαŸ’αž˜αžΈαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžšαžŠαŸ„αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€αž‘αŸ†αž“αžΎαž”αžαŸ‚αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ (αž“αŸαŸ‡αž‚αžΊαž‡αžΆ Vanilla JS αžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎαž’αŸ’αžœαžΈαž‘αžΆαŸ†αž„αž’αžŸαŸ‹) αŸ”
  • αž˜αžΆαž“αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαŸ’αž‘αžΎαžšαžαŸ‚αž‚αŸ’αžšαž”αŸ‹αž’αŸ’αžœαžΈαŸ—αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž› Go αž˜αžΆαž“ αžšαž½αž˜αž‘αžΆαŸ†αž„ αž‘αž˜αŸ’αž›αžΆαž”αŸ‹ αž“αž·αž„αž”αŸ‰αž»αžŸαŸ’αžαž·αŸ... αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžŠαŸ‚αž›αž™αžΎαž„αžŸαŸ’αžšαž‘αžΆαž‰αŸ‹ αž“αž·αž„αžŠαžΉαž„αž…αŸ’αžšαžΎαž“αŸ”
  • αžŸαŸ’αž‘αžΎαžšαžαŸ‚αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžŸαŸ’αžŠαž„αŸ‹αžŠαžΆαžšαž‘αžΆαŸ†αž„αž˜αžΌαž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžš αž›αžΎαž€αž›αŸ‚αž„αžαŸ‚αž€αž‰αŸ’αž…αž”αŸ‹αž‘αžΆαŸ†αž„αž“αŸ„αŸ‡αžŠαŸ‚αž›αžœαžΆαž˜αž·αž“αžŸαž˜αž αŸαžαž»αž•αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€αžαžΆαž˜αž’αŸŠαžΈαž“αž’αžΊαžŽαž·αžαŸ– syscall αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αžŸαž»αž‘αŸ’αž’ (αž˜αžΆαž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ net/http αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‚αŸ’αž˜αžΆαž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž αžΎαž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœαžαŸ’αžšαžΌαžœαž”αžΆαž“αžαŸ’αžšαžΆαž”αŸ‹αžαžΆαž˜αžαžΆαž˜αžšαž™αŸˆ XMLHttpRequest) αŸ” αž‡αžΆαž‘αžΌαž‘αŸ… αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžŸαŸ’αžŠαž„αŸ‹αžŠαžΆαžšαž‘αžΆαŸ†αž„αž˜αžΌαž›αž˜αžΆαž“ - αž“αŸ…αž‘αžΈαž“αŸαŸ‡αžœαžΆαžŸαŸ’αžαž·αžαž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€ αž αžΎαž™αž“αŸαŸ‡αž‚αžΊαž‡αžΆ stdlib αžšαž”αžŸαŸ‹ Go αžŠαŸ‚αž›αž™αžΎαž„αž…αžΌαž›αž…αž·αžαŸ’αžαŸ”
  • αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž’αŸαž€αžΌαž€αž‰αŸ’αž…αž”αŸ‹αž‘αžΆαŸ†αž„αž˜αžΌαž›αž“αŸ…αž€αŸ’αž“αž»αž„ Go αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž—αžΆαž‚αžΈαž‘αžΈαž”αžΈαž‘αžΆαŸ†αž„αž’αžŸαŸ‹ (αž‚αŸ†αžšαžΌαŸ” αž›αŸ” ) αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αž„αž€αŸ’αžšαž„αžŠαŸ„αž™αž”αŸ’αžšαžΎ GopherJS αž αžΎαž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€

GopherJS αž˜αžΆαž“αž—αžΆαž–αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαž‘αž‘αž½αž›αž”αžΆαž“ - αžœαžΆαž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž‡αžΆαž€αž‰αŸ’αž…αž”αŸ‹ Go αž’αž˜αŸ’αž˜αžαžΆαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αž™αžΎαž„αž‘αŸ…αž‘αž‘αž½αž› αž αžΎαž™αž™αžΎαž„αž˜αžΆαž“αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ GopherJS αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαŸ–

Alexey Grachev: αž‘αŸ…αžαžΆαž„αž˜αž»αž

αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž–αž·αž—αž–αž›αŸ„αž€αžŠαŸαžαžΌαž…αž˜αž½αž™...

Alexey Grachev: αž‘αŸ…αžαžΆαž„αž˜αž»αž

...αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Go αž’αž˜αŸ’αž˜αžαžΆ αž€αž‰αŸ’αž…αž”αŸ‹ fmt αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαž’αž˜αŸ’αž˜αžαžΆ αž“αž·αž„ Binding Js αžŠαžΎαž˜αŸ’αž”αžΈαžˆαžΆαž“αžŠαž›αŸ‹ API αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€αžαžΆαž˜αž’αŸŠαžΈαž“αž’αžΊαžŽαž·αžαŸ” Println αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ†αž”αŸ’αž›αŸ‚αž„αž‘αŸ…αž‡αžΆ console log αž αžΎαž™ browser αž“αžΉαž„αžŸαžšαžŸαŸαžš β€œHello gophers”! αžœαžΆαžŸαžΆαž˜αž‰αŸ’αž‰αžŽαžΆαžŸαŸ‹αŸ– αž™αžΎαž„αž”αž„αŸ’αž€αžΎαž GopherJS - αž™αžΎαž„αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€ - αž’αŸ’αžœαžΈαŸ—αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš!

αžαžΎαž’αŸ’αž“αž€αž˜αžΆαž“αž’αŸ’αžœαžΈαžαŸ’αž›αŸ‡αž“αŸ…αž–αŸαž›αž“αŸαŸ‡? αž€αžΆαžšαž…αž„

Alexey Grachev: αž‘αŸ…αžαžΆαž„αž˜αž»αž

αž˜αžΆαž“αž€αžΆαžšαž…αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ js frameworks αžŠαŸαž–αŸαž‰αž“αž·αž™αž˜αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ–

  • JQuery;
  • Angular.js;
  • D3.js αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αžΌαžš αž“αž·αž„αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž‘αž·αž“αŸ’αž“αž“αŸαž™αž’αŸ†;
  • React.js;
  • VueJS;
  • αž˜αžΆαž“αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸαž‘αž·αž…αžαŸ’αžšαž»αž„ (αž“αŸ„αŸ‡αž‚αžΊαž™αžΎαž„αž’αžΆαž…αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž›αžΎαž’αŸαž‘αž·αž…αžαŸ’αžšαž»αž„αžšαž½αž…αž αžΎαž™);
  • αž αžΎαž™αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž‚αž½αžšαž±αŸ’αž™αž’αžŸαŸ‹αžŸαŸ†αžŽαžΎαž…αž”αŸ†αž•αž»αžαž“αŸ„αŸ‡αž‚αžΊ WebGL (αž™αžΎαž„αž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ’αžšαžΆαž αŸ’αžœαž·αž€αž–αŸαž‰αž›αŸαž‰ αžšαž½αž˜αž‘αžΆαŸ†αž„αž αŸ’αž‚αŸαž˜αžŠαŸ‚αž›αž˜αžΆαž“αž€αŸ’αžšαžΆαž αŸ’αžœαž·αž€ 3D αžαž“αŸ’αžαŸ’αžšαžΈ αž“αž·αž„αžšαž”αžŸαŸ‹αž›αŸ’αž’αž‘αžΆαŸ†αž„αž’αžŸαŸ‹);
  • αž“αž·αž„αž€αžΆαžšαž…αž„αž—αŸ’αž‡αžΆαž”αŸ‹αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž‡αžΆαž…αŸ’αžšαžΎαž“αž‘αŸ…αž“αžΉαž„αž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒ javascript αž“αž·αž„αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžŠαŸαž–αŸαž‰αž“αž·αž™αž˜αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”

αž€αž”αžαŸαžŽ

  1. αž˜αžΆαž“β€‹αž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒβ€‹αž”αžŽαŸ’αžŠαžΆαž‰β€‹αž˜αž½αž™β€‹αžŠαŸ‚αž›β€‹αž”αžΆαž“β€‹αž”αž„αŸ’αž€αžΎαžβ€‹αž‘αžΎαž„β€‹αž‡αžΆβ€‹αž–αž·αžŸαŸαžŸβ€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ GopherJS - Vecty αŸ” αž“αŸαŸ‡αž‚αžΊαž‡αžΆ analogue αž–αŸαž‰αž›αŸαž‰αž“αŸƒ React.js αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžαŸ‚αž“αŸ…αž€αŸ’αž“αž»αž„ Go αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαžšαž”αžŸαŸ‹ GopherJS αŸ”
  2. αž˜αžΆαž“αž€αžΆαž”αžΌαž”αž αŸ’αž‚αŸαž˜ (αž—αŸ’αž‰αžΆαž€αŸ‹αž•αŸ’αž’αžΎαž›!) αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžšαž€αžƒαžΎαž‰αž–αžΈαžšαžŠαŸ‚αž›αž–αŸαž‰αž“αž·αž™αž˜αž”αŸ†αž•αž»αž:
    • αž’αŸαž„αž αŸ’αž‚αŸ„;
    • αž’αŸŠαžΈαž”αŸŠαžΈαž‘αžΈαž“αŸ”

αžαŸ’αž‰αž»αŸ†β€‹αž“αžΉαž„β€‹αž”αž„αŸ’αž αžΆαž‰β€‹αž’αŸ’αž“αž€β€‹αž“αžΌαžœβ€‹αž§αž‘αžΆαž αžšαžŽαŸβ€‹αž˜αž½αž™β€‹αž…αŸ†αž“αž½αž“β€‹αž“αŸƒβ€‹αžšαžΌαž”αžšαžΆαž„β€‹αž“αž·αž„β€‹αž’αŸ’αžœαžΈβ€‹αžŠαŸ‚αž›β€‹αž’αŸ’αž“αž€β€‹αž’αžΆαž…β€‹αžŸαžšαžŸαŸαžšβ€‹αžšαž½αž…β€‹αž αžΎαž™β€‹αž“αŸ…β€‹αž€αŸ’αž“αž»αž„ Go:

Alexey Grachev: αž‘αŸ…αžαžΆαž„αž˜αž»αž

αž¬αž‡αž˜αŸ’αžšαžΎαžŸαž“αŸαŸ‡ (αžαŸ’αž‰αž»αŸ†αž˜αž·αž“αž’αžΆαž…αžšαž€αžƒαžΎαž‰αž§αž”αž€αžšαžŽαŸαž”αžΆαž‰αŸ‹ 3D αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαžœαžΆαž˜αžΆαž“)αŸ–

Alexey Grachev: αž‘αŸ…αžαžΆαž„αž˜αž»αž

αžαžΎαžαŸ’αž‰αž»αŸ†αž•αŸ’αžαž›αŸ‹αž’αŸ’αžœαžΈ?

αž₯αž‘αžΌαžœαž“αŸαŸ‡αž§αžŸαŸ’αžŸαžΆαž αž€αž˜αŸ’αž˜αžˆαžΆαž“αž˜αž»αžαž‚αžΊαžŸαŸ’αžαž·αžαž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ’αžαžΆαž“αž—αžΆαž–αžŠαŸ‚αž›αž—αžΆαžŸαžΆαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž–αžΈαž˜αž»αž“αž”αžΆαž“αžŸαŸ’αžšαŸ‚αž€αž–αžΈ Javascript αž“αžΉαž„αž”αŸ’αžšαž‰αžΆαž”αŸ‹αž”αŸ’αžšαž‰αžΆαž›αŸ‹αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αŸ” αž₯αž‘αžΌαžœαž“αŸαŸ‡αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αž„αž€αŸ’αžšαž„αž‡αžΆ "Web Assemblies" αŸ” αžαžΎβ€‹αž™αžΎαž„β€‹αžαŸ’αžšαžΌαžœβ€‹αž€αžΆαžšβ€‹αž’αŸ’αžœαžΈβ€‹αžαŸ’αž›αŸ‡β€‹αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž™αž€β€‹αž€αž“αŸ’αž›αŸ‚αž„β€‹αžŠαŸβ€‹αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœβ€‹αžšαž”αžŸαŸ‹β€‹αž™αžΎαž„β€‹αž“αŸ…β€‹αž‘αžΈαž“αŸ„αŸ‡β€‹αž€αŸ’αž“αž»αž„β€‹αž“αžΆαž˜β€‹αž‡αžΆ Gophers?

Alexey Grachev: αž‘αŸ…αžαžΆαž„αž˜αž»αž

Go αž”αžΆαž“αžŸαž“αŸ’αž˜αžαŸ‹αžαžΆαžœαžΆαž‡αžΆαž—αžΆαžŸαžΆαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αŸ’αžšαž–αŸαž“αŸ’αž’ αž αžΎαž™αž‡αžΆαž‘αžΌαž‘αŸ…αž˜αž·αž“αž˜αžΆαž“αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™ UI αž‘αŸαŸ” αž˜αžΆαž“β€‹αž’αŸ’αžœαžΈβ€‹αž˜αž½αž™ αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž‚αŸβ€‹αž”αŸ„αŸ‡β€‹αž”αž„αŸ‹β€‹αž…αŸ„αž›β€‹αž–αžΆαž€αŸ‹β€‹αž€αžŽαŸ’αžαžΆαž› αž˜αž·αž“β€‹αž˜αžΆαž“β€‹αž˜αž»αžαž„αžΆαžšαŸ”

αž αžΎαž™αž₯αž‘αžΌαžœαž“αŸαŸ‡αž‚αžΊαž‡αžΆαž±αž€αžΆαžŸαžŠαŸαž›αŸ’αž’αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž”αžŽαŸ’αžŽαžΆαž›αŸαž™ UI αž“αŸ…αž€αŸ’αž“αž»αž„ Go αžŠαŸ‚αž›αž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎ GopherJS! αž‘αžΈαž”αŸ†αž•αž»αžαž’αŸ’αž“αž€αž’αžΆαž…αžŸαžšαžŸαŸαžšαž€αŸ’αžšαž”αžαžŽαŸ’αžŒαž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž”αžΆαž“! αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž–αŸαž›αžœαŸαž›αžΆαžŠαŸ‚αž›αž’αŸ’αž“αž€αž’αžΆαž…αžŸαžšαžŸαŸαžšαž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒαž”αžΆαž“ αž αžΎαž™αžœαžΆαž“αžΉαž„αž€αŸ’αž›αžΆαž™αž‡αžΆαž•αŸ’αž“αŸ‚αž€αž˜αž½αž™αž“αŸƒαž€αžΆαžšαž’αž“αž»αž˜αŸαžαžŠαŸ†αž”αžΌαž„ αž αžΎαž™αž’αŸ’αž“αž€αž“αžΉαž„αž€αŸ’αž›αžΆαž™αž‡αžΆαžαžΆαžšαžΆ (αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžœαžΆαž‡αžΆαž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒαž›αŸ’αž’) αŸ”

αž’αŸ’αž“αž€β€‹αž’αžΆαž…β€‹αžŸαž˜αŸ’αžšαž”β€‹αž€αž‰αŸ’αž…αž”αŸ‹β€‹αž•αŸ’αžŸαŸαž„β€‹αž‚αŸ’αž“αžΆβ€‹αž‡αžΆβ€‹αž…αŸ’αžšαžΎαž“β€‹αžŠαŸ‚αž›β€‹αž˜αžΆαž“β€‹αžšαž½αž…β€‹αž αžΎαž™β€‹αž“αŸ…β€‹αž€αŸ’αž“αž»αž„β€‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’β€‹αž’αŸαž€αžΌβ€‹αž‘αŸ…β€‹αž“αžΉαž„β€‹αž›αž€αŸ’αžαžŽαŸˆβ€‹αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹β€‹αž“αŸƒβ€‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€β€‹αžαžΆαž˜β€‹αž’αŸŠαžΈαž“αž’αžΊαžŽαž·αž (αž§αž‘αžΆαž αžšαžŽαŸ αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“β€‹αž‚αŸ†αžšαžΌ)αŸ” αž–αž½αž€αžœαžΆαž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαž½αž…αž αžΎαž™ αž’αŸ’αž“αž€αž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαž€αžΆαžšαž…αž„αž™αŸ‰αžΆαž„αž„αžΆαž™αžŸαŸ’αžšαž½αž› αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž’αŸ’αž“αž€αž’αžΆαž…αž”αž„αŸ’αž αžΆαž‰αž˜αžΆαžαž·αž€αžΆαžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€αžαžΆαž˜αž’αŸŠαžΈαž“αž’αžΊαžŽαž·αžαž”αžΆαž“αž™αŸ‰αžΆαž„αž„αžΆαž™αžŸαŸ’αžšαž½αž›αŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡ αž’αŸ’αž“αž€αž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžŠαŸ‚αž›αž’αžΆαž…αž”αž„αŸ’αž αžΆαž‰αžšαžΏαž„αžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž“αž·αž„αž“αŸ…αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž˜αž»αž αžŠαŸ„αž™αž”αŸ’αžšαžΎαž€αžΌαžŠαžŠαžΌαž…αž‚αŸ’αž“αžΆ - αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžŠαŸ‚αž›αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž˜αž»αžαž…αžΌαž›αž…αž·αžαŸ’αž (αž˜αžΆαž“αžαŸ‚αž₯αž‘αžΌαžœαž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„ Go) αŸ”

αž’αŸ’αž“αž€αž’αžΆαž…αžŸαžšαžŸαŸαžšαž αŸ’αž‚αŸαž˜αž”αžΆαž“! αž‚αŸ’αžšαžΆαž“αŸ‹β€‹αžαŸ‚β€‹αž›αŸαž„αžŸαžΎαž…β€¦

αž“αŸ„αŸ‡αž αžΎαž™αž‡αžΆαž’αŸ’αžœαžΈαžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž…αž„αŸ‹αž“αž·αž™αžΆαž™αŸ”

Alexey Grachev: αž‘αŸ…αžαžΆαž„αž˜αž»αž

αžŸαŸ†αžŽαž½αžš

αžŸαŸ†αžŽαž½αžš (αžαž‘αŸ…αž“αŸαŸ‡αž αŸ…αžαžΆ Q)αŸ– - αžαžΎαžαŸ’αž‰αž»αŸ†αžŸαžšαžŸαŸαžšαž€αŸ’αž“αž»αž„ Go ឬ Js?

AGαŸ– - αž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαž‘αž˜αŸ’αž›αžΆαž”αŸ‹ αž†αžΆαž“αŸ‚αž› αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ αž”αž„αŸ’αž€αž”αŸ‹ - αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αž“αŸ…αž€αŸ’αž“αž»αž„ Go... αž’αŸ’αž“αž€αž‡αžΆαžœαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ αž†αŸ’αž›αž„αž€αžΆαžαŸ‹αž˜αž»αžαž„αžΆαžšαž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αŸ”

αž€αŸ’αž“αž»αž„αŸ– - αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžαŸ’αž‰αž»αŸ†αžŸαžšαžŸαŸαžšαž‡αžΆ "αž’αžΆαž€αŸ’αžšαžΆαž" Js?

AGαŸ– - αž‘αŸ αž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαžŠαžΌαž…αž‡αžΆαž“αŸ…αž€αŸ’αž“αž»αž„ Go αž αžΎαž™αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ… browser API ( API αž˜αž·αž“αž”αžΆαž“αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αŸ)αŸ” αž’αŸ’αž“αž€αž’αžΆαž…αžŸαžšαžŸαŸαžšαž…αŸ†αžŽαž„αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžŸαžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‰αžΎαž‘αŸ…αž€αžΆαž“αŸ‹αž”αŸ‰αž»αžŸαŸ’αžαž·αŸ - αžœαžΆαž˜αž·αž“αž–αž·αž”αžΆαž€αž‘αŸαŸ”

αž€αŸ’αž“αž»αž„αŸ– - αž…αž»αŸ‡αž‘αžΌαžšαžŸαŸαž–αŸ’αž‘αž…αž›αŸαžαžœαž·αž‰?

AGαŸ– - αžαŸ’αž‰αž»αŸ†αž–αž·αžαž‡αžΆαž”αžΆαž“αžƒαžΎαž‰αŸ– αž˜αžΆαž“αž€αžΆαžšαž…αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ†αžŽαŸ‡ Cordova αžŠαŸ‚αž› Js αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αž“αŸ…αž€αŸ’αž“αž»αž„ React Native - αžαŸ’αž‰αž»αŸ†αž˜αž·αž“αžŠαžΉαž„; αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž˜αžΆαž“ αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž˜αž·αž“αž˜αŸ‚αž“ (αžαŸ’αž‰αž»αŸ†αž˜αž·αž“αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž‡αžΆαž–αž·αžŸαŸαžŸαž‘αŸ)αŸ” αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž αŸ’αž‚αŸαž˜ N-go αž‚αžΆαŸ†αž‘αŸ’αžšαž‘αžΆαŸ†αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‘αžΌαžšαžŸαŸαž–αŸ’αž‘ - αž‘αžΆαŸ†αž„ iOS αž“αž·αž„ Android αŸ”

αž€αŸ’αž“αž»αž„αŸ– - αžŸαŸ†αžŽαž½αžšαž’αŸ†αž–αžΈαžŸαž“αŸ’αž“αž·αž”αžΆαžαž‚αŸαž αž‘αŸ†αž–αŸαžšαŸ” αž€αž“αŸ’αž›αŸ‚αž„αž‘αŸ†αž“αŸαžšαž€αžΆαž“αŸ‹αžαŸ‚αž…αŸ’αžšαžΎαž“αž€αŸ†αž–αž»αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΆαž”αŸ‹αž™αž€ αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž˜αžΆαž“αž€αžΆαžšαž”αž„αŸ’αž αžΆαž”αŸ‹ αž“αž·αž„ "αž”αž„αŸ’αžšαž½αž˜"... αžαžΎαž™αžΎαž„αž“αžΉαž„αž˜αž·αž“αžŸαž˜αŸ’αž›αžΆαž”αŸ‹αž–αž·αž—αž–αž›αŸ„αž€αžαžΆαž„αž˜αž»αžαžαžΆαž˜αžšαž”αŸ€αž”αž“αŸαŸ‡αž‘αŸ€αžαž‘αŸ?

AGαŸ– - Web Assembly αž‚αžΊαž‡αžΆαž‘αž˜αŸ’αžšαž„αŸ‹αž‚αŸ„αž›αž–αžΈαžš αž αžΎαž™αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αŸ„αž›αž–αžΈαžšαžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αž˜αž·αž“αž’αžΆαž…αžŸαŸ’αžαž·αžαž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž…αŸ’αžšαžΎαž“αž‡αžΆαž„αž’αžαŸ’αžαž”αž‘... αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αžΆαž‰αž‘αŸ…αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸαŸ‡αž‚αžΊαžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αžΉαž„αž€αžΆαžšαž’αžΌαžŸαž…αŸαž‰αž–αžΈαž”αžŽαŸ’αžŽαžΆαž›αŸαž™ Javascript αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžœαžΆαž˜αž·αž“αž˜αžΆαž“ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž™αžΎαž„ αž”αŸ’αžšαžΎ Lodash αžαŸ’αž›αŸ‡αŸ” αžαŸ’αž‰αž»αŸ†αž˜αž·αž“αžŠαžΉαž„αžαžΆ Lodash αž…αŸ†αžŽαžΆαž™αž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“αž‘αŸαŸ”

αž€αŸ’αž“αž»αž„αŸ– - αž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αžαž·αž…αž‡αžΆαž„αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš ...

AGαŸ– - αž“αŸ…αž€αŸ’αž“αž»αž„ "αžŸαž»αž‘αŸ’αž’" Javascript?

αž€αŸ’αž“αž»αž„αŸ– - αž”αžΆαž‘αŸ” αž™αžΎαž„αž”αž„αŸ’αžšαž½αž˜αžœαžΆαž˜αž»αž“αž–αŸαž›αž•αŸ’αž‰αžΎαžœαžΆ ...

AGαŸ– - αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž’αžαŸ’αžαž”αž‘... αž‡αžΆαž‘αžΌαž‘αŸ… αž˜αŸαž€αžΆαž”αŸƒαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαž…αŸ’αžšαžΎαž“ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ„αŸ‡αž‡αžΆαž‘αžΆαŸ†αž„αž’αžŸαŸ‹ (αž’αŸ’αž“αž€αž˜αžΆαž“αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αžΆαŸ†αž„αž˜αžΌαž›)αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαžαž€αŸ’αž€αžœαž·αž‡αŸ’αž‡αžΆαž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αžŠαŸ‚αž›αž“αžΉαž„αž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αŸ„αž›αž–αžΈαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ 1% αŸ” αžšαž αžΌαžβ€‹αž˜αž€β€‹αžŠαž›αŸ‹β€‹αž–αŸαž›β€‹αž“αŸαŸ‡ αžαŸ’αž‰αž»αŸ†β€‹αž˜αž·αž“β€‹αžƒαžΎαž‰β€‹αž€αžΆαžšβ€‹αžŸαž˜αŸ’αž›αžΆαž”αŸ‹β€‹αž“αŸαŸ‡β€‹αž‘αŸαŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ…αž‘αŸ€αž Web Assembly αž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΏαž“αž‡αžΆαž„ Javascript αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž αŸαžαž»αž•αž›αž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„ - αžœαžΆαž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž‰αŸ‚αž€αž‘αŸαŸ”

αž€αŸ’αž“αž»αž„αŸ– - αž“αŸαŸ‡αž“αŸ…αžαŸ‚αž‡αžΆαž…αŸ†αžŽαž»αž…αž…αž˜αŸ’αžšαžΌαž„αž…αž˜αŸ’αžšαžΆαžŸ... αž˜αž·αž“αž‘αžΆαž“αŸ‹αž˜αžΆαž“αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž―αž€αžŸαžΆαžšαž™αŸ„αž„αžŽαžΆαž˜αž½αž™αž“αŸƒ "Vasma" (Web Assembly) αžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™αž‚αŸαž’αžΆαž…αžœαž·αž“αž·αž…αŸ’αž†αŸαž™αžŠαŸ„αž™αž˜αž·αž“αž…αŸ’αž”αžΆαžŸαŸ‹αž›αžΆαžŸαŸ‹αŸ” αžαžΆαž˜αž‚αŸ†αž“αž·αž αž”αžΆαž‘αŸ– αž™αžΎαž„αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‚αŸ’αž“αžΆαž™αž›αŸ‹αžαžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αŸ„αž›αž–αžΈαžšαž‚αž½αžšαžαŸ‚αž›αžΏαž“αž‡αžΆαž„ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž“αŸƒ V8 αžŠαžΌαž…αž‚αŸ’αž“αžΆαž‚αžΊαž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžŽαžΆαžŸαŸ‹αŸ”

AGαŸ– - αž”αžΆαž‘αŸ”

αž€αŸ’αž“αž»αž„αŸ– - αž€αžΆαžšαž…αž„αž€αŸ’αžšαž„αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αž–αž·αžαž‡αžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αŸ’αž’αžŽαžΆαžŸαŸ‹ αž αžΎαž™αžœαžΆαž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆαžœαžΆαž“αžΉαž„αž˜αžΆαž“αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž’αŸ†αž“αŸ„αŸ‡αž‘αŸαŸ”

AGαŸ– - Web Assembly αž€αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™αž’αŸ’αž“αž€αž’αŸ†αž•αž„αžŠαŸ‚αžšαŸ”

αž€αŸ’αž“αž»αž„αŸ– - αžœαžΆαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαžαŸ’αž‰αž»αŸ†αžαžΆαžœαžΆαž“αŸ…αžαŸ‚αž–αž·αž”αžΆαž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαžœαž·αž“αž·αž…αŸ’αž†αŸαž™ Web Assembly αŸ” αž˜αžΆαž“αž€αžΆαžšαžŸαž“αŸ’αž‘αž“αžΆαž‡αžΆαž…αŸ’αžšαžΎαž“αž†αŸ’αž“αžΆαŸ†αž˜αž€αž“αŸαŸ‡ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αžΆαž“αžŸαž˜αž·αž‘αŸ’αž’αž·αž•αž›αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαžαž·αž…αžαž½αž…αžŠαŸ‚αž›αž’αžΆαž…αž˜αžΆαž“αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž”αžΆαž“αŸ”

AGαŸ– - αž”αŸ’αžšαž αŸ‚αž›αŸ” αž™αžΎαž„αž“αžΉαž„αžƒαžΎαž‰αŸ”

αž€αŸ’αž“αž»αž„αŸ– - αž™αžΎαž„αž˜αž·αž“αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαž“αŸ…αž›αžΎαž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž€αŸ’αžšαŸ„αž™αž‘αŸ ... αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž™αžΎαž„αž‚αž½αžšαžαŸ‚αž‘αž»αž€αž”αž‰αŸ’αž αžΆαž‘αžΆαŸ†αž„αž“αŸαŸ‡αž“αŸ…αž›αžΎαž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž˜αž»αž? αž αŸαžαž»αž’αŸ’αžœαžΈαž‘αŸ…αž‘αžΈαž“αŸ„αŸ‡?

AGαŸ– - αž™αžΎαž„αžαŸ’αžšαžΌαžœαžšαž€αŸ’αžŸαžΆαž”αž»αž‚αŸ’αž‚αž›αž·αž€αž“αŸƒαž€αž˜αŸ’αž˜αž€αžšαž‡αž½αžšαž˜αž»αžαŸ”

αž€αžΆαžšαž•αŸ’αžŸαžΆαž™αž–αžΆαžŽαž·αž‡αŸ’αž‡αž€αž˜αŸ’αž˜αž˜αž½αž™αž…αŸ†αž“αž½αž“πŸ™‚

αžŸαžΌαž˜αž’αžšαž‚αž»αžŽαž…αŸ†αž–αŸ„αŸ‡αž€αžΆαžšαžŸαŸ’αž“αžΆαž€αŸ‹αž“αŸ…αž‡αžΆαž˜αž½αž™αž–αž½αž€αž™αžΎαž„αŸ” αžαžΎαž’αŸ’αž“αž€αž…αžΌαž›αž…αž·αžαŸ’αžαž’αžαŸ’αžαž”αž‘αžšαž”αžŸαŸ‹αž™αžΎαž„αž‘αŸ? αž…αž„αŸ‹αž˜αžΎαž›αžαŸ’αž›αžΉαž˜αžŸαžΆαžšαž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαž‘αŸ? αž‚αžΆαŸ†αž‘αŸ’αžšαž™αžΎαž„αžŠαŸ„αž™αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž‘αž·αž‰αž¬αžŽαŸ‚αž“αžΆαŸ†αžŠαž›αŸ‹αž˜αž·αžαŸ’αžαž—αž€αŸ’αžαž·, cloud VPS αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž…αžΆαž”αŸ‹αž–αžΈ $4.99, analogue αžαŸ‚αž˜αž½αž™αž‚αžαŸ‹αž“αŸƒαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž€αž˜αŸ’αžšαž·αžαž’αžΆαžαž» αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™αž–αž½αž€αž™αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αŸ– αž€αžΆαžšαž–αž·αžαž‘αžΆαŸ†αž„αž˜αžΌαž›αž’αŸ†αž–αžΈ VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps αž…αžΆαž”αŸ‹αž–αžΈ $19 αž¬αžšαž”αŸ€αž”αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ? (αž’αžΆαž…αž”αŸ’αžšαžΎαž”αžΆαž“αž‡αžΆαž˜αž½αž™ RAID1 αž“αž·αž„ RAID10 αžšαž αžΌαžαžŠαž›αŸ‹ 24 cores αž“αž·αž„αžšαž αžΌαžαžŠαž›αŸ‹ 40GB DDR4)αŸ”

Dell R730xd 2x αžαŸ„αž€αž‡αžΆαž„αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αž‡αŸ’αžˆαž˜αžŽαŸ’αžŒαž›αž‘αž·αž“αŸ’αž“αž“αŸαž™ Equinix Tier IV αž“αŸ…αž‘αžΈαž€αŸ’αžšαž»αž„ Amsterdam? αž“αŸ…αž‘αžΈαž“αŸαŸ‡ 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV αž…αžΆαž”αŸ‹αž–αžΈ $199 αž“αŸ…αž”αŸ’αžšαž‘αŸαžŸαž αžΌαž‘αž„αŸ‹! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - αž…αžΆαž”αŸ‹αž–αžΈ $99! αž’αžΆαž“β€‹αž’αŸ†αž–αžΈ αžšαž”αŸ€αž”αž”αž„αŸ’αž€αžΎαžαž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ αžαŸ’αž“αžΆαž€αŸ‹αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ Dell R730xd E5-2650 v4 αžŠαŸ‚αž›αž˜αžΆαž“αžαž˜αŸ’αž›αŸƒ 9000 αž’αžΊαžšαŸ‰αžΌαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αž½αž™αž€αžΆαž€αŸ‹?

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹