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

help-circle

  • But how does the Rust compiler do that? What does it actually check? Could I write a compiler in C that does this check on a piece of Rust code?

    C is so simplictic, that if I can write a piece of functionality in C, I must understand its inner workings fully. Not just how to use the feature, but how the feature works under the hood.

    It is often pointless to actually implement the feature in C, since the feature already has a good implementation (see the Rust compiler for the memory safety). But understanding these features, and being able to mentally think about what it takes in C to implement them, is still helpfull for gaining an understanding of the feature.



  • I have this experience with a certain type of pedestrian traffic light “button”.

    I quote button, because nothing physically moves when you press it. I’m not sure if it registers pressure or heat, but you don’t even feel anything move when you press it.

    Usually when you press the button, a red text lights up on the button, telling you to wait. This text gives you feedback that the button registered your press, and the traffic light will schedule a green light for you.

    However, sometimes you didn’t press hard enough, and the text doesn’t light up. Simple solution: press harder.

    But there is a scenario where it doesn’t matter how hard you press, the button won’t light up. You keep staring at it, while slamming the damn thing with the fury of a Hulk wealding Mjolnir. Still, nothing lights up. The reason: the light instantly went green, so it never needed to light up the text telling you to wait. And all that time slamming your fist on the button, could have been spend crossing the intersection. Instead you have been standing there, looking like a drunk person having a fistfight with an inanimate object.




  • I remember a javascript library where the was a function that returned, according to the documentation, “a color”. Did it return an object with 3 fields? Were those fields RGB or some other color scheme? Is it a string encoding a color? What format is that string? None of these questions could be answered without just running the code, and analyzing the object you got back.


  • Do you mean that programming languages are hard to read/write, or that the languages themselves are poorly designed?

    In the former case, I invite you to read machine code. Not assembly, but straight machine code. Just zeros and ones as far as the editor can see. Any popular language is better than that.

    In the latter case, I invite you to look at the design of an arbitrary natural language. Weird grammer rules, regional differences, loan words that don’t fit in, etc. No programmming language is worse than that. Although I would argue that Javascript has all of those problems too in some degree.




  • I doubt they do mich different than you do with their OS.

    People are more motivated by feelings than actual logic. The person you are responding to even states that Ubuntu “feels good to use”. That is some car advertisement level of feeling based reasoning.

    Another thing is that people really hate it when things change. Especially a UI change. Every change in the Windows UI has been met with disgust. And if there is one thing different between linux distros, it’s where they place all the buttons, menus, etc. So people prefer to stay with the distro they know.






  • The problem with C++ is not the lack of safety features. It’s the ever lasting backwards compatibility that is keeping it both alive and down at the same time.

    Having to support 50 year old code, is going to limit any restriction you place. But it is usually the restrictions that make a language good.

    Example: You can write perfectly good modern C++ code without any pointers. But pointers are so ingrained into the language, that it is impossible to remove them.



  • But I love coding at work?!

    The problem is that every living entity in a 10 kilometer radius around me, seems to be hellbent on getting me to do anything but coding. Refining work estimates, fixing badge access rights, fixing a driver issue, telling people that you cannot do 1000 things at the same time, teaching the new developer how shit (doesn’t) works, mangling Jenkins into a functional state again, explaning that thing I did a year ago but is only now used (it was very high prio a year ago), writing documentation that noboby ever reads, progress meetings, specialty group meetings, knowledge sharing meetings, company wide meetings, etc.