Alternatif untuk JavaScript

144

Saat ini, satu-satunya bahasa yang didukung sepenuhnya, dan standar de-facto untuk manipulasi pohon DOM di browser adalah JavaScript. Sepertinya ia memiliki masalah desain yang mendalam yang menjadikannya ladang ranjau bug dan lubang keamanan bagi pemula.

Apakah Anda mengetahui adanya inisiatif yang direncanakan atau ada untuk memperkenalkan bahasa yang lebih baik (didesain ulang) dalam bentuk apa pun (tidak hanya javascript) untuk manipulasi pohon DOM dan permintaan HTTP di browser generasi berikutnya? Jika ya, apa peta jalan untuk integrasi ke, katakanlah, Firefox, dan jika tidak, untuk alasan apa (selain interoperabilitas) harus JavaScript satu-satunya bahasa yang didukung pada platform browser?

Saya sudah menggunakan jQuery dan saya juga membaca "javascript: bagian yang baik". Memang sarannya bagus, tapi yang tidak bisa saya pahami adalah: mengapa hanya javascript? Di sisi server (platform os-favorit Anda), kami dapat memanipulasi pohon DOM dengan setiap bahasa, bahkan fortran. Mengapa sisi klien (platform browser) hanya mendukung javascript?

Stefano Borini
sumber
4
Google Dart, Script #, CoffeeScript, JSX (keduanya implementasi JS yang berbeda), JavaScript Harmony dll. Lihat tautan ini untuk lebih github.com/jashkenas/coffee-script/wiki/…
nawfal
25
Pertanyaan bagus. Bahasa yang dikembangkan dalam 10 hari masih bersama kami pada tahun 2013. wtfjs.com
Den
2
"mengapa hanya javascript? Di sisi server (platform os-favorit Anda), kami dapat memanipulasi pohon DOM dengan setiap bahasa, bahkan fortran. Mengapa sisi klien (platform browser) hanya mendukung javascript?" di sisi server Anda dapat menginstal apa pun yang Anda inginkan, tetapi saya tidak dapat memaksa klien Anda untuk menginstal plugins / addons tambahan, juga jika kita memiliki banyak bug dan masalah keamanan dengan javascript tebak berapa banyak bug dan masalah keamanan yang akan kita miliki jika kami menambahkan beberapa lagi?
Peter
6
@ Peter Saya tidak tahu apakah argumen Anda serius atau bercanda. Sangat mudah bagi orang untuk menginstal platform jika mereka mau. Jika alternatif untuk Javascript tersedia dan bekerja dengan baik, maka penyedia komersial hanya akan meminta pengguna untuk mengunduh apa pun yang diperlukan untuk menjalankannya - seperti yang selalu mereka lakukan dengan Flash, dan seperti yang mereka lakukan untuk waktu dengan Silverlight. Dari semua alasan mengapa mungkin tidak muncul alternatif di sisi klien, kesulitan memastikan pengguna Anda memiliki platform Anda bukanlah salah satu dari mereka.
ely
1
@ Ya: Dan ternyata baik-baik saja? Flash? Applet Java? Silverlight? Saya bahkan tidak pernah menginstal Silverlight.
Sebastian Mach

Jawaban:

41

Masalah dengan javascript bukan bahasa itu sendiri - itu adalah bahasa prototipe dan dinamis yang sangat baik. Jika Anda berasal dari latar belakang OO, ada sedikit kurva pembelajaran, tetapi itu bukan kesalahan bahasa.

Kebanyakan orang beranggapan bahwa Javascript seperti Java karena memiliki sintaksis yang sama dan nama yang mirip, tetapi sebenarnya itu jauh lebih mirip cisp. Ini sebenarnya cukup cocok untuk manipulasi DOM.

Masalah sebenarnya adalah bahwa itu dikompilasi oleh browser, dan itu berarti ia bekerja dengan cara yang sangat berbeda tergantung pada klien.

Tidak hanya DOM yang sebenarnya berbeda tergantung pada browser, tetapi ada perbedaan besar dalam kinerja dan tata letak.


Edit klarifikasi berikut dalam pertanyaan

Misalkan beberapa bahasa yang ditafsirkan didukung - Anda masih memiliki masalah yang sama. Berbagai browser akan tetap bermasalah dan memiliki DOM yang berbeda.

Selain itu, Anda harus memiliki juru bahasa yang terpasang di browser atau dipasang sebagai plug in (yang dapat Anda periksa sebelum menyajikan halaman) untuk setiap bahasa. Butuh waktu lama untuk mendapatkan Javascript yang konsisten.

Anda tidak dapat menggunakan bahasa yang dikompilasi dengan cara yang sama - maka Anda memperkenalkan yang dapat dieksekusi yang tidak dapat dengan mudah diteliti apa yang dilakukannya. Banyak pengguna akan memilih untuk tidak menjalankannya.

OK, jadi bagaimana dengan semacam kotak pasir untuk kode yang dikompilasi? Kedengarannya seperti Java Applet bagi saya. Atau ActionScript di Flash. Atau C # di Silverlight.

Bagaimana dengan semacam standar IL? Itu lebih potensial. Kembangkan dalam bahasa apa pun yang Anda inginkan dan kemudian kompilasikan ke IL, yang oleh browser lalu JIT.

Kecuali, Javascript sudah agak seperti itu IL - lihat saja GWT . Ini memungkinkan Anda menulis program di Jawa, tetapi mendistribusikannya sebagai HTML dan JS.


Edit klarifikasi lebih lanjut berikut yang dipertanyakan

Javascript bukan, atau lebih tepatnya bukan, satu-satunya bahasa yang didukung oleh browser: kembali di zaman Internet Explorer gelap Anda dapat memilih antara Javascript atau VBScript untuk dijalankan di IE. Secara teknis IE bahkan tidak menjalankan Javascript - itu menjalankan JScript (terutama untuk menghindari harus membayar Sun untuk kata java , Oracle masih memiliki nama Javascript ).

Masalahnya adalah bahwa VBScript adalah milik Microsoft, tetapi juga bahwa VBScript tidak begitu baik. Sementara Javascript menambahkan fungsionalitas dan mendapatkan alat debugging tingkat atas di browser lain (seperti FireBug) VBScript tetap hanya untuk IE dan cukup banyak yang tidak dapat di-debuggable (dev tools di IE4 / 5/6 tidak ada). Sementara itu VBScript juga berkembang menjadi alat skrip yang cukup kuat di OS, tetapi tidak ada fitur yang tersedia di browser (dan ketika itu mereka menjadi lubang keamanan besar).

Masih ada beberapa aplikasi internal perusahaan di luar sana yang menggunakan VBScript (dan beberapa mengandalkan lubang keamanan itu), dan mereka masih menjalankan IE7 (mereka hanya menghentikan IE6 karena MS akhirnya mematikannya).

Mendapatkan Javascript ke keadaan saat ini telah menjadi mimpi buruk dan telah memakan waktu 20 tahun. Itu masih tidak memiliki dukungan yang konsisten, dengan fitur bahasa (ditentukan pada tahun 1999) masih hilang dari beberapa browser dan banyak shims yang diperlukan.

Menambahkan bahasa alternatif untuk menafsirkan di browser menghadapi dua masalah utama:

  • Membuat semua vendor browser menerapkan standar bahasa baru - sesuatu yang mereka masih belum berhasil untuk Javascript dalam 20 tahun.

  • Bahasa kedua berpotensi melemahkan dukungan yang sudah Anda miliki, memungkinkan (misalnya) IE untuk memiliki dukungan Javascript tingkat kedua tetapi VBScript yang hebat (lagi). Saya benar-benar tidak ingin menulis kode dalam berbagai bahasa untuk browser yang berbeda.

Perlu dicatat bahwa Javascript belum selesai - masih berevolusi menjadi lebih baik di peramban baru. Versi terbaru adalah beberapa tahun sebelum implementasi browser dan mereka sedang bekerja pada yang berikutnya.

Keith
sumber
5
Saya akan mengatakan itu "ditafsirkan", bukan "dikompilasi" oleh browser.
Flavius ​​Stef
19
Browser yang lebih baru melakukan kompilasi JIT pada JavaScript.
Nosredna
4
Saya juga googled klaim jit, dan, ternyata, Firefox 3.1 akan memiliki dukungan bawaan . Lihat andreasgal.com/2008/08/22/tracing-the-web atau people.mozilla.com/~schrep/ tm-image-adjustment.swf
Flavius ​​Stef
2
Mesin JavaScript V8 (chrome) mengkompilasi secara langsung.
Dave W. Smith
3
Saya sangat tidak setuju dengan jawaban pertama Anda "masalah dengan JavaScript bukan bahasa itu sendiri". Saya pikir secara sintaksis bahasa yang sangat jelek dan tidak memiliki fitur yang Anda dapatkan dari kebanyakan bahasa lain. Fitur yang, setidaknya saya, masih perlu dalam aplikasi besar (memuat dependensi, prinsip OO yang dapat dibaca ). Jika kita harus melakukannya (internet) sekarang, saya tidak berpikir JavaScript akan menjadi pilihan 'terbaik' untuk bahasa.
SirLenz0rlot
28

Kompilasi ke Javascript

Untuk saat ini, menggunakan bahasa yang mengkompilasi ke Javascript tampaknya menjadi satu-satunya cara realistis untuk mencapai semua platform saat menulis kode yang lebih cerdas, dan ini akan tetap berlaku untuk waktu yang lama. Dengan penawaran baru, akan selalu ada alasan mengapa satu atau lebih vendor tidak akan terburu-buru mengirimkannya.

(Tapi saya tidak benar-benar berpikir ini adalah masalah. Javascript telah dioptimalkan dengan baik sekarang. Kode mesin juga tidak aman jika ditulis dengan tangan, tetapi berfungsi dengan baik sebagai target kompilasi dan bahasa eksekusi.)

Begitu banyak pilihan

Ada kumpulan bahasa yang terus berkembang yang mengkompilasi ke Javascript. Daftar yang cukup lengkap dapat ditemukan di sini:

Penting

Saya akan menyebutkan beberapa yang menurut saya patut diperhatikan (sementara tidak diragukan mengabaikan beberapa permata yang tidak saya sadari):

  • Spider muncul di 2016. Ia mengklaim untuk mengambil ide terbaik dari Go, Swift, Python, C # dan CoffeeScript. Ini bukan typesafe, tetapi memang memiliki beberapa fitur keselamatan kecil .

  • Elm : Haskell mungkin bahasa paling cerdas dari semuanya, dan Elm adalah varian dari Haskell untuk Javascript. Ini sangat sadar dan ringkas, dan menawarkan Pemrograman Fungsional Reaktif sebagai alternatif yang rapi untuk templat reaktif atau spaghetti MVC. Tapi itu mungkin cukup mengejutkan bagi programmer prosedural .

  • Google's Go ditujukan untuk keringkasan, kesederhanaan, dan keamanan. Kode Go dapat dikompilasi ke dalam Javascript oleh GopherJS .

  • Dart adalah upaya Google selanjutnya untuk menggantikan Javascript. Ini menawarkan antarmuka dan kelas abstrak melalui sintaks seperti Java / C dengan mengetik opsional.

  • Haxe seperti FlashScript ActionScript, tetapi dapat menargetkan beberapa bahasa sehingga kode Anda dapat digunakan kembali dalam program Java, C, Flash, PHP dan Javascript. Menawarkan objek yang aman dan dinamis.

  • Opalang menambahkan gula sintaksis ke Javascript untuk menyediakan akses basis data langsung , kelanjutan pintar, pengecekan tipe dan membantu pemisahan klien / server. (Terikat ke NodeJS dan MongoDB.)

  • GorillaScript , "bahasa kompilasi-ke-JavaScript yang dirancang untuk memberdayakan pengguna saat berusaha mencegah beberapa kesalahan umum." mirip dengan Coffeescript tetapi lebih komprehensif, menyediakan banyak fitur tambahan untuk meningkatkan keamanan dan mengurangi pola pelat berulang.

  • LiteScript berada di suatu tempat di antara Coffeescript dan GorillaScript. Menawarkan sintaks async / yield untuk panggilan balik "inline", dan memeriksa kesalahan ketik variabel.

  • Microsoft's TypeScript adalah superset kecil dari Javascript yang memungkinkan Anda menempatkan pembatasan tipe pada argumen fungsi, yang mungkin menangkap beberapa bug. Demikian pula, BetterJS memungkinkan Anda untuk menerapkan pembatasan, tetapi dalam Javascript murni, baik dengan menambahkan panggilan tambahan atau dengan menentukan jenis dalam komentar JSDoc. Dan sekarang Facebook telah menawarkan Flow yang juga melakukan inferensi tipe.

  • LiveScript adalah spin-off dari Coffeescript yang populer karena singkatnya tetapi tidak terlihat sangat mudah dibaca oleh saya. Mungkin bukan yang terbaik untuk tim.

Bagaimana memilih?

Saat memilih bahasa alternatif, ada beberapa faktor yang perlu dipertimbangkan :

  • Jika pengembang lain bergabung dengan proyek Anda di masa depan, berapa lama waktu yang dibutuhkan untuk meningkatkan kecepatan dan mempelajari bahasa ini, atau seberapa besar peluang yang mereka ketahui?

  • Apakah bahasa tersebut memiliki fitur yang terlalu sedikit (kode akan tetap penuh dengan boilerplate) atau fitur yang terlalu banyak (akan membutuhkan waktu lama untuk dikuasai, dan sampai saat itu beberapa kode yang valid mungkin tidak dapat diuraikan)?

  • Apakah ada fitur yang Anda butuhkan untuk proyek Anda? (Apakah proyek Anda perlu pengecekan tipe dan antarmuka? Apakah perlu kelanjutan cerdas untuk menghindari neraka panggilan balik bersarang? Apakah ada banyak reaktivitas? Mungkin perlu menargetkan lingkungan lain di masa depan?)

Masa depan...

Jeff Walker telah menulis serangkaian posting blog yang memancing pemikiran tentang "masalah Javascript", termasuk mengapa ia berpikir baik TypeScript , maupun Dart maupun Coffeescript menawarkan solusi yang memadai. Dia menyarankan beberapa fitur yang diinginkan untuk bahasa yang lebih baik dalam kesimpulannya .

joeytwiddle
sumber
ES6 memperluas Javascript dengan banyak fitur yang memungkinkan kelas untuk ditentukan lebih jelas, dan "inline async" melalui generator. Masih diketik secara dinamis!
joeytwiddle
Pendekatan Elm mirip dengan Nitrogen atau N2O (kerangka erlang) itu sebabnya saya menyukainya.
DenisKolodin
Saat ini kami memiliki beberapa gula sintaksis CoffeeScript di ES8 dan di TypeScript, serta menunggu async. TypeScript telah mencegah banyak bug di tempat kerja saya, meskipun masih ada beberapa peluang untuk kejutan!
joeytwiddle
Ada juga Wasm sekarang, yang memungkinkan berbagai bahasa lain berjalan di browser. Namun komunikasi dengan DOM masih melalui JavaScript.
joeytwiddle
22

harus JavaScript satu-satunya bahasa yang didukung di platform browser?

Iya dan tidak. Ada alternatif di luar sana yang disebut Dart oleh Google yang mengkompilasi ke JavaScript dan seperti jQuery ia mencoba untuk membuat manipulasi DOM sedikit lebih mudah. Mungkin menyenangkan untuk bereksperimen, memeriksanya.

Lihat juga

Alex Nolasco
sumber
15

Memang benar bahwa Javascript pada satu titik terkenal sulit untuk dihadapi tetapi komunitas pengembangan web telah datang jauh sejak saat itu. Sebagai gantinya, saya akan mendorong Anda untuk melihat jQuery . Sangat mudah dan abstrak semua masalah.

Dan benar-benar tidak ada alternatif yang bisa digunakan. Flash muncul di pikiran, tetapi itu juga skrip ECMA dan itu mungkin lebih dari membunuh untuk sebagian besar hal.

aleemb
sumber
1
atau Mootools, Prototipe, dan Dojo. jqueryvsmootools.com adalah perbandingan yang bagus antara mootools dan jquery.
Ryan Florence
Tidak ada yang salah dengan Javascript. Anda mungkin merujuk pada masalah di JScript IE dan masalah render umum dan inkonsistensi dengan berbagai browser.
Gavin
7

Jangka pendek, saya akan menggunakan hal-hal seperti jQuery untuk menyembunyikan ketidakcocokan browser. Jangka panjang, teknologi seperti Silverlight atau Adobe AIR dapat menjadikan ini ladang ranjau yang sangat berbeda (tapi masih ranjau) di masa depan.

Marc Gravell
sumber
1
+1 untuk menggunakan jQuery untuk menyembunyikan ketidakcocokan browser. Saya membaca sebuah buku yang menjelaskan bagaimana beberapa mekanisme itu bekerja dan percayalah ketika saya mengatakan bahwa jQuery menyelamatkan sakit kepala programmer di departemen ini.
Sungai Vivian
1
melihat jawaban teknologi di belakang selalu merupakan pandangan yang aneh. sekarang kita tahu web menang: silverlight, flash dan air semuanya mati, dan pemenang yang tersisa adalah javascript dalam semua mantra yang aneh dan indah.
oligofren
6

Doug Crockford memberikan ceramah kepada Google yang merinci bagian buruk dan baik dari JavaScript dan masa depannya. Ini sebenarnya tidak banyak berubah sama sekali sejak 1999 - yang dapat dikatakan sebagai hal yang baik (hampir semua browser dapat menjalankan kode yang sama selama Anda mengetahui keterbatasan mereka) dan Doug menunjukkan di mana bagian-bagian yang baik sebagian besar kesalahpahaman yang ternyata sangat kuat.

Untuk manipulasi DOM, lihat JQuery sebagai pustaka sisi klien yang menggantikan sebagian besar DOM API yang mengerikan dengan operasi yang sulit untuk ditulis ke bit kode yang cukup elegan yang lebih mudah untuk ditulis.

sj2009
sumber
5

Jika Anda berpikir bahwa JavaScript memiliki masalah mendalam, saya sarankan buku Doug Crockford, JavaScript: The Good Parts . (Atau Google untuk "Crockford JavaScript" untuk menemukan beberapa presentasi video yang telah ia lakukan.) Crockford membuat sketsa subset dan rangkaian praktik yang aman, dan secara khusus mencantumkan beberapa bagian bahasa yang harus dihindari.

Saya tidak mengetahui rencana untuk mengganti JavaScript sebagai cara de facto memanipulasi DOM. Jadi sebaiknya belajar menggunakannya dengan aman dan baik.

Dave W. Smith
sumber
1
Baca lagi. Jelas bahwa dia mengedit pertanyaannya setelah membaca jawaban.
Dave W. Smith
4

Dalam hal sisi klien, Javascript adalah satu-satunya cara untuk memanipulasi DOM. Dalam hal sisi server ada banyak cara.

Ben Shelock
sumber
4

Internet Explorer mendukung bahasa scripting pluggable, meskipun satu-satunya yang andal disertakan dengan IE selain JScript adalah VBScript.

Sejauh yang saya lihat, tampaknya ada semacam bias umum terhadap bahasa dinamis di browser, dan JavaScript tampaknya memenuhi kebutuhan ini cukup memadai sehingga efek jaringan membuat bahasa lain menjadi non-starter. Bahasa ini sebenarnya cukup kuat, meskipun penerapannya di browser meninggalkan banyak yang harus diinginkan.

Jeffrey Hantin
sumber
1
Jangan gunakan VBScript di IE - itu adalah varian VB yang mengerikan yang dipikirkan MS besar akan lepas landas tetapi tidak. Sebenarnya tidak berfungsi seperti VB atau VBScript normal, dan itu lebih lambat dari Javascript.
Keith
1
Apa yang kurang dalam, katakanlah, implementasi JavaScript / ECMAScript WebKit atau Gecko yang tersedia dalam implementasi non-browser? Komentar itu benar-benar membingungkan saya.
kelopak mata
4

Jika Anda ingin membatasi pelanggan / pengunjung Anda ke browser tertentu, dan mungkin bersedia meminta mereka untuk menginstal plug-in, Anda dapat melihat MS Silverlight - ikhtisar yang dapat dibaca ada di wikipedia . Dengan Silverlight 2, Anda dapat menjalankan, sisi klien, kode yang Anda tulis dalam C #, IronPython, IronRuby, VB.NET, dll; bebas Moonlight tiruan dari Silverlight, dari proyek Mono, janji-janji untuk membawa fungsi yang sama untuk Linux.

Dalam praktiknya, sebagian besar pengembang aplikasi dan situs web lebih memilih untuk menjangkau audiens yang lebih luas daripada yang dapat disampaikan Silverlight (dan akhirnya Moonlight) - yang berarti tetap menggunakan Javascript, atau mungkin Flash (yang menggunakan bahasa pemrograman yang sama, Actionscript).

Jadi, mendapatkan mindshare, adopsi, dan daya tarik yang substansial untuk hal lain terbukti menjadi perjuangan yang berat bahkan untuk Microsoft dengan kelompok besar insinyur dan anggaran pemasaran dan proyek perangkat lunak bebas di samping (untuk mengurangi kekhawatiran tentang penguncian hak milik) ) - yang dapat membantu menjelaskan mengapa ada sedikit minat, misalnya dari pihak Mozilla Foundation, dalam mendorong ke arah tujuan tersebut. "Terlepas dari interoperabilitas", Anda berkata: tetapi yang jelas masalah interoperabilitas adalah THE biggie di sini, mengingat apa yang kami amati dengan kemajuan Silverlight ...

Alex Martelli
sumber
3

Seperti yang sudah dikatakan, Anda memiliki Flash (ActionScript, yang merupakan bahasa turunan dari Javascript) dan Silverlight / Moonlight (IronPython, IronRuby, JScript, VBScript, C #) yang dapat berjalan di browser melalui plugin (yang pertama lebih banyak di mana-mana) .

Ada juga alternatif lain jika Anda suka Ruby: HotRuby , ini adalah implementasi ruby ​​di javascript yang akan berjalan di browser. Ini belum terlalu dewasa, tetapi Anda bisa melihatnya.

Alcides
sumber
3

Satu hal yang belum saya lihat disebutkan (oh, saya melihat Alcides menyebutkan HotRuby ketika saya sedang menulis dan Nosredna menyebutkan GWT dan Script #) dan ingin membuang ada beberapa implementasi [masukkan bahasa] -on- JavaScript (mis. Penerjemah yang memungkinkan Anda untuk mengkonversi Ruby , Python , C # , Java , Obj-J / Cappuccino [mirip dengan Obj-C / Cocoa] atau Memproses [untuk Kanvas] ke JavaScript baik pada klien atau sebelum penyebaran [dan beberapa yang juga menampilkan berbagai perpustakaan abstraksi]). Tentu saja ada overhead kinerja jika sedang diterjemahkan pada klien, tetapi jika Anda lebih nyaman dengan bahasa lain itu akan memberi Anda fleksibilitas.

Namun secara pribadi, saya sarankan belajar untuk mencintai JavaScript. Ini adalah bahasa yang sangat baik, kuat, dan sangat elegan begitu Anda mengetahuinya. Saya menghadapi dilema yang berlawanan, mengejar sedikit untuk memiliki solusi JavaScript / DOM sisi server yang mampu memenuhi semua kebutuhan saya. / Pendapat yang tidak diminta

kelopak mata
sumber
Saya menyebutkan GWT dan Script #. Bagi yang tertarik dengan Script #, tautannya adalah projects.nikhilk.net/ScriptSharp
Nosredna
Terima kasih telah mengarahkan saya ke Obj-J / Cappuccino. Sangat luar biasa untuk membuat aplikasi web dan saya hanya membukanya karena Anda menyebutkannya dan nama (dan keterkaitan Kakao) membuat saya penasaran.
Timo
2

Tidak. JavaScript itu, tapi itu akan berkembang. Versi selanjutnya adalah "JavaScript Harmony," dan Anda dapat mempelajari lebih lanjut jika Anda Google itu.

Kadang-kadang seseorang menyarankan untuk menempatkan penerjemah kode byte ke dalam peramban di samping JavaScript. Mungkin tidak akan terjadi, setidaknya untuk sementara.

Saya kebetulan suka JavaScript. Tetapi ada solusi lain, termasuk GWT, yang mengkompilasi Java ke JavaScript dan Script #, yang mengkompilasi C # ke JavaScript.

Nosredna
sumber
2

Jquery (masih javascript tapi) itu akan sangat membantu Anda mereka memiliki dukungan untuk hampir semua browser dan itu tidak terlalu sulit untuk dipelajari :)

Hannoun Yassir
sumber
2

JavaScript adalah bahasa Inggris web. Bahasa Inggris secara historis menyebar karena memiliki angkatan laut yang kuat menaklukkan berbagai negara. Ini sebanding dengan perusahaan besar yang menaklukkan web dengan JavaScript. Bahasa ini dikuasai bersama dari berbagai sumber Eropa (bahasa Yunani, Latin, Jerman, Perancis bahkan beberapa kata Cina dan India). JavaScript meminjam banyak konsep selama bertahun-tahun dari bahasa lain (struktural, OO, fungsional). Bahasa Inggris dituturkan di berbagai tempat dengan sedikit variasi dalam dialek dan aksen, yang dapat membuat pemahaman menjadi sulit. Sama seperti JavaScript memiliki browser yang berbeda menafsirkannya sedikit berbeda.

Meskipun bahasa Inggris mudah dipelajari pada awalnya, ia memiliki pengucapan yang sangat tidak konsisten dan lebih banyak pengecualian daripada aturan. Sama seperti JavaScript, selalu ada di sana untuk menawarkan kejutan.

Terlepas dari aksen yang berbeda, JavaScript adalah lingua franca web. Sama seperti Anda mungkin bukan bahasa Inggris dan menulis di sini dalam bahasa Inggris, setiap browser web memiliki tingkat pemahaman bahasa Inggris tertentu. IE6 seperti orang yang mengatakan dalam resume-nya bahwa dia fasih, tetapi hanya mengikuti kursus dua minggu tentang bahasa Inggris sebagai bahasa asing.

Ada upaya untuk menggantikan bahasa Inggris sebagai bahasa utama dunia, misalnya Esperanto. Tetapi semuanya gagal, karena kebanyakan orang di dunia berbicara sedikit bahasa Inggris. Dengan cara yang sama akan sulit untuk memperkenalkan alternatif yang lebih baik ke JavaScript.

CodeMonkey
sumber
1

Saya tidak berpikir Javascript akan diganti dalam waktu dekat. Untuk pendekatan yang sama sekali berbeda dengan klien kaya, Anda mungkin ingin menyelidiki Flex, yang merupakan teknologi berbasis Flash.

Flavius ​​Stef
sumber
1

Mungkin sesuatu seperti haxe (lihat haxe.org) dapat membantu Anda. Ini adalah bahasa yang tampaknya lebih bersih daripada JavaScript dan dapat dikompilasi ke JavaScript, sehingga dapat dijalankan di dalam browser.

Saya tahu ini bukan jawaban langsung untuk pertanyaan Anda, tetapi saya pikir ini mungkin menarik bagi Anda.

Karl Bartel
sumber
1

Banyak orang mengerti bahwa Javascript bukan bahasa terbaik dan tercantik yang pernah ada. Namun, saat ini didukung oleh browser, dan karenanya akan sangat sulit untuk memperkenalkan bahasa yang berbeda. Kami tidak membutuhkan perang browser lain.

Ini menjelaskan mengapa saya tahu tidak ada rencana untuk beralih ke bahasa sisi klien yang berbeda.

Tapi saya pikir Javascript tidak terlalu buruk jika Anda mulai berpikir tentang model DOM dan bagaimana cara kerjanya. Banyak hal yang berantakan dengan JS adalah hasil dari cara model DOM bekerja.

ilya n.
sumber