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

help-circle





  • Sure, I didn’t claim that the bad ecosystem makes the language as such bad (although it is still bad, for other reasons). It’s just an additional disadvantage of developing software on the Java platform.

    That said, I do think some of the bad code out there is an effect of trying to work around flaws or missing features in the language. Libraries like Spring add an additional configuration layer that is practically like an additional language on top of the base language. Instead of coding Java, you’re coding Bean configurations and filter chains. Unfortunately all of that comes without useful debugging tools, so you’re left scratching your head why the system isn’t doing what you want. Log4J is another such complex configuration system that - unfortunately - customers are encouraged to change themselves which leads to confusing failure modes and insufficient user interfaces.


  • Well it’s always about finding a good balance isn’t it. Too many features like in C++ has negative consequences. Preferably you want something that lets you do all that you need to do, but not more. The trick to designing a good language is to let developers achieve as much as possible with as few features as possible, while keeping the code easy to reason about and understand.

    This is obviously both subjective and highly dependent on what problem you are trying to solve, but I can’t think of any situation in my career where C# would not have been a better a choice than Java from a strictly technical perspective. It’s not just that the C# language is better, it’s that the Java ecosystem is founded on poor design choices that result in code bloat and implicit behavior that is hard to troubleshoot and secure. See e.g. Spring, which automatically picks up and loads any logging library that happens to be in the user’s path, even if that is an exploitable version of log4J. Java has become corrupted by enterprise architects. This satirical project demonstrates what I mean.

    I say this as someone who is currently developing a FOSS Java library in my spare time, out of frustration with the Java code I had to endure at work.




  • It’s not that simple. Proton implements the Windows API functions required to run a Windows game on x64-based Linux, but it’s not a CPU emulator. Emulating x64 on ARM at the speeds required by a game is virtually impossible.

    If Steam comes to ARM / Android, it would have to be a whole separate ecosystem of games. But Valve is late to the game there since we already have several players on that market, not least the standard Google Play Store.






  • tias@discuss.tchncs.detoProgramming@programming.devGit without a forge
    link
    fedilink
    arrow-up
    4
    arrow-down
    1
    ·
    edit-2
    2 months ago

    Saying it’s “an interesting idea” makes it sound as if git wasn’t intended to be used like this from the start. But it was intentionally designed to allow posting patches to the Linux kernel mailing lists. It even has commands for producing email directly from the command line.

    Sites like GitHub are the “idea”.




  • I actually haven’t used an ad blocker in a very long time. I block third-party cookies and trackers, and disturbingly that seems to prevent almost all advertising from working. In fact I frequently get told by sites to turn off my ad blocker, which is impossible since there’s nothing to turn off.

    My bigger problem is that these browsers have no good built-in way to clean out the “IndexedDB”, “Service Worker”, “File System” and “Local Storage” directories in my profile. They are essentially frankenstein cookies without expiration date so they keep accumulating. I use the “Cookie AutoDelete” extension for cleaning them up, but it looks like that will stop working with Manifest V3. Once that happens I’m switching back to Firefox or some other browser that gives me enough control to avoid being tracked, and to save 10+ GB of disk space.