Saya mengajukan pertanyaan ini pada SO tetapi disarankan untuk mencoba di sini. Jadi begini:
Pemahaman saya tentang Javascript sejauh ini adalah bahwa itu adalah bahasa sisi klien yang menangkap peristiwa dan membuat halaman web menjadi dinamis.
Tetapi saat membaca perbandingan antara MongoDB dan CouchDB saya perhatikan bahwa keduanya menggunakan Javascript. Ini membuat saya bertanya-tanya alasan di balik pilihan JavaScript atas bahasa konvensional lainnya.
Saya rasa saya mencoba memahami peran JavaScript dan kelebihannya dibandingkan bahasa lain.
Pembaruan: Saya tidak bertanya tentang bahasa / driver yang didukung oleh dua database. Perbandingan mengatakan:
Baik CouchDB dan MongoDB memanfaatkan Javascript. CouchDB menggunakan Javascript secara luas termasuk dalam membangun pandangan .
MongoDB juga mendukung menjalankan fungsi javascript sewenang-wenang di sisi server dan menggunakan javascript untuk memetakan / mengurangi operasi.
Kurangnya pemahaman saya berkaitan dengan mengapa Javascript digunakan sama sekali untuk pekerjaan backend. Mengapa lebih disukai untuk membangun tampilan di CouchDB, atau untuk menggunakan peta / mengurangi operasi? Mengapa C / C ++ atau Java tidak digunakan? Apa keuntungan menggunakan Javascript untuk pekerjaan back-end seperti itu?
sumber
Jawaban:
Kode seluler & Lintas-platform
JavaScript adalah apa yang disebut kode seluler , kode tersebut diangkut dari server (MongoDB dan CouchDB dalam kasus ini) ke klien (browser web) dan dieksekusi pada klien tanpa proses instalasi.
Lingkungan runtime JavaScript (browser web) juga tersedia secara luas di banyak platform. Itu menjadikan JavaScript sebagai bahasa lintas platform yang baik.
JavaScript tidak digunakan sebagai bahasa back-end primer
Backend MongoDB diimplementasikan dalam C ++ dan CouchDB diimplementasikan di Erlang. Jadi JavaScript tidak digunakan sebagai bahasa utama untuk sistem backend untuk tesis.
Dari mongodb.com :
Dari couchdb.apache.com :
sumber
Karena JavaScript adalah bahasa scripting.
Ini adalah bahasa yang fleksibel dan dinamis yang akrab bagi orang-orang.
Alasan lain yang digunakan JavaScript adalah karena ia sejalan dengan format JSON yang digunakan oleh basis data ini.
Dan akhirnya database ini membutuhkan bahasa yang bisa diartikan. Karena kode untuk kueri ini dikirim melalui jaringan.
Jadi, Anda membutuhkan
bahasa. Saya tidak berpikir JavaScript adalah pilihan yang buruk di sini. Itu mungkin dipilih karena memiliki sintaks gaya C.
Sekarang mengapa JavaScript dipilih daripada bahasa skrip lain adalah pertanyaan yang bagus.
sumber
Now why JavaScript was chosen over another scripting language
: Saya bisa berspekulasi bahwa itu karena JavaScript adalah bahasa scripting yang paling banyak digunakan, diuji dengan sangat baik melalui penggunaannya di browser, dan ada beberapa implementasi interpreter open source yang sangat baik. CouchDB menggunakanuneval()
, petunjuk bahwa mereka telah membangun juru bahasa mereka di atas SpiderMonkey .Kita semua harus makan pai sederhana ketika kita menyadari bahwa JS digunakan untuk menulis:
Database
Server
Sistem operasi
dan segudang perpustakaan, kerangka kerja, mesin render, dan bahasa kompilasi,
... karena itu lebih baik.
Serius, tolong ... dengarkan aku. Jangan tembak kurirnya.
Tanyakan kepada Microsoft mengapa mereka membangun Windows 8 dengan JS sebagai warga negara kelas satu. Atau OS seluler baru Mozilla, atau IBM Rivertrail, PhoneGap, ExtJS, atau WebGL.
Tapi, lebih baik adalah subjektif: jadi kita harus menelusuri dan membandingkan. Apa yang lebih baik
Dimulai dengan AJAX ... dan belum berhenti.
IO Non-Blok. Ini adalah masalah yang sangat besar dan perlu diketahui. Dalam JS ini adalah pola panggilan balik. Ternyata, menggunakan callback dapat mengaktifkan server non-blocking: Node.js ~ sekitar 8 baris kode. setTimeout () adalah panggilan balik. Pemrosesan asinkron tunggal berulir.
Fleksibilitas. Apa? -Java dan C memiliki kelas dan antarmuka, tetapi disebut berorientasi objek. JavaScript hanya memiliki objek. Tapi itu disebut ... sesuatu yang lain.
-Memiliki objek-satunya adalah hal yang baik untuk fleksibilitas, karena anggota dan metode sepenuhnya dinamis saat runtime. Warisan-Prototypal tidak menakutkan. Beberapa ahli menggambarkannya sebagai objek-paket. -JS ramah pada kesalahan. -Kode dapat bercampur bersama untuk menghasilkan Komponen-Komposit, tanpa banyak usaha, atau pengetahuan tentang ... 'antarmuka', 'abstraksi', 'pewarisan', 'enkapsulasi', 'polimorfisme'. Hal-hal baik, tetapi seperti Nike, di JS; kamu lakukan saja.
Penerjemahan Data. Dengan JSON, objek dapat ditransfer front-to-back, back-to-front. Tidak ada terjemahan data XML. JSON jelas sederhana.
Kurva belajar rendah. Dimungkinkan untuk memotong dan menempelkan kode yang sangat kompleks, lalu men-debug-nya. Saya mendengar seorang kolega ... 'noobs'. Tapi itu bukan hanya untuk noobs.
- Ternyata ini adalah fitur yang sangat bagus untuk Rapid Prototyping. Dan situs bermunculan di mana-mana yang memanfaatkan desain-dalam-browser ini, dan lebih luas lagi; runtime-prototyping. Periksa JSFiddle dan CodePen, juga MicroJS. GitHub.
UPDATE: karena JavaScript postingan ini sekarang digunakan secara luas oleh bahasa lain.
sumber
Anda dapat melakukan lebih sedikit dengan lebih banyak - Ada beberapa sekolah dalam hal ini. Sekolah verbosity menginginkan semuanya dijabarkan dengan sangat halus yang dapat dipahami oleh semua orang idiot. JS adalah anggota dari sekolah yang berlawanan di mana Anda dapat melapisi kerumitan sehingga lebih mudah untuk mendapatkan gambaran besar sebelum memahami bagaimana detail yang lebih baik beroperasi. Jauh lebih mudah untuk menulis ke antarmuka dalam JS daripada di sebagian besar bahasa, IMO.
Fungsi kelas satu, penutup, warisan prototipal - Ini adalah kombo yang benar-benar fleksibel. Kita bisa meniru kelas jika kita mau. Tapi itu dilihat sebagai usaha yang agak sia-sia oleh mereka yang mengerti JS dengan sangat baik. Kompositing cocok dengan JS jauh lebih baik daripada pewarisan berantai.
Memblokir berguna di level yang lebih tinggi. Ya, kamu mendengarku. Ini membantu Anda menjaga fokus pada JS sebagai messenger daripada pekerja keras dan memproses cukup banyak antrian sendiri sementara memungkinkan untuk gangguan dari perilaku tidak sinkron antara panggilan fungsi.
Saya akan mengatakan kurva belajar sebenarnya sedikit curam untuk menulis JS yang kuat tetapi begitu Anda berada di sana, itu adalah hoot. Namun, sama sekali tidak sulit untuk mengimplementasikan hal-hal yang sudah dipanggang di JS pada tingkat keterampilan yang lebih rendah.
sumber
Pertanyaan ini sedikit usang tetapi alasan untuk menggunakan JavaScript vs Java / C ++ adalah karena Java atau C ++ tidak dengan mudah mendukung fragmen kode.
Bahkan jika JavaScript tidak pernah ditemukan, Java atau C ++ akan menjadi pilihan yang baik untuk Fragmen Kode Sumber yang akan dieksekusi di sisi server. Mereka akan memilih bahasa lain atau menciptakan bahasa mereka sendiri. Kembali pada hari produk yang digunakan untuk membuat bahasa mereka sendiri, menentukan aturan produksi mereka sendiri, AST, juru bahasa dll yang khusus dalam domain mereka.
Tetapi dengan JavaScript, sangat mudah untuk membuat Domain Specific Language (DSL) untuk produk Anda dan menanamkan mesin tanpa harus khawatir tentang menciptakan semua infrastruktur terkait non-domain lainnya.
sumber
Model pemrograman yang digerakkan oleh event
JavaScript dibuat dengan pendekatan komputasi non-shared-memory untuk komputasi. Dalam pengembangan UI ini adalah topi yang benar-benar tua. Tidak ada asumsi bahwa "aplikasi" Anda mengendalikan suatu proses. Tidak ada API proses. Juga tidak ada fungsi utama.
"Aplikasi" Anda adalah kumpulan skrip yang akan dieksekusi ketika hal tertentu terjadi seperti
Ini sangat cocok dengan potongan kecil logika pemrosesan yang diperlukan untuk transformasi data.
Bahasa Scripting
Mampu mengeksekusi tanpa tahap kompilasi berarti instruksi pemrosesan dapat disimpan dengan mudah. Anda dapat menyimpan skrip dengan mudah sebagai teks dan menyebarkannya tanpa jenis data atau pengetahuan khusus.
Cukup Sederhana, Stabil, dan Mundur kompatibel
Kode yang Anda tulis hari ini tidak jauh berbeda dari 10 tahun yang lalu. Versi cenderung tidak menjadi masalah bagi orang yang menanamkannya.
Pelaku
Ada beberapa mesin open source yang bagus di luar sana dengan banyak pekerjaan yang dimasukkan ke dalamnya. Ini menjalankan sedikit lebih cepat daripada banyak alternatif.
Kurung kurawal
Banyak orang dibatasi dalam kenyamanan mereka dengan berbagai bahasa pemrograman. Mereka hanya tahu bagaimana memprogram Java atau C # misalnya. Jadi mereka berharap untuk belajar JavaScript dengan mudah karena terlihat familiar. Tentu saja itu hanya ilusi. Ketika saya belajar Python, kecepatannya hampir sama dengan belajar JavaScript. Sintaks hanya signifikan secara emosional dengan asumsi itu tidak sepenuhnya tidak jelas.
sumber