Ryan Macy writes:
I'm a young developer (22) that is aspiring to contribute to the python language and I think another perspective could help the conversation. What I believe Anataoly is asking for, albeit phrased in a different manner, is the ability to clearly see what the core issues/needs are in the language.
Good luck on that. Just as you write, it is in fact a human ability, not a collection of facts that can be published. AFAICS, the core issues are what block core developers from getting applied work done. (Or cause them to stumble in process, for that matter.) The reason for this, based on introspection and watching a few Nobel prizewinners work, is that people working at that level have an uncanny ability to *ask* the right questions, and do so recursively. Of course they're usually really fast and accurate at answering them, too, but answering smallish research questions is an upperclass undergrad student[1] skill. The knack for filtering out inessential questions and zeroing in on the bottleneck is what makes them great. The flip side, of course, is that because a core developer is blocked, he or she is working on it. So maybe you won't get a chance to make a big contribution there -- it will be solved by the time you figure out what to do. ;-)
Is there a place that holds the key improvements that the python language needs, so that we can work to it better? If that's the bug tracker,
Bingo!
is there a method already in place that signals areas that need improvements or fixes? [I know that there are severity levels, etc :)]
The problem is that "need" is mostly subjective. In Python there are several objectifiable criteria, encoded in the venerable Zen of Python, and more recently in the thread answering Ned Batchelder's question on what makes a good change to the stdlib. But if you look at them, I suspect that you'll come to the same conclusion that I do: need is defined by what at least some programmers often want to do and are likely to do imperfectly, even if they do it repeatedly. That's "need", and it's dynamic, only imperfectly correlated with the state of the language. The only reliable measure of need is what somebody is willing to provide a high-quality patch for. Just Do It! :-)
[There is] context that I'm missing, which has me chasing PEPs constantly
Well, when you catch one, take it out to lunch. Spend some time in conversation with it. Figure out what the person who wrote it was thinking, and why. :-)
- So I'm definitely able to resonate the with this thread.
I apologize if I'm waay off target.
Not at all. I just don't think there's a royal road to core contribution. The flip side of that is that as far as defining "need" goes, what you perceive as important is no less important than what Guido does. It's just that he has a proven knack for picking questions that others value too, and for giving answers that untangle the language, as well as solving a practical problem. But that doesn't mean you should work on what Guido thinks is important just because he thinks it's important. If you resonate with the need he feels, then you will find ways to contribute to resolving it. I haven't seen the word "channel" around here recently, but trying to channel the core developers on problems you encounter is a good way to get started. Try to anticipate what they'll say if you post (or in response to somebody else's post that interests you). When conversing with a PEP, try to figure out what it's going to propose as the solution before you read it. Try to figure out what problems it will need to solve to achieve its goal, etc. Steve