4 ms·
anything else other than those 2? An idea that .Net started, could be good could be bad, but the .Net association isn't added credibility. async/await aren't k
by nsonha 5y ago
anything else other than those 2? An idea that .Net started, could be good could be bad, but the .Net association isn't added credibility.
async/await aren't keywords in F# and kotlin
- afavour 5y ago> anything other than those two? Rust?
- nsonha 5y agoI was arguing that languages are following the "add async/await" trend recently, including rust. That other comment brought up that it exists in C# for a long time, hence not a recent trend.
- dharmaturtle 5y agohttps://en.wikipedia.org/wiki/Async/await#History https://en.wikipedia.org/wiki/Async/await#History F# in 2007 C# in 2012 Python in 2015 Typescript in 2015 Javascript in 2017 Rust in 2019 C++ in 2020 Swift in 2021
- sideeffffect 5y agoI'm almost sure that Haskell has had its "do notation" even before 2007. And maybe even Scala its "for comprehension".
- dharmaturtle 5y agoYeah - I was limiting my post to explicit async/await. Don Syme, creator of F#, had a nice thread on the roots of async/await, though it doesn't mention do-notation: https://mobile.twitter.com/dsymetweets/status/1407400817917939713 https://mobile.twitter.com/dsymetweets/status/14074008179179... I'm still annoyed that most other languages stole async/await... but not the more general monadic/do notation. Instead we get elvis operators, chaining functions, etc.
- sideeffffect 5y agoF#'s "Computation expressions" are the same sort of thing as the mentioned Haskell's "do notation" and Scala's "for comprehension". They're just thin syntactic sugar for "callbacks" -- chaining maps/binds/flatmaps/etc. Even though F#'s "Computation expressions" are very cleverly thought out and more general. https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/computation-expressions https://docs.microsoft.com/en-us/dotnet/fsharp/language-refe... Async/await for example in C# or Rust is different. This translates the program into transition automata/coroutines.
- nsonha 5y agoin F# it's an instance of computational expression, not keywords. So it's really only C# that added the keywords, and other languages followed suit since 2015. None of the functional languages have async/await as keywords