首发于 码洞
各大主流语言web框架代码行数对比

各大主流语言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汇聚得到的最终结果。



这样直接对比对某些框架来说是不公平的。有些框架注释比较多,有些框架几乎没有注释。我的统计方法里面没有把注释去掉。不过注释并不是最重要的区别,最大的区别在于有些框架是微内核,有些框架是full-stack的。fullstack的框架可以直接拿来即用,而微内核一般还需要引入额外的插件和扩展才能达到相似的效果。
从源码学习角度来说,自然还是应该选择微内核的,代码量大了阅读起来会是一头雾水。微内核短小精悍,浓缩的都是精华。

学习源码的相关链接

  1. github.com/pyloque/http 1200行代码的Java Web框架
  2. github.com/pyloque/ormk 2000行代码的Java ORM框架
  3. github.com/pyloque/rpck 700行代码的Java RPC框架
  4. github.com/pyloque/iock 200行代码的Java依赖注入框架


关注公众号「码洞」,一起学习源码,最后同情一下Java程序员,表示他们真得很幸苦。

聚圣源公司起什么名好康熙字典十二画的起名吉利字姓赖的女孩起名末日凶煞柏字起名诗句起名给男孩起名字诗词带辰字的公司起名服装店起名男莫麟传奇国学起名男孩彼女たちの流仪陈姓宝宝起名大全2022全明星投票刘姓男孩起名最高蜜蜂瓷砖猪小孩起名忌用的字怎样起好听的笔名减肥店起名日杂百货起名字速度与激情7经典台词如何给孩子起名乐此不疲什么意思鑫字起名公司名称盼盼防盗门价格表皇家骑士团2装饰公司起名字大全二字打分100分的起名字宝宝起名分享免费的起人名网站淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化