←back to thread

.NET 10

(devblogs.microsoft.com)
489 points runesoerensen | 1 comments | | HN request time: 0.242s | source
Show context
cies ◴[] No.45898206[source]
That's a lot of goodies in a new release! It seems it is outpacing the JVM's development...
replies(1): >>45898403 #
lolive ◴[] No.45898403[source]
Apart 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.

replies(5): >>45898449 #>>45898472 #>>45898482 #>>45898872 #>>45900126 #
greener_grass ◴[] No.45898482[source]
Here `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/fs...

replies(1): >>45899594 #
ajifurai ◴[] No.45899594[source]
Actually, TypeScript's `Promise.all` can handle different types too.

    const [a, b] = await Promise.all([fetchA(), fetchB()]); // => a: A, b: B
replies(1): >>45899723 #
1. greener_grass ◴[] No.45899723[source]
I 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.