• 0 Posts
  • 384 Comments
Joined 2 years ago
cake
Cake day: June 30th, 2023

help-circle


  • It’s generally not as heavy because the layer is just reinterpreting API calls while the user code still runs natively. On a browser running JavaScript, it’s using an interpreter for every line of code. Depending on the specifics, it could be doing string processing for each operation, though it probably only does the string processing once and converts the code into something it can work with faster.

    Like if you want to add two variables, a compiled program would do it in about 4 cpu instructions, assuming it needed to be loaded from memory and saved back to memory. Or maybe 7 if everything had a layer of indirection (eg pointers).

    A scripting language needs to parse the statement (which alone will take on the order of dozens of cpu instructions, if not hundreds), then look up the variables in a map, which can be fast but not as fast as a memory load or two, then do the add, and store the result with another map lookup. Not to mention all of the type stuff being handled at run time, like figuring out what the variables are and what an add of those types even means, plus any necessary conversions. I understand that JavaScript can be compiled and that TypeScript is a thing, but the compiled code still needs to reproduce all of the same behaviour the scripting language does, so generic functions can still be more complex to handle calling and return conventions and making sure they work on all possible types that can be provided. And if they are using eval statements (or whatever it is to process dynamically generated code), then it’s back to string processing.

    Plus the UI itself is all html and css, and the JavaScript interacts with it as such, limiting optimizations that would convert it into another format for faster processing. The GPU doesn’t render HTML and CSS directly; it all needs to be processed for each update.

    For D3D to Vulkan, the GPU handles the repetitive work while any data that needs to be converted only needs to happen once per pass through the API (eg at load time).

    That browser render stuff can all be done pretty quickly on today’s hardware, so it’s generally usable, but native stuff is still orders of magnitude faster and the way proton works is much closer to native than a browser.




  • I’m never buying another Logitech device again because that problem that happened with my G7 back in the 00s still happened with my G900 in the 20s.

    With my G7, I’d open it up when it started happening, and open up the switch to re-bend the metal piece to give it some spring back. Kept doing this until one day the plastic button that presses down on that metal part fell on carpet and was gone forever.

    With my G900, I said fuck it and just bought some better mouse button switches and replaced the left mouse button. Was actually kinda glad I needed to because the battery had become a danger pillow so I replaced that, too.

    But with the button issue existing for so long and being fixed by a part that cost a trivial amount compared to what I paid in the first place, you can’t convince me that Logitech isn’t deliberately using switches that fail quickly to drive up demand for mice.










  • Grim Dawn has a similar approach. You just have a health and energy potion that goes on cooldown. No need to worry about potions for inventory management or remembering to buy them in town or checking if you need to pick some up, plus less loot clutter because of it. The potions return a % of hp/energy, so they scale with your character. And it helps with balance because now those players who do farm tons of potions so they can spam them don’t need to be considered.






  • Only watched half of the video (because it’s something I’m well aware of), so it might have gone into it, but another angle is that there’s often villains that make good points and then suddenly take it in a batshit direction.

    Like Thanos had a point but apparently never understood exponential growth and how reducing all life by any constant factor is just delaying the same result, even if his snap made 99% of people disappear (unless he snaps enough people that the population collapses entirely, which is what he wanted to avoid).

    There’s many other examples where reasonable starting points end up in unquestionably evil conclusions. Pretty sure it’s just propaganda to make people who don’t think much about things link those reasonable beginnings with “evil” in their minds.

    Also there’s characters like Bruce Wayne and Tony Stark who are billionaires but their stories always ignore the realities of what must be done in order to become a billionaire (ie underpay staff doing the actual work by billions). In Stark’s case, they sidestep that by giving him super advanced AIs and automation robots, though he’s still the owner of a large corporation, that he still benefits from despite offloading any of the responsibility of even running it to everyone else.