• 1 Post
  • 20 Comments
Joined 1 year ago
cake
Cake day: July 10th, 2023

help-circle



  • You know how they say there is a difference between what people need and what they want? This is one of those cases. We gave up privacy in exchange for convenience. E.g. Cloud storage is convenient. For files, for documents, for code. It’s so convenient that apart from acting in outrage when we discover that companies are scanning our data to train AIs, among other things, we are willing to do absolute nothing. And I think that’s because we fear to lose that convenience if we force a change (not that we could even if we wanted). In other words, we are getting what we pay for (which makes sense because often all those cloud services are “free”).

    There is also another problem: some personal data is irrelevant to us, but it makes companies money when the data is all aggregate together. So, it’s easy to let it pass (apart from some outrage) when you are informed that there is a leak and everyone can know how many hours you spend using a service. We don’t feel it’s very relevant. But having this kind of data about everyone can help companies to tailor their service to tske advantage of our habits, bringing THEM a lot of money. Most data they have is irrelevant for you but very relevant for companies that try to sell services.

    Ideally I’d like to get paid. I’ll allow you to track me, but I get 1$ every time records on the database with my data are returned by a query. See if they like it…




  • Probably unpopular opinion, but peer reviews are overrated. If coders are good AND know the project, the only thing you can do in a PR is nitpicking. They are more useful for open source collaborators because you want to double-check their code fits with the current architecture. But people here are reacting as if peer reviews could actually spot bugs that tests can’t catch. That happens rarely unless the contributor is junion/not good.



  • Lol I feel so old reading these replies… I learnt copying BASIC games from magazines and typing them manually on the computer.

    But jokes apart, when it comes to learning, I think the best thing is to tinker with weather language you choose and don’t worry about making the “right choices” since the start. Forget about writing “pythonic” code and don’t worry about being “idiomatic”: just build something. Building good software is not just constructs, but also knowning which subsystem to improve and when. That’s what makes experience.

    When it comes to improving, you can dig deep into the language.



  • Sometimes I wonder if this pure search for being “idiomatic” is worth the effort. On paper yes, more idiomatic code is almost always a good thing, it feels more natural to create code in a way the language was designed to be used. But it practice, you don’t get any points for being more idiomatic and your code isn’t necessarily going to be safer either (smart pointers are often “good enough”). I’m fine using references to pass parameters to function and I love the idea to “force” the programmer to organize objects in a tree way (funny enough I was already doing that in C++), but I’ll take a Rc rather than a lifetimed reference as a field in a structure any day. That shit becomes unreadable fast!

    EDIT: but I love cargo clippy! It tells me what to change to get more idiomatic points. Who knows why an if/then/else is better than a match for two values, but clippy says so, and who am I to question the idiomatic gods?



  • Personally, I mostly use neovim, both at home and at work. My reasons are:

    1. I hate any kind of screen cluttering. The minimap comes straight from hell.
    2. it’s very responsive. I don’t even bother using language servers as they occasionally introduce micro delays that I hate.
    3. it helps me in organizing the code better. No minimap means I keep the file size manageable, not seeing the definition of the function straight away means I keep the static complexity of the code in check (tend to reduce the number of delegates). It doesn’t help when I have to read cose from legacy codebase, but I don’t care too much about that.


  • “intuitive” is extremely subjective, and based on your past experiences. I’ve coded in C++ for years, and some Python, too and was able to grasp many Rust concepts very quickly, while for others I struggled (and still am). I’d say that if you are looking for “intuitive”, Rust ain’t it. It’s a system language, so it requires planning, it’s definitely not the ideal language to slap a prototype quickly together, expecially as a beginner.



  • My understanding is that this is possible: you should be able to take a C project, add a build.zig file and under the hood the system is calling clang to compile the C project. HOWEVER, you can now add a .zig source file, compile that in zig and link together with the output of the C compiler into an executable. If this is actually true, I can definitely see the attractiveness of the language.