{"action":"created","issue":{"url":"https://api.github.com/repos/gratipay/aspen.py/issues/526","labels_url":"https://api.github.com/repos/gratipay/aspen.py/issues/526/labels{/name}","comments_url":"https://api.github.com/repos/gratipay/aspen.py/issues/526/comments","events_url":"https://api.github.com/repos/gratipay/aspen.py/issues/526/events","html_url":"https://github.com/gratipay/aspen.py/issues/526","id":115318565,"number":526,"title":"wind down Aspen, ramp up Simplates","user":{"login":"whit537","id":134455,"avatar_url":"https://avatars.githubusercontent.com/u/134455?v=3","gravatar_id":"","url":"https://api.github.com/users/whit537","html_url":"https://github.com/whit537","followers_url":"https://api.github.com/users/whit537/followers","following_url":"https://api.github.com/users/whit537/following{/other_user}","gists_url":"https://api.github.com/users/whit537/gists{/gist_id}","starred_url":"https://api.github.com/users/whit537/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/whit537/subscriptions","organizations_url":"https://api.github.com/users/whit537/orgs","repos_url":"https://api.github.com/users/whit537/repos","events_url":"https://api.github.com/users/whit537/events{/privacy}","received_events_url":"https://api.github.com/users/whit537/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":9,"created_at":"2015-11-05T16:16:42Z","updated_at":"2015-11-06T21:11:46Z","closed_at":null,"body":"Okay! Wow! Over on the [November 2015 call](https://github.com/gratipay/aspen.py/issues/525), @pjz  and I began talking about the Python 3 port (#524), which led back to the discussion about switching to Werkzeug (see #222 and mention on #357), and then expanded even further: What is the essence of Aspen? Answer: dispatch and simplates. What if we cut out everything non-essential? What if we killed Aspen as a brand and instead folded the dispatcher into [Simplates](), offering shims for Django and Flask?\r\n\r\nDjango and Flask are the Python web frameworks of record, with Pyramid/Pylons leading the also-rans:\r\n\r\n| Framework | PyPI Downloads | PyPI Rank |\r\n|:----------------|----------------:|---------:|\r\n| [Django](http://pypi-ranking.info/module/Django) | 16,128,764&nbsp; | 26&nbsp; |\r\n| [Flask](http://pypi-ranking.info/module/Flask) | 10,290,820&nbsp; | 45&nbsp; |\r\n| [Pyramid]() + [Pylons](http://pypi-ranking.info/module/Pylons) | 2,055,805<sup>†</sup> | 212<sup>†</sup> |\r\n| [Bottle](http://pypi-ranking.info/module/Bottle) | 1,513,060&nbsp; | 260&nbsp; |\r\n| [Aspen](http://pypi-ranking.info/module/Aspen) | 918,591&nbsp; | 362&nbsp; |\r\n| [Zope2](http://pypi-ranking.info/module/Zope2) + [zope.publisher](http://pypi-ranking.info/module/zope.publisher) | 884,100<sup>†</sup> | 368<sup>†</sup> |\r\n| [CherryPy](http://pypi-ranking.info/module/CherryPy) | 749,732&nbsp; | 410&nbsp; |\r\n| [web.py](http://pypi-ranking.info/module/web.py) | 437,894&nbsp; | 604&nbsp; |\r\n\r\n<sup>†</sup> *combined*\r\n\r\nThe proposal on this ticket is to throw in the towel. Give up. Call it a day. Admit defeat. Stop writing a web framework.\r\n\r\nInstead, we would take the most interesting parts of what we've built—simplates and the filesystem dispatcher—and repackage them under the [Simplates](http://simplates.org/) brand. Simplates and dispatch *are* interesting and unique. We've already got a [shim for Django](https://gist.github.com/whit537/1ccf19dc5bd95363564d). We should be able to adapt that for Flask without too much trouble, so the `simplates` library would look something like this:\r\n\r\n```\r\nsimplates\r\nsimplates.dispatch\r\nsimplates.renderers\r\nsimplates.resources\r\nsimplates.shims.django\r\nsimplates.shims.flask\r\n```\r\n\r\nThis would allow us to invest our time and effort where we're really adding value, and collaborate with others where we're currently reinventing the wheel."},"comment":{"url":"https://api.github.com/repos/gratipay/aspen.py/issues/comments/154542606","html_url":"https://github.com/gratipay/aspen.py/issues/526#issuecomment-154542606","issue_url":"https://api.github.com/repos/gratipay/aspen.py/issues/526","id":154542606,"user":{"login":"whit537","id":134455,"avatar_url":"https://avatars.githubusercontent.com/u/134455?v=3","gravatar_id":"","url":"https://api.github.com/users/whit537","html_url":"https://github.com/whit537","followers_url":"https://api.github.com/users/whit537/followers","following_url":"https://api.github.com/users/whit537/following{/other_user}","gists_url":"https://api.github.com/users/whit537/gists{/gist_id}","starred_url":"https://api.github.com/users/whit537/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/whit537/subscriptions","organizations_url":"https://api.github.com/users/whit537/orgs","repos_url":"https://api.github.com/users/whit537/repos","events_url":"https://api.github.com/users/whit537/events{/privacy}","received_events_url":"https://api.github.com/users/whit537/received_events","type":"User","site_admin":false},"created_at":"2015-11-06T21:11:46Z","updated_at":"2015-11-06T21:11:46Z","body":"I've started a PR in #527."}}