On 2019-09-06 6:25 p.m., ermouth wrote:
I’d like to raise QS functions deprecation question again, in a somehow
different aspect.

What is "QS functions"? Which specific deprecations in 3.0 are you asking about? Is it just _list, _update and _rewrites? Of these, _update is going nowhere, and _list and _rewrites don't go away until 4.0.

More accurately, the current plan is they won't be re-implemented for 4.0, since the existing implementations won't work in 4.0 against FoundationDB.

Statistically, ‘couchapp’ term has unfortunate history: many tried what
they thought were couchapps, most expected too much – and were bitterly
disappointed. I have better experience with couchapps and derivatives, but
technologies and tooling used are very far from mainstream concepts.

Anyway, we played a lot with QS, and discovered that _list, _update and,
later, js _rewrite have another point of application, much more significant
than rendering HTML in a cumbersome manner.

QS functions, being distributed with main data flow, allow comprehensive
in-place data pre- and post-processing, very unique feature across DB
landscape.

We've had this discussion before. I don't see you saying anything new, and I'm not going to repeat myself, ether.

So, probably it would be better not to deprecate/remove those endpoints in
Couch 3, but just ditch the ‘couchapp’ term in favor of something like
‘data processing extensions’.

We've already dropped the 'couchapp' term in the documentation, over a year ago. There is a single reference to them in the docs that states these functions should not be used for new designs:

http://docs.couchdb.org/en/stable/ddocs/index.html?highlight=couchapp

The deprecation table of the 4 endpoints proposed for deprecation in 4.0 includes the suggested replacements for these functions in 4.0. Yes, this isn't all done 100% in CouchDB, but even a RaspberryPi can run an haproxy, an nginx or a small Node.JS server alongside CouchDB with almost no CPU impact - in fact, less CPU and RAM impact than using _list, _show or _rewrite in CouchDB today.

That's not to say that this stuff - server-side mass updates of documents, to take one often requested example - might not end up being implemented *better* than these functions, with a brand new API, thanks to what FoundationDB provides. (But that functionality may not land in time for 4.0, either.)

Seems, QS functions in current state require very minor maintenance and
have nearly zero bugs.  So why spend time amputating working parts,
shouldn’t it be better to transform them into clearly presented advantage?

See above - the current implementations won't work in 4.0 and would need a complete rewrite. This isn't a "keep the code around" situation, it's a full re-engineering effort. Our individual experiences have lead us to different places on this functionality, we've heard from everyone active in this community at least *twice* about their viewpoints.

Speaking as fairly as possible, I don't practically see this disagreement being resolved in an easy fashion at this point.

-Joan

I mean changes in docs, removing ‘couchapps’ in favor of ‘processing
extensions’, maybe introducing less expensive requestObj, etc. Clarifying
language:"erlang" usage might also be valuable. Anyway, creative work, not
destructive.

ermouth

Reply via email to