Remix.run Logo
nromiun 8 days ago

  ⊢×0≠∧˝˘∧⌜∧˝           # Marshall & Dzaima (tacit!)
  (≠⥊∧´)˘{×(⌾⍉∧)0≠} # Dzaima & Rampoina
  {×(∧˝˘∧≢⥊∧˝)0≠}     # Dzaima
Call me old fashioned and stuck in C style syntax but I can't imagine anyone describing this as beautiful art.
mlochbaum 8 days ago | parent | next [-]

Well, do you know how it works? Don't judge a book by its cover and all. Although none of these are entirely aiming for elegance. The first is code golf and the other two have some performance hacks that I doubt are even good any more, but replacing ∧≢⥊ with ∧⌜ in the last gets you something decent (personally I'm more in the "utilitarian code is never art" camp, but I'd have no reason to direct that at any specific language).

The double-struck characters have disappeared from the second and third lines creating a fun puzzle. Original post https://www.ashermancinelli.com/csblog/2022-5-2-BQN-reflecti... has the answers.

badlibrarian 8 days ago | parent | prev | next [-]

When the junior programmers start saying "Turing complete" or the academics build a DSL in Julia that uses RegEx to parse Logic Symbols and stuffs the result in variables that use ancient characters that don't appear on your keyboard, it's a sure sign of imminent progress. Bonus if the PhD with nine years of schooling and five months of PHP experience at Facebook starts using emoji in commit messages.

hinkley 8 days ago | parent [-]

“irony! Oh, no, no, we don't get that here. See, uh, people ski topless here while smoking dope, so irony's not really a, a high priority. We haven't had any irony here since about, uh, '83, when I was the only practitioner of it. And I stopped because I was tired of being stared at.”

skydhash 8 days ago | parent | prev | next [-]

Array Programming is an acquired taste, but once you do, solutions can be extremely simple, both to write and to explain.

Think about using matrix to describe geometric transformations instead of using standard functions.

badlibrarian 8 days ago | parent [-]

You mean abstracted stuff like this instead of two lines of code that actually uses x and y?

  [ cos(θ)  -sin(θ)  0  0  ]
  [ sin(θ)   cos(θ)  0  0  ]
  [ 0        0       1  0  ]
  [ 0        0       0  1  ]
ssivark 8 days ago | parent [-]

Yes, absolutely. Once you've expressed data as appropriate tensors (not all languages make this super convenient, unfortunately), it makes the implementation very readable, and easy to ensure that it's bug-free. It lets you see what is going on. Much better than futzing around with tensor components!

ashleyn 8 days ago | parent | prev | next [-]

It's giving APL: https://en.wikipedia.org/wiki/APL_(programming_language)

icen 8 days ago | parent [-]

It is BQN, a descendant language

pavlov 8 days ago | parent [-]

Why is it BQN instead of BQM? Clearly the idea was to increment every letter from APL, but then they had to go one further on the third letter.

BoiledCabbage 8 days ago | parent | next [-]

This actual answer according the the author realized after he already liked the name.

He created it intending to be +1 of APL. Accidentally came up with BQN instead of BQM. Sat with that for 1hr, really liked the name, then realized that it should be BQM which he hated, so he stuck with BQN.

That said, it's and incredibly designed language. I honestly have never read any language (especially not designed by a single person) with the level of creative thought as he put into BQN. Some really incredible insights and deep understanding. It's amazing reading his posts / documentation about it. The focus on ergonomics, brand new constructs and the consistency/coherence of how all of his decisions fit together is really impressive.

layer8 8 days ago | parent [-]

So, you write bequations in it? ;)

cenamus 8 days ago | parent | prev | next [-]

I'm somewhat sure the author actually mentioned that that was the intention, "Big Question Notation" and basically "apl" + 1. But he realized that it didn't match up

taolson 8 days ago | parent | prev | next [-]

Supposedly it stands for "Big Questions Notation", but that could just be a backronym.

hinkley 8 days ago | parent | prev | next [-]

I’m hoping they pronounce it “beacon” but the off by one error jokes also just write themselves.

rscho 8 days ago | parent [-]

No, it's 'bacon' :-)

ModernMech 8 days ago | parent | prev | next [-]

They were following a Fibonacci sequence.

mlochbaum 8 days ago | parent | prev [-]

It's just. So gross. Say it. Sudden interruption of slime coming up your throat. Like walking out the door into a spiderweb. Alphabetically I was mistaken but in every way that matters I was right.

pavlov 8 days ago | parent [-]

Hmm. I guess it if was BQM, it would be pronounced “bequem” which means comfortable in German.

And a comfortable APL is clearly an oxymoron.

mlochbaum 8 days ago | parent [-]

Ordinarily I'd make fun of the Germans for giving such an ugly name to a nice concept, but I've always found "comfortable" to be rather unpleasant too (the root "comfort" is fine).

rscho 8 days ago | parent | prev | next [-]

This type of syntax allows rapid iteration when looking at different implementations and experimenting with array problems. It should be thought of more as math notation than general programming.

hyperbrainer 8 days ago | parent | prev [-]

I see it as beautiful the same way Galadriel would be beautiful as the Dark Queen. Utterly captivating and powerful, and yet something that should never be.

KineticLensman 8 days ago | parent [-]

"All shall love me and despair"