> On Apr 15, 2015, at 4:42 PM, Ben Goodrich <
goodri...@gmail.com> wrote:
>
> On Wednesday, April 15, 2015 at 12:00:00 AM UTC-4, Bob Carpenter wrote:
> What I would like to encourage is that we take functionality and
> put them into the C++ API for Stan --- that's what I think of as
> Stan itself. The advantage is that then we can expose them beyond
> the subset of Stan users who go through RStan. It will also save
> us from having to reimplement them multiple times.
>
> I basically agree with this, although we currently have approximately zero known users of the C++ API and from the user's perspective Stan "is" the interface that they are using.
Absolutely. So I guess I think of Stan as more what's in
all of the interfaces. So maybe I took the min when I meant
the max :-)
> But if something is relatively easy to do in the interfaces or in one interface and hard or time-consuming to put into the C++ API, then I don't think it should get delayed.
OK --- I'd just like to do it in a way that when we do write it
in C++, it won't be pain to retrofit.
> The partial inits that Mav is doing are an example of that. Conversely, I don't like the idea that we sort of moved in the direction of today where "the interface recognizes missing data, rewrites the .stan program, and then parses / compiles it". The C++ API should have a way to represent missingness like every other statistical software.
I completely agree (though obviously not every other stats
software deals with missingness --- not even every R function
can handle it).
> I would also like to encourage the RStan developers to keep
> backward compatiblity in mind. It's really a pain in the ass
> for a user when interfaces change and the result is that users
> will continue to use old versions of the system with interfaces they
> know rather than switching.
>
> The only times I remember us breaking backward compatibility were changing stan() to take a control argument for the config options instead of passing them all through the ... and now eliminating the set_cppo() function (which is but shouldn't be called in .R scripts anyway). But we'll keep trying to keep the user-facing stuff working the way it has in the past.
It was Michael who I believed proposing breaking backward
compatiblity everywhere. The fact that it's going to be hard to
maintain backward compatibility with the current CmdStan structure
is why I don't like it.
- Bob