One small thing about async behavior in Rust; Depending on the implementation of get_movies, it might also only start the request once the Future is polled (Rust supports push as well as pull behavior for Futures). What that doesn't change, though, is that there are still side effects instead of type encoded effects.
Рік тому+4
I am humbled and elated to see such great language design!!! Looking forward to see isomorphic Roc code, so we may use it for both web server and the browser. What about type classes and generics?
i remember using livescript all the way back before node even had async await, and you had to callback hell everything. livescript backcalls thing was so good
I believe the statement at 26:30 is incorrect about Rust. Calling `let fut = get_movies();` does not immediately fire an HTTP request. One must do `fut.await` afterwards (or just do `get_movies().await`.
I don't like type-inference. "Explicit is better than implicit". Reading other people's code in languages with type-inference can sometimes be very confusing. I see type annotations as more documentation for the reader/maintainer. If a feature makes it easier to read other people's code and harder to write your own code, then reading trumps writing and it's a good feature. and If the converse is true, it's a bad feature. "Typing [as in pressing keys on the keyboard, not type-systems] is not the bottleneck".
One small thing about async behavior in Rust; Depending on the implementation of get_movies, it might also only start the request once the Future is polled (Rust supports push as well as pull behavior for Futures). What that doesn't change, though, is that there are still side effects instead of type encoded effects.
I am humbled and elated to see such great language design!!!
Looking forward to see isomorphic Roc code, so we may use it for both web server and the browser.
What about type classes and generics?
“The compiler can always infer the type.”
Whoa. That’s pretty cool.
I’m hyped for roc
i remember using livescript all the way back before node even had async await, and you had to callback hell everything.
livescript backcalls thing was so good
Great talk, I'm looking forward to using this language more and more!
Great talk and very interesting discussions.
For those interested, I recommend Koka. Really incredible language.
I had the same question about running with type errors, I'd swear that I saw the check pass without warning the user about errors, but I guess not
Would we still need Elm if we have Roc with a corresponding Web UI library?
Makes you think how necessary is to use zod, io-ts, or other parsing libraries in the js ecosystem
I already know I'll use the catchall errors return "ahhhhhhhhhhhhhhhh"
Does NoRedInk intend to use it in any capacity
So as i understand roc somehow stores type information ay least in test env to run program without undefined behaviour?
he says at 54:09 that a line with a type error is replaced with just an abort, which shouldn't require them to keep type information around at runtime
Even in tech talks 42 years later Rodney Dangerfield don’t get no respect.
Love it, but those numbers need to be fixed, ints and reals should be distinct. Go full numeric tower.
I believe the statement at 26:30 is incorrect about Rust. Calling `let fut = get_movies();` does not immediately fire an HTTP request. One must do `fut.await` afterwards (or just do `get_movies().await`.
Very interesting!
In PHP i can have types, IDE will complain, but I can still run the program )
Sure, you can also have IDE perfectly happy and still get runtime type errors. That's what I want to avoid.
I don't like type-inference. "Explicit is better than implicit". Reading other people's code in languages with type-inference can sometimes be very confusing. I see type annotations as more documentation for the reader/maintainer. If a feature makes it easier to read other people's code and harder to write your own code, then reading trumps writing and it's a good feature. and If the converse is true, it's a bad feature. "Typing [as in pressing keys on the keyboard, not type-systems] is not the bottleneck".
no mutable variables == no mass adoption