> Do you have Connective vs vanilla RxJS example to demonstrate?
Yes, you can find them here: https://connective.dev/docs/connective-v-rxjs
> What does this mean?
It means you (typically) have a few observables being transformed into one (the inverse-tree structure). Reactive flows are in their general-form a directed graph, which can be described as a composition of multiple trees, however that description distances the actual logical model and the description, leading to harder-to-read code.
Additionally, the inverse-tree model of RxJS (mostly) enforces order of fully defining the flow as well, which limits your ability of organization of larger reactive flows, specifically across multiple modules (imagine a case where you need to define the beginning and the end of the flow in one module and the middle in some other modules, like a typical http server).
> Isn't this just functions? I pass my Observables as arguments and variables, and use pipe() to create transforms.
This goes hand-in-hand with the previous question: if all you need to do is to transform some properly defined observables into one transformation observable, then yes they are sufficient. On a more general form though, a re-usable part of a reactive flow would be a sub-graph of a directed graph, which can have multiple inputs and outputs. You can see examples of this across the docs, specifically in the link I mentioned above, or these places:
https://connective.dev/docs/node
https://connective.dev/docs/composition
> With RxJS your hello world is ...
yes naturally in simpler cases where none of the aforementioned apply, there is no difference in using CONNECTIVE over RxJS. this is why CONNECTIVE does NOT mask the full API of RxJS.
> I don't doubt you are correct; I'm just having trouble understanding.
Well I might as well be wrong actually, thats the main point of these discussions and contemplations, so thanks for asking :)