Dalam artikel ini Adrian Thierry memberitahu kami tentang NectarJS, projek sedikit gila ini yang muncul di KickStarter baru-baru ini membolehkan anda menyusun kod JavaScript secara asli ke mana-mana platform, dalam WebAssembly atau pun dalam ASM.js.
Hello Adrien, dan terima kasih atas temu bual ini, saya mula-mula mencadangkan untuk memperkenalkan anda:
Salam sejahtera Mathieu, saya seorang usahawan Perancis, pakar keselamatan IT dan berminat dengan teknologi baharu. Saya mengasaskan Seraum, sebuah syarikat perundingan dan latihan keselamatan IT, lima tahun yang lalu. Saya telah menjalankan pelbagai projek penyelidikan mengenai keselamatan pembayaran dalam talian dan keselamatan akses secara umum. Saya membangunkan beberapa penyelesaian keselamatan dan mengujinya secara langsung di hackmyfortress.com , satu cabaran penggodaman yang menawarkan $30,000 kepada sesiapa yang berjaya menggodamnya.
Bolehkah anda menerangkan kepada kami apa itu NectarJS?
NectarJS ialah pengkompil JavaScript merentas platform dalam SAAS, atau CAAS (Penyusun Sebagai Perkhidmatan). Ia membolehkan anda menyusun JavaScript dari mana-mana platform, ke mana-mana platform. Pada masa ini, adalah mungkin untuk menyusun ke Windows (32 & 64 bit), Linux (32, 64 bit dan ARM), Arduino (UNO dan Mega), dalam webassembly et ASM.JS. Oleh itu, adalah mungkin untuk menyusun JavaScript daripada Rasbperry PI 3 kepada Arduino. Saya bercakap mengenai penyusunan, hasil yang diperoleh ialah fail binari boleh laku atau perisian tegar khusus untuk platform yang disasarkan. Anda juga boleh menyusun dari telefon Android anda ke Windows atau Linux. Platform pembangunan bukan lagi halangan. Dalam pasukan pembangun, tidak perlu lagi bimbang tentang versi VM sedemikian atau persekitaran ujian atau kompilasi sedemikian.

Bagaimanakah anda mendapat idea untuk projek ini?
Semasa menjalankan penanda aras, saya menemui Crystal , yang membolehkan anda mengkompilasi kod yang sangat serupa dengan Ruby. Hasil yang dikompilasi adalah 5 hingga 10 kali lebih pantas daripada NodeJS pada permintaan HTTP. Saya mempunyai dua pilihan untuk meningkatkan kelajuan: memindahkan susunan NodeJS saya ke Crystal (yang terhad kepada Linux), atau mengkompilasi JavaScript untuk meningkatkan kelajuan. Saya memilih pilihan kedua dan memperoleh keputusan yang menggalakkan dengan sangat cepat. Pelbagai penanda aras mengesahkan pilihan saya dan mendorong saya untuk meneruskan pembangunan. Saya menyiarkan berita rawak di Hacker News yang menjadi tular (137 mata dan 78 komen).
Projek ini nampaknya terlalu gila untuk menjadi kenyataan, bolehkah anda terangkan sedikit cara ia berfungsi tanpa memberikan keseluruhan resipi?
NectarJS mencipta AST (pokok sintaks abstrak), dan menjana daripadanya bahasa perantaraan (IL) yang kemudiannya boleh disusun ke mana-mana platform. Pelanggan NectarJS, dipasang pada mesin yang ingin menyusun, hanya akan menyulitkan kod dan menghantarnya ke pelayan untuk disusun.
Apakah batasan projek semasa, bolehkah saya menyusun aplikasi Node/Express saya?
Belum lagi, kita berada pada permulaan pembangunan dan kita masih mempunyai banyak perpustakaan untuk dikodkan atau ditranskripsikan. Kita sudah boleh menyusun beberapa keping perpustakaan FS (FileSystem) atau Proses NodeJS, tetapi masih jauh lagi untuk dilalui. Akhirnya, tidak akan ada batasan. Kami berhasrat untuk menyusun JavaScript sepenuhnya kepada standard ES5, kemudian kepada ES6 dan ES7. Kami juga mempunyai algoritma yang membolehkan kami menyusun "eval()" atau "ini.".
Bagaimanakah saya akan menyahpepijat aplikasi kompil asli saya?
Terdapat beberapa cara untuk menyahpepijat aplikasi anda. Pelayar, melalui WebAssembly, boleh menjadi cara mudah untuk menganalisis operasi kodnya dengan alatan harian. Kami juga telah merancang untuk menyepadukan ke dalam NectarJS semua alat pengesanan dan nyahpepijat, yang akan membolehkan penyusunan dalam mod nyahpepijat dan memudahkan penyiasatan. Kami benar-benar mahu mendemokrasikan pembangunan, dan akan melakukan segala-galanya untuk menjadikannya semudah dan secekap mungkin.
Adakah anda fikir projek anda akhirnya boleh menggantikan bahasa apl mudah alih asli?
Jika ia digunakan secara meluas, ia boleh menggantikan banyak perkara: pembangunan mudah alih, tetapi juga pembangunan IoT , pembangunan bahagian pelayan, pembangunan web… Dengan NectarJS, JavaScript menjadi universal dan cekap. Sesiapa sahaja boleh mengekod dengan apa sahaja; kuasa pengkomputeran tidak relevan kerana pelayan NectarJS melakukan kerja tersebut. NectarJS juga mengurangkan penggunaan tenaga, sekali gus menjadikan pengkomputeran lebih mesra alam.
Ia juga mungkin untuk membenarkan orang yang mempunyai cara terhad untuk membuat kod: Raspberry mudah membolehkan anda membangunkan untuk sebarang jenis platform dengan NectarJS.
NectarJS membolehkan pembangun JavaScript menjadi cekap seperti pembangun peringkat rendah. Beberapa penanda aras menunjukkan bahawa beberapa operasi matematik disusun dengan NectarJS lebih pantas daripada C.
NectarJS juga boleh digunakan dalam persekitaran di mana kelajuan adalah faktor kejayaan utama (perdagangan algoritma dll).
Adakah projek itu sudah sangat berjaya?
Kami berhubung dengan syarikat yang ingin menggunakan NectarJS setiap hari. Memulakan komuniti dari awal adalah sangat kompleks, dan kempen crowdfunding di KickStarter membolehkan saya melihat isu komunikasi dan rintangan pembangun terhadap perubahan. Bagi kebanyakan orang, JavaScript bukanlah bahasa pengaturcaraan tetapi bahasa skrip. Walau bagaimanapun, Paypal dan kumpulan besar lain menggunakan JavaScript dengan NodeJS setiap hari. Saya berhubung dengan beberapa pembangun terkenal dalam komuniti JavaScript (NativeScript sebagai contoh), yang menyokong projek itu. Ramai orang fikir ia palsu, yang memalukan.
NectarJS membuat heboh di Jepun sebagai contoh, dan telah disampaikan di banyak tapak berita dalam masa yang singkat. Saya kini sedang mencari untuk melakukan perkara yang sama di Amerika Syarikat dan di Eropah.
Jika projek KickStarter berfungsi apakah langkah seterusnya?
Selesaikan menyusun standard JavaScript ES5, dan kemudian beralih ke NodeJS. Pada masa yang sama, kami akan menambah platform yang hilang dengan cepat pada kompilasi (Mac Os, pelbagai Arduino dan platform pembangunan). Kami juga akan menyediakan pasaran untuk pembangun menderma atau menjual kod atau perpustakaan. Matlamat kempen ini adalah untuk membolehkan komuniti pembangun memilih penambahbaikan seterusnya NectarJS.
Sekiranya kempen gagal, kami mempunyai pelabur swasta sebagai sandaran, tetapi pilihan pembangunan akan diutamakan untuk keperluan mereka.
Kata akhir?
Kepada semua yang menyukai JavaScript atau yang meminati teknologi, robotik atau AI, jangan teragak-agak untuk menyebarkan maklumat dan kempen crowdfunding: http://kickstarter.com/projects/adrien-thierry/nectarjs-compile-javascript-for-and-from-any-devic
Terima kasih banyak untuk Temuduga ini Adrien dan semoga berjaya dengan projek anda.
Matthew Breton, CTO JS-Republic.
[actionbox color=”default” title=”” description=”JS-REPUBLIC ialah syarikat perkhidmatan yang mengkhusus dalam pembangunan JavaScript. Kami adalah pusat latihan yang diluluskan. Dapatkan semua latihan teknikal kami di tapak rakan kongsi kami khusus untuk Latihan” btn_label=”Latihan kami” btn_link=”http://training.ux-republic.com” btn_color=”primary” btn_size=”big” btn_icon=”bintang” btn_external =”1″]
