frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

SectorC: A C Compiler in 512 bytes

https://xorvoid.com/sectorc.html
98•valyala•4h ago•16 comments

The F Word

http://muratbuffalo.blogspot.com/2026/02/friction.html
43•zdw•3d ago•11 comments

Brookhaven Lab's RHIC concludes 25-year run with final collisions

https://www.hpcwire.com/off-the-wire/brookhaven-labs-rhic-concludes-25-year-run-with-final-collis...
23•gnufx•2h ago•19 comments

Speed up responses with fast mode

https://code.claude.com/docs/en/fast-mode
56•surprisetalk•3h ago•54 comments

Software factories and the agentic moment

https://factory.strongdm.ai/
98•mellosouls•6h ago•176 comments

Hoot: Scheme on WebAssembly

https://www.spritely.institute/hoot/
144•AlexeyBrin•9h ago•26 comments

Stories from 25 Years of Software Development

https://susam.net/twenty-five-years-of-computing.html
101•vinhnx•7h ago•13 comments

OpenCiv3: Open-source, cross-platform reimagining of Civilization III

https://openciv3.org/
851•klaussilveira•1d ago•258 comments

I write games in C (yes, C)

https://jonathanwhiting.com/writing/blog/games_in_c/
139•valyala•4h ago•109 comments

First Proof

https://arxiv.org/abs/2602.05192
68•samasblack•6h ago•52 comments

The Waymo World Model

https://waymo.com/blog/2026/02/the-waymo-world-model-a-new-frontier-for-autonomous-driving-simula...
1093•xnx•1d ago•618 comments

Show HN: A luma dependent chroma compression algorithm (image compression)

https://www.bitsnbites.eu/a-spatial-domain-variable-block-size-luma-dependent-chroma-compression-...
7•mbitsnbites•3d ago•0 comments

Al Lowe on model trains, funny deaths and working with Disney

https://spillhistorie.no/2026/02/06/interview-with-sierra-veteran-al-lowe/
64•thelok•6h ago•10 comments

Vocal Guide – belt sing without killing yourself

https://jesperordrup.github.io/vocal-guide/
235•jesperordrup•14h ago•80 comments

Start all of your commands with a comma (2009)

https://rhodesmill.org/brandon/2009/commands-with-comma/
519•theblazehen•3d ago•191 comments

Reinforcement Learning from Human Feedback

https://rlhfbook.com/
94•onurkanbkrc•9h ago•5 comments

Show HN: I saw this cool navigation reveal, so I made a simple HTML+CSS version

https://github.com/Momciloo/fun-with-clip-path
31•momciloo•4h ago•5 comments

Selection Rather Than Prediction

https://voratiq.com/blog/selection-rather-than-prediction/
13•languid-photic•3d ago•4 comments

Coding agents have replaced every framework I used

https://blog.alaindichiappari.dev/p/software-engineering-is-back
259•alainrk•8h ago•425 comments

A Fresh Look at IBM 3270 Information Display System

https://www.rs-online.com/designspark/a-fresh-look-at-ibm-3270-information-display-system
49•rbanffy•4d ago•9 comments

The AI boom is causing shortages everywhere else

https://www.washingtonpost.com/technology/2026/02/07/ai-spending-economy-shortages/
187•1vuio0pswjnm7•10h ago•267 comments

France's homegrown open source online office suite

https://github.com/suitenumerique
615•nar001•8h ago•272 comments

72M Points of Interest

https://tech.marksblogg.com/overture-places-pois.html
36•marklit•5d ago•6 comments

We mourn our craft

https://nolanlawson.com/2026/02/07/we-mourn-our-craft/
348•ColinWright•3h ago•414 comments

Unseen Footage of Atari Battlezone Arcade Cabinet Production

https://arcadeblogger.com/2026/02/02/unseen-footage-of-atari-battlezone-cabinet-production/
125•videotopia•4d ago•39 comments

Where did all the starships go?

https://www.datawrapper.de/blog/science-fiction-decline
99•speckx•4d ago•117 comments

Show HN: Kappal – CLI to Run Docker Compose YML on Kubernetes for Local Dev

https://github.com/sandys/kappal
33•sandGorgon•2d ago•15 comments

Learning from context is harder than we thought

https://hy.tencent.com/research/100025?langVersion=en
211•limoce•4d ago•119 comments

Show HN: Look Ma, No Linux: Shell, App Installer, Vi, Cc on ESP32-S3 / BreezyBox

https://github.com/valdanylchuk/breezydemo
288•isitcontent•1d ago•38 comments

History and Timeline of the Proco Rat Pedal (2021)

https://web.archive.org/web/20211030011207/https://thejhsshow.com/articles/history-and-timeline-o...
20•brudgers•5d ago•5 comments
Open in hackernews

What's the difference between named functions and arrow functions in JavaScript?

https://jrsinclair.com/articles/2025/whats-the-difference-between-named-functions-and-arrow-functions/
46•jrsinclair•7mo ago

Comments

comrade1234•7mo ago
JavaScript used to be a nice prototype based programming language...

Anyway, I'm more interested in how this site is being published. I'm on iOS and in vertical format words are cutoff with dashes properly for that format and when I switch to landscape other words are cut off that fit that format.

Is this some simple css attribute I missed completely?

test1235•7mo ago
css hyphens?

https://developer.mozilla.org/en-US/docs/Web/CSS/hyphens

comrade1234•7mo ago
I totally missed that. :) as long as the browser has a hyphenation dictionary for the language being used it will work.
moritzwarhier•7mo ago
> JavaScript used to be a nice prototype based programming language

"this" binding depending on the call site never made sense to me. Why do you think it became worse with arrow functions and Function.prototype.bind?

In case I'm not misunderstanding you. Tbh I haven't read the article so I'm only responding to your first sentence, since the CSS hyphens thing has been cleared up already.

By the way, CSS hyphens have been my most-wanted feature ever when I was working for a web design agency. So glad to see it gain traction over the years.

There are JS libraries for this, and of course they cause ugly page reflow and/or overhead.

Prime example of what should be in the CSS domain, and such a frequent problem when putting real content into design templates.

WorldMaker•7mo ago
To be fair, most of these complaints about functions in JS are because its roots are still a nice prototype-based programming language and the `class` syntax sugar implies class-oriented things that JS doesn't deliver and confuses prototype-oriented features as class-oriented bugs. You can still use them as features, though we are getting close to the point where using them as features is an art form for arcane wizards that will make many, many JS users scream in terror and confusion.
fitsumbelay•7mo ago
one of my favorite JS bloggers, love his deep dives
JoeOfTexas•7mo ago
There is a bit more nuance in using `this` in a named function that wasn't covered. Named functions defined in classes are scoped outside of the class, meaning they are not bound to the class. To use `this` in your named function, you usually have to bind it in the constructor using `this.functionName.bind(this)`

Arrow functions defined within a class are scoped and bound to the class automatically. Hence, arrow functions do not require calling the .bind in constructor, and you can happily use `this` inside arrow functions.

moritzwarhier•7mo ago
The article misses even more nuance, independent from classes.

If you define

  const o = { a: "Hello", b() { return this.a;} }
then

  o.a()

will return "Hello"

while

  const b = o.b; // not a.b ...
  b();

will throw an error.

This predates generator functions and classes (which are only syntax sugar AFAIK).

And it seems like a glaring omission giving the submission title.

I'm ashamed though if it's in there and I missed it.

The behavior is called "late binding".

WorldMaker•7mo ago
Late binding is also what the above poster is complaining about and they mention the habit some have in class constructors for "early binding" to try to avoid it.
moritzwarhier•7mo ago
Thanks for explaining, maybe I was missing the point there.

I was replying with this because it happens without using the "class" keyword (or "constructor") at all.

Not sure what you mean with the class constructor thing, but that's on me. I still don't understand these properly:

> Named functions defined in classes are scoped outside of the class, meaning they are not bound to the class

> the habit some have in class constructors for "early binding" to try to avoid it.

You mean using sth like

  this.a = //...
in the constructor, using arrow functions?

I guess I'm missing something here.

That can also be done after the class was declared? The class keyword is only syntax sugar.

Anyway, I might be missing something important here.

That's why I brought up an example using an object literal, which has the prototype

  Object.prototype
Try it:

  const a = {};
  console.log(Object.getPrototypeOf(a) === Object.prototype); // logs "true"
These shenanigans are why I sometimes hate JS, but also agree that we should aim to understand the basics first.

I love MDN for that.

https://developer.mozilla.org/en-US/docs/Learn_web_developme...

WorldMaker•7mo ago
The `class` keyword is as much "just" syntax sugar for stuff you can do without the `class` keyword. The behaviors are the same.

Late binding happens whether or not the function is a part of the Object's prototype chain or directly attached. JS is built so that's all mostly the same thing. That's why late binding exists. Maybe you copy a function from one prototype to another to create a new sort of prototype with a bit of "code-sharing", which is the same if you want to copy a function directly from one object to another. You want that function to work in all these cases, you don't want to redefine the function explicitly for a different kind of prototype or a different kind of object, you want to pick up what it is bound to by how it is called (thus late binding). Late binding is an ancient feature of JS that feels like a bug if you think `class` works like it does in OO languages like C++ or Java or C#. Late binding feels like a bug if you think of an Object's prototype as being a strongly formed contract and not a runtime object that itself can change at any time, or can be used as a lego brick to construct other types of objects and code-sharing beyond traditional class-based OOP "inheritance" models.

The difference between a "regular object" and thing constructed from a `class` in JS is effectively nonexistent. It's the same stuff, just a few syntax niceties. (In the old days, it was a lot harder to build a clean prototype, `class` makes it a lot cleaner. But that's all it does, it makes it cleaner to write, but under the hood it is entirely the same as it was.)

> in the constructor, using arrow functions?

The example above was the related but similar thing of doing `this.a = this.a.bind(this)` in a class constructor. It's very similar to using `this.a = () => …` arrow functions to early bind `this`. (Assigning a function to itself in a constructor with a `bind()` is also an idiom pattern that predates arrow functions and class syntax. Constructors predate class syntax, but they used to look a lot different. You can still write that form of constructor if you want, but class syntax is a lot cleaner.)

Late binding is an old feature that feels like a bug today, so a lot of people work very hard to early bind functions or only ever use arrow functions because they don't trust late binding.

moritzwarhier•7mo ago
Thank you for responding!

Yes, I think we are on the same page. I did not want to include "legacy" prototype-based inheritance examples because I'm on a phone and didn't want to make complexity explode here.

Also I made a weird statement here:

> That can also be done after the class was declared?

That doesn't make much sense for binding "this" to the class that was declared, I wsd mixing up arrow function class properties inside the class declaration with adding prototype properties (which is exactly what one doesn't want for classes with many instances).

In the scope of the class declaration, all methods of adding methods to the prototype are awkward, I guess.

Regarding the "early-binding" using .bind or arrow functions in constructor, I see your points, and it's the subtle and hard-to-explain differences that are really annoying.

JS really requires some discipline and sticking to a pit of success, while it's still essential to know the basics.

> Late binding is an old feature that feels like a bug today, so a lot of people work very hard to early bind functions or only ever use arrow functions because they don't trust late binding

Yes, that's what I was going at, thanks for making clear the difference between arrow functions (lexical scoping) and using `bind` (arbitrarily fixed "this").

I was lately (no pun!! really coincidence, it just wasn't only recently) using late binding with object literals in tests with Jest and TS and had to ignore TS there, it's pretty much the major reason I'm commenting here. It was convenient and succinct for a mock object implementing an interface otherwise used by class instances to use late binding.

postalrat•7mo ago
Of course it's an error. 'a' isn't defined.
moritzwarhier•7mo ago
Lol, thanks, edited
fud101•7mo ago
I appreciate the article but I was waiting for Monads to appear.
nayuki•7mo ago
> Somewhat confusingly, we can also give our function expression a name. One that’s separate from the variable name [...] This throws an error. If we can’t use that name, then what’s the point of it? Well, takeyWhiley will show up if we throw an error in our code.

There is another reason: If you give a name to a function expression, the function can directly recurse on itself without the use of combinators. For example:

  const factorial = function fact(n) {
      if (n == 0)
          return 1;
      else
          return n * fact(n - 1);
  };
Ashkee•7mo ago
Named functions give you a clear function name which helps in debugging and recursion. For simpler syntax and capturing the surrounding context, arrow functions are handy. You might want to explore MailsAI for organizing your JavaScript code snippets efficiently, it made my workflow smoother.