Every developer should know one of the very helpful and working ways of doing things in open source software development: "Stop complaining, fix it."
It's one thing to complain about closed source software that you have to use and probably paid for as well. But a very different one to complain about free and open source software that you want to use.
Stop the bickering, start the work on fixing the problem instead.
While I don't think it's to the same degree, I do think that "fix it" is at least in the same category of "things that turn people off OS" as RTFM.
There are different level/kinds/what-have-you of users/coders. There are wizards who write operating systems, grey-beards who write API's, application developers, scripters, and application users. It's perfectly valid for one kind of person to complain to another with no hope of fixing the issue themselves.
I work on open-source middleware both for a living and for fun and I welcome complaints about particular use-cases just as much (if not more than) patches. Cultural silos do exist between the different kinds/levels of coders and these kinds of heated conversations are needed. I can't even count how many times I've received a complaint from an app developer that ended up being a valid use-case that I had not foreseen. In fact, most of the time fixes for these issues are easy on my end. These complaints are helping me expand the user-base and utility of my code. In cases where the fix is not simple, it means there is a deeper architectural issue that I need to put on the road map. Even if they hurt my pride occasionally, these users are helping me and are contributing.
I just want people to know there are avenues to help, and that core developers and many others aren't blind to the mistake, missteps and other things wrong.
I'm exhausted by the vitriol; I'd ignore a bug report (and have) that described things as idiotic, and there are avenues for people to help chime in and guide the future.
I hope there was not because that was not my intention at all. It's more an observation that replacing things with other things is a dangerous thing because you can easily dismiss parts of the design as “useless” by accident.
I had the feeling that happened when ditching setuptools and that's a mistake that problem should not be repeated.
I made that mistake in the past already at one point where I tried to replace the Python logging library and I missde perfectly valid usecases in the process.
As a newbie coming into the python world, from the nodejs world, it's somewhat hard for me to just start fixing a broken system. It took me a few hours to fully understand the npm system, yet I still cannot understand the combination of tools python has -- virtualenv, burrito, pip, easy_install, etc. Sometimes I can get things to install with easy_install, but not with pip, and sometimes it's easier the other way around, mostly I simply don't comprehend what's going on under the covers so it's hard for me to start fixing.
I'd like to fix it too, but honestly I don't think people would adopt my package manager if I were to create something new from scratch.
virtualenv => a way of isolating a set of python libraries.
Sort of like a chroot for Python libraries.
(Python's version of Perl's perlbrew or Ruby's
rvm)
pip => Supercedes easy_install, but as this post mentions,
doesn't cover 100% of the use-cases (just the most
common ones). Think of it as Python's version of
Perl's cpanminus (aka cpanm).
burrito => The README says it all:
With one command, have a working Python
virtualenv + virtualenvwrapper environment
virtualenvwrapper => A set of shell scripts/functions for
working with multiple virtualenvs in
development. Basically sets them all up
in a central location so that you can
do things like:
workon my-websight-library-set
how is nobody aware of PythonBrew? to me it seems like the best and most comprehensive environment manager. it supports separate Python versions as well as virtual envs, in a very simple command line interface that is reminiscent of Ruby's RVM:
Every developer should know one of the very helpful and working ways of doing things in open source software development: "Stop complaining, fix it."
It's one thing to complain about closed source software that you have to use and probably paid for as well. But a very different one to complain about free and open source software that you want to use.
Stop the bickering, start the work on fixing the problem instead.