StillBored
Joined 12 years ago
Joined 12 years ago
And the realization really is that Andrew Kelley's rant about go/rust/c, is answered by Pascal, which really is a "better C". Sure its verbose, but that I think is really a strong point in the end. Everyone has autocomplete editors and actually typing "begin end" instead of "{ }" is something your editor can be inserting automatically.
Also, calling windows API's was incredibly simple with delphi although almost unneeded, but the stdcall/cdecl decoration told the compiler to use C calling conventions instead of pascal.
(but its also displayed in the pcie PowerLimit capabilities you can see with lspci)
I've considered it just based on that basis for the last 10 years but still haven't done it because I don't know a single person who has.
Then the argument about "but we have to pull more cable to guarantee those speeds" or "It consumes to much power" all go away, and instead the analog side gets a bit more complex, but given the $100+ phy's in 10GbaseT the argument that it drives cost is bogus when triband Wifi7 USB nic's are $30.
I was shocked years ago that the mac, famous for its early network peer discovery and zeroconf and all, couldn't present a list of SMB servers and shares despite that kind of function being around forever on every other platform in existence.
But at the same time, we have to stop pretending that 1Gbit Ethernet isn't utterly obsolete in the same way that RS-232 is. Useful maybe for low power, longish reach, but its slower than a good number of internet connections now, and the wifi on the other end too.
Ex: My house, turns out the 1Gbit uplink from the ISP provided hardware to my firewall was causing me to lose 300MB because it was actually provisioned at 1.3Gbit, and when I switched it to 5Gbit, my Wifi got faster.. Ex, I can get in excess of 1Gbit in about 2/3rds of my house now to sites on the internet.
1GbaseT is 27 year old technology this year, 10GbaseT is 20 this year, and by any other computing metric should be obsolete too since there has been a 25GbaseT spec for 10 years that no one has bothered to manufacture. And here in 2026, double or more should be easy with modern phy technology, and with proper line quality could easily be all of dynamic power, dynamic length and dynamic speeds over a range of cable types and length, both running at lower power and higher performance.
But at the same time, this isn't just a Firefox issue, although they may be worse than most. Its a fundamental tenant of GC languages. You trade CPU (for the garbage collection) for RAM utilization. IIRC This was apparent by the late 70s with Dijkstra, but very clearly indicated in say Hertz where they are explicitly scaling GC overhead vs memory footprint to find that it takes ~5x the ram to approach the efficiency of an explicit allocate/deallocate model. Lower footprints are achievable but the GC overhead goes way up just to reach 2x the ram footprint such that the GC tends to dominate the CPU utilization.
And there are lots of papers like this for long running processes. GC works well if your model is basically allocate as much as you like, exit the process before actually needing to do a proper GC pass. Especially for contended systems where the memory is returned to the OS. This is why say PHP tended not to have this problem, because the memory was largely freed at the end of every request.