Pertanyaan Perbedaan antara node.js dan Tornado [tertutup]


Selain fakta bahwa node.js ditulis dalam JS dan Tornado dengan Python, apa saja perbedaan antara keduanya? Mereka berdua server web non-blocking asynchronous, kan? Mengapa memilih salah satu dari yang lain selain bahasa?


76
2018-04-06 05:06


asal


Jawaban:


Keuntungan utama dari node.js adalah itu semua pustakanya adalah asinkron jadi Anda tidak perlu khawatir tentang pemblokiran. Ada async libraries untuk mysql, postgres, redis, dll. Semua adalah async secara default.

Python memiliki pustaka untuk apa pun - tetapi sebagian besar pustaka ini tidak asinkron. Untuk memanfaatkan tornado (dan tidak memblokir proses) pustaka khusus diperlukan (misalnya Anda tidak bisa hanya 'pip menginstal redis' dan menggunakannya, Anda akan membutuhkan sesuatu seperti brukva), dan ada lebih sedikit pustaka tornado daripada pustaka node.js. Tidak ada async mysql tornado driver yang tersedia saat ini, misalnya (atau setidaknya saya tidak menyadarinya).

Tetapi Anda masih dapat menggunakan banyak pustaka python dengan tornado (yang tidak melakukan i / o), dan komunitas tornado meningkatkan dan mengisi celah.

Lebih mudah untuk menulis aplikasi menggunakan node.js daripada menggunakan tornado dalam pengalaman saya. Saya pribadi beralih ke tornado dari node.js karena cocok dengan infrastruktur yang ada dari proyek python saya lebih baik (integrasi antara situs django melayani halaman html dan server tornado menyediakan fitur realtime cukup tanpa rasa sakit).


95
2018-04-06 14:14



Seperti yang dikatakan oleh Rich Bradshaw Node.js ditulis dalam JS, yang berarti Anda dapat menyimpan ujung depan dan bagian belakang dalam bahasa yang sama dan mungkin berbagi beberapa basis kode. Bagi saya itu adalah manfaat potensial yang sangat besar Node.js. Node juga dilengkapi dengan lebih banyak pustaka asynchronous dari kotak yang tampaknya.

V8 seharusnya membuat JS lebih cepat daripada Python setidaknya itulah tolok ukur yang tampaknya disarankan, tetapi mungkin tidak terlalu penting, karena keduanya Node.js dan Angin topan (dan sebagian besar kerangka web lain dalam hal ini) menggunakan pembungkus untuk pustaka asli. Banyak pustaka standar Python yang ditulis dalam bahasa C atau dapat diganti dengan alternatif yang lebih cepat, yang mengurangi perbedaan potensial lebih banyak lagi.

Layanan web biasanya I / O terikat, jadi itu berarti kita menghabiskan waktu menunggu penyimpanan data dan tidak memproses data. Itu membuat perbedaan kecepatan sintetis antara JS dan Python tidak relevan dalam banyak aplikasi.


12
2017-09-18 07:30



node.js menggunakan V8 yang mengkompilasi kode assembly, tornado tidak melakukan itu.

Selain itu (yang sebenarnya tidak membuat banyak perbedaan dengan kecepatan), itu adalah ekosistem. Apakah Anda lebih suka model acara JS, atau cara kerja Python? Apakah Anda lebih senang menggunakan pustaka Python atau JS?


10
2018-04-06 08:52



Nodejs juga memiliki integrasi / implementasi web socket yang disebut Socket.io. Ini menangani browser yang mendukung soket - acara dan juga memiliki kompatibilitas pemungutan suara mundur untuk browser yang lebih lama. Ini cukup cepat pada pengembangan yang membutuhkan kerangka pemberitahuan atau beberapa pemrograman berbasis acara serupa.


3
2018-02-07 06:36



Saya akan menyarankan Anda pergi dengan NodeJS, jika tidak ada personal pref untuk python. Saya sangat menyukai Python, tetapi untuk async saya memilih Tornado over node, dan kemudian harus berjuang mencari cara untuk melakukan sesuatu, atau pustaka dengan dukungan async (seperti Cassandra memiliki async dalam pengujian, tetapi tidak ada tempat yang dapat saya temukan cara menggunakan cqlengine dengan async. Harus memilih Mongo karena saya sudah melampaui batas waktu). Dalam hal kinerja dan async, Node jauh lebih baik daripada tornado.


3
2018-04-05 08:04