各大主流語言web框架代碼行數對比

Go

  1. gin 4762
  2. echo 4903
  3. iris 27854 腫
  4. buffalo 9391

Node

  1. koa 1667
  2. express 4051
  3. sails 17100 腫

Python

  1. tornado 21666
  2. werkzeug 20801
  3. flask 7489
  4. bottle 3756
  5. web.py 10830
  6. django 119701 泰腫

Ruby

  1. sinatra 2580
  2. grape 7229
  3. rails 130379 泰腫

Java

  1. spring-core 75207 裝着沒看見
  2. spring-aop 25984
  3. spring-web 49017
  4. spring-webmvc 60246
  5. spring-beans 51070
  6. spring-context 76356
  7. spring-boot 50847

統計方法

統計的時候我發現有些框架的代碼比我想象的大的太多,因此我對這些代碼量大的代碼進行了反覆統計,去掉路徑包含test/example/benchmark/vendor等的代碼,進行wc -l匯聚獲得的最終結果。git

這樣直接對比對某些框架來講是不公平的。有些框架註釋比較多,有些框架幾乎沒有註釋。個人統計方法裏面沒有把註釋去掉。不過註釋並非最重要的區別,最大的區別在於有些框架是微內核,有些框架是full-stack的。fullstack的框架能夠直接拿來即用,而微內核通常還須要引入額外的插件和擴展才能達到類似的效果。程序員

從源碼學習角度來講,天然仍是應該選擇微內核的,代碼量大了閱讀起來會是一頭霧水。微內核短小精悍,濃縮的都是精華。github

學習源碼的相關連接

  1. https://github.com/pyloque/httpkids 1200行代碼的Java Web框架
  2. https://github.com/pyloque/ormkids 2000行代碼的Java ORM框架
  3. https://github.com/pyloque/rpckids 700行代碼的Java RPC框架
  4. https://github.com/pyloque/iockids 200行代碼的Java依賴注入框架

關注公衆號「碼洞」,一塊兒學習源碼。最後請容許我同情一下Java程序員,表示他們真得很幸苦。web

相關文章
相關標籤/搜索