From chuck at sharpsteen.net  Sat Aug 21 20:33:42 2010
From: chuck at sharpsteen.net (Sharpie)
Date: Sat, 21 Aug 2010 11:33:42 -0700 (PDT)
Subject: [Rd] How do you make a formal "feature" request?
In-Reply-To: <02E3AE9E-2E64-44B1-BB79-306396A97419@yahoo.com>
References: <02E3AE9E-2E64-44B1-BB79-306396A97419@yahoo.com>
Message-ID: <1282415622516-2333737.post@n4.nabble.com>



Donald Paul Winston wrote:
> 
> Who decides what features are in R and how they are implemented? If there
> is someone here who has that authority I have this request: 
> 
> A report() function analogous to the plot() function that makes it easy to
> generate a report from a table of data. This should not be in some
> auxiliary package, but part of the core R just like plot(). As a long time
> SAS user I cannot believe R does not have this. Please don't give me any
> crap about Sweave, LaTex, and the "power" of R to roll your own. You don't
> have to "roll your own" plot do you? Reports are no different. If you
> don't agree do not bother me. If you agree then please bring this request
> to the appropriate authorities for consideration or tell me how to do it.
> 

Well, I can think of three ways it can go down:


1.  You want a shiny new pony.

You ask about it on the mailing list and it seems that everyone else in the
world responds "Hell yeah! I want to ride that too!".  In this case the
natives are restless enough that someone on R-Core may personally implement
the feature- especially if they want to ride the pony as well.

In this case, you need to provide a detailed specification of what kind of
pony you want, how it should be groomed and the exact pitch at which you
want it to whinny.  A good template for such as spec would be a Python
Enhancement Proposal (PEP) which is the way community-suggested core changes
are implemented in python.  An example is: 
http://www.python.org/dev/peps/pep-0389/

However, going this route is extremely rare.  You have to have a significant
amount of the user community rallying behind your idea and buy-in from core
developers who are interested in implementing and, most importantly,
maintaining and supporting the code.


2. You want a shiny new pony but not many other people in the word seem
interested.

In this situation you can do the work yourself, or with a group of other
like-minded pony enthusiasts, to bring your idea into the world.  Perhaps
the genetic material you are looking for is already present in the vast
herds of other ponies running wild on CRAN and elsewhere and you just have
to do a little breeding to get what you want.  Other times, the only way to
do right is to write everything from scratch.  Either way, in the end you
will have a pony that shines exactly the way you want it to that you can
enjoy for the rest of your life.

In this case, getting your new pony into R Core is unlikely.  The best
response you can hope for is something along the lines of "That is a mighty
fine pony you have there, but we really don't want it crapping all over our
stable".  They are not trying to be rude- the facts of life are that the
members of R Core have a limited amount of time and a lot of other ponies to
clean up after.  Add to that the fact that shoveling pony shit is a
thankless job that does not pay well and it is understandable why R Core may
be conservative about the number of ponies they let into the official
stable.

However, they will be more than happy to provide your pony with a stall at
CRAN so that everyone else in the world can take it out for a spin.  I have
never had a problem with installing and using packages from CRAN, even on
windows machines that have been locked down and then shot in both kneecaps
by the friendly neighborhood IT gestapo.  All and all, this option is
actually a pretty sweet deal; you will just have to drop by the CRAN stall
every once and a while and deal with the pony droppings yourself or people
will start to avoid it because of the smell.


3. You want a shiny new pony, but dont have the time or energy to pick out
or put together the exact one you want.

In this case, you can still get the pony you want but it will cost you
money.  There are R programmers out there who can write you a package if you
pay them the right price.  Supporting your local grad student population can
also work; hunger is a great motivator.

In the end you can also pay a corporate pony breeder like SAS for a trusty
thoroughbred that is well respected by people in high places.  However, you
may notice that these ponies bear some telltale signs of inbreeding-- one of
their eyes may not point in the same direction as the other or the pony
becomes confused easily when put in an unfamiliar situation.  Given there is
not a lot you can do about these defects, you may suffer a crippling case of
buyers remorse especially when you see the bill.


Ok, I think i've thoroughly beat this horse analogy to death and I'm going
to stop now.

-Charlie


-----
Charlie Sharpsteen
Undergraduate-- Environmental Resources Engineering
Humboldt State University
-- 
View this message in context: http://r.789695.n4.nabble.com/How-do-you-make-a-formal-feature-request-tp2333593p2333737.html
Sent from the R devel mailing list archive at Nabble.com.



[Rd] How do you make a formal "feature" request?
Sharpie