4 ms·
That's a lot of goodies in a new release! It seems it is outpacing the JVM's development...
by cies 11mo ago
That's a lot of goodies in a new release! It seems it is outpacing the JVM's development...
- lolive 11mo agoApart from [the equivalent of] records, I see nothing big. Except... this '''let! a = fetchA() and! b = fetchB()''' really puzzles me. Does C# have a high-level syntax for concurrency timing? [something that Java is strongly lacking, and that Typescript did solve with Promise.all(), which is an ugly syntax, from my perspective] Any elaboration on this is very welcome.
- JaggerJo 11mo agoThe code snippet is in F#. And F# has so called "computation expressions".
- codeulike 11mo agoI think thats F# not C#
- greener_grass 11mo agoHere `a` and `b` can have different types: let! a = fetchA() and! b = fetchB() Whereas `Promise.all` usually requires all promises to have the same type (returning a `List<T>` or even a `List<obj>`) . See https://learn.microsoft.com/en-us/dotnet/fsharp/whats-new/fsharp-10#support-for-and-in-task-expressions https://learn.microsoft.com/en-us/dotnet/fsharp/whats-new/fs...
- ajifurai 11mo agoActually, TypeScript's `Promise.all` can handle different types too. const [a, b] = await Promise.all([fetchA(), fetchB()]); // => a: A, b: B
- greener_grass 11mo agoI am talking about C# / F# context where the lists must have homogeneous types. That TypeScript supports this is yet more complexity introduced to cover usages of an API not designed around types.
- adgjlsfhk1 11mo agoThe inlining and escape analysis changes are fairly big from a performance perspective. Also, C# doesn't need nearly as many massive changes like project Valhalla because they got a lot of those design choices right from day 1 (mostly by looking at what Java did that was dumb and avoiding it).
- whoisthemachine 11mo agoAs others point out, that's F#, but yes C# has `async`/`await`, and has all the `Promise` methods, just under the `Task` class instead (and with slightly different names/calling conventions through out).
- vips7L 11mo agoJava has had CompletableFuture::allOf for a long time. The new structured concurrency api also has the same capabilities of waiting for futures.