ocsigen / ocsigen-start

Ocsigen-start: Higher-level library to develop Web and mobile applications with users, (pre)registration, notifications, etc.
Other
75 stars 31 forks source link

Template and forward-compatibility #372

Open vasilisp opened 7 years ago

vasilisp commented 7 years ago

I just spent about 4 hours updating an app that I had last touched in September. 4 hours is not that much, but:it would be much longer if I weren't familiar with Eliom and weren't following Ocsigen Start development. Note that I had already spent a similar amount of time in September to fix similar API breakage (since July or August).

This brings up the very important issue of template and lib compatibility. Will the 1.0 template be compatible with the 2.0 library (with only minor changes)? If not, Ocsigen Start 2.0 will understandably frustrate users that adopt Ocsigen Start now.

To me, this looks like a fundamental issue of the lib+template model. It could be fixed with a very strict regime about library API breakage. Are we prepared to commit to the 1.0 APIs, i.e., only update them in a way that retains compatibility with old templates? That sounds hard to achieve, given that the lib API is deeply tied to the UI behaviors of the template.

I consider this to be the number-1 issue with Ocsigen Start. (If you are curious, my number-2 would be the dependencies on non-OCaml stuff of dubious quality.)

balat commented 7 years ago

I agree with this. We must be very careful with the library interface. Let's keep this in mind ...

We have dependencies only to very common external packages (postgresql, sass ...).