Go
- gin 4762
- echo 4903
- Iris 27854 swollen
- buffalo 9391
Node
- koa 1667
- express 4051
- 17100 sails swelled
Python
- tornado 21666
- werkzeug 20801
- flask 7489
- bottle 3756
- web.py 10830
- Django 119701 Thai is swollen
Ruby
- sinatra 2580
- grape 7229
- Rails 130379 Thai is swollen
Java
- Spring-core 75207 is not seen
- spring-aop 25984
- spring-web 49017
- spring-webmvc 60246
- spring-beans 51070
- spring-context 76356
- spring-boot 50847
Statistical methods
Statistics when I found some of the framework code is bigger than I thought too much, so I’m on a large quantity of these code code over and over again, remove the path contains the test/example/benchmark/vendor code, such as wc – l together to get the final result.
note
Such direct comparisons are unfair to some frameworks. Some frameworks are heavily commented, while others have almost no comments. I didn’t remove comments from my statistical methods. However, comments are not the most important difference. The biggest difference is that some frameworks are microkernels and others are full-stack. Fullstack’s framework is ready-to-use, while microkernels typically need to introduce additional plug-ins and extensions to achieve similar results.
From the point of view of source code learning, natural or should choose the micro kernel, the amount of code reading will be confused. Microkernels are short and lean, and the essence is concentrated.
Learn related links to the source code
- https://github.com/pyloque/httpkids 1200 lines of code in the Java Web framework
- https://github.com/pyloque/ormkids Java ORM framework of 2000 lines of code
- https://github.com/pyloque/rpckids Java RPC framework of 700 lines of code
- https://github.com/pyloque/iockids 200 lines of code in the Java dependency injection framework
Pay attention to the public number “code hole”, learn the source code together. Finally, allow me to sympathize with the Java programmers and say that they are really suffering.