5 ms·
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 OO
by stlava 4y ago
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.
- pjmlp 4y agoIt is ironic how Go ends up slowly adding Java features with each version, while deeming them not necessary for several releases.
- YesThatTom2 4y agoHave you heard of the “MVP then iterate” concept?
- pjmlp 4y agoIt only applies when not advocating against proven language features.
- saurik 4y agoYeah. 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.
- feffe 4y agoSo Go has two GC knobs now. I think it still plays to the ethos of minimalism and restraint.
- ttfkam 4y agoI 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 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/ 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.
- rastignack 4y agoThey didn’t add quite as much features as Java has. Not even by a mile.
- pjmlp 4y agoWait until they reach Java's market size and years. All established languages either grow features, or wither and die.
- jjtheblunt 4y agoI 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.
- pjmlp 4y agoOnly 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.
- erik_seaberg 4y agoC 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.
- jjtheblunt 4y agoWhat 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).