frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Lisp: Notes on its Past and Future (1980)

https://www-formal.stanford.edu/jmc/lisp20th/lisp20th.html
37•birdculture•1h ago•19 comments

'This is the big one' – tech firms bet on electrifying rail

https://www.bbc.com/news/articles/czdjg92y00no
24•mikhael•49m ago•4 comments

Using FreeBSD to make self-hosting fun again

https://jsteuernagel.de/posts/using-freebsd-to-make-self-hosting-fun-again/
74•todsacerdoti•9h ago•9 comments

Reproducing the AWS Outage Race Condition with a Model Checker

https://wyounas.github.io/aws/concurrency/2025/10/30/reproducing-the-aws-outage-race-condition-wi...
42•simplegeek•2h ago•2 comments

Linux gamers on Steam cross over the 3% mark

https://www.gamingonlinux.com/2025/11/linux-gamers-on-steam-finally-cross-over-the-3-mark/
193•haunter•1h ago•100 comments

Why don't you use dependent types?

https://lawrencecpaulson.github.io//2025/11/02/Why-not-dependent.html
131•baruchel•5h ago•39 comments

Tongyi DeepResearch – open-source 30B MoE Model that rivals OpenAI DeepResearch

https://tongyi-agent.github.io/blog/introducing-tongyi-deep-research/
187•meander_water•9h ago•67 comments

Anti-cybercrime laws are being weaponized to repress journalism

https://www.cjr.org/analysis/nigeria-pakistan-jordan-cybercrime-laws-journalism.php
126•giuliomagnifico•2h ago•32 comments

Is Your Bluetooth Chip Leaking Secrets via RF Signals?

https://www.semanticscholar.org/paper/Is-Your-Bluetooth-Chip-Leaking-Secrets-via-RF-Ji-Dubrova/c1...
28•transpute•2h ago•4 comments

Printed circuit board substrates derived from lignocellulose nanofibrils

https://www.nature.com/articles/s41598-025-91653-1
15•PaulHoule•6d ago•5 comments

URLs are state containers

https://alfy.blog/2025/10/31/your-url-is-your-state.html
267•thm•9h ago•125 comments

X.org Security Advisory: multiple security issues X.Org X server and Xwayland

https://lists.x.org/archives/xorg-announce/2025-October/003635.html
94•birdculture•7h ago•45 comments

Solar-powered QR reading postboxes being rolled out across UK

https://www.bbc.co.uk/news/articles/cgln72rgrero
5•thinkingemote•4d ago•2 comments

Autodesk's John Walker Explained HP and IBM in 1991 (2015)

https://www.cringely.com/2015/06/03/autodesks-john-walker-explained-hp-and-ibm-in-1991/
90•suioir•4d ago•52 comments

Notes by djb on using Fil-C

https://cr.yp.to/2025/fil-c.html
252•transpute•15h ago•142 comments

Writing FreeDOS Programs in C

https://www.freedos.org/books/cprogramming/
64•AlexeyBrin•7h ago•23 comments

At the end you use Git bisect

https://kevin3010.github.io/git/2025/11/02/At-the-end-you-use-git-bisect.html
111•_spaceatom•3h ago•98 comments

Backpropagation is a leaky abstraction (2016)

https://karpathy.medium.com/yes-you-should-understand-backprop-e2f06eab496b
266•swatson741•15h ago•115 comments

Mock – An API creation and testing utility: Examples

https://dhuan.github.io/mock/latest/examples.html
102•dhuan_•9h ago•17 comments

Rats filmed snatching bats from air

https://www.science.org/content/article/rats-filmed-snatching-bats-air-first-time
92•XzetaU8•5d ago•50 comments

New South Korean national law will turn large parking lots into solar farms

https://electrek.co/2025/11/02/new-national-law-will-turn-large-parking-lots-into-solar-power-farms/
118•thelastgallon•5h ago•100 comments

MTurk is 20 years old today – what did you create with it?

11•csmoak•50m ago•2 comments

Visopsys: OS maintained by a single developer since 1997

https://visopsys.org/
438•kome•22h ago•114 comments

Go Primitive in Java, or Go in a Box

https://donraab.medium.com/go-primitive-in-java-or-go-in-a-box-c26f5c6d7574
61•ingve•1w ago•29 comments

OpenBSD 7.8 Highlights

https://rsadowski.de/posts/2025/openbsd-78/
52•zdw•1w ago•6 comments

Claude Code can debug low-level cryptography

https://words.filippo.io/claude-debugging/
422•Bogdanp•1d ago•194 comments

Welcome to hell; please drive carefully

https://2earth.github.io/website/20251026.html
74•2earth•5d ago•24 comments

React-Native-Godot

https://github.com/borndotcom/react-native-godot
8•Noghartt•2h ago•1 comments

When O3 is 2x slower than O2

https://cat-solstice.github.io/test-pqueue/
89•keyle•4d ago•83 comments

Updated practice for review articles and position papers in ArXiv CS category

https://blog.arxiv.org/2025/10/31/attention-authors-updated-practice-for-review-articles-and-posi...
481•dw64•1d ago•228 comments
Open in hackernews

Go Primitive in Java, or Go in a Box

https://donraab.medium.com/go-primitive-in-java-or-go-in-a-box-c26f5c6d7574
61•ingve•1w ago

Comments

gethly•7h ago
FYI this has nothing to do with the Go language :)
jonhohle•7h ago
Thr article doesn’t mention GNU Trove, which has addressed this use case. Trove has been around so long it’s homepage is still on Soureforge.
rzzzt•7h ago
I have a few more primitive collection libraries in my bag if someone would like to shop around:

- PCJ: https://pcj.sourceforge.net/

- fastutil: https://github.com/vigna/fastutil

- HPPC: https://labs.carrotsearch.com/hppc.html

PCJ was last updated in 2003 and is now quite long in the tooth though.

clanky•5h ago
Thanks, I've mostly used fastutil lately because it seems to be best maintained. I'll have to look at carrotsearch labs though, I like the approach of a clean break with java.util.collections.*.

The Agrona Java library from the Aeron people has some primitive optimized collections too: https://github.com/aeron-io/agrona

nchmy•7h ago
Am I wrong to have expected this to be about using Golang in Java, in some way?
floodfx•7h ago
Had same expectation and read through half the article before realizing it was not Golang related.
henvic•6h ago
Go, not Golang.
wavelen•5h ago
Golang is called Go, though. "The Go Programming Language". So I see how in a programming-related blog post people can get confused by the word Go.
c2xlZXB5Cg1•5h ago
Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo

https://en.wikipedia.org/wiki/Buffalo_buffalo_Buffalo_buffal...

AtlasBarfed•5h ago
It's a stupid language name. You are correct.

I look forward to my next programming language ,"the"

itronitron•34m ago
I think you could get more attention to it by calling it "Al", short for "A language"
p2detar•1h ago
I guess the title is confusing to non-native speakers, especially the part after the comma.
itronitron•39m ago
It's especially confusing for native English speakers because 'go' should only be capitalized when it's the first word in the sentence or being used as the name of something (such as the Go programming language)

And it's also confusing why people keep posting walled off articles on HN.

wjholden•5h ago
Year ago I wrote a very simple SAT solver in Java. I initially used List but later primitive arrays to represent my formulas and clauses. The change made a modest and measurable difference, but I agree with the author's suggestion that if you don't already care about the difference in boxed and primitive performance then you're likely fine using the standard Java collections.
clanky•5h ago
Looking forward to when Valhalla and generics specialization obviates these concerns -- but, every time I watch a presentation by Remi Forax he makes a joke or remark about what a hard problem it is and how long it will take. (Hope this doesn't get him in trouble!) https://youtu.be/JI09cs2yUgY?si=WBiXRpnir9HhNNfK
marginalia_nu•4h ago
> I could show you benchmarks and memory savings of using primitive collections instead of boxed collections. If you need to see these to be convinced of the benefits of primitive collection support in Java, then you probably don’t need support for primitive collections in Java. No need to read any further. Please accept this complimentary set of eight boxes for your collection travels.

This is intellectually lazy. The performance characteristics of boxed vs unboxed primitives isn't forbidden knowledge from the necronomicon that only the select few are ready to partake in. Even if you think it's obvious, if you can back up an argument, go back up that argument. It makes your case stronger, it shows you know what you are talking about.

If not for other people, do it for yourself. Things that are too obvious to bother checking is generally where we're most likely to be wrong about things. This is true in life in general but it's especially true with the JVM and it's continuously evolving performance characteristics.

vlovich123•3h ago
I can believe it’s less of an issue for primitive smaller than long/double where the boxing/unboxing can be hidden through tagged values. But long and double specifically will always end up larger and slower. But the JVM doesn’t do this - instead it caches boxed representations of -128 to 128, true and false. This means any collection of not Boolean and not short/char will inherently at least use much more ram and have overhead accessing it.
marginalia_nu•49m ago
That's a good start that explains some of the memory overhead (along with the sizable Java object header), but we also need to take into account memory locality to explain why this is so much slower.

Main memory access is at worst case order of 100x slower than a cached read. With boxed primitives you very often looking and main memory access, whereas naked primitives can (when the planets align) amount to cached memory access.

cyberax•2m ago
Tagged pointers don't buy as much performance as you'd expect in Java. That's because the JVM is highly multithreaded, and the Java memory model guarantees memory safety (unlike in Go, for example). So every pointer load from RAM will need a check for the tag bits. And you end up with your code full of branches.

From practical experience, JVMs have had an option to use compressed pointers for inner fields for two decades ( https://wiki.openjdk.org/display/HotSpot/CompressedOops ). It saves a bit of RAM, but often results in slower code.

More recently, the new ZGC collector started using colored pointers, there's a good presentation about it: https://inside.java/2025/10/06/jvmls-zgc-colored-pointers/ It's also been a mixed bag, performance-wise.

jbellis•3h ago
This is extremely well trodden ground, and he's right. The world doesn't need him to spend time explaining that water is wet.
msgilligan•3h ago
And I think he's also acknowledging that not everybody has an application that needs these performance optimizations.
citizenpaul•37m ago
I have an unpopular opinion. I simply do not read anything on medium anymore. I in fact have a ublock rule that blocks the site so I do not accidentally go there or give them traffic anymore.

I saw go in the title so I just checked the HN comments first.

brabel•4h ago
> Maybe you can afford to wait for Project Valhalla to arrive and finally build the applications and libraries you really want to build

Or just use one of many languages that support generics over primitive types right now?! I get it, I also write Java but if some application would benefit greatly from some feature another language has, I don’t really think too much about it. Having a few languages under your belt is really good, and most companies these days know that and have at least a couple of “approved” languages. People normally can learn a new language fairly quickly. With AI now it’s easier than ever.

clanky•4h ago
It's not really possible to switch to another language without giving up one or more of:

- Free, high quality concurrent GC

- Advanced JIT with best-in-class runtime optimization of dynamic dispatch and virtual methods

- Depth of the Java ecosystem and tooling

I've written some fairly large applications where I dropped in these primitive-specialized collections when needed, it really presented no issues and was quite a bit simpler than a leap to an entirely new language and runtime. They can be composed fairly easily into AoS style data structures.

To be honest the bigger headache from the current lack of value types comes from not being able to work with more involved temporary objects without the JIT giving up on escape analysis and putting them on the heap, which requires putting hacky approximations of out params in local fields. I'm optimistic this is going to be one of the earlier optimizations delivered by Valhalla.

pron•2h ago
You can start trying the first part of Project Valhalla today (with a ready-made JDK build): https://inside.java/2025/10/27/try-jep-401-value-classes/

No specialised generics at first, and this "beta" Early Access flattens only tiny objects on the heap, but changes to both will come later. Most of the foundation is there.

tofflos•2h ago
Eclipse Collections also comes with an API that seems nicer than the one provided by the standard library - so it might be worth checking out even if you're not interested in primitives.
aatd86•1h ago
And here I was, wondering if it was about embedding go in a java program... ahah.
Sharlin•1h ago
> For better or worse, we’ve had them in Java for over 30 years.

Just in case someone wants to feel old. C was younger when Java 1.0 was launched than Java is now.

itronitron•25m ago
Also worth mentioning the Cern Colt API...

https://dst.lbl.gov/ACSSoftware/colt/

https://en.wikipedia.org/wiki/Colt_(libraries)

https://link.springer.com/chapter/10.1007/978-1-4302-0854-9_...