No real thoughts on the language yet, other than looks interesting and modern. But, that website has one of the smoothest on boarding experience I've ever seen for a new language. From the inline REPL (with built in tutorial), to the code definition section, its insanely practical. Every new (& old) language should have a website and onboarding experience like this one.
For in-browser tutorials, Haskell does it on the main page, too: https://www.haskell.org/ For web UI, I always thought QisKit set the bar pretty high. It's intuitive and informative: https://qiskit.org/
Roc – A fast, friendly, functional language
71–80 of 180 posts
Re: Roc – A fast, friendly, functional language
#72No real thoughts on the language yet, other than looks interesting and modern. But, that website has one of the smoothest on boarding experience I've ever seen for a new language. From the inline REPL (with built in tutorial), to the code definition section, its insanely practical. Every new (& old) language should have a website and onboarding experience like this one.
Re: Roc – A fast, friendly, functional language
#73Earlier quoted context omitted.
Actually they both (and OCaml has a whole lot of almost never used OOP - that's where the O comes from) have _way_ less "syntax" than Python or Java.
I just did some quick math. If you count all the keywords and operators for F# in microsoft's documentation, you come to 150 symbols. This doesn't include the nullary operators (of which there are 14) Counting all the java operators and keywords, you get 84. This doesn't include assignment operators like "+=" or "-=" (11 such operators). ChatGPT tells me that python has 36 keywords and 28 operators (not including the…
Haskell (55 + some more, because of the grouping): https://wiki.haskell.org/Keywords
F# https://learn.microsoft.com/en-us/dotnet/fsharp/language-ref...
OCaml: https://v2.ocaml.org/manual/lex.html#sss:keywords
Python: https://github.com/python/cpython/blob/3.12/Lib/keyword.py
Java (I think these are the current ones): https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_k...
Re: Roc – A fast, friendly, functional language
#74Earlier quoted context omitted.
There's no evidence thus far in the Roc community thats it's anything like ELM's community. Seems like the Author of Roc is cool now, that was 5 years ago and hasn't done the thing you fear he might do? people get testy, say things they regret. I understand trust is earned, but it's been 5 years. and the Roc community thus far have been really nice, welcoming and collaborative. I get Elixir and Ruby community vibes f…
Sure, but there are also a lot of languages to learn, in a vacuum I might learn Roc but now there are other options that don't have such history, it is not near the top of the list.
Roc isn't Elm. RF is one person in that community, and he said something he regretted 5 years ago and has since not repeated that mistake.
Do you know the moral dealings of every developer of every piece of technology you use?
When it comes to Roc and It's community..ask yourself.
“Am I sure that what I am going to say is true?”
“Is what I'm going to say a good thing?”,
and “Do I really need to say it and is it useful?”
Is that comment from 5 years ago really the most important thing about the Roc Programming language, that anyone reading the comments need to know? Is RF the reason you walked away from Elm?Re: Roc – A fast, friendly, functional language
#75Does Roc have any features that a Haskell programmer could consider improvements?
- simplicity
- strict evaluation model
- devx
- faster runtime
- built in effect system
I love haskell and write it every day, but I have the feeling that the language is probably too complex to really cross over to the mainstream. I remain convinced that the advantages of a pure functional approach are so compelling that we will one day see roc or something like it be the default choice for most programming tasks, and am really excited to see so much progress being made on the language.Re: Roc – A fast, friendly, functional language
#76Does Roc have any features that a Haskell programmer could consider improvements?
Haskell programmers tend to love their monads, but the treatment of effects here ("Tasks"), looks to be - and this is highly subjective - more intuitive and straightforward. ETA: Also if I'm reading this right Roc appears to natively support some kind of row polymorphism. That's a nice-to-have.
Re: Roc – A fast, friendly, functional language
#77Earlier quoted context omitted.
First of all — way faster machine code. Many other things are features or bugs depending of your preferences. For me, for example, eager evaluation is a big improvement, but YMMV.
How does it compare to HVM [0]? It is an alternative to GHC that in some cases is orders of magnitudes faster, at least from their benchmarks. [0] https://github.com/HigherOrderCO/hvm
Re: Roc – A fast, friendly, functional language
#78Earlier quoted context omitted.
Convenience instead of historical baggage, maybe?
All languages have some amount of historical baggage, but I'm not sure what you're referring to here. If anything, Haskell gets a lot of eyerolls for its slow moving pace and for trying to build a language from mathematical first principles. It's not perfect (eg.: Monad was not designed to be a special case of Applicative in the beginning, I believe) but it's better at "avoiding baggage" than many other languages I k…
Re: Roc – A fast, friendly, functional language
#79Does Roc have any features that a Haskell programmer could consider improvements?
Not really, no. Like Elm, it strips away practically everything that wasn't already in 1970s-era ML. It's much closer to a trimmed-down Ocaml than it is to Haskell.
Re: Roc – A fast, friendly, functional language
#801. The typesystem will be sound, ML-like, and so simple that any code that doesn't interact with external data will not need _any_ type annotations.
2. An aim to make it the fastest managed compiled lang around (faster than golang).
3. Functional.
4. A focus on fast compile times from the beginning (like golang).
5. Serde from rust is essentially a language builtin.
6. Zero side effects, only managed effects (which I think will do wonders for testability and mocking in a compiled language).
What I'm unclear about is:
1. Whether they'll support macros,
2. Whether their decision to build a whole new IDE will take away from the work that will go into an LSP (it will take a lot to pry away neovim from my hands).
It'd be dope if anyone more familiar can comment on the above!
Also, as feedback to Richard Feldman, your podcast is (imo) great marketing for your lang! It's what's made me excited about your PL.
EDIT: Forgot another feature I'm allured by: ability to run programs with type errors (as best as one can).