AstonJ

AstonJ

Phil just posted this on EFS:

…interesting that some of the key updates to JavaScript appear heavily influenced by (or blatantly copied from) Elixir

Here are some blog posts about it:

https://medium.com/@alexdev82/whats-new-in-javascript-es2025-f9e99d04f45c

Showing Posts 1 to 10

garrison

garrison

Unfortunately it seems like this article is fake AI slop (see the HN discussion).

It appears some of the proposals are real, e.g. pattern matching, but are nowhere near being accepted. The record proposal was withdrawn, which is a shame because native immutable data structures sound kinda nice. The pipe proposal is stage 2 at least.

It is interesting how many of these proposals are reminiscent of Elixir, though. And pattern matching has already made it into Rust and Python AFAIK, so that one probably has a good chance.

Schultzer

Schultzer

I have to this day never seen anything remotly resembling pattern matching to what we have on the BEAM, it’s a misnomer to call it pattern matching in Rust with the perspective of the BEAM.

garrison

garrison

I agree. But what about Prolog? :slight_smile:

Schultzer

Schultzer

Thank you, Erlang was heavily inspired by prolog!

But I doubt that most people who write JS and Rust is even remotely familiar with prolog. I myself have never written one line of it. I’m just not old enough and we did turbo pascal growing up. Although my dad might have shown me prolog.

garrison

garrison

Oh I certainly haven’t written any Prolog either lol. I do still need to take a good look at Datalog though, especially since I am interested in alternatives to SQL as you know.

I think at the end of the day pattern matching “feels good” in BEAM langs because the libraries and ecosystems are built for it. Plus it pairs nicely with immutability.

Similarly, the pipe operator feels good in Elixir because our standard library is built for it. But if you start working with e.g. :gb_trees you will find that it’s not so great, because the tree is the last argument!

So for interop with JS libraries maybe these features wouldn’t be all that useful, but the thing about JS is that it’s so widely deployed that you can write it in entirely different styles with entirely different subsets of the ecosystem pulled in. Functional/immutable JS is a whole thing. And I refuse to touch JS dependencies with an 11-foot pole anyway, so I can write whatever I want :slight_smile:

Schultzer

Schultzer

Yeah, traditional datalog might be a no go for you as there is no concept of strings or integers.

Also, SQL was influenced but datalog, so it can’t be that bad :grinning_face:

garrison

garrison

Oh yeah, I meant more in the sense of studying the history. There are a lot of papers I need to read from those times. Datalog probably wouldn’t be for me, but it seems some are still trying to make fetch happen. Although those guys seem to have forgotten how to write about anything other than “AI agents”, so I’m not sure it’s going well.

The thing about SQL is that it has been influenced by a great many things because it is so inexpressive and inextensible that the only way to add new functionality is to further bloat the (incredibly bloated) standard with one-off features.

For example, apparently recursive queries (1999) were inspired by Datalog. Can you imagine if somebody “added recursion” to Python or JavaScript? What would that even mean?

Schultzer

Schultzer

That’s a nice blog and it’s clear that matchspec is heavily inspired by datalog, although I do believe that SQL weakness is a strength, as it is completely implementation specific so it is extensible.

I’m a sucker for pattern matching, but I can hear the average developer yelling that it’s not readable. And that is properly why SQL is so heavily used.

lud

lud

I love Prolog !

I only wrote an “hello world” with it, toyed a bit, and then when looking up documentation on the web, I found something strange and unknown to me called “Erlang”. That was some long time ago :slight_smile: And now I’m here, so <3 Prolog

(More seriously it was kinda fun to play with!)

I’m a sucker for pattern matching, but I can hear the average developer yelling that it’s not readable. And that is properly why SQL is so heavily used.

Yeah some coworkers do not seem to want to take advantage of it … though on this forum “I cannot live without it now” seems to be shared by most people.

Schultzer

Schultzer

I think it’s not a matter of taking advantage of it, and more an inability. Although we strive to tell ourself that as programmers then we love logic and analytics, but it is clear to me that most do not think in the way of prolog and datalog. If they did we would see it more used.

Where Next? Top

Trending in Discussions Top

AstonJ
As the title says, please share what you’ve been up to with Elixir. Whether that’s been learning it, looking into it, making stuff with i...
2977 91898 914
New
AstonJ
The obligatory hello world thread! Who are you and where are you from? :stuck_out_tongue:
4616 55835 594
New
caslu
I want to open this thread for you all to discuss and help those who really like Ash but are still hesitant to use it in a real project. ...
New
arcanemachine
I was working on an Ecto migration and I needed a timestamp. So, for the nth time, I looked up the different data types for timestamps, a...
New
alexslade
Fly’s CEO posted this recently - Turn And Face The Strange · The Fly Blog It says that Fly is going all-in on sprites, which is a worry ...
New
Herve37
We’re evaluating API mocking tools for OpenAPI-based projects and would love to hear what other teams are using. We’re particularly inte...
New
matt-savvy
Is there a word for the ~> symbol used in Version strings? Do you also just call it a Squiggle Arrow™ ?!
New

Other Trending Topics Top

JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge &amp; Solve. They are GUI (Emerge) and State management (S...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews