首頁  >  文章  >  web前端  >  python和nodejs之間有什麼區別

python和nodejs之間有什麼區別

青灯夜游
青灯夜游原創
2021-09-01 15:48:376319瀏覽

python和nodejs的差別:1、python不能直接進行依賴套件多版本管理;而nodejs能直接利用NPM進行套件管理。 2.python分為2和3兩個大版本,互相相容性較差;而nodejs版本和API比較穩定統一。 3.python缺少動態編譯JIT能力,node可以。 4.node的學習成本低。

python和nodejs之間有什麼區別

本教學操作環境: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,因為至少瀏覽器前端需要js

    js 語言核心更小,更精煉,更多的語法糖和功能是透過模組或函式庫提供
nodejs 本身就可以用作生產web伺服器,而python 至少前面需要nginx 代理非同步程式框架比較(javascript)tornado(python)python 解釋器性能較差##使用epoll等高效IO機制,性能好
環境準備
在windows 預設沒有python環境,但是卻可以在瀏覽器中調試器console中練習javascript

javascript 的nodejs 和python 的tornado 比較
##角度 nodejs
語言本身效能
##v8引擎效能很好
IO性能 使用epoll等高效IO機制,性能好

生態圈nodejs各個版本和外圍模組版本匹配好

python存在各種版本的相容性問題,也不易整合第三方模組nodejs在x86/arm/power/sparc都支援方面(javascript)tornadopip
跨平台

python由於大量使用c/c 模組,跨平台較差
其他類似點
nodejs(python)
套件管理器 npm
######平台多版本管理器######n######virtualenv###### ######進程監控器######pm2######supervisor#############

相關推薦:nodejs 教學

以上是python和nodejs之間有什麼區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn