Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
TurboGears joins the Pylons Project (compoundthinking.com)
65 points by vimes656 on Dec 28, 2010 | hide | past | favorite | 37 comments


The simple fact is that the larger Python community never really cared for repoze.bfg and TurboGears. The Pylons, BFG and TurboGears teams joining forces feels more like a last, somewhat desparate move to garner some attention for projects that never reached critical mass. I don't think it'll change much of anything.

I used to do development in Pylons and I've tried my hand at Pyramid, and there's simply nothing to get excited about. Even the documentation for Pyramid, which at first seems beautifully comprehensive and one of the system's strong points, turns out to be an interlinking mess lacking clear explanations of even the very basics of the system.

True enough, like Pylons before it, Pyramid is anything but opinionated, which probably makes it a good base platform for the TurboGears devs, but how much will it matter when people will just shrug their shoulders after looking at the landing page, and proceed to download Django or Flask/Werkzeug or, heck, Ruby on Rails?

Anyway, regardless of my scepticism, building new stuff and starting new projects is always fun, so hopefully the Pylons project devs enjoy the process.


I've been steeped in Pylons for several years now. I agree that Pylons has nothing to get excited about. However, (and this is the important part) it provided really straightforward glue to integrate a few other things that are definitely worth getting excited about: SQLAlchemy, Mako/Jinja, Routes, Beaker, and Paste.

Pylons' past philosophy always seemed to be "we'll take the best-in-breed of python web software and put it together in an elegant way." Sadly, they seem to have abandoned that philosophy for the sake of protecting the precious nest eggs of massive full-stack framework developers.

While the new changes to Pylons certainly don't prevent you from using the aforementioned exceptional-quality components, the smushing-together of projects while trying to retain legacy compatibility seems to have created an enormous system where there isn't a cohesive or consistent way of doing things.

No thanks--I think I'll go for WebOb and its lightweight performance.


Yep, nothing but love for SQLAlchemy, Jinja, Routes and Beaker. But even given those components, it's still a hard sell.

Reminds me of this blogpost from a while back: http://www.hindsightlabs.com/blog/2010/03/15/jinja2-and-djan...

"In the beginning, there was Django, and it was good. But gradually we began to find its paradigms counterintuitive: we disliked the idea of apps and considered the built-in template language pretty crippled. More importantly, we prefer the epically powerful SQLAlchemy to Django’s ORM of Doom, so with the evidence before us, we switched to Pylons and the haven of SQLAlchemy/Jinja, only to discover we had switched from a shitty apartment in Brooklyn to a tent in the desert. No cockroaches, true, but no running water, either. Who really wants to write a thumbnail library? (Apologies to anyone who has actually written a thumbnail library)"



As the author, I'm interested in improving the Pyramid docs. Can you elaborate on your issues with them? Did you notice the tutorials at http://docs.pylonshq.com/pyramid/dev/index.html#tutorials (lots of people seem to miss them).


Hi Chris. Off the top of my head, from when I was working on a Pyramid app ~ a month ago:

- No clear visual distinction between links to glossary terms and links to further documentation. I like the glossary, but always ended up there without wanting to.

- I did find the tutorials, no issue there. (Only that the paster templates are a bit awkwardly named, but that's not a doc issue.)

- Especially the former BFG stuff, I'm thinking specifically about traversal, is explained in a way that probably makes a ton of sense to Zopeheads, but, at the time anyway, read more like a PhD thesis than like documentation.

- Again not strictly a documentation issue, but the fact that you can configure and use Pyramid in a ton of different ways means there's no straight path from getting started to actually getting something up and running, even with the tutorials. Not being opinionated about anything simply makes it very difficult to write good, forceful docs.


"No clear visual distinction between links to glossary terms": yep, fixed a while back. Glossary terms are now green, other links are blue.

Traversal explaining: we're working on it (really). The docs have been rearranged and massaged a good bit, and they're being futher (professionally) edited now.

Flexibility: the best I can do about that without betraying the goals of the project is http://docs.pylonshq.com/pyramid/dev/designdefense.html#pyra... . I'm also working on a cookbook here: https://github.com/Pylons/pyramid_cookbook which should provide the tl;dr'ers with a way to perform common tasks without needing to read didactic explanations.


I still have to finish up my Pyramid app next month (work project at a Plone shop), so it's good to know that the docs are getting better. Kudos!


We are definitely fixing the traversal docs, and they are already much improved over two weeks ago ;)

The responsiveness of Chris and Ben to actually fixing this kind of thing is amazing, and one of the major reasons we thought teaming up with them would be a good idea.


All both pylons and tg have thousands of users on their lists, bfg has dozens of commiters of users, and a growing users list. And between our three frameworks I wouldn't be surprised to see tens of thousands of live sites, and millions of pages served per day. Heck I work on a site with millions of dynamic pages a day served up by turbo gears So, I'd say the facts show a different story than the casual dismissal you want to paint.

There is a lot that can be said for consolidation. And a lot to be said for the team working on pyramid now, so I'm excited in spite of your skepticism.


Nice trolling.


I kind of expected this response, and the style of writing may be a little provoking, but I think it's a pretty factual assessment of where these projects are headed. Feel free to disagree, though.


glad you expected the response -- you're a classic troll; complete with creating a dummy account, the opening line stating a stupidly absurd negative comment, and the closing line with the insinuation that the devs go through all the pain of running a project for their own edification


Wow, I'm thoroughly confused as to which way to go with Python and web frameworks now. We do a fair bit of Python work, primarily for back-end processing (our main work is still in PHP) and we've been trying to move more to Python. I did a LOAD of research into frameworks and had chosen to go with Pylons, and then I saw that they were becoming Pyramid. This announcement obviously means three of them are merging together, but it does make me a bit nervous. I want to stick with Python, because I love it, but this is all making my head hurt a little!!! Anyone on here done a load of research/experimentation already and care to help me make some decisions :) ?


I came to the same conclusion that I wanted to try out Pylons a few weeks ago right around the same time the repoze.bfg + Pylons merger was announced and just decided to jump into Pyramid. Recently I've been really impressed with the flexibility the platform offers allowing me to use all the libraries I had planned on and to make design decisions that I'm comfortable with. Initially there was quite a big learning curve as I was unfamiliar with using paste, what traversal was and if I should use it, best method to configure my app, etc... Initially this was my only real criticism, the level of indecision this flexibility instills in a noob, but since then the devs have been actively working on the docs to make them more beginner friendly and I've gotten some really great help in the irc channel. I'd say it's definitely worth taking a look if you were interested in Pylons.


Thanks for this. It really helps me to make a decision. All the best


Just go with Django. For all its warts (and there are a lot), it beats the hodgepodge of the agnostic glue frameworks and the one dozen or five external dependencies they bring in to get anything done.


Considering the three principals of three (previously-separate) systems are congregating around one (Pyramid), doesn't it make your decision a little easier rather than harder?


I know on the surface that it does, but Pyramid isn't ready for production as yet. Also, the secondary issue for me is that I had made a choice to go with Pylons, but that has effectively been abandoned (sorry for the strong word as I appreciate it will be 'maintained' but will never move forward from where it is, and my concern is that after investing considerable time/energy into our project that the same thing could happen. Thanks though - I appreciate that in some respects it does seem an easier choice. I suppose thats where RoR works - they have one main framework to choose from (and a good one) whereas with Python there are a lot.


Pyramid 1.0 final will be out before PyCon US (~ 2 months from now).

However, it bears saying that, so far, no alpha release of Pyramid has been bw incompat with the last in any way. As a result, I wouldn't be scared off much by "alpha" in its version designator, at least as an evaluator. The code in Pyramid has existed for almost 2 years now. Every release has 100% statement coverage via unit tests. An alpha of Pyramid is arguably much more stable than many "final" releases of other web frameworks.


Thanks. That's helped to clarify things much more than my own reading found. Maybe it would be a good idea to put something up on the various sites to signpost new people to?

Thanks again though. Looking forward to trying out Pyramid


Remember the bulk of Pyramid is repoze.bfg - which is 1.5+ years old and has 100% test coverage.

Pylons really hadn't had anything other than bugfixes in quite some time, and had some problems with stacked object proxies which would have required a fairly substantial rewrite. Whether you consider Pylons dead or just simply finished is a matter of semantics. I still think Pylons is an extremely capable platform and I don't think you should be afraid to touch it. There is still plenty of mindshare around for Pylons.


want something small that stays out of your way? web.py

want something bigger that provides a "full stack"? Django


In my opinion this weakens both projects. As the ultimate goal seems to be to build a new framework based on the two, this means that every code you write today using on of those frameworks will be legacy code soon.


Well, by some definition of legacy, that's always true. If we are learning, using better techniques, and writing better software every day what we wrote yesterday will be "legacy" code... But I don't think that matters, ther will be upgrade paths, support for pylons 1 and tg2, and more cooperation and focus in the development team.


As the current maintainer of TurboGears, I've been thinking a lot about the python web framework world for the last couple of years, and I have been thinking for a long time that there's too much splintering of effort.

One choice to solve that problem would be to all join Django, which is widely used, and has an active developer community. But they have a very strong point of view about how web applications should be developed, and as a result django isn't that flexible.

So, in the end what we need is a strong alternative to Django that is flexible, uses existing libraries to good effect, and just works. By joining together in the Pylons Project around the Pyramid framework, that's just what we're aiming to do.


I'm really excited to hear this, especially after the Pyramid announcement earlier in the year.

I used to do a lot of Pylons development, and although it was a great framework that gave you a bunch of ways to do just about anything, I always had lot of trouble figuring out the right way. Jarring especially considering the guiding Python principle of "There should be one - and preferably only one - obvious way to do it".

As a result, Pylons always felt like a big jumble of modules that were all sort-of right for what you wanted. I'm glad to see some of TG's full-stack opinionism coming into the fold. I hope all this merging will lead to something with the strengths of both projects, like the Rails+Merb merge.


Can anyone expand upon the benefits of repoze.bfg?


repoze.bfg used to cater mainly to people from the Zope/Plone-world — less cruft than Zope 2, easier to understand than Zope 3, but the same underlying ideas and mechanisms: object traversal for URL mapping, ZCML for configuration, an aspect-oriented vibe etc.

Ian Bicking made some interesting remarks about BFG back in 2008: http://blog.ianbicking.org/2008/11/06/where-next-for-plone-d...


Sorry to hear about TurboGears. When I first found it I was very excited to use it. I think they lost a lot of momentum and community trust with the changes made going from version 1 to version 2. I know after that I felt I could not use them because I had no way of knowing if version 3 would be something completely done over again.


For cross-referencing, this was also submitted here: http://news.ycombinator.com/item?id=2045684


I was hoping the Pylons blog would have a post about this as well. It's hard to tell what this means for Pylons going forward.


[deleted]


TG2 is using Pylons 1.0 but for the next major release of Pylons, Pylons merged with repoze.bfg becoming pyramid. Now the word Pylons refer to the project where pyramid is being developed. A little confusing but it's explained here: http://docs.pylonshq.com/


I personally think it's a great move. The combination of 2 great frameworks to make something better.


A bit unsettling for me. I use Pylons on several projects, though I haven't kept up with Pylons news. I really like Pylons because it was to me the best representation of the ideal framework out there; it was flexible and easy to plug in your own stuff, it was not haughty or insistent that you do things a certain way, it did not rewrite Python's whole standard library as many other frameworks practically rewrite the standard libraries of their constituent languages; it just stayed out of my way and let me do things the way I wanted while still providing me the infrastructure to get something published to the web pretty quickly.

This blog post seems to indicate that Pylons is going more in the direction of most frameworks with its talk of "full stack" and choosing defaults. Is Pylons going to become a reimplementation of Django? It's a little weird. I don't know why Pylons thinks this is better as a single project.


I think you're missing what they are doing.

Pyramid is repoze.bfg with some of the good things from Pylons added in. Pyramid is much more extensible with hooks. TurboGears will still be a full-stack, Pyramid + their choices for form library, templating, etc. Pyramid is still very light and makes very few assumptions.

I think it is better since you've brought together three frameworks and that collective mindshare is going to collaborate rather than compete.


I have been digging into the pyramid docs and writing some toy apps with it trying to learn it, and I think that you will not be disappointed. I am confident that turbogears / tosca widgets will be integrated in such a way that it is loosely coupled and will not get in your way if you do not want to use it.

Spend some time reading the pyramid docs - it it totally agnostic for template engines, authentication/authorization, http session implementation, etc. very pluggable.

I will say though, that at this point 1.0alpha8, a noob will probably get frustrated, but someone who has worked with pylons / repoze / sqlalchemy can connect the dots.

Also, with every alpha release, you can also see the changes to the documentation, which is looking more like django docs (i.e. good)

Django fills a certain niche and if it matches your problem, it is a no brainer. If you need a more flexible web framework, look at pyramid.




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

Search: