Melihat Masa Depan JavaScript

Diterbitkan: 2022-03-11

Setiap pasar diatur oleh konsep umum tertentu, dan pengembangan JavaScript tidak terkecuali.

Siklus hidup produk adalah konsep yang dapat Anda terapkan ke beberapa lingkungan berbeda untuk memahami dan memprediksi perilaku mereka. Ini adalah konsep bisnis yang membantu kita memahami tahapan yang dilalui suatu produk selama masa pakainya, menjelaskan dampak tahapan ini pada ukuran popularitasnya—dalam banyak kasus, penjualan. Jika kita mengamati pola perilaku pasar, kita dapat memperkirakan tahap produk saat ini dan karenanya membuat beberapa prediksi tentang popularitasnya.

Diagram siklus hidup pengembangan produk

Ada empat tahap: pengenalan, pertumbuhan, kedewasaan, dan penurunan, dan pada grafik di atas, Anda dapat melihat dampaknya pada penjualan produk yang diharapkan untuk setiap tahap. Misalnya, penjualan ponsel cerdas tidak tumbuh seperti lima tahun lalu—sebenarnya, justru kebalikannya—jadi kita bisa mengatakan bahwa ponsel cerdas sedang memasuki tahap kedewasaan.

Dalam beberapa tahun terakhir, kami telah melihat pengenalan banyak teknologi baru dalam JavaScript, tetapi kami membutuhkan waktu untuk melihat bagaimana pasar akan mengadopsinya. Tidak ada yang ingin menjadi spesialis pada teknologi menjanjikan lain yang berakhir dengan adopsi nol. Sekarang, bagaimanapun, adalah waktu untuk melihat lagi. Dalam artikel ini, saya akan melihat seberapa populer JavaScript dan faktor-faktor yang mungkin memengaruhi popularitas ini, dan saya akan mencoba memprediksi seperti apa masa depan JavaScript.

Masa Depan Fitur Bahasa JavaScript

Sejak European Computer Manufacturers Association (ECMA) menetapkan siklus rilis berbasis tahun untuk ECMAScript, spesifikasi JavaScript standar, kami belum melihat banyak fitur baru yang masuk ke bahasa—hanya beberapa setiap tahun. Ini bisa menjadi salah satu alasan kami melihat peningkatan adopsi bahasa yang dikompilasi ke ES5 seperti TypeScript atau ReasonML, keduanya menghadirkan fitur ke bahasa yang sangat diminta oleh komunitas. Ini bukan hal baru—JavaScript telah melalui proses ini sebelumnya (CoffeeScript) dan, pada akhirnya, fitur-fitur tersebut akhirnya digabungkan ke dalam standar bahasa itu sendiri, dan itu mungkin masa depan yang dapat kita harapkan untuk fitur-fitur baru yang diketik ini juga.

Tapi sekarang kita mulai melihat langkah pengubah permainan di pasar kompilasi-ke-js dengan meningkatnya ketersediaan WebAssembly di browser. Sekarang, kami dapat menggunakan hampir semua bahasa dan mengompilasinya untuk berjalan dengan kecepatan hampir asli di browser dan, yang lebih penting, kami mulai melihat dukungan untuk fitur-fitur masa depan seperti dukungan untuk utas yang memungkinkan kami memanfaatkan multi -arsitektur prosesor yang mewakili masa depan yang tak terhindarkan dari semua perangkat.

Rantai alat resmi untuk WebAssembly akan membantu Anda mengompilasi C/C++, tetapi ada banyak kompiler yang disediakan komunitas untuk berbagai bahasa, seperti Rust, Python, Java, dan Blazor (C#).

Khususnya, komunitas Rust cukup aktif dan kami mulai melihat kerangka kerja front-end lengkap seperti Yew dan Dodrio.

Ini membawa banyak kemungkinan baru ke aplikasi berbasis browser, dan Anda hanya perlu menguji beberapa aplikasi hebat yang dibuat dengan WebAssembly untuk melihat bahwa aplikasi berbasis browser yang hampir asli sekarang menjadi kenyataan, misalnya Sketchup atau Magnum.

Adopsi bahasa yang diketik yang dikompilasi ke ES5 cukup matang, para pemain sudah mapan, dan mereka tidak akan menghilang (atau digabungkan dengan ES) dalam waktu dekat, tetapi kita akan melihat pergeseran lambat dalam mendukung bahasa yang diketik dengan WebPerakitan.

Web

Kerangka kerja front-end

Setiap tahun, kami melihat pertarungan besar di pasar kerangka kerja front-end untuk web, dan React telah menjadi pemenang yang tak terbantahkan selama beberapa tahun terakhir—sejak diperkenalkannya teknologi pengubah permainan mereka, Virtual DOM, kami melihat hampir adopsi wajib dari rekan-rekan mereka agar tetap relevan dalam pertempuran.

Beberapa tahun yang lalu, kami melihat pengenalan pendekatan baru yang radikal untuk pengembangan aplikasi web dengan Svelte, "kerangka kerja kompiler" yang menghilang pada waktu kompilasi meninggalkan kode JavaScript yang kecil dan sangat efisien. Namun, fitur itu tidak cukup untuk meyakinkan komunitas untuk pindah ke Svelte, tetapi dengan peluncuran Svelte 3.0 baru-baru ini, mereka memperkenalkan pemrograman reaktif nyata ke dalam kerangka kerja dan komunitas senang, jadi mungkin kita menyaksikan hal besar berikutnya di depan. -akhir kerangka.

Terinspirasi oleh operator takdir:

 var a = 10; var b <= a + 1; a = 20; Assert.AreEqual(21, b);

Svelte membawa reaktivitas ke JavaScript dengan membebani penggunaan pernyataan label dengan reaktivitas pada waktu kompilasi dengan menginstruksikan kode untuk dieksekusi dalam urutan topologi:

 var a = 10; $: b = a + 1; a = 20; Assert.AreEqual(21, b);

Ini adalah ide baru yang radikal yang mungkin membantu dalam konteks yang berbeda, jadi pembuat Svelte juga sedang mengerjakan svelte-gl, kerangka kerja kompiler yang akan menghasilkan instruksi WebGL tingkat rendah langsung dari grafik adegan 3D yang dideklarasikan dalam HTMLx.

Tak perlu dikatakan bahwa React, Angular, dan Vue.js tidak akan hilang dalam semalam, komunitas mereka sangat besar, dan mereka akan tetap relevan selama beberapa tahun mendatang—kami bahkan tidak yakin apakah Svelte akan menjadi penerus yang sebenarnya, tetapi kami dapat memastikan sesuatu: Kami akan menggunakan sesuatu yang berbeda cepat atau lambat.

WebXR dan Masa Depan Web Immersive

Realitas virtual telah berjuang selama 60 tahun terakhir untuk menemukan tempat di arus utama, tetapi teknologinya belum siap. Kurang dari sepuluh tahun yang lalu, ketika Jon Carmack bergabung dengan Oculus VR (sekarang bagian dari Facebook Technologies, LLC), gelombang baru VR mulai meningkat, dan sejak itu, kami telah melihat banyak perangkat baru yang mendukung berbagai jenis VR dan tentu saja menjamurnya aplikasi berkemampuan VR.

Vendor browser tidak ingin kehilangan kesempatan ini, jadi mereka bergabung dengan spesifikasi WebVR yang memungkinkan penciptaan dunia virtual dalam JavaScript dengan WebGL dan perpustakaan yang mapan seperti three.js. Namun, pangsa pasar pengguna dengan perangkat 6dof masih tidak signifikan untuk penerapan web besar-besaran, tetapi web seluler masih dapat memberikan pengalaman 3D dengan API orientasi perangkat, jadi kami melihat banyak eksperimen dan banyak video 360 untuk sementara waktu.

Pada tahun 2017, dengan diperkenalkannya ARKit dan ARCore, kemampuan baru dibawa ke perangkat seluler dan semua jenis aplikasi dengan pengalaman AR dan MR.

Namun masih terasa agak tidak wajar untuk mengunduh satu aplikasi tertentu untuk satu pengalaman AR tertentu saat Anda menjelajahi dunia di sekitar Anda. Jika kita hanya dapat memiliki satu aplikasi untuk menjelajahi pengalaman yang berbeda… Ini terdengar familiar. Kami memecahkan masalah itu di masa lalu dengan browser, jadi mengapa tidak mencobanya lagi?

Tahun lalu, Mozilla memperkenalkan WebXR Device API Spec (yang draf kerja terakhirnya, pada saat penulisan ini, berasal dari dua minggu lalu) untuk menghadirkan kemampuan AR, VR, dan MR (ergo XR) ke browser.

Beberapa vendor browser paling penting mengikuti implementasinya, dengan pengecualian penting: Safari mobile, jadi untuk membuktikan pendapat mereka, Mozilla merilis browser yang mampu WebXR di bawah platform iOS WebXR Viewer.

Sekarang, ini adalah langkah penting karena kombinasi AR dan VR membawa 6dof ke perangkat seluler dan headset berbasis perangkat seluler seperti Google Cardboard atau Samsung Gear VR, seperti yang Anda lihat dalam contoh ini, meningkatkan pangsa pasar perangkat 6dof sebesar margin besar dan memungkinkan kemungkinan penyebaran web skala besar.

Pada saat yang sama, orang-orang di Mozilla telah mengerjakan kerangka kerja web baru untuk memfasilitasi pembuatan dunia 3D dan aplikasi yang disebut A-Frame, kerangka kerja deklaratif berbasis komponen dengan sintaks HTML berdasarkan three.js dan WebGL, baru saja satu hal dalam pikiran—untuk mengembalikan kesenangan dan kemudahan penggunaan pada pemrograman web.

Ini adalah bagian dari perjuangan mereka menuju web yang imersif, serangkaian ide baru tentang bagaimana web seharusnya terlihat di masa depan. Beruntung bagi kami, mereka tidak sendirian, dan kami akan mulai melihat lebih banyak pengalaman imersif di web.

Jika Anda ingin mencobanya, silakan unduh WebXR Viewer dan kunjungi situs ini untuk melihat kemungkinan web imersif.

Sekali lagi, aplikasi berbasis browser standar tidak akan pudar dalam satu atau dua tahun—kami mungkin akan selalu memilikinya. Tetapi aplikasi 3D dan pengalaman XR berkembang dan pasar siap dan ingin memilikinya.

Dukungan Asli untuk ES6

Hampir setiap teknologi yang ditemukan dalam JavaScript dalam dekade terakhir diciptakan untuk memecahkan masalah yang dihasilkan oleh implementasi yang mendasari browser, tetapi platform itu sendiri telah berkembang pesat selama beberapa tahun terakhir, dan sebagian besar dari masalah tersebut telah hilang, seperti yang dapat kita lihat dengan Lodash, yang pernah menjadi tolok ukur kinerja.

Hal yang sama terjadi dengan DOM, yang masalahnya pernah menjadi inspirasi sebenarnya untuk pembuatan kerangka kerja aplikasi web. Sekarang, ini adalah API matang yang dapat Anda gunakan tanpa kerangka kerja untuk membuat aplikasi—sebenarnya, itulah komponen web. Mereka adalah "kerangka" platform untuk membuat aplikasi berbasis komponen.

Bagian lain yang menarik dari evolusi platform adalah bahasa itu sendiri. Kami telah menggunakan Babel.js selama beberapa tahun terakhir untuk dapat menggunakan fitur terbaru ECMAScript, tetapi karena standar itu sendiri mulai sedikit mandek dalam beberapa tahun terakhir, itu sudah cukup waktu untuk memungkinkan vendor browser untuk mengimplementasikan sebagian besar fitur mereka, termasuk dukungan asli dari pernyataan impor statis. Jadi sekarang, kita dapat mulai mempertimbangkan pembuatan aplikasi tanpa Babel.js atau kompiler lain karena kita (sekali lagi) mendukung fitur bahasa di platform itu sendiri, dan karena Node.js menggunakan VM V8 yang sama dengan Google Chrome , kami mulai melihat dukungan yang lebih kuat untuk ES6 di Node.js, bahkan dengan pernyataan impor statis di bawah bendera modul eksperimental.

Ini tidak berarti bahwa kita akan berhenti melihat aplikasi yang dikompilasi pada tingkat profesional, tetapi itu berarti bahwa memulai dengan aplikasi berbasis browser akan mudah dan menyenangkan seperti dulu.

JavaScript sisi server

Meskipun JavaScript dimulai dengan sisi server pada tahun 1995 dengan Netscape Enterprise Server, tidak sampai presentasi Dahl Ryan pada tahun 2009 JavaScript mulai dipertimbangkan secara serius untuk aplikasi sisi server. Banyak hal terjadi dalam dekade terakhir pada Node.js. Ini banyak berkembang dan matang, sekali lagi menciptakan peluang untuk disrupsi dan teknologi baru.

Dalam hal ini, itu berasal dari tangan penciptanya sendiri, Ryan Dahl, yang telah mengerjakan perspektif baru aplikasi aman sisi server dengan Deno, sebuah platform yang secara native mendukung fitur bahasa terbaru sebagai async/menunggu, dan juga TypeScript bahasa kompilasi-ke-js paling populer, menargetkan kinerja terbaik berkat implementasinya di Rust dan penggunaan Tokio, tetapi yang lebih penting dengan filosofi keamanan baru yang membedakannya dari sebagian besar platform sisi server seperti Python, Ruby, atau Java). Terinspirasi oleh model keamanan browser, Deno akan membiarkan Anda menggunakan sumber daya dari host hanya setelah pengguna secara eksplisit memberikan izin untuk proses, yang mungkin terdengar agak membosankan di awal, tetapi mungkin mengakibatkan banyak implikasi dengan mengizinkan kami untuk menjalankan kode tanpa jaminan di lingkungan yang aman hanya dengan mempercayai platform.

Node.js akan tetap ada di masa mendatang, tetapi mungkin kami akan mulai melihat layanan tanpa server seperti AWS Lambda dan Azure Functions untuk menyediakan fungsionalitas Deno sebagai alternatif untuk menyediakan eksekusi kode sisi server yang tidak aman pada sistem mereka.

Kesimpulan

Ini adalah masa-masa yang menyenangkan di dunia JavaScript—banyak teknologi telah cukup matang untuk memberikan ruang bagi inovasi, komunitas aktif tidak pernah berhenti memukau kami dengan ide-ide brilian dan luar biasa mereka, dan kami mengharapkan banyak alternatif baru untuk alat yang sudah mapan karena tahap dewasa mereka tiba dengan cepat; kami tidak akan berhenti menggunakannya karena banyak dari mereka yang benar-benar bagus dan ada banyak bukti di medan perang, tetapi pasar baru dan menarik akan mulai muncul, dan Anda sebaiknya bersiap-siap.

Tetap up to date dengan yang terbaru di dunia JavaScript tidak mudah, karena laju perkembangan, tetapi ada beberapa sumber yang benar-benar dapat membantu. Pertama, sumber berita terpenting, menurut saya, adalah Echo JS, di mana Anda dapat menemukan konten baru dalam jumlah yang luar biasa setiap jam. Namun, jika Anda tidak punya waktu, buletin Mingguan JavaScript adalah ringkasan yang sangat baik minggu ini di JS. Selain itu, penting juga untuk mengawasi konferensi di seluruh dunia, dan saluran YouTube seperti, JSConf, React Conf, dan Pengembang Google Chrome sangat membantu.

Sebaliknya, jika Anda tertarik untuk melihat beberapa kritik konstruktif tentang arah JavaScript, saya sarankan membaca Sebagai Pengembang JS, Inilah Yang Membuat Saya Tetap Terjaga di Malam Hari oleh sesama pengembang JavaScript Justen Robertson.


Bacaan Lebih Lanjut di Blog Teknik Toptal:

  • TypeScript vs. JavaScript: Panduan Masuk Anda