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:
dibakar ke dalam bahasa, API yang mudah dan konsisten di sekeliling semua ini:
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.
Unreal Engine 4 Blueprint
rajah marmar untuk .merge ()
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.
bayareamodularmeet-George P. Macklin-(CC BY-SA 2.0)
Saluran Kesan Langsung Ableton. Aliran data kiri ke kanan.
Saluran Renoise, masing -masing dengan rantaian kesan. Data mengalir ke atas ke bawah.
<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>
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:
treeline: data mengalir ke atas ke bawah.
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
Scott Ingram-Dual Neuron (CC BY-NC 2.0)
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
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.
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!