Thanks for the nice feedback :) I am defnull, the author of Bottle. Any questions?
HN user
defnull
LOC and LOD suffer from the same problem: You can write (or generate) lots of code or documentation that does not help the user. You can even write docs that confuse the user, repeat a lot, to not get to the point and so on. In that case, more is even worse than less. There is no number to measure the usefulness of a framework or the quality of code. And there is no point in comparing frameworks just by numbers.
Your point is interesting, but I would look at it from a different angle: If you need a highly paid specialist with many years of experience to fully master a framework, call it mega-framework. If it fits your brain and can be learned over the weekend, its a micro framework. Everything in between is just a framework :)
There are better ways to count LOC, I agree. But the idea is the same: Bottle does what it does with 1/10 of the code that runs flask.
The author probably did something like this:
sudo pip install -u flask
cd /usr/local/lib/python2.6/dist-packages
find flask/ werkzeug/ jinja2/ -name '*.py' | xargs wc
...
34936 127298 1658380 total
Werkzeug alone has 18KLOC and does not ship with tests."Also provides an incentive to keep shit tidy." This :)
http://bottlepy.org/docs/dev/async.html might be interesting for you.
> Bottle uses one process-wide application object. Flask supports initializing multiple application objects.
The process-wide application object is a sane default for small applications, but not the only option. You can instantiate bottle.Bottle() and work with that, if you need multiple encapsulated application objects. This is fully supported.