I want to say a few words about Inline 0.50.
The last year has been a big learning experience for me. I got the chance to
learn some things about XP programming. The main points were:
- Write failing tests before coding a feature
- Build up solid regression tests
- Constantly refactor and integrate new ideas
- Avoid premature optimizations
- Avoid unnecessary complexity
This stands in stark contrast with my mindset for developing Inline.pm. I
always believed you should make things as easy as possible for the end user,
even if the internals were very complex. With that mindset i built a crufty
but powerful monster, with very little regression testing. This has made it
harder and harder to maintain because I'm always worried about breaking
subtle functionality.
All this is to say that I'm having some new ideas about what 0.50 will be.
Here are some random goals:
- Rewrite the code. I'm already doing this for the core version. All
the code will be at least audited for sanity.
- Build a strong regression suite. With that I can make changes at
will and be assured of no breakage.
- Remove some crufty ideas born from premature ops. The config
file/process is a likely target. It is a pain to maintain and
doesn't buy that much.
- A cleaner and more pluggable interface. I like the idea of being
able to swap glue layers. Like Mitchell's SWIG layer. That should
have a way to be plugged in.
- Possibly not support the idea of the self-installing Inline. I
spent a week trying to support this and it is fraught with
problems. Boy did I come up with some crufty solutions too. Perhaps
it is just best to make use of PREREQ_PM, and live with the fact
that Inline is not in the core before 5.10. (I'm not giving up, but
I won't make this an end all goal at the expense of making Inline
more crufty and fragile).
- Less TMTOWTDI. Especially with configuration. There are so many ways
to do it, that sometimes people can't figure out the best ways. I
may pull support for some of the more obtuse usages, especially if
it is a big win in reducing overall complexity.
- Inline will stay Inline. Don't expect any losses in functionality.
In fact expect gains.
- Sooner than later.
- There is no 0.50. I'm just gonna keep refactoring things until I
like them. If you need to use Inline in production, stick with 0.43
for now. It seems to be fairly stable. But you (and Jarkko) know
what Jack Cohen says about "stable"...
Cheers, Brian
PS Thank you rking :-)