Hacker News new | past | comments | ask | show | jobs | submit login
What’s New in Go 1.19? (carlmjohnson.net)
53 points by todsacerdoti on July 8, 2022 | hide | past | favorite | 16 comments



I wrote and operate a high throughput go service with somewhat tight memory requirements. It became impracticable to try tuning the memory footprint to avoid OOMs while balancing gc pauses with just the GOGC flag. I'm happy to say that I started using the soft memory limit shortly it landed and it's been a game changer for us.


It is ironic how Go ends up slowly adding Java features with each version, while deeming them not necessary for several releases.


They didn’t add quite as much features as Java has. Not even by a mile.


Wait until they reach Java's market size and years.

All established languages either grow features, or wither and die.


I think your assertion overlooks the role of a language's standard library.

C seems pretty much a counterexample; sure, it's added a few spec changes since ANSI C or C89, but C is essentially stable.


Only if you ignore all the compiler extensions, that everyone that doesn't care about reading the standard, thinks are part of C.

Get ready for K&R compatibility removal on C23, with improved generics, type inference and lambdas probably landing on C26.

C is actually a good example, given that it shares authors with Go, which at the time also decided to ignore what systems programming languages have been doing since 1958 outside Bell Labs.


C was barely feasible on a PDP-11, so I can forgive it a lot, but we can afford powerful languages now that CPUs are thousands of times faster while brains are pretty much the same.


What do you mean barely feasible? C is basically a slightly abstracted/elevated syntax with a particular calling convention on assembly language, and PDP-11 is just a computer (that i remember too).


I’m under the impression that the speed and memory of their PDP-11 were barely enough to run their C compiler, considering that Emacs was considered a heavyweight app and S-Algol had to target a virtual machine instead of native code.


virtual machines are native code. if you google pdp-11 C you'll get all sorts of interesting articles from 40ish years ago.


Have you heard of the “MVP then iterate” concept?


It only applies when not advocating against proven language features.


Yeah. It is extremely frustrating when a whole community of people keep telling you "you are dumb for telling us you need this feature" and then you later watch that community celebrate the addition of that feature when the narrative changes and they finally realize what the feature was actually for. (FWIW: I don't care enough about Go to know the status / history of this feature; I am just commenting on this discussion.)

One ridiculous example I remember (and which tends to surprise people who have a more limited context of the past): MySQL seriously used to have a page of their documentation dedicated to why views were a bad idea and there was a good reason why their database hadn't implemented them. Of course, they eventually realized why people wanted them, so they are both now implemented and the page telling you why you shouldn't use them is gone.


I didn't know about the anti-view sentiment. I do remember them arguing against any need of foreign keys at all, then after they implemented them poorly arguing about limiting their use as they were just "useless overhead". Full transaction safety (aka ACID) was "for banks" not the rest of us. Silently truncating input was de rigueur, blissfully accepting 'Mary had a little lamb' into an integer column happily stored 0, and handling concurrent transactions with MyISAM? Fuhgeddaboutit.

The gotchas listed here (https://sql-info.de/mysql/gotchas.html) have all now been addressed, but I still have a bitter taste from that era and avoid MySQL to this day when I can. I feel the same way about PHP despite the improvements—let's face it—the developers were forced to take. (https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/)

Together they made an unholy alliance whose ecosystem's sole reason for existence seemed to be maximizing the production of high severity CVEs.


So Go has two GC knobs now. I think it still plays to the ethos of minimalism and restraint.


Properly aligned 64 but integer types. That is _the_ feature I’m planning on using. Finally allows me to remove a custom implementation I had to write.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: