Hacker Newsnew | past | comments | ask | show | jobs | submit | defnull's commentslogin

Thanks for the nice feedback :) I am defnull, the author of Bottle. Any questions?


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 :)


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.


Those are not lines of code. That includes docstrings which all of Pocoo code is full of. If you want to measure lines of code you at least have to skip comments, docstrings and empty lines. And for that there is sloccount. This also includes the testsuites btw.

With this little script (http://paste.pocoo.org/show/465885/) I get the following results:

    Flask      1467 LOC
    Jinja2     6560 LOC
    Werkzeug   9923 LOC
    Bottle     1910 LOC
(FWIW)


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.


> Bottle does what it does with 1/10 of the code that runs flask.

Not all of the code that is in Jinja2 or Werkzeug is used by the average Flask application. Also Flask does a lot more than Bottle, even for the same things. The routing system behind Werkzeug itself already comes close to 1KLOC (and for good reasons). Which is why I think that any comparison between Bottle and Flask is pretty pointless, it's not really a fair fight for either.

For Flask it was never a goal to have less code than another framework, in fact, from our perspective that's quite a pointless goal.


Flask also has more features and unless you find a way to accurately rate features for their usefulness and compare all those somehow the LOC metric has practically no meaning.

It would be much more interesting for potential users if people started comparing lines of documentation(LOD) and showed the quotient lines of tests/lines of code.


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.


You will notice bad documentation almost immediately which makes the disadvantage of using LOD as a metric practically irrelevant.


"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.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: