Saya akan sangat jujur: Saya benci menulis kode sisi klien dalam JavaScript. Saya bukan penggemar bahasa ini, untuk sedikitnya.
Tampaknya konyol bagi saya bahwa browser mendukung bahasa pemrograman , daripada mesin virtual perantara (seperti CIL atau JVM). Yang terakhir akan memungkinkan programmer untuk menulis dalam bahasa pilihan mereka (sampai batas tertentu), daripada dalam satu bahasa tetap yang telah ditetapkan. Bahasa ini dapat berkembang lebih cepat, karena hanya perubahan pada CIL / JVM / apa pun yang akan memerlukan setiap peramban utama untuk memutakhirkan. Fitur bahasa dapat ditambahkan tanpa memengaruhi pengalaman browser lama.
Penghematan besar-besaran dari upaya yang dilakukan oleh bahasa perantara diketahui dengan baik . Apakah ada inisiatif di luar sana untuk mempromosikan "scripting" browser selain JavaScript, dan terutama dalam mesin virtual yang sudah dirancang, dikembangkan, dan dioptimalkan? Apakah mereka punya momentum?
sumber
Jawaban:
Untuk menjawab pertanyaan Anda, ya ada upaya yang dilakukan untuk mencabut Javascript demi bahasa yang lebih kohesif untuk skrip web. Google telah menempatkan banyak dorongan di balik bahasa Dart mereka . Dart memiliki VM sendiri yang sudah tertanam di Chrome, tapi saya tidak yakin apakah browser lain sudah mengadopsinya. Ada juga bahasa yang cukup menjanjikan yang disebut CoffeeScript .
Ada juga proyek yang sangat ambisius bernama HaXe yang bertujuan untuk menyatukan seluruh platform pengembangan dengan satu bahasa ..
Percayalah, Anda tidak sendirian dalam tidak menyukai Javascript, tapi saya khawatir ini tidak akan terjadi dalam waktu dekat - sebenarnya tampaknya akan mendapatkan banyak momentum apa dengan aplikasi Windows 8 HTML5 / JS dll. Tetapi alternatif seperti yang saya disebutkan mulai bermunculan :)
sumber
onSomething
event handler - parsing dan menafsirkan 10-20 karakter bahasa scripting sederhana jauh lebih efisien.Javascript itu sendiri dapat dilihat sebagai bahasa perantara, mendefinisikan mesin virtual di mana bahasa lain dapat dikompilasi. Dalam proyek-proyek seperti GWT gagasan ini sudah lepas landas. Mungkin bukan apa yang Anda rancang dari awal, tetapi sudah menjadi kenyataan bahwa Anda bisa mengkompilasi "bahasa favorit Anda" ke dalam Javascript.
sumber
Intinya, tidak. Anda cukup terjebak dengan Javascript.
Karena itu, ada upaya di masa lalu untuk membawa bahasa lain di papan (java applet, vbscript, dll.) Masing-masing tidak pernah benar-benar mendapatkan daya tarik yang dimiliki javascript karena javascript terintegrasi .
Satu-satunya cara untuk membangun apa yang Anda maksud adalah dengan membuat bahasa scripting yang berjalan pada mesin virtual, mengkompilasi sisi klien, dan kemudian dieksekusi. Kemudian setiap browser harus mengimplementasikan mesin virtual ke dalam basis kode sendiri sehingga semua kode berjalan di semua browser. Maka Anda harus memastikan memiliki semacam standar sehingga semua browser menjalankan perintah dengan cara yang sama. Tentu saja, browser dibuat secara independen, mungkin akan ada kebiasaan yang harus diingat pengembang.
Tapi sekarang kita baru saja menggambarkan Javascript.
Jadi pada akhirnya, pilihan Anda adalah:
Intinya, jika Anda ingin bahasa terintegrasi, Anda terjebak dengan Javascript.
sumber
Sebenarnya Anda tidak membenci javascript, seperti yang dijelaskan dalam standar Ecma, tetapi Anda membenci implementasi yang buruk di berbagai browser , dengan mereka quirks, bug, dan wtfs. Javascript sisi-server sebenarnya cukup menyenangkan. Juga Model DOM adalah penyebab 80% dari rasa sakit javascript sisi klien.
Jika Anda masih ingin menggunakan bahasa lain, Anda dapat menggunakan GWT , yang pada dasarnya memungkinkan Anda menulis Java, kemudian mengompilasinya menjadi (jelek) javascript, atau CoffeeScript , yang merupakan gula sintaksis di atas JS, yang dikompilasi ke dalam JS.
sumber
{
suatu objek pada garis yang berbeda. "Kerangka fungsionalitas modern" apa yang Anda temukan hilang?Pertanyaan ini muncul dari waktu ke waktu.
Mengapa kita tidak memiliki bahasa lain dalam tag skrip alih-alih hanya Javascript
Kembali pada hari IE memperkenalkan VB sebagai alternatif untuk Javascript. Saya pikir Anda sudah dapat melihat bagaimana ini akan menyebabkan standar neraka jika tertangkap ...
Jadi mengapa bukan bahasa perantara standar umum itu?
Ada podcast lama dari Brendan Eich yang menjelaskan mengapa dia tidak melihat bahasa bytecode perantara dalam waktu dekat:
http://www.aminutewithbrendan.com/pages/20101122
http://news.ycombinator.com/item?id=1893686
Masalah dasarnya adalah bahwa sementara bahasa perantara (seperti CIL & byvec JVM) mencoba menjadi generik, sebagian besar waktu mereka berubah menjadi terlalu rendah dan terlalu terikat dengan bahasa tingkat tinggi asli yang dikompilasi untuk mereka. Misalnya, Anda tidak dapat benar-benar mengimplementasikan fungsi rekursif ekor di JVM - fitur bahasa lain atau pilihan implementasi apa yang tidak dapat kami implementasikan jika kami memasangkan abstraksi bytecode tingkat rendah terlalu dini?
Sementara itu, Javascript adalah bahasa tingkat tinggi yang fleksibel dengan semantik yang telah dikembangkan dan banyak implementasi yang berbeda, efisien. Apa yang mungkin kita lihat di masa depan adalah Javascript itu sendiri sebagai bahasa perantara - Sayangnya ini agak tidak matang dan beberapa bahasa dikompilasi ke JS pada hari ini.
sumber
Iya. Anda sudah dapat mengompilasi Dart, Coffeescript dan Java ke Javascript. Anda memiliki Emscripten, yang merupakan backend kompiler untuk LLVM untuk menghasilkan bytecode Javascript (dan saya yakin LLVM menangani beberapa bahasa).
Tetapi selain mengkompilasi ke JS, tidak dalam jangka waktu singkat. IE6 berusia 10 tahun dan masih menendang. Saya berharap bahwa browser saat ini (yang tidak mendukung bahasa lain) tidak akan bertahan begitu lama, tetapi mereka akan ada selama beberapa tahun, memprovokasi siklus menggigit ekor "kita masih harus mendukung browser yang hanya mendukung Javascript, jadi kita harus menggunakan Javascript ", dengan cara yang jauh lebih sulit daripada mengatakan CSS3 - situs Anda mungkin bekerja tanpa CSS3, tetapi cobalah membuatnya berfungsi tanpa skrip sisi klien.
sumber
Anda mungkin beruntung. Ini adalah paragraf pembuka kiriman di forum webkit-dev:
Anda dapat melihat seluruh pesan di sini .
sumber
JavaScript adalah jiwa peramban, itulah sebabnya sebagian besar upaya baru menghasilkan JavaScript (CoffeeScript adalah contoh yang jelas).
Di GWT, Anda kode logika sisi klien Anda dalam bahasa pemrograman Java dan toolkit dengan menghasilkan JavaScript.
ClojureScript adalah proyek yang menarik jika Anda menggunakan Lisp coding.
Jadi kelihatannya apa pun, JavaScript tetap ada di sini. (COBOL web mungkin?).
sumber
Sudah ada sejumlah kompiler yang menargetkan javascript, dan Anda dapat memilih bahasa apa pun yang dikompilasi ke javascript.
Tautan Anda yang membahas nilai bahasa perantara membahasnya dalam konteks penerapan rangkaian kompiler, bukan dalam memberikan kode yang akan dikirimkan melalui jaringan dan dijalankan pada mesin klien. Javascript mungkin bukan format terbaik untuk itu, tetapi apa pun itu, Javascript tidak akan terlihat seperti CIL atau bytecode java.
Jika Anda membenci javascript, saya sarankan Anda pindah ke ruang pengembangan game Embedded, Scientific, atau, di mana C, Fortran, dan C ++ memerintah. Lini aplikasi bisnis sangat banyak pindah ke web, dan itu berarti lebih banyak Javascript, bukan kurang.
sumber