• 0 Posts
  • 108 Comments
Joined 3 years ago
cake
Cake day: June 14th, 2023

help-circle



  • Swift is a modern language that offers good performance paired with a lot of safety features you’d otherwise go to Rust for (type safety, memory safety, concurrency safety,… although memory safety based on ARC is slower than Rust’s approach, and Swift makes it easier to disable safety features). Personally I like it more than Rust because the syntax is a bit cleaner and it has exceptions.

    The problem is, using it on e.g. Linux is a completely different experience from using it on Apple platforms and it doesn’t really transfer over. Apple devs will use Xcode and all the Apple tooling and will get used to Apple APIs. On Linux you don’t have Xcode, you rely more on Swift Package Manager for dependencies than on Apple platforms, you suddenly have to learn what part of the libraries you’ve been using are Swift standard library and what parts are Apple only or are from the Objective C runtime that’s not used on Linux, and the ecosystem is much smaller.

    A lot of things that also mean that code written for Apple doesn’t often work on Linux unchanged, not because of Swift as such, but e.g. before Swift had Regex you’d use the one from Objective C, which just works on Apple, but isn’t there on Linux.

    I haven’t tried it for Android development but I imagine it’ll have similar issues.









  • Dynamic swap and zswap aren’t really the same as efficient ram usage it’s just good ways to mitigate when you run out.

    I disagree. If the OS automatically identifies unneeded pages and compresses them or swaps them out, it’s certainly using the physical memory more efficiently than if it wasn’t doing these things.

    avoiding multiple versions of the same library is what distros exist for

    But they can’t if the applications they want to ship don’t all use the same version. E.g. Ubuntu ships GTK 2, 3, and 4. Arch even still ships GTK 1 in addition to these three.

    avoiding loading different frameworks is what Desktop Environments are for

    What happens is you run KDE but then you still want to run Firefox so you still need GTK.


  • There are some advantages macOS can have but it depends on usage patterns and user knowledge:

    • You don’t have to configure swap on macOS, while on Linux you can get into a situation where e.g. at install time you set up some default 2 GB swap but then it’s not enough and you don’t know that’s a thing that can be changed.
    • You don’t have to configure compression for RAM or swap on macOS; on Linux you often have to know you can set up zram/zswap if you want it. Compression can make a huge difference for users that switch between memory heavy applications as long as they don’t literally switch every 5 seconds.
    • On macOS, applications generally use the same frameworks e.g. for UI (because there is not much choice), and they can be loaded once and shared between all of them. Linux can share libraries too but users can run into situations where their applications use multiple different versions of Qt, GTK, etc. at the same time, and then you have stuff like snap on top that comes with its own copies of even basic system libraries. Containers also do this. As a Linux user you can avoid library bloat to some extent but “normal” users are not aware of it in the first place.





  • I think the open slop situation is also in part people who just want a feature and genuinely think they’re helping. People who can’t do the task themselves also can’t tell that the LLM also can’t do it.

    But a lot of them are probably just padding their GitHub account too. Any given popular project has tons of forks by people who just want to have lots of repositories on their GitHub but don’t actually make changes because they can’t actually do it. I used to maintain my employer’s projects on GitHub and literally we’d have something like 3000 forks and 2990 of them would just be forks with no changes by people with lots of repositories but no actual work. Now these people are using LLMs to also make changes…