• 0 Posts
  • 58 Comments
Joined 9 months ago
cake
Cake day: January 23rd, 2026

help-circle




  • You’re taking this way too seriously, I think. Just because I disliked one particular video on the topic doesn’t mean I instantly hate the whole premise of good infrastructure. I didn’t express any pro-car opinions, I just talked about my personal experience with the content posted here (the video), and how I engaged with it.

    If you must know, I’m quite fond of trains, they are by far my favourite mode of transport. I also like walkable streets. I was born in the Netherlands and so do not share the same propagandised pro-car base that others have. I have afterwards moved to a much more car-dependant country and hated it. I’m part of a local bicycle advocacy group and take direct political action to try and improve my surroundings.

    Just because someone expresses an opinion you agree with doesn’t mean it’s automatically perfect and amazing. It can have flaws. This particular video has a flaw, which is that it’s boring for the first 10 minutes. That’s quite a long time. And judging from the upvote ratio on my first post, I wasn’t the only one who felt this way. But even if I was, who cares? I’m allowed to dislike a single video, and your conclusion that I must therefore hate everything this community is about is absurd.

    Lastly, so what if I was car-brained? I’m clearly here, engaging with anti-car content with good will. This piece did not land with me, but perhaps another would? If I were car-brained, I would be here open for conversion, and yet you come here being, quite frankly, aggressive and hostile. That’s not helping anyone. I’d understand it if I was making bad-faith arguments and shitting on the video, but that doesn’t really apply. You could’ve said “Oh sorry friend, have you tried other channels on the topic like ‘Not Just Bikes’ or ‘RMTransit’”? That is much more likely to have a positive effect on someone if they were carbrained.








  • So, both Linux and Windows comes with a component called the “Kernel” (technically, Linux is the kernel, and the OS is something like Ubuntu, Fedora, etc…). This Kernel sits between the actual hardware and the rest of the operating system. It is responsible for things taking your app and loading it into memory, then handing the starting point to the CPU, things like this.

    Since both of these kernels are developed independently, and basically from scratch, they work quite differently. When a program (app) is launched, the operating system needs to know a lot of small details in order to actually run it. What it needs to know and how to find it is quite different between Linux and Windows. Windows “Portable Executable” files (.exe files), and linux uses Executable and Linkable Format files. Your idea would be to simply re-arrange and augment the data in this header so it executes on the other platform, right?

    There is a major wrinkle with this though, and that is the system libraries. Both the OSes have functionality to make it easier to write applications, provided by the OS. Things like sound libraries to write sound to the speakers, or graphics APIs so the application can draw to the screen. For Linux running on Windows, you can just look at what Linux provides and emulate that, or grab the source code and port that to Windows. However, the reverse is not so easy, because Windows is closed-source. Rebuilding every windows API from scratch is quite difficult, and made harder because the architecture is different, and solutions that are easy to provide in Windows might be quite hard in Linux.

    It’s this library gap where the value of Wine comes from, and how it works.

    You might ask, then, if it’s possible to run both kernels, and provide both options. Yes. In fact, this is how WSL on Windows works. It runs a customised version of the Linux kernel as a Windows application. Likewise, docker allows you to run a Windows nanosever, which is somewhat similar. However, running a container has more overhead than running the system API translations.

    Running them ‘natively’ doesn’t really make sense, in the same way I cannot connect K’nex pieces to my Lego model directly. The two operating systems simply have different shapes, and cannot be directly connected.



  • Indeed, I think a clean workspace is a better analogy. The more you live in a space, the dirtier it becomes. As a place gets dirty or messy, it gets harder to live/work in the space. You must, at some point, take some time to clean, or you end up living in a hoarder’s house. There is a limit to where cleaning and organising has diminishing returns, and eventually, you’re just shuffling stuff around instead of cleaning.

    The analogy isn’t perfect, of course (no analogy is), but it’s better than the debt analogy, I think.


  • There have been genuine advancements in language design in the last three decades. The existing languages aren’t suddenly outdated and useless, no, but it’s just as wrong to say there is no room for growth and improvement.

    Besides, nobody is throwing away legacy code and starting over, at least when it comes to language development. The language teams are new groups working on new projects.

    We also see that the ‘legacy’ languages are taking lessons from the new ones. Java is implementing features first seen in Kotlin. C++ is getting classes inspired by Rust. The users of these existing languages are benefiting by the development efforts of these new languages, without ever having to even use them.


  • From my experience, AI-assisted development is not good at complex systems. If a feature or fix requires a lot of changes in different places, or if the business logic is complex and difficult to understand, then the AI usually, in my experience at least, doesn’t do a good job with it. And because the system is large/complex, you have to have a correct understanding yourself of how the system works if you want to know if the AI changes will actually work as expected, and what edge cases it addresses and omits.