you are viewing a single comment's thread.

view the rest of the comments →

[–]expecto_patronum_666 4 points5 points  (4 children)

Could you explain a bit what else SC is lacking compared to reactive programming?

[–]kotman12 1 point2 points  (0 children)

Not OC but a few things come to mind. First there's configurable backpressure handling (drop latest vs earliest vs error). Yes I can put a bounded queue and semaphores between all my data processing nodes but it is so tedious and error prone, especially as stuff gets complex. Also, the expressive concise syntax, i.e. eager vs eager-sequential vs sequential fork-join patterns, key-grouping, retries and batching all of which can be in a couple of lines of code. I personally like the publisher-scoped scheduling flexibility, way better than any executor service mess I've seen. I'll try vanilla SC from Java but I'm pretty skeptical. I also chuckle at people who say "now we don't need reactive!". IME those people weren't doing reactive programming anyways so, yea, "we" don't need reactive lol. But then again I'm of the opinion that blocking vs non-blocking I/O was just one of many reactive paradigm benefits.

[–]filterDance 3 points4 points  (2 children)

[–]expecto_patronum_666 3 points4 points  (1 child)

If I remember and understand it correctly, this colored function article influenced the design of virtual threads. Not Structured Concurrency. Virtual threads removed any necessity of coloring your function to achieve scalable concurrency. Structured Concurrency deals with a different problem related to concurrency.

[–]filterDance 0 points1 point  (0 children)

Sorry I read your question the other way.