Since HN is discovering choreographic programming today [1], I thought I’d share the compiler we’ve been working on for a few years now. Feel free to ask questions below and I’ll answer as best I can :)
Thanks for sharing this. I hadn't heard of choreographic programming.
Does it compile straight Java bytecode, or does it generate Java code which is then compiled by javac?
I really thought it was to plan musicals, and I thought it was cool!
I only skimmed the page and it looks like a really cool idea, but I have a question about this:
If the client needs to know about all that stuff that happens after its call to Service, isn't Service a leaky abstraction? My idea of OO, which I got from GOOS[1], is that each object talks only to its neighbors and it shouldn't have to know about their neighbors' neighbors or their neighbors' implementation details because the messages sent between objects are at the level of the domain. Same with microservices, in principle. The benefit is that you can reason about each object/microservice in isolation. If you must know that A then B then C then D, why split the code/services in the first place?Sorry if the docs already answer this, I'll have a closer look later.
[1]: https://growing-object-oriented-software.com/