I’ll be honest if that’s your complaint, I have a hard time believing you would find the equivalent C or C++ code to be better.
I’ll be honest if that’s your complaint, I have a hard time believing you would find the equivalent C or C++ code to be better.
Cargo being an all-in-one tool is actually one of my favorite things about the rust ecosystem. It’s many things, and it does it all seamlessly.
Regarding comparing to C or C++, how can you argue either is designed better? C, while standing the test of time, predates so many modern programming concepts or standards and writing C code is extremely error prone. C++ improves on many of C’s shortfalls, but it wasn’t designed. It’s the result of different things being loosely bolted on to C over the course of 30 years. And it’s still error prone, for example while there are smart pointers and other types that can make writing memory safe code possible, they’re not default and they aren’t always fully supported in the standard library, let alone anything else.
I do systems programming work, sometimes with constrained memory scenarios. We always want to use the smallest types we can for any task, and unless negative numbers are a necessary, always prefer unsigned. That means a lot of u8 and u16 unless we know a value is likely to need more bits to be represented. Probably doesn’t matter as much in we programming but that’s not Rust’s niche (or well not its original niche).
It does define minimum sizes for different types. An int for example is at least two bytes, whatever size those might be!
Why this over a much more popular modern language like Rust?
Absolutely
How often are you doing work on another computer? You probably have like 1-3 you use on any regular basis, just set them up and forget it.
This is just… super wrong. RCS is more open than iMessage by virtue of being supported on two different platforms from different vendors. Doesn’t really mean it is fully open, it’s not, but 2 is more than 1.
The C64 is 8 bit but has 64k of memory.
While the specification allows time_t to be basically whatever, in practice it’s a signed 32 bit int. Presumably to accommodate whatever came theoretically before the world was created on 1/1/1970.
Or just a u64. 64 bit computers are pretty standard nowadays.
Why is it so important that you can see the specs of a watering system controller when logging in?
Why would they do that, they can’t even sell you minecoins on the Java edition
Here’s a different perspective on Safari: it’s the largest competition to Chrome there is. It’s the only relevant one, really. Apple forces iOS users to use Safari (or at least WebKit), and that’s the only thing standing in the way of Chrome/Blink having >90% market share. Safari alone stops Google from dictating the web. Firefox is great and I love it but it’s got like 3% market share and is itself funded by Google. Hence I think Safari is really important in maintaining an open web, even if that’s not why Apple is incentivized to force it on users. I know web devs also hate it but requiring they put in the effort to support Safari is what an open web is all about.
I’m very aware that there is less choice and have run into the various related issues. Ultimately it’s still been a positive experience, despite that.
That’s new mexico
Those are a lot of words you put in my mouth. In fact, I can and have sideloaded apps (the process is stupid and overcomplicated, but it does work, I am not in the EU), and my iPhone does in fact have USB C (was a dealbreaker, I used a Pixel until iPhones had USB C). I wish I could use other browsers on my phone besides Safari but it’s not a dealbreaker for me, I can and do run Firefox on my computer when I need a different browser for any reason, I hope this will change in the future.
This was like 2018 I think? At this point it’s not really something I’m interested in as I’m not willing to give up creature comforts.
Out of curiosity, what functionality and what rights am I sacrificing?
I’m in an extremely similar situation. I’m a professional software developer, but the software I develop is cross platform, but in practice most of our users are on Linux (Ubuntu LTS more specifically), and a smaller contingent of Windows users. Honestly not sure if anyone uses macOS besides the developers, but we ship best-effort builds anyways. Our developers run a mix of macOS, Linux, and Windows. I’ve used all three, and ultimately while macOS isn’t perfect, I’ve decided it’s what I can be most productive with, for the reasons you mentioned. It’s close enough to Linux being Unix-like, homebrew is sorta like having all the up to date packages like arch, except with the comfort that an update will never completely break my system, and the macOS creature comforts are extremely nice to have when I’m doing more office tasks rather than writing or reviewing code. Hardware is head and shoulders above everything else, I can go a full day without a charger. Great community too.
Your default types for that are i32 or u32. It’s the exact same number of characters yet encodes more precise information.
I’m aware of packing, but for my specific niche the main bottleneck is CPU, and it’s important to minimize the amount of memory usage to improve data locality, increasing cache hit rates, ultimately increasing cpu throughout. Any gains we would make by packing such small values would likely be eliminated by the cost of unpacking them, unless it’s a flags-like value where we are primarily comparing individual bits.