Richard Feldman and his team have worked on a pure functional language called roc (roc-lang.org). It compiles to a static binary and uses #LLVM and opportunistic in-place mutation for optimization.
Such a great talk! I ❤️ Richard Feldman!
@janriemer wow, what's the scoop here? I know Richard's company NoRedInk hired Evan, the Elm founder, full-time, several years ago—is Evan involved with this? Is this Richard's own project? So curious, I'll watch/read, sorry for letting my curiosity make me lazy 😅!
@janriemer Answering my own question! Yes Richard is still at NoRedInk, Roc is a spiritual successor to Elm but for compiled languages (LLVM IR), and it uses a bunch of hot computer science magic to make effects and purity fassster.
Thanks for sharing!
@22 You're welcome. Glad, you find it interesting.🙂
Maybe you can also connect with @musicmatze on this!? 😉
@janriemer Elm was really well-done probably in part because it was so tightly coupled to its goal (frontend apps). I'm excited to see Richard &co. take lessons learned and make an Elm-like for binary, rather than trying to retarget Elm.
(Personally, I've been in the shovel mode for a few years (background: "If you have a mountain of shit to move, how much time should you spend looking for a bigger shovel?" via https://www.scattered-thoughts.net/writing/things-unlearned/) but I'm glad we're making better shovels!)
@janriemer yes, “explore vs exploit” is it. I’m glad folks who have energy to explore are spending it on something as cool as Roc. If it works out, it’s going to be great.
I’ve been in “exploit” mode for a few years and it turns out I really like it—I love making and shipping, and using boring established tools to do that.
Another useful programmer taxonomy is “hacker, poet, maker” https://josephg.com/blog/3-tribes/ because I instantly recognized myself as maker and so much made sense 🤯.
@janriemer More about boring technology in case that's remotely something anyone cares about 😅: https://mobile.twitter.com/danluu/status/1431922332667416580 "People claim that fancy languages are great when solving hard problems and the reason programmers don't appreciate them is that they're solving boring problems, but I appreciate fancy languages when solving boring problems and don't mind boring languages when I have hard problems"
@22 Sorry, I don't have time to answer this one right now, because there is so much to say about it.😅
I'll come back to it tomorrow or so, I promise.
Thank you for these inspiring conversations.🙂
@22 What even is a boring technology? I consider #Rust being a boring technology, which might be surprising to some:
I wouldn't consider C or C++ a boring language, though.
Boring languages for me are languages that allow me to express the things I want to solve a particular problem, so that I can solely focus on the solution to that problem.
It basically allows a natural extension of once thoughts without getting in the way.
In other words: It Just Works™
@22 Thank you for sharing the article. Again, very thought-provoking!🙂
I think, like the author said, the best programmers have all three tribes in them (maker tribe should probably be the strongest, though).
What I also found really interesting, when they said: "Go has been adopted by Python-people far more than from C++-people"...
Duh...of course it has!
See also the last point of this toot (also it is a really interesting thread overall😉):
This illumination of "know thyself" really helped me!
@janriemer More generally though, I'm not sure that you ought to or need to be familiar with all three tribes to be effective? I know many skilled poets and hackers and makers who never stray from their tribes, and I think that's totally fine. Capitalism and corporate life does strongly favor the maker tribe 😅, but I know hackers and poets can still kind of find a home.
@22 Beautifully put!👌
Just to add to that: This also implies the underlying concept of generalization vs. specialization.
One could think that the hacker/poet tribe is very specialized, but it's quite the opposite: These tribes are probably far more familiar with algorithms and data structures than the makers tribe, because as a maker (let's say building a CRUD app), you often don't need to know about these things.
@22 However, as a maker (especially web developer) you are often specialized with regard to the technology you are working with (e.g. spa framework + database).
Personally, I think it is very important to always learn the underlying concept of things, so that when technology changes or you have a problem with it, you can apply that concept to learn something new or better deal with the problem and find a solution more easily.
Such an interesting topic!🤗 🙂
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!