Guido van Rossum: Thoughts about Python Future
mail.python.org
mail.python.org
http://code.google.com/p/pycsp/
Invented by the same guy that brought us quicksort, CSP is actually a really nice framework for describing interacting processes. It's used a lot in formal proofs of correctness of programs, so it's nice to see real-world implementation with such clear syntax. (Of course, Go uses the same formalism, as opposed to Actors that are used by Erlang/Scala/etc.)
This isn't a rhetorical question either. I really want to know what the benefits are.
I chose diesel over twisted many times, simply because of how it's organised, but then again sometimes I had to use twisted, since diesel didn't have some features.
Monocle looks nice to me. If it does the same things twisted offers, I'll choose monocle. Then again, that was a very subjective opinion.
I think the question is really whether you're more compelled by generator-style concurrency, or Twisted itself. If you want to work deeply with Twisted, inlineCallbacks lets you use generator-style where you want, and is maintained along with Twisted. If you want to use generator-style concurrency to its full advantage in simplifying complex evented servers, that's where monocle is going.
http://www.python.org/dev/peps/pep-0380/
I don't have enough experience to really understand.
Since the code is confined to a single generator, it's not easy to factor-out the steps into subroutines. PEP 380 provides a syntax for having sub-generators which can potentially be used to factor your code into smaller, reusable components.
PEP 380 is about providing better support for nested generators including the scaffolding with try/finally, g.send(), g.next(), g.throw(), and g.close().
In short, PEP 380 lets you nest, and nesting lets you factor your code.
It also means that you can "screw-up" until you push (and as such can put things for review, etc... more easily).
This probably doesn't scale, but you could certainly do it for just the predetermined contributors.
Again, I'm not saying git isn't more convenient - it is; the point is that even git-using projects end up with a "main repository" to which only a small number of people can commit. Increasing the number of people with commit rights can be useful even when using git.
Spoiler: He has a 'circle of trust'. He pulls and merges commits from people he thinks are really smart and those people in turn pull and merge from people they think are smart.
From what I understand, a lot of the uncertainty isn't about committing, per se, but rather about changing the canonical repository.
http://www.python.org/dev/peps/pep-0374/#decision
http://www.python.org/dev/peps/pep-0385/
http://mail.python.org/pipermail/python-dev/2009-March/08793...
ASCIIs art's useful, but it's not quite so popular as it once was, and doesn't justify forcing presentation. Reading Guido's post on a phone was completely painful.
Sounds like the community is growing up. It's good news for Python developers (and people who write Python for a living).
I think that the language is in a spot where it's got a dedicated enough and competent enough community to move on from the "GVR as benevolent dictator" model of development without sacrificing much. The language and its community is indeed maturing -- in fact, it's one of the most mature communities around in my experience, at least in the "scripting" language world.
I think the future is pretty bright for Python. It's not a language that is breaking ridiculous new ground or anything, but it has a nice balance of readability, power, and a fairly sane standard library, which makes it my (and many others) go-to language for a lot of tasks.
I guess being sarcastic isn't a favourable trait on HN.
I like everything he said in the message.
September comes every year :)
Not against new stuff ('with' is proly worth it) But the pace of change is too much and accelerating (or was until moritorium). Instead of taking away more than one way to do things such as [] as synonym for list(), more than one way to do things are being added.
3.0 is move in right direction, unfortunately it's a move I have to wait for major communities(Django) to make before I can.
Given the amount of debate, discussion, and work that goes into every single language change we make, I'm rather proud that we've largely avoided making a complete mess of things.
From what I've seen, I concur. In fact, I'd say that the community has actually outgrown GVR's level of knowledge about programming language implementation and design years ago.
IMHO, the benefits of the "benevolent dictator" model are threefold:
- avoid design by committee, keep things simple & clean
- clear-cut resolution of group conflicts
- cohesive and positive developer culture
So long as there is a way to keep or enhance these benefits, Python will do well. It won't be easy!Doing this, I think, requires strong leadership, it needs someone like GvR who has the respect and political pull to make decisions that aren't going to be popular with everyone . If he's going to step down as "dictator," I hope he chooses a replacement.