Roc - A Functional Language looking for those Software Sweetspots (with Richard Feldman)

preview_player
Показать описание
Sometimes, what a programming language makes harder is just as important as what it makes easier. For a simple example, think of GOTO. We’ve been wisely avoiding it for decades because it makes confusing control flow desperately easy. Types and tests are other examples - they’re as much about specifying what shouldn’t work as what should. And perspective is what makes this week’s topic particularly interesting: Roc is a language that’s functional, fast, friendly, and extremely interested in making your life easier by enabling some possibilities and restricting others.

So this week we’re joined by Richard Feldman, the creator of Roc. He’s been an advocate of the Elm programming language for years, for its tight focus on taking the best bits of Functional Programming to the browser. And in recent years he’s been inspired to build his own language, taking that philosophy to other places and platforms.

But which bits are “the best bits”? And how do they change when the domain you’re coding for changes? How is Roc built and how would we build systems in it? Let’s find out…

--

Рекомендации по теме
Комментарии
Автор

I JUST discovered this podcast the other day, watching the Zig episode, which I thought was amazing, and immediately subscribed. And now the first new episode to come out since subscribing is about Roc, which I also recently discovered and was just looking into the other day! Very excited to watch.

To Kris: you have a soothing voice and are really kind and attentive with guests which makes this show a joy to watch/listen to. I also love how much the interviews seem to have real curiosity and joy in coding. A lot of programming content I see on youtube sometimes just gives me bad vibes, even when the content is good, bc the framing can be so focused on like… the business and career side of things, making money, and the like. I know that’s important too, but as a hobbyist that likes looking into coding stuff way above my level just bc i find it genuinely fascinating, this show has been a breath of fresh air.

Sofia-tsgy
Автор

Oh, what a nice surprise.
I've been following Roc for quite a while now and I love the mission statement that Richard is going for.
Super excited to see what the two of you have to say!

JaconSamsta
Автор

Another fantastic video!! Love the idea of having a simple FP language to use in whatever domain I want. Especially if platforms end up being straight-forward to make.

Browsinghard
Автор

I only just noticed how genius the thumbnail for this video is. I hope it doesn't go unappreciated.

havokgames
Автор

I really like the syntax of roc. I'm looking forward to seeing how everything turns out p

ausd
Автор

Very interesting! I think I'll look into this further and talk to some of the ppl in that community cus i think this might be able to help me with a project i been thinking about. Awesome video!

TheHubra
Автор

About the discussion at the end about `http-low-level` package being used to define an interface: it looks a lot like Haskell's Backpack signatures, which are themselves heavily inspired by ML's Functors.

hsyl
Автор

Definitely need to know which papers to read, to learn how to make a programming language

Автор

great episode, an early christmas present !

shriyansb
Автор

nice! the other day I thought of solving AoC with Elm, but got frustrated and gave up after failing to work out how to simply print out to terminal without running a website :)

TheMlg
Автор

I believe I need a platform definition to have my verbs defined to accomplish the last task in Roc :p

Aides
Автор

Gamedev with functional style. Show me and I believe it.

meanmole
Автор

4:20 ... Needing to do *paid work* is the problem. 🙂

pmcgee
Автор

Roc is like the static typed ML cousin of Racket.

laughingvampire
Автор

I hope even if the language goes nowhere, RF is still going to get something out of it. reputation, something.

adicide
Автор

I like the ideas behind Roc, but looking over the builtins, it seems extremely confused in its inspirations. Container functions seem to be "a collection of my favourites" rather than following any sort of rhyme. Strings purport to reduce emoji bugs by operating on grapheme-clusters instead of codepoints, yet the docs aptly demonstrate that this helps not with emoji at all - and there's a fold over raw UTF-8 bytes too, for some reason (am I expected to re-parse the UTF-8? Is this for sending over the wire? Who knows?) Another absolute banger is having a menagerie of number types of every size... and also a confusingly called `Nat`, which seems to be `size_t`, the worst C++ numeric type, that you're limited in doing arithmetic on and that has unknown size. It relies on compiler optimizations to modify lists in-place, but there's also `withCapacity`/`reserve` which expose internal memory management (and only work properly if the reference you hold is unique, so much for opinionatedly not having linear types).

Reminds me a lot of Gleam - tries to do all of the nice things at once, kind of falls short everywhere. A passion project, but lacks good design, unfortunately.

ZeroPlayerGame
Автор

ok but is roc website written in Elm? 😂 EXACTLY

pookiepats
Автор

Java had and still has an app server concept, the industry goes on another cycle

YuriKhrustalev
Автор

thank you for another good talk krish. I kind of don't like the Roc language after trying it for a while because it tries to emulate the elm and it fails spectacularly, it literally fails at everything it tries. I also don't like what the community did to Evan and elm in general. other than its not the worst the language I've come across.

poggybitz
Автор

Repackaging of repacked ML. Both StandardML and especially Ocaml are proven in many domains.

radivojevasiljevic