On Thu, 2 Jun 2016, Sven Schreiber wrote:
Am 01.06.2016 um 19:16 schrieb Riccardo (Jack) Lucchetti:
>
> In fact, we're quite impatient to make the change for two reasons: (a)
> the new style is WAY better than the old one under all respects:
> efficiency, maintainability, generality, intuitiveness, you name it.
> Of course I hear you, Sven. This would be a MASSIVE
> backward-incompatible change, much bigger than any we had in the whole
> history of the project.
I'm not sure what to think of this. From what I understand, the new
approach makes use of bundles and is therefore much cleaner and more
intuitive. That's of course very good.
OTOH, I can easily think of further goodies that gretl might get in
the future and which would make a different interface/approach even
more convenient. (To be concrete, having named function arguments as
opposed to only positional arguments would sure inspire changes for
many packages.) Do we want to change the Kalman interface (or other
stuff) again once that gets added to gretl?
There are no plans at present to introduce named function arguments.
Obviously I can't rule that out as a possible future development, but
I don't think it would be disruptive of interface design at the hansl
level: I assume that if we were to do that, we'd implement it as an
"invisible" layer that simply rearranges function arguments into the
correct order, inserting "nulls" or other default values for empty
slots. I think that only the user-documentation would need to be
updated, and non-explicitly named arguments would continue to work
according to the current rules.
As I said, I'm not sure what the decision should be in this case.
But I'd say that gretl/hansl is old enough by now to make some
fundamental design decisions now and then stick to them. Right now I
only have that example with named arguments again, but I think it's
a good example: Do we ever want them, then why not now? (I'm talking
about making the decision, I know that the implementation takes time
and work and cannot happen now now now.) I can also live with the
decision that it's not worth the effort, but then I wouldn't want to
see them next year and somebody saying we have to change the Kalman
interface again because of that.
Here's the sort of issue we're running into now. Jack has just spotted
a nice simplification of the Kalman interface (beyond what we've
already done to date) that is enabled by the new bundle approach.
Seems to me it's well worth pursuing, but implementing it while
maintaining the old interface will mean duplicating and
differentiating several existing internal functions, making the source
code messy and hard to maintain. This is not a very common situation,
but we've hit it here.
Allin