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 94592 917
New
cblavier
Hey there, It’s been more than a year since we started using LiveView as our main UI library and building a whole library of UI componen...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
heathen
Quite interesting article Google brought me. Didn’t find any mentions about it here. What do you think in general? Would you use togethe...
New
mhanberg
Hi everyone! The first release candidate for the Expert language server project is now available! We’ve published a press release detai...
New
AstonJ
Since we have deprecated our Erlang sections (as we have dedicated Erlang Forums now) let’s add this thread for those who’d like to post ...
New
maennchen
:warning: Security advisory: Decimal DoS vulnerability A vulnerability has been published for decimal where very large exponents can cau...
New

Other Trending Topics Top

marciok
Hi there! We created Gust: A task orchestrator inspired by Airflow. For those who have never heard about Aiflow, it’s a Python-based wor...
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
Dmk
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
webofbits
With AI doing more of the implementation work, I’ve been wondering how much coding I should deliberately keep doing myself. My main conc...
#ai
New
webofbits
Aludel - LLM Evaluation Workbench Aludel is an embeddable Phoenix LiveView dashboard for evaluating and comparing LLM prompts across mult...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews