python和nodejs的差別:1、python不能直接進行依賴套件多版本管理;而nodejs能直接利用NPM進行套件管理。 2.python分為2和3兩個大版本,互相相容性較差;而nodejs版本和API比較穩定統一。 3.python缺少動態編譯JIT能力,node可以。 4.node的學習成本低。
本教學操作環境:windows7系統、nodejs 14.15.4&&Python3版,DELL G3電腦。
套件和模組管理
- 依賴套件多版本管理
- python 無法直接管理,需要利用virtualenv來分割不同的環境
- nodejs NPM 套件管理,可以同時依賴不同版本的第三方模組
- 引入模組
##python 使用from / import ,不同模組同名不好區分- nodejs 模組引入的其他模組在本模組內都有局部有效的名字,更自由,更靈活,更方便
-
導出模組-
python- nodejs 直接向exports 中添加屬性,或向module.exports 賦值即可,並非語言級別,而是簡單的普通操作
-
語言本身
版本統一性-
python 分成2,3 兩個大版本,互相容性較差,很多模組需要特定python版本的模組版本,比較混亂- nodejs 版本和API比較穩定統一,而且有NPM 相容各個版本的依賴模組,版本管理有序,很好的支援了node核心和第三方模組的版本演llj進
-
語法-
#python 的確比較精煉清晰,特別是豐富的資料結構的支持,簡潔的各種運算子取代函數,可以說有豐富的語法糖- nodejs 語言是javascript,核心更為精簡,雖然本身資料結構和資料處理比較簡陋,但是使用coffee-script 可以彌補, coffee-script 簡直就是javascript 版本的python
-
靈活性-
javascript 基於prototype 的繼承更為靈活- nodejs 基於事件的處理使得處處是鉤子和擴展點
-
可hack性-
#python 不容易hack- javascript 非常容易hack
-
#效能
都是解釋性語言-
python 缺少動態編譯JIT能力-
nodejs v8 可以JIT 執行javascript,效能要更好-
#並發模型-
python 需要多執行緒程式設計- #nodejs 採用非阻塞異步I/O,做非CPU密集型應用非常高效
-
#開發品質與效率
##都是解釋性語言
-
都無法再編譯期進行各種檢查
- 但是nodejs 有javascript 語言的各種格式和語法檢查器可供使用
- 可以採用coffee-script 開發javascript,吸收了大量的python 語法糖
- build system
-
nodejs 有完整的build system(grunt/gulp)
- #nodejs在web 開發資源的豐富程度、創新度、活躍度遠高於python
-
學習成本
如果只有精力學習一門語言
- 肯定是javascript,因為至少瀏覽器前端需要jsjs 語言核心更小,更精煉,更多的語法糖和功能是透過模組或函式庫提供
nodejs 本身就可以用作生產web伺服器,而python 至少前面需要nginx 代理
環境準備 |
在windows 預設沒有python環境,但是卻可以在瀏覽器中調試器console中練習javascript |
|
非同步程式框架比較
|
javascript 的nodejs 和python 的tornado 比較 |
|
##角度 |
nodejs | (javascript) | tornado
(python)
|
|
語言本身效能 ##v8引擎效能很好 |
python 解釋器性能較差
|
IO性能 |
使用epoll等高效IO機制,性能好 | ##使用epoll等高效IO機制,性能好
生態圈nodejs各個版本和外圍模組版本匹配好
python存在各種版本的相容性問題,也不易整合第三方模組
|
跨平台
| nodejs在x86/arm/power/sparc都支援
python由於大量使用c/c 模組,跨平台較差 |
其他類似點 |
|
|
方面
nodejs | (javascript) | tornado(python) |
|
套件管理器 |
npm |
pip
######平台多版本管理器######n######virtualenv###### ######進程監控器######pm2######supervisor#############
相關推薦:《nodejs 教學》
以上是python和nodejs之間有什麼區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!