Readit News logoReadit News
xlii commented on Go is still not good   blog.habets.se/2025/07/Go... · Posted by u/ustad
thomashabets2 · 6 days ago
> I believe I know where it comes from […] poking at Go that it doesn't hide abstractions

Author here.

No, this is not where it comes from. I've been coding C form more than 30 years, Go for maybe 12-15, and currently prefer Rust. I enjoy C++ (yes, really) and getting all those handle-less knives to fit together.

No, my critique of Go is that it did not take the lessons learned from decades of theory, what worked and didn't work.

I don't fault Go for its leaky abstractions in slices, for example. I do fault it for creating bad abstraction APIs in the first place, handing out footguns when they are avoidable. I know to avoid the footgun of appending to slices while other slices of the same array may still be accessible elsewhere. But I think it's indefensible to have created that footgun in the year Go was created.

Live long enough, and anybody will make a silly mistake. "Just don't make a mistake" is not an option. That's why programming language APIs and syntax matters.

As for bare metal; Go manages to neither get the benefits possible of being high level, and at the same time not being suitable for bare metal.

It's a missed opportunity. Because yes, in 2007 it's not like I could have pointed to something that was strictly better for some target use cases.

xlii · 6 days ago
I don't share experience about not being suitable about bare metal. But I do have experience with high level languages doing similar things through "innovative" thinking. I've seen int overflows in Rust. I've seen libraries that waited for UDP packet to be rebroadcasted before sending another implemented in Elixir.

No Turing complete language will ever prevent people from being idiots.

It's not only programming language API and syntax. It's a conceptual complexity, which Go has very low. It's a remodeling difficulty which Rust has very high. It's implicit behavior that you get from high stack of JS/TS libraries stitched together. It's accessibility of tooling, size of the ecosystem and availability of APIs. And Golang crosses many of those checkboxes.

All the examples you've shown in your article were "huh? isn't this obvious?" to me. With your experience in C I have no idea you why you don't want to reuse same allocation multiple times and instead keeping all of them separately while reserving allocation space for possibly less than you need.

Even if you'd assume all of this should be on stack you still would crash or bleed memory through implicit allocations that exit the stack.

Add 200 of goroutines and how does that (pun intended) stack?

Is fixing those perceived footguns really a missed opportunity? Go is getting stronger every year and while it's hated by some (and I get it, some people like Rust approach better it's _fine_) it's used more and more as a mature and stable language.

Many applications don't even worry about GC. And if you're developing some critical application, pair it with Zig and enjoy cross-compilation sweetness with as bare metal as possible with all the pipes that are needed.

xlii commented on Go is still not good   blog.habets.se/2025/07/Go... · Posted by u/ustad
xlii · 6 days ago
I don't agree with most of the article but I believe I know where it comes from.

Golang's biggest shortcoming is the fact that it touches bare metal isn't visible clearly enough. It provides many high level features which makes this ambience of "we got you" but fails on delivering proper education to its users that they are going to have a dirt on their hands.

Take a slice for example: even in naming it means "part of" but in reality it's closer to "box full of pointers" what happens when you modify pointer+1? Or "two types of nil"; there is a difference between having two bytes (simplification), one of struct type and the other of address to that struct and having just a NULL - same as knowing that house doesn't exist and being confident that house exists and saying it's in the middle of the volcano beneath the ocean.

The Foo99 critique is another example. If you'd want to have not 99 loop but 10 billion loops each with mere 10 bytes you'd need 100GiB of memory just to exit it. If you'd reuse the address block you'd only use... 10 bytes.

I also recommend trying to implement lexical scope defer in C and putting them in threads. That's a big bottle of fun.

I think that it ultimately boils down to what kind of engineer one wants to be. I don't like hand holding and rather be left on my own with a rain of unit tests following my code so Go, Zig, C (from low level Languages) just works for me. Some prefer Rust or high level abstractions. That's also fine.

But IMO poking at Go that it doesn't hide abstractions is like making fun of football of being child's play because not only it doesn't have horses but also has players using legs instead of mallets.

xlii commented on Go is still not good   blog.habets.se/2025/07/Go... · Posted by u/ustad
porridgeraisin · 6 days ago
I wrote a small explainer on the typed-vs-untyped nil issue. It is one of the things that can actually bite you in production. Easy to miss it in code review.

Here's the accompanying playground: https://go.dev/play/p/Kt93xQGAiHK

If you run the code, you will see that calling read() on ControlMessage causes a panic even though there is a nil check. However, it doesn't happen for Message. See the read() implementation for Message: we need to have a nil check inside the pointer-receiver struct methods. This is the simplest solution. We have a linter for this. The ecosystem also helps, e.g protobuf generated code also has nil checks inside pointer receivers.

xlii · 6 days ago
After spending some time in lower level languages Go IMO makes much more sense. Your example:

First one - you have an address to a struct, you pass it, all good.

Second case: you set address of struct to "nil". What is nil? It's an address like anything else. Maybe it's 0x000000 or something else. At this point from memory perspective it exists, but OS will prevent you from touching anything that NULL pointer allows you to touch.

Because you don't touch ANYTHING nothing fails. It's like a deadly poison in a box you don't open.

Third example id the same as second one. You have a IMessage but it points to NULL (instead NULL pointing to deadly poison).

And in fourth, you finally open the box.

Is it magic knowledge? I don't think so, but I'm also not surprised about how you can modify data through slice passing.

IMO the biggest Go shortcoming is selling itself as a high level language, while it touches more bare metal that people are used to touch.

xlii commented on ADHD drug treatment and risk of negative events and outcomes   bmj.com/content/390/bmj-2... · Posted by u/bookofjoe
hinkley · 12 days ago
The extended release means you only have to remember to take the medication once a day instead of twice.

What we need is for these pills to be compounded the way they do opioids: the wax granules are arranged to attempt to keep you from getting a burst dose by crushing the pills. The same process that makes crushing work makes splitting not work. So if you make split pills still time release, no problem.

But not for saving pills. Some people are exquisitely sensitive to these medications and you need 25mg per day but it only comes in multiples of 10 up to 50. So you’d like to split a 50 and take 1/2 pill per day. Also the 40mg often costs only 30-40% more than the 20.

xlii · 12 days ago
One thing to keep in mind that methylphenidate is contextual and metabolic related.

Hard focus work could make it work shorter, but also some have metabolism so quick that they burn through medication. That's controlled by doctors so no worries, but I know people who take IR forms every 2 hours, and for those XR forms don't work at all (as it's like 2 complete cycles with all side effects).

xlii commented on Flipper Zero dark web firmware bypasses rolling code security   rtl-sdr.com/flipperzero-d... · Posted by u/lq9AJ8yrfs
nextlevelwizard · 20 days ago
I know this might be splitting hairs, but...

>The old approach of keyfob to unlock the car and a real key for the ignition is safer.

"Safe" feels like wrong word to use here. Safety is not same as security.

One could also argue that criminals being able to steal parked cars is safer over all for society as they then don't feel the need to car jack you while you are actually in the vehicle.

If you actually want to keep your car secure (meaning criminals wont break into it or steal it in this context) just drive old beater and do not leave anything valuable in the car or trunk. I am driving a car that is nearly as old as I am and its fighting a losing battle against rust and I have nothing more valuable than trash inside the car.

xlii · 20 days ago
If someone wants to stole the car they will steal it.

Stealing a car is not the same as stealing a candy. In Europe all parts are marked so it takes significant effort to sell or modify such cars. It's not like people steal them and then sell it at yard sales.

As for the "beaters": shortly after Russian invasion on Ukraine plenty of cars were stolen in Poland. Not the expensive kind but usually 10-30 years old cars with big and reliable engines (V6, V8). I know 6 people that had Jeeps Grand Cherokee stolen (different generations).

My uncle wanted to renovate Isuzu Rodeo with completely rusty frame but V6 engine of a value of like 300€ and it was stolen too.

And it happened ~1 month after it started.

xlii commented on Ask HN: Have you ever regretted open-sourcing something?    · Posted by u/paulwilsonn
erulabs · 22 days ago
When I was ~14 I open sourced a script to autoconfigure X11's xrandr. It was pretty lousy, had several bugs. I mentioned it on a KDE mailing list and a KDE core contributor told me it was embarrassing code and to kill myself. I took it pretty hard and didn't contribute to KDE or X11 ever again, probably took me about a year to build up the desire to code again.

Everything else I've open-sourced has gone pretty well, comparatively.

xlii · 22 days ago
Ehh.

When people reminisce about "the old internet" they tend to forget how hostile it was.

Being devils advocate it wasn't common for young people to engage in the activity but harsh and unfair critic was happening often.

It still exists today, but in much smaller scale than back then.

xlii commented on The Big Oops in type systems: This problem extends to FP as well   danieltan.weblog.lol/2025... · Posted by u/ksymph
xlii · 25 days ago
I agree with the article. I was trying to statically type event calculus in OCaml and didn't found any sustainable way to implement it.

In order to even get a piece of system tracking the amount of boilerplate was enormous.

It won't help in delivering complex logic and might even be a costly mistake. E.g. if exploratory attempt costs 3 days of refactoring to implement and then it uncovers unexpected behavior those 3 days on type adjustment is just time lost.

Today seeing many complicated systems in both non-static typed and strongly typed languages I have opinion that's only matter of preference. Dragons live everywhere.

xlii commented on Why leather is best motorcycle protection [video]   youtube.com/watch?v=xwuRU... · Posted by u/lifeisstillgood
adzm · a month ago
In my experience, working with plastic surgery offices will certainly impact your desire to get a motorcycle. Wear helmets and gear up, everyone.

Also this is a truly well done video. Entertaining, week executed, witty dialogue.

xlii · a month ago
Isn't it true for every occupation that deals with the falloff of any activity?

E.g. https://www.lemonde.fr/en/international/article/2024/01/19/s...

xlii commented on Our Farewell from Google Play   secuso.aifb.kit.edu/engli... · Posted by u/shakna
rpdillon · a month ago
I've attempted to make this point to proponents of the walled gardens as a real benefit they are losing. There are app developers that just want to make useful stuff and share it. But Play (and the App Store) are completely designed around developers that are trying to make a living there (because that's how Google/Apple make money off the store). As such, the stores are quite hostile to community built software that changes rarely. This is a real loss, as I think that software is often the best available for a given purpose due to simplicity, privacy, and longevity.

So glad I have F-Droid!

xlii · a month ago
As a counter point - I just downloaded Canabalt from Apple Store, that wasn't updated in 7 years and it works just fine. The oldest app I found (that still had App page) are 10 years old without updates and I see many released in 2011 that I can download but doesn't have app page anymore.

My point is that one cannot make an argument over bad implementation. E.g. Sony is known for pulling down games or even stores for older devices whereas Steam allow people to download games bought decades ago.

xlii commented on Ergonomic keyboarding with the Svalboard: a half-year retrospective   twey.io/hci/svalboard/... · Posted by u/Twey
earthicus · a month ago
I recently started learning the piano as an adult, and from what i've gathered from reading and watching videos, the 'folk wisdom' about how to avoid rsi-type injuries is to minimize tension in your wrist by maximizing relaxation of your fingers and wrists (especially the thumbs, which tend to get locked into a permanent state of mild tension on the piano keyboard). So you want to do your best to develop more finger independence, so that you can press with one finger while keeping the neighboring fingers relaxed. It's really hard.
xlii · a month ago
If you can I'd recommend getting piano teacher and live lessons. I got one and improvement in posture was a biggest gain I got. That and some cultural push (e.g. there's no wrong music, only the music someone doesn't like, or put piano next to window to learn to not watch on own hands).

u/xlii

KarmaCake day2135August 23, 2017
About
https://xlii.space
View Original