Rumah > hujung hadapan web > tutorial js > Masa Depan Pengaturcaraan: WebAssembly & Life After JavaScript

Masa Depan Pengaturcaraan: WebAssembly & Life After JavaScript

尊渡假赌尊渡假赌尊渡假赌
Lepaskan: 2025-02-19 09:10:10
asal
343 orang telah melayarinya

Masa Depan Pengaturcaraan: WebAssembly & Life After JavaScript

Takeaways Key

JavaScript mempunyai beberapa ciri hebat, tetapi saya sangat berharap kita bergerak secepat mungkin. JavaScript hebat dan ia mengajar kita banyak, tetapi pengaturcaraan akan berkembang. Akan ada kehidupan selepas JavaScript.

Saya bukan peminat C (saya pengguna yang pulih dan penderita C), tetapi saya peminat banyak perkara yang dibina dengannya, termasuk enjin Unreal, yang sangat baik apabila disusun kepada JavaScript. Tidak ada alasan yang baik untuk menulis segala -galanya di JavaScript selama -lamanya. Sudah tiba masanya untuk melihat masa depan.

Saya telah menggunakan dan benar -benar menikmati Coffeescript dari semasa ke semasa, yang membantu memberi inspirasi kepada banyak ciri ES6 baru. Coffeescript terasa lebih mudah daripada JavaScript. Ia mempunyai sintaks yang lebih ringkas, namun menambah banyak keupayaan ekspresif yang tidak wujud dalam ES5. Sudah tentu, saya akan mempermudahkan Coffeescript lebih banyak lagi dengan menghilangkan kata kunci kelas beracun. Saya suka biola dengan Haskell juga. Tetapi bahasa -bahasa ini mewakili masa kini.

jadi apa yang boleh kita lakukan seterusnya?

Apa sahaja yang menangkap api selepas JS, saya harap ia mempunyai ciri -ciri ini:

  • struktur data terbina dalam yang tidak berubah dan tidak dapat dipertahankan secara lalai.
  • Bentuk literal untuk objek, koleksi, dan jenis primitif.
  • Jenis nombor lalai yang lebih baik untuk kebanyakan kes penggunaan.
  • Jenis struktur tersuai, termasuk sokongan yang baik untuk jenis binari peringkat rendah (bonus jika kita mendapat sintaks harfiah yang boleh ditentukan).
  • lambdas dengan penutupan.
  • tali pinggang utiliti berfungsi terbina dalam. Sama dengan API RXJS yang boleh dilihat.
  • Sokongan asli untuk objek dan komposisi kilang. Sesuatu seperti setem terbina dalam.
  • Jaminan Realtime untuk Pemprosesan & Penjadualan Ketepatan Latensi Rendah untuk Apl seperti Permainan, Muzik & Pengeluaran Video, DSP, Aplikasi Saintifik, Penyegerakan Sistem Diedarkan, dan lain-lain ...
  • sintaks minimum, serupa dengan Ruby, Python, atau Coffeescript. Sekarang saya mempunyai peluang untuk mendapatkan selesa tanpa pendakap keriting dan titik koma di mana -mana, saya rasa kurang terkurung oleh sintaks.

Sokongan kelas pertama untuk pengaturcaraan reaktif

dibakar ke dalam bahasa, API yang mudah dan konsisten di sekeliling semua ini:

  • aliran.
  • sumber data berterusan (input UI, masa, imej vektor, dll ...).
  • Koleksi termasuk tatasusunan dan objek.

API ini harus digunakan dengan cara yang sama tanpa mengira sama ada data mengalir melalui fungsi satu nilai pada satu masa (iaitu hasil yang boleh dilakukan / penjana), sebagai tindak balas kepada peristiwa yang dipancarkan (mis. Aliran gaya nod), atau sumber data yang berterusan seperti itu Sebagai audio, isyarat elektrik, input UI, sensor, bahkan perkara-perkara bebas masa seperti grafik vektor, dan lain-lain ...

API terbina dalam seperti ini boleh membungkus semua jenis, yang berpotensi untuk memudahkan sintaks, juga.

Untuk perspektif yang benar -benar berwawasan tentang bagaimana semua perkara reaktif ini berfungsi, lihat teori umum kereaktifan.

alat yang lebih baik

Masa Depan Pengaturcaraan: WebAssembly & Life After JavaScript Unreal Engine 4 Blueprint

  • IDE visual yang hebat untuk memodelkan dan menggambarkan hubungan reaktif dengan mudah dalam sistem. Fikirkan noflo dengan ux yang lebih baik.
  • debugging perjalanan masa (Contoh dengan JavaScript) Diaktifkan oleh struktur data yang tidak berubah. Debugging perjalanan masa membolehkan anda dengan mudah berulang-alik dalam sejarah program hidup anda yang hidup.
  • disusun kepada JS & WASM sokongan hebat untuk penyemak imbas dan nod.
  • alat analisis yang lebih baik kedua -dua statik dan runtime / dinamik. Direka khusus untuk membantu menjadikan program lebih diramalkan dengan menganalisis graf pergantungan reaktif. Ini juga boleh membuat laporan visual yang hebat, termasuk laporan kerumitan, dan rajah marmar untuk membantu anda memahami dan meramalkan tingkah laku program anda.

Masa Depan Pengaturcaraan: WebAssembly & Life After JavaScript rajah marmar untuk .merge ()

ide visual akan menjadi norma

Mereka yang biasa dengan pengaturcaraan berasaskan aliran/dataflow akan memberitahu anda bahawa ia bukan sesuatu yang baru. Alat pengaturcaraan visual telah wujud selama beberapa dekad, dan setakat ini tidak dapat menggantikan pengaturcaraan berasaskan teks.

Apa yang akan mendorong ini di atas kelebihan adalah pemikiran semula radikal bagaimana untuk memodelkan program secara visual yang akan mengurangkan kekacauan visual dan overhead pendawaian yang melanda penyelesaian pengaturcaraan berasaskan aliran.

Kebanyakan inovasi dalam ruang ini tidak berlaku dalam persekitaran pengaturcaraan sama sekali. Sebaliknya, ia berlaku dalam aplikasi pengeluaran di mana pemodelan aliran data adalah tugas utama. Tidak ada yang lebih digambarkan daripada aplikasi pengeluaran audio.

Aplikasi pengeluaran audio biasanya mengarahkan audio mentah melalui rangkaian pemproses kesan. Dalam istilah pengaturcaraan, anda boleh memikirkan pemproses kesan sebagai peta berfungsi: fungsi tulen yang dipanggil untuk setiap elemen dalam senarai, di mana unsur -unsur tersebut sesuai dengan kepingan sampel audio.

Kebanyakan aplikasi audio model proses ini secara visual dengan mensimulasikan mesin dan kabel sebenar dalam fesyen skeuomorfik. Antara muka pengguna skeuomorfik adalah salah satu yang cuba mencontohi antara muka pengguna objek asal yang dimodelkan dalam perisian.

Masalah dengan reka bentuk skeuomorfik adalah bahawa ia dengan setia menghasilkan semula kebanyakan kekacauan antara muka pengguna dan ketidakcekapan asal. Dalam aplikasi intensif data seperti pengeluaran audio, kekacauan itu kelihatan sangat biasa dengan pengaturcara: wayar kelihatan seperti spageti - sesuatu yang semua pemaju yang baik tahu kita harus mengelakkan.

Masa Depan Pengaturcaraan: WebAssembly & Life After JavaScript bayareamodularmeet-George P. Macklin-(CC BY-SA 2.0)

Tetapi baru -baru ini, perisian seperti Ableton Live dan Renoise telah menemui cara pintar untuk menghilangkan kekacauan dawai sepenuhnya menggunakan saluran dan rantai.

Masa Depan Pengaturcaraan: WebAssembly & Life After JavaScript Saluran Kesan Langsung Ableton. Aliran data kiri ke kanan.

Dengan kata lain, data mengalir melalui saluran, dan setiap saluran terdiri daripada rantai kesan. Tiada wayar diperlukan, kerana kesannya digunakan dalam urutan.

Masa Depan Pengaturcaraan: WebAssembly & Life After JavaScript Saluran Renoise, masing -masing dengan rantaian kesan. Data mengalir ke atas ke bawah.

Dalam kod, saluran mungkin kelihatan seperti ini:

<span>const channel = input => {  
</span>  <span>return input  
</span>  <span>.filter()  
</span>  <span>.gain()  
</span>  <span>.limit();  
</span><span>};
</span>
<span>export default channel;</span>
Salin selepas log masuk
Jika anda berfikir tentang ini dengan teliti, ia menjadi jelas bahawa anda boleh melakukan lebih banyak daripada pemprosesan isyarat audio & digital (DSP) dengan model ini. Sebagai contoh, anda boleh menggunakannya untuk laluan model visual dan middleware di Express, di mana laluan diwakili oleh saluran, dan middleware diwakili oleh kesan:

Masa Depan Pengaturcaraan: WebAssembly & Life After JavaScript UI yang diilhamkan oleh Renoise Hypothetical ke Laluan Program.

Sudah tentu, ini menunjukkan bahawa setiap kesan dalam rantai perlu bertindak pada input dengan API yang dikongsi. Di sinilah konsep pengaturcaraan fungsional dan reaktif bersinar. Sangat mudah untuk menyediakan API bersatu atas sebarang jenis koleksi, termasuk aliran permintaan rangkaian. Dalam pengaturcaraan berfungsi, mereka membungkus API dipanggil kunctor. Dalam bahasa Inggeris biasa, functor adalah sesuatu yang boleh dipetakan.

Jika ini agak seperti fiksyen sains, lihatlah TreeLine. Ia melakukan sesuatu yang sangat serupa hari ini. Lihatlah laluan pos /pendaftaran ini dimodelkan di TreeLine. Ia menyulitkan kata laluan pengguna, kemudian membuat model pengguna, kemudian bertindak balas dengan status 200 OK. Setiap langkah itu boleh dianggap sebagai kesan saluran:

Masa Depan Pengaturcaraan: WebAssembly & Life After JavaScript treeline: data mengalir ke atas ke bawah.

Pengaturcaraan genetik

Pengaturcaraan genetik adalah proses mensimulasikan sistem evolusi alam semula jadi dengan menghasilkan populasi program calon dan menapis program yang tidak lulus ujian. Calon -calon yang lulus ujian bertahan dan membentuk asas generasi akan datang.

Pengaturcaraan genetik menawarkan kemungkinan peningkatan berterusan, automatik pada kod panas dan algoritma kritikal. Terdapat potensi sebenar untuk menunjukkan algoritma pengaturcaraan genetik di repositori GIT dan secara automatik mendorong generasi baru perisian kepada pengeluaran apabila penduduk bertambah baik pada versi yang digunakan sebelumnya.

pengaturcaraan AI-Assisted

Masa Depan Pengaturcaraan: WebAssembly & Life After JavaScript Scott Ingram-Dual Neuron (CC BY-NC 2.0)

kuat AI ada di sini hari ini. Banyak sistem AI yang mengalahkan manusia di permainan kita sendiri dalam pelbagai kategori. Satu kelebihan utama AI ialah ia mampu menganalisis pelbagai alternatif yang sangat cepat. AI boleh mengkaji kod yang anda tulis, mencari potensi bug & kelemahan, mengenali corak yang boleh dicabut, mencadangkan ujian yang perlu ditulis, atau mengiktiraf corak dalam populasi pengaturcaraan genetik dan secara automatik menyesuaikan parameter populasi dan persekitaran untuk pengaturcaraan genetik yang baik Algoritma.

Dengan kata lain, jangka panjang, AI mempunyai peluang yang sangat nyata untuk menjadi alat pengaturcaraan yang tidak ternilai. Malah, mudah untuk membayangkan masa depan di mana AI boleh menghasilkan program tanpa bantuan manusia sama sekali.

Kesimpulan

Apa sahaja yang akan datang, mengharapkan ia menjadi lonjakan kuantum dalam teknologi dan inovasi. Masa depan akan berada di sini lebih awal daripada yang anda fikirkan.

Soalan Lazim (Soalan Lazim) Mengenai WebAssembly dan Masa Depannya

Apakah perbezaan utama antara JavaScript dan WebAssembly? Walau bagaimanapun, ia mempunyai batasannya, terutamanya apabila ia berkaitan dengan aplikasi intensif prestasi. WebAssembly, sebaliknya, adalah format arahan binari yang membolehkan kod berjalan pada kelajuan berhampiran asli dengan memanfaatkan keupayaan perkakasan biasa. Ia direka untuk menjadi mesin maya peringkat rendah yang menjalankan kod pada kelajuan berhampiran asli, menjadikannya sesuai untuk tugas-tugas seperti permainan, reka bentuk bantuan komputer, penyuntingan video, dan simulasi saintifik. Ganti JavaScript?

Tidak, WebAssembly tidak direka untuk menggantikan JavaScript. Sebaliknya, ia bertujuan untuk bekerja bersama JavaScript, yang membolehkan pemaju memilih alat yang tepat untuk pekerjaan itu. JavaScript sangat bagus untuk membina laman web dan aplikasi yang dinamik dengan antara muka pengguna yang kompleks, sementara WebAssembly lebih sesuai untuk tugas-tugas yang berintensifkan prestasi. Format binari yang lebih cekap untuk web. Format binari ini membolehkan kod itu dihuraikan dan dilaksanakan dengan lebih cepat daripada JavaScript. Di samping itu, WebAssembly direka untuk menjadi mesin maya peringkat rendah yang menjalankan kod pada kelajuan berhampiran asli, yang merupakan rangsangan prestasi yang signifikan untuk tugas-tugas yang berintensifkan prestasi.

Ya, anda boleh menggunakan WebAssembly dalam projek web semasa anda. Pelayar yang paling moden menyokong webassembly, dan terdapat beberapa alat yang boleh membantu anda menyusun kod anda ke webassembly. Mempunyai sokongan terbaik untuk disusun ke WebAssembly. Walau bagaimanapun, matlamatnya adalah untuk menyokong sebanyak mungkin bahasa pada masa akan datang. Terdapat juga usaha berterusan untuk menambah sokongan untuk bahasa lain seperti Python, Go, dan Java. Ia beroperasi dalam persekitaran kotak pasir yang sama seperti JavaScript, yang bermaksud ia mempunyai sekatan akses yang sama. Di samping itu, kerana ia adalah format binari peringkat rendah, ia kurang terdedah kepada jenis serangan tertentu yang biasa dengan JavaScript. beberapa cara. Sebagai contoh, anda boleh memanggil fungsi JavaScript dari WebAssembly, dan sebaliknya. Anda juga boleh lulus data antara kedua -dua, walaupun ini memerlukan beberapa kerja manual.

Apakah masa depan WebAssembly?

Masa depan WebAssembly kelihatan menjanjikan. Ia sudah disokong oleh semua pelayar utama, dan faedah prestasinya menjadikannya pilihan yang menarik untuk pemaju web. Memandangkan lebih banyak bahasa mendapat sokongan untuk disusun ke WebAssembly, kita boleh mengharapkan untuk melihatnya digunakan dalam pelbagai aplikasi yang lebih luas. Ia mempunyai beberapa batasan. Sebagai contoh, ia kini tidak mempunyai akses langsung ke DOM, yang bermaksud anda perlu menggunakan JavaScript untuk mana -mana manipulasi DOM. Walau bagaimanapun, terdapat usaha yang berterusan untuk menangani batasan ini dan lain -lain. Laman web webassembly rasmi adalah tempat yang bagus untuk bermula, kerana ia memberikan gambaran menyeluruh mengenai teknologi. Terdapat juga banyak tutorial dan panduan yang tersedia dalam talian yang dapat membantu anda memulakan dengan webassembly.

Atas ialah kandungan terperinci Masa Depan Pengaturcaraan: WebAssembly & Life After JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan