Preferensi untuk pengetikan dinamis dan statis sebagian besar adalah masalah selera, dan orang yang berbeda menemukan mereka lebih cocok atau kurang cocok dalam situasi yang berbeda.
Pertanyaan saya adalah, apakah mungkin secara teknis memiliki alternatif yang diketik secara statis untuk JavaScript untuk augmentasi halaman web sisi klien dll.?
Jawaban:
Tentu saja tidak ada alasan teknis hal semacam itu tidak bisa ada. Tidak ada yang khusus tentang kode sisi klien yang mengamanatkan penggunaan bahasa yang diketik secara dinamis.
sumber
Karena sangat tidak mungkin bahwa bahasa lain akan menemukan adopsi luas, taruhan terbaik Anda adalah membuat versi JavaScript yang diketik secara statis (yaitu bahasa yang dekat dengan java) dan preprocessor yang mengubahnya menjadi JavaScript normal.
Misalnya, skrip Anda terlihat seperti itu:
dan preprocessor memeriksa bahwa setiap variabel, fungsi, objek dll digunakan dengan benar sesuai dengan jenisnya, dan mengubah skrip menjadi
yang dapat ditangani oleh setiap browser.
sumber
Tentu. The Google Web Toolkit mengkompilasi statis-mengetik Jawa untuk JavaScript ... Pikirkanlah hal ini: semua keindahan dan fleksibilitas dari Jawa, dengan semua kinerja mesin yang dihasilkan JavaScript!
Namun serius, Anda dapat melakukan ini untuk semua jenis bahasa, dan banyak yang telah mencoba (ada, atau pernah, kompiler untuk C dan C # juga). Apakah hasil akhirnya praktis atau tidak tergantung pada apa yang ingin Anda capai: Google mengejar platform yang konsisten untuk mengembangkan aplikasi sisi klien yang sangat besar, dan memiliki mesin JavaScript sendiri untuk boot; Anda mungkin menemukan bahwa mengadopsi binatang buas seperti itu untuk efek melayang-layang dan panggilan AJAX yang aneh menimbulkan rasa sakit yang jauh lebih daripada sekadar belajar hidup dengan sedikit kode yang tidak diketik ...
sumber
Sebagian besar manfaat dari bahasa yang diketik secara statis diwujudkan pada waktu kompilasi. Jika bahasa akan ditafsirkan pada klien, maka banyak dari keuntungan itu hilang. Jika Anda mengompilasinya di server, maka Anda perlu mencari cara untuk membuatnya dimuat dan dijalankan pada klien (pikirkan kontrol ActiveX). Anda bisa menggunakan pendekatan hybrid (kompilasi ke beberapa bentuk token yang sudah di-intermediate), tetapi pada dasarnya Anda kembali ke applet Java.
sumber
Sudah ada.
ActionScript 3 (bahasa scripting di balik Flash dan Flex) adalah dialek ECMAScript yang mengimplementasikan tipe yang kuat, dan Anda dapat menggunakannya dengan cara yang kurang lebih sama dengan sisi klien seperti JavaScript (perbedaannya adalah bahwa AS3 membutuhkan plugin flash, dan dikompilasi). Saya pribadi mencoba untuk menghindarinya akhir-akhir ini, tetapi jika Anda berada di kamp "statis", cobalah berputar.
Itu menjawab pertanyaan utama, dan sekarang kita memiliki itu, pertanyaan kedua Anda menjadi "Apakah Flash praktis?" Jawabannya adalah "ya", dengan beberapa "jika" dan "tetapi"
sumber
Secara teori, Anda dapat menempelkan skrip apa pun pada halaman yang Anda inginkan. The
<script>
tag memilikitype
atribut, setelah semua.Satu-satunya penghalang adalah mendapatkan pangsa pasar yang cukup dalam hal implementasi di berbagai browser untuk membuatnya layak digunakan.
Jadi ya, agak tidak mungkin pada saat ini.
sumber
</script>
). Anda dapat menempelkan kode Brainf * ck di sana jika Anda benar-benar menginginkannya. Maka yang perlu Anda lakukan adalah menerapkan juru bahasa untuk bahasa pilihan Anda di peramban yang ingin Anda gunakan.<script type="vbscript">
sekali waktu ...Apakah ini praktis? Tidak.
Apa itu mungkin? Iya!
Mengembangkan alternatif Anda sendiri yang diketik secara statis untuk JavaScript akan menghabiskan waktu, paling baik. Paling buruk, Anda tidak akan dapat meyakinkan browser yang ada untuk mengimplementasikan bahasa skrip klien Anda, dan harus menulis sendiri.
sumber
Mungkin Anda menemukan jawaban Anda di sini: /programming/86426/why-require-javascript-rather-than-supporting-a-standard-browser-virtual-machine
Catatan: Menurut saya jawaban yang lebih baru lebih banyak wawasan meskipun skor mereka lebih rendah
sumber
Anda dapat menggunakan bahasa seperti haXe untuk menulis kode Anda dengan cara yang diketik secara statis dan mengekspornya ke javascript. JavaScript menjadi sangat cepat, sehingga cukup sebagai bahasa output. Mencoba menerapkan bahasa yang diketik secara statis sebagai standar web hampir mustahil. Upaya untuk memasukkan pengetikan statis ke dalam JavaScript gagal karena alasan luas untuk didiskusikan.
sumber
Apakah secara teknis itu mungkin? Jika itu akan diterapkan di Jawa, saya akan mengatakan "sangat, sangat sulit, tetapi mungkin" tanpa kehilangan kinerja yang signifikan.
Saya sebenarnya menulis DSL yang diketik secara statis di Jawa saat ini, dan satu-satunya cara yang saya temukan untuk menghindari pengecekan tipe runtime adalah dengan menggunakan obat generik dan menekan peringatan "tidak dicentang" ... yaitu, sampai saatnya tiba untuk mengimplementasikan array multi-dimensi (parameter kelas harus diketahui pada waktu kompilasi dan karenanya secara inheren terbatas, sedangkan array multi-dimensi mewakili jumlah jenis yang tak terbatas ...) Masih mencoba mencari yang satu ini, sayangnya - saya yakin saya akan mengalami masalah serupa dengan kelas yang ditentukan pengguna.
Masalahnya, saya terus menemukan masalah seperti ini, tetapi setelah duduk sebentar, saya menemukan solusi yang bagus. Jadi, untuk melakukannya dan memiliki manfaat kinerja pengetikan statis (tidak ada pengecekan tipe runtime), saya akan mengatakan itu sangat sulit, tetapi bukan tidak mungkin. Minus kinerjanya, saya katakan keras tapi sangat mungkin.
Saya tahu ini pertanyaan lama, hanya berpikir pengalaman saya mungkin berharga bagi seseorang.
sumber
Secara teknis dimungkinkan untuk menulis skrip sisi klien dalam bahasa skrip apa pun yang didukung agen pengguna (browser). Dalam praktiknya, satu-satunya bahasa yang didukung secara luas adalah JavaScript / ECMAScript. Meyakinkan pembuat browser untuk menerapkan dan mendukung bahasa baru pada tahap ini tidak mungkin berhasil; dengan demikian, jika Anda ingin menggunakan bahasa sisi klien yang diketik secara statis, Anda perlu menerjemahkan bahasa baru itu ke JavaScript, atau mengimplementasikan juru bahasa dalam JavaScript.
Ada beberapa proyek yang sudah melakukan hal seperti ini; misalnya, Google Web Toolkit , sebagaimana disebutkan dalam salah satu jawaban lainnya.
sumber
Mengingat Anda tidak memiliki harapan untuk mendapatkan semua browser yang digunakan di dunia nyata untuk mendukung bahasa baru; bahasa harus dikompilasi ke jscript.
Karena semua contoh web menggunakan jscript, bahasa tersebut sebagian besar akan terlihat seperti jscript.
Saya pikir ada ruang lingkup dengan memiliki "sub set" jscript yang diperiksa oleh pemeriksa statis tetapi juga jscript yang valid. Misalnya:
sumber
Mengetik statis opsional adalah bagian dari Project Harmony Project ECMAScript - apakah itu akan terjadi atau tidak di JavaScript [berbasis browser] sisi klien tidak diketahui, saya kira. Lihat tautan Wikipedia ini: http://en.wikipedia.org/wiki/ECMAScript#Future_development
sumber