frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Micro-Front Ends in 2026: Architecture Win or Enterprise Tax?

https://iocombats.com/blogs/micro-frontends-in-2026
1•ghazikhan205•2m ago•0 comments

Japanese rice is the most expensive in the world

https://www.cnn.com/2026/02/07/travel/this-is-the-worlds-most-expensive-rice-but-what-does-it-tas...
1•mooreds•2m ago•0 comments

These White-Collar Workers Actually Made the Switch to a Trade

https://www.wsj.com/lifestyle/careers/white-collar-mid-career-trades-caca4b5f
1•impish9208•2m ago•1 comments

The Wonder Drug That's Plaguing Sports

https://www.nytimes.com/2026/02/02/us/ostarine-olympics-doping.html
1•mooreds•3m ago•0 comments

Show HN: Which chef knife steels are good? Data from 540 Reddit tread

https://new.knife.day/blog/reddit-steel-sentiment-analysis
1•p-s-v•3m ago•0 comments

Federated Credential Management (FedCM)

https://ciamweekly.substack.com/p/federated-credential-management-fedcm
1•mooreds•3m ago•0 comments

Token-to-Credit Conversion: Avoiding Floating-Point Errors in AI Billing Systems

https://app.writtte.com/read/kZ8Kj6R
1•lasgawe•3m ago•1 comments

The Story of Heroku (2022)

https://leerob.com/heroku
1•tosh•4m ago•0 comments

Obey the Testing Goat

https://www.obeythetestinggoat.com/
1•mkl95•4m ago•0 comments

Claude Opus 4.6 extends LLM pareto frontier

https://michaelshi.me/pareto/
1•mikeshi42•5m ago•0 comments

Brute Force Colors (2022)

https://arnaud-carre.github.io/2022-12-30-amiga-ham/
1•erickhill•8m ago•0 comments

Google Translate apparently vulnerable to prompt injection

https://www.lesswrong.com/posts/tAh2keDNEEHMXvLvz/prompt-injection-in-google-translate-reveals-ba...
1•julkali•8m ago•0 comments

(Bsky thread) "This turns the maintainer into an unwitting vibe coder"

https://bsky.app/profile/fullmoon.id/post/3meadfaulhk2s
1•todsacerdoti•9m ago•0 comments

Software development is undergoing a Renaissance in front of our eyes

https://twitter.com/gdb/status/2019566641491963946
1•tosh•9m ago•0 comments

Can you beat ensloppification? I made a quiz for Wikipedia's Signs of AI Writing

https://tryward.app/aiquiz
1•bennydog224•10m ago•1 comments

Spec-Driven Design with Kiro: Lessons from Seddle

https://medium.com/@dustin_44710/spec-driven-design-with-kiro-lessons-from-seddle-9320ef18a61f
1•nslog•11m ago•0 comments

Agents need good developer experience too

https://modal.com/blog/agents-devex
1•birdculture•12m ago•0 comments

The Dark Factory

https://twitter.com/i/status/2020161285376082326
1•Ozzie_osman•12m ago•0 comments

Free data transfer out to internet when moving out of AWS (2024)

https://aws.amazon.com/blogs/aws/free-data-transfer-out-to-internet-when-moving-out-of-aws/
1•tosh•13m ago•0 comments

Interop 2025: A Year of Convergence

https://webkit.org/blog/17808/interop-2025-review/
1•alwillis•14m ago•0 comments

Prejudice Against Leprosy

https://text.npr.org/g-s1-108321
1•hi41•15m ago•0 comments

Slint: Cross Platform UI Library

https://slint.dev/
1•Palmik•19m ago•0 comments

AI and Education: Generative AI and the Future of Critical Thinking

https://www.youtube.com/watch?v=k7PvscqGD24
1•nyc111•19m ago•0 comments

Maple Mono: Smooth your coding flow

https://font.subf.dev/en/
1•signa11•20m ago•0 comments

Moltbook isn't real but it can still hurt you

https://12gramsofcarbon.com/p/tech-things-moltbook-isnt-real-but
1•theahura•24m ago•0 comments

Take Back the Em Dash–and Your Voice

https://spin.atomicobject.com/take-back-em-dash/
1•ingve•24m ago•0 comments

Show HN: 289x speedup over MLP using Spectral Graphs

https://zenodo.org/login/?next=%2Fme%2Fuploads%3Fq%3D%26f%3Dshared_with_me%25253Afalse%26l%3Dlist...
1•andrespi•25m ago•0 comments

Teaching Mathematics

https://www.karlin.mff.cuni.cz/~spurny/doc/articles/arnold.htm
2•samuel246•28m ago•0 comments

3D Printed Microfluidic Multiplexing [video]

https://www.youtube.com/watch?v=VZ2ZcOzLnGg
2•downboots•28m ago•0 comments

Abstractions Are in the Eye of the Beholder

https://software.rajivprab.com/2019/08/29/abstractions-are-in-the-eye-of-the-beholder/
2•whack•29m ago•0 comments
Open in hackernews

My Ideal Array Language

https://www.ashermancinelli.com/csblog/2025-7-20-Ideal-Array-Language.html
148•bobajeff•6mo ago

Comments

abcd_f•6mo ago
> User-Extensible Rank Polymorphism

> IMO this is what makes something an array language.

Great to hear. So what is it?

preommr•6mo ago
Not op, but I assume it means that there's rank polymorphism (i.e. data can be of arbitrary dimensions, and there's support for things like functions working on both N-dimensions, without having to specify n, or maybe setting constraints on n), and that the polymorphism can be used on the programmer side (so it's not limited to just a handful of language builtins) through the oop equivalent of subclasses and interfaces.
goldenCeasar•6mo ago
A question, would you interpret this as rank polymorphism?

  schema do
    input do
      array :regions do
        float :tax_rate
        array :offices do
          float :col_adjustment
          array :employees do
            float :salary
            float :rating
          end
        end
      end
    end

    trait :high_performer, input.regions.offices.employees.rating > 4.5
    
    value :bonus do
      on high_performer, input.regions.offices.employees.salary * 0.25
      base input.regions.offices.employees.salary * 0.10
    end
    
    value :final_pay,
      (input.regions.offices.employees.salary + bonus * input.regions.offices.col_adjustment) *
      (1 - input.regions.tax_rate)
  end

  result = schema.from(nested_data)[:final_pay]
  # => [[[91_000, 63_700], [58_500]], [[71_225]]]
CraigJPerry•6mo ago
I think i'm misunderstanding, rank is explicit throughout this example but i'm not familiar with this syntax (ruby maybe?) but whatever the case i don't see the rank polymorphism.

If i'm reading the syntax correctly, this would translate in kdb/q to a raze (flatten) on the 3 dimensions (regions, offices, employees). Probably more likely to be expressed as a converge but in either case, the calculations here are not possible in a rank polymorphic way.

goldenCeasar•6mo ago
The broadcasting handles the rank differences automatically. When bonus (at employee level) multiplies with col_adjustment (at office level), each employee's bonus gets their office's adjustment applied, no flattening or manual reshaping. The structure [[[91_000, 63_700], [58_500]], [[71_225]]] was preserved.

This is from a Ruby DSL I'm working on (Kumi). Probably the broadcasting semantics are very different from traditional rank operators in q/APL?

Edit: I realized that I missed the input structure:

  Region 0: Office 0 has 2 employees, Office 1 has 1 employee
  Region 1: Office 0 has 1 employee
CraigJPerry•6mo ago
Just had a quick browse of the kumi readme - very cool, i like it
goldenCeasar•6mo ago
That means a lot, thanks!
npalli•6mo ago
I didn't downvote but was utterly puzzled with your example. After your response below, it occurs to me that you are confusing Employee rank (a business concept) with Array rank a mathematical concept. Either that or it is very strange explanation for rank polymorphism.
djoldman•6mo ago
The programmer can define functions that operate on matrices without having to be explicit about the number of dimensions and possibly (types of data, size of data, or length).

Example 1: A function that can take as input a 4x2x8 matrix or a 3x7 matrix.

Example 2: A function that can take as input a 4x2x8 matrix and a 3x7 matrix and output a third matrix.

almostgotcaught•6mo ago
> A function that can take as input a 4x2x8 matrix and a 3x7 matrix and output a third matrix.

which shows that this feature request is complete jibberish

rscho•6mo ago
Why gibberish ? It's a common feature in both array languages and Iverson ghosts, and many find it extremely useful.
tracker1•6mo ago
You mean like a "winner" function able to check for both Tic-Tac-Toe, a Connect Four field and a Similar 3D+ tower game?
taeric•6mo ago
I'm not sure I follow? The "winning" condition is different in all of those examples?
tracker1•6mo ago
X adjacent cell values in an N dimensional array? For tic tac toe, it's 3 in a row, for connect 4 it's 4 in a row.
taeric•6mo ago
Fair enough, I guess. The "available moves" would be dramatically different, such that I'm not clear I see much of a win on this reuse. But, yeah, fair enough.
tracker1•6mo ago
It was just the simplest case I could think of that would be reasonable. I'm not a heavy enough pure math guy to really get how an Array centric language is even all that valuable myself TBF.
tomsmeding•6mo ago
Rank polymorphism means that a function can be polymorphic in the additional dimensions of arrays. For example, if you write a function that takes a 2x3 and a 4x5 array, it can also work on 10x15x2x3 and 10x15x4x5 arrays by broadcasting.

If rank polymorphism results in accepting both 4x2x8 and 3x7, then that means the function was a function on elements to begin with. Which is possible, but not the most interesting application of rank polymorphism.

djoldman•6mo ago
> Rank polymorphism means that a function can be polymorphic in the additional dimensions of arrays. For example, if you write a function that takes a 2x3 and a 4x5 array, it can also work on 10x15x2x3 and 10x15x4x5 arrays by broadcasting.

Thanks, this is what I was ineloquently attempting to describe with "A function that can take as input a 4x2x8 matrix or a 3x7 matrix."

CapsAdmin•6mo ago
game math libraries often have this (and glsl gpu shader language), like "2 * vec3(1,2,3)" results in "vec3(2,4,6)"

There are other cases like adding vectors to matrices and so on, but in the end this logic is defined in some custom add operator overload on a class or object in the language.

(I had no idea what it meant either until i searched for examples..)

cl3misch•6mo ago
I wondered the same. Similarly I wish the author had provided examples for statements like

> Numpy also needs to be paired with a JIT compiler to make python a real array language

adregan•6mo ago
The author of this post was the guest on the most recent episode of the podcast The Array Cast

https://www.arraycast.com/episodes/episode111-ideal-array-la...

teleforce•6mo ago
Dlang does not has rank polymorphism and it handle array just fine with crazy speed in both compilation and execution.

It can be faster than Fortran based library that is still being used by Matlab, Rust and Julia [1].

It will be interesting to compare Mojo moblas BLAS library with GLAS library performance in D.

[1] Numeric age for D: Mir GLAS is faster than OpenBLAS and Eigen (2016):

http://blog.mir.dlang.io/glas/benchmark/openblas/2016/09/23/...

cdavid•6mo ago
If I understand correctly what is meant by rank polymorphism, it is not just about speed, but about ergonomics.

Taking examples I am familiar w/, it is key that you can add a scalar 1 to a rank 2 array in numpy/matllab without having to explicitly create a rank 2 array of 1s, and numpy somehow generalizes that (broadcasting). I understand other array programming languages have more advanced/generic versions of broadcasting, but I am not super familiar w/ them

pjmlp•6mo ago
Unfortunely, while the community is great, what it doesn't have is a direction, thus keeps pivoting every couple of years, and with that lost the adoption opportunity window it had a decade ago.
teleforce•6mo ago
Form is temporary, class is permanent.
nromiun•6mo 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.
hyperbrainer•6mo ago
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•6mo ago
"All shall love me and despair"
badlibrarian•6mo ago
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•6mo ago
“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.”
ashleyn•6mo ago
It's giving APL: https://en.wikipedia.org/wiki/APL_(programming_language)
icen•6mo ago
It is BQN, a descendant language
pavlov•6mo ago
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.
mlochbaum•6mo ago
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•6mo ago
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•6mo ago
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).
hinkley•6mo ago
I’m hoping they pronounce it “beacon” but the off by one error jokes also just write themselves.
rscho•6mo ago
No, it's 'bacon' :-)
ModernMech•6mo ago
They were following a Fibonacci sequence.
taolson•6mo ago
Supposedly it stands for "Big Questions Notation", but that could just be a backronym.
cenamus•6mo ago
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
BoiledCabbage•6mo ago
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•6mo ago
So, you write bequations in it? ;)
mlochbaum•6mo ago
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.

skydhash•6mo ago
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•6mo ago
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•6mo ago
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!
rscho•6mo ago
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.
rramadass•6mo ago
A previous relevant discussion since there is so little on Array Languages - https://news.ycombinator.com/item?id=38981639
goldenCeasar•6mo ago
Funny, on another totally unrelated domain (business logic/rules engines) I was building something very very related - array broadcasting with semantic preservation through arbitrary nesting levels
hinkley•6mo ago
You explain the evolution of CPUs but then don’t explain Rank Polymorphism.
IncreasePosts•6mo ago
It's just like polymorphism, only stinkier
jph00•6mo ago
"Rank" means the number of dimensions of an array.

So "rank polymorphism" means being able to write expressions that work correctly regardless of how many dims the arrays involved have.

For example, in numpy you can write a function that handles both lists and matrices automatically, by taking advantage of broadcasting. (The J language takes this idea a lot further -- numpy is a fairly minimal implementation of the idea.)

hinkley•6mo ago
That just sounds like someone needing to feel smarter than 'multidimensional arrays' sounds. Which if you ask the average unskilled laborer, already sounds pretty damned fancy.
diziet_sma•6mo ago
It's not the same thing as multidimensional arrays though. You can have multidimensional arrays without rank polymorphism. Rank polymorphism makes working with multidimensional arrays much easier because you can write one function which works over input arrays with different shapes.
npalli•6mo ago
Strange to read this article and find no mention of Julia (but APL, Mojo, MLIR BQN etc.. which are not exactly widely used languages). It checks many of the boxes

User-Extensible Rank Polymorphism is just beautiful with the broadcast dot syntax. I don't think any other language has this clean and flexible implementation.

Others -- GPU programing, parallelism, etc. are pretty good with Julia. Real shame it hasn't taken off.

capyba•6mo ago
I love working in Julia, it makes clean numerical code so easy to write.
slwvx•6mo ago
> User-Extensible Rank Polymorphism is just beautiful with the broadcast dot syntax ...

Just to be clear, I guess that Julia's broadcast (dot) syntax is an implementation of "User-Extensible Rank Polymorphism"; is that right? Or does Julia's dot syntax include more than UERP?

electroly•6mo ago
I'm in a position of supporting a Julia environment but not writing Julia myself. From my perspective, they need to fix time-to-first-plot before it can be adopted more broadly. It's horrendous. The "2-3 minutes" I see online is an aggressive estimate; it's more than that for our modest set of data science packages on very beefy workstations. I had to use PackageCompiler.jl to build a sysimage which shifted a ton of burden onto me (and onto GitHub Actions) to avoid a long precompile on every user machine. I had to do the same to get my Julia Docker image to stop precompiling on every new cloud machine even though it had already been precompiled during docker build. I would describe this process as a nightmare, and it was a serious problem--the thing was precompiling every time on every job run in the cloud using the docker image.
xgdgsc•6mo ago
That' s solved more than 1 year ago https://news.ycombinator.com/item?id=38783886 https://modernjuliaworkflows.org/optimizing/#compilation .
aragilar•6mo ago
Are you actually sure it's solved? I note that Julia proponents have a history of claiming that an issue has been solved when it is apparent that it has not been solved (see e.g. https://danluu.com/julialang/).
xgdgsc•6mo ago
Yes. I don' t know why you' d rather trust an article from 10 years ago to understand current status.
electroly•6mo ago
The events of my post happened in the last two months on Julia version 1.11.5, and this poster simply linked to a primer on PackageCompiler.jl which is the thing I said I was using in my post. It's not solved; at best there are complicated mitigations that let you control when the long compilation happens without avoiding it. If you try out Julia, you will run into the issue, and as a first-time user you won't be prepared to implement the mitigations, none of which are suitable for ad hoc usage. The sysimage only works for us because we rarely change our packages so we can build it ahead of time in GitHub Actions.
xgdgsc•6mo ago
The tradeoff between compilation time and programmer productivity and running speed is worth it compared with using any other language. You should consider most users don' t need to build an image . They just do things in the REPL with Revise.jl (which is fast). Or use a bit of PrecompileTools.jl to get good enough startup time (which isn' t complicated if you are the code writer). Package compiling works even large and slow is a bonus. https://pypl.github.io/PYPL.html Julia still grows despite all those controversial articles for a reason.
mighmi•6mo ago
Julia may be cool, but it's not an array language in the tradition of APL.
oivey•6mo ago
Sure but neither is Mojo.
v9v•6mo ago
I've understood array language to mean "a language with focus on array processing" rather than "APL descendant". The array language comparison I found online lists Fortran, MATLAB, Julia etc. as array languages: https://github.com/codereport/array-language-comparisons
cl3misch•6mo ago
I think none of the languages in the linked article are, and that's not what it's about as sibling comments point out.
pjmlp•6mo ago
It has on some industries, keep it steady and slow, eventually more people will notice it.

https://juliahub.com/industries/case-studies

Many languages could dream to have even a third of such high profile case studies.

wolvesechoes•6mo ago
Shame that it had so many nice ideas, but everything about Julia is half-baked at best.

I like to play with it, but just it.

pklausler•6mo ago
My ideal array language is one in which array operations are function compositions, since arrays are functions. A functional view of array expressions naturally minimizes needless temporaries in most cases.

See https://github.com/llvm/llvm-project/blob/main/flang/docs/Ar....