technology
On the road to fully automated luxury gay space communism.
Spreading Linux propaganda since 2020
- Ways to run Microsoft/Adobe and more on Linux
- The Ultimate FOSS Guide For Android
- Great libre software on Windows
- Hey you, the lib still using Chrome. Read this post!
Rules:
- 1. Obviously abide by the sitewide code of conduct. Bigotry will be met with an immediate ban
- 2. This community is about technology. Offtopic is permitted as long as it is kept in the comment sections
- 3. Although this is not /c/libre, FOSS related posting is tolerated, and even welcome in the case of effort posts
- 4. We believe technology should be liberating. As such, avoid promoting proprietary and/or bourgeois technology
- 5. Explanatory posts to correct the potential mistakes a comrade made in a post of their own are allowed, as long as they remain respectful
- 6. No crypto (Bitcoin, NFT, etc.) speculation, unless it is purely informative and not too cringe
- 7. Absolutely no tech bro shit. If you have a good opinion of Silicon Valley billionaires please manifest yourself so we can ban you.
Being aware that the gun you're holding naturally tends towards pointing directly at your own foot does not make the existence of the footgun any more tolerable. Even the best developers will fuck up; having your language enforce memory safety is objectively a good thing, and arguments against it come from FUDDs and gatekeepers.
C and assembly should 100% be a part of any formal programming education, and then any actual work should be done with memory-safe languages because we're all the dumbest people alive.
I work in embedded systems (more and more test lately though), historically in aviation (not fucking Boeing lol) and test and measurement instruments. So, critical environments. In those situations, when you're writing bare metal firmware, you never dynamically allocate anything. Everything tends to be accounted for, RAM usage is tightly controlled, there are even points where you're counting clock cycles for efficiency. We even accounted for radiation based bit flip events, which are incredibly uncommon, but we know they exist so they have to be handled.
My point is, this is a valid concern in some spaces, but when you use C in a purely functional way, it's not the loaded gun they portray it as.
I'm aware that it is technically possible to program a microcontroller in rust, but it felt like a lot more work than doing it in C
It is also a serious boon to open source projects because it dramatically limits the damage a PR from someone new might accidentally do. Being able to reasonably expect that this fast, low level code won't introduce memory leaks is part of why even end users tend to like Rust projects.
So true, this is also the reason I've chosen to rip out seatbelts from my car, since I know I'm just a good driver.
JOE BIDEN IS LITERALLY OLDER THAN THE FIRST PROGRAMMING LANGUAGE EVER
6502 assembly gang where u at
every programming language involves a certain level of abstraction that necessitates limitations. You could make the same argument in favor of assembly over a compiled language.
Too bad they don't use that "memory safe programming" on
for some reason the president is a java applet trying to run in netscape navigator over dialup
it's an apt metaphor, because the last time dialup was relevant is the last time he had a coherent thought
beer brew here, ooh earth rider
Oh yeah, switch to the programming languages that are easier for ai to generate code in, that’s a good idea.
GO BACK TO SLEEP, AMERICAN DEVELOPERS
TIL Biden runs on C++.
THE COMMIES ARE COMING TO STEAL OUR C++ CODE
Abolish class
Year of the COBOL comeback
I started learning rust just to tick off another trans stereotype box
Or Go
The only other language as safe as Rust is Ada, Go is a non-contender
Pokemon Ada to the Polls
what if we kissegmentation fault
I wondered if this was some kind of joke, but it's not: PRESS RELEASE: Future Software Should Be Memory Safe | The White House
Purely as an end user. If I am looking for a tool to accomplish a given task for which there are a bunch of choices, I will try rust or C first before trying the other options. I don't know if it is inherent in either language or if the people who use them just tend to be better coders. As opposed to something like python where the barrier to entry is much lower.
I love the rust spins on classic cli tools like ag
(grep
), fd
(find
) and eza
/exa
(ls
). Though I couldn't live without any of the originals either. They are just so mature and so well documented.
Is it my imagination or is rust more MIT kind of vibe compared to GPL with C stuff?
I tried Rust and found it to be fun (I generally think how I would solve a problem in C and then try to make my rust program follow the same exact logic without any additional overhead, trying to not use unsafe rust as much as possible, which I find to be fun).
Unfortunately, I noticed that compile times are noticeable on even very simple programs (on the scale of seconds) on my machine, which I find problematic, because that means that complex programs written in rust will probably take an eternity to compile. (I haven't actually tried compiling any such software yet, though) I wonder what parts of the compilation process are the biggest factor in compile times, and if one could theoretically do away with it and still have a memory safe language.
What I'm about to say may be very influenced by my love for Scheme, but I feel like Rust is a very complex language, and I find unlikely that any alternative implementation will ever be made because of that (or it will be done but at the cost of massive amount of effort from various people). I think diversity of implementations, extensibility and simplicity are important in a language.
Am I misguided, or acting too much on my first impressions? And what other memory safe systems programming languages (so languages that don't rely on a garbage collector) are out there besides Rust?
Rust is very complex, in part due to the obsession with zero cost abstraction that leads to caring about lots of edge cases like NonZero types. But at least when I've worked with it, a lot of that you can just ignore and write straight forward code, and it'll still likely be very performant. Although the Rust sort of philosophy vibes with me better, so not all might find that so forgiving.
I did quit using Rust due to its compile times though. Even using dependencies that would advertise fast building like Bevy quickly started taking more than a minute to build (not from scratch, just making one line changes). And during that minute I'd get bored and do something else, and my productivity plummeted.
explain this like I never progressed further than hello world.
C++ and even more so C are programming languages which require the programmer to manage memory resources (although newer versions have introduced features that automate much of it). Doing this incorrectly can introduce vulnerabilities that allow an attacker to access data that they're not supposed to. Rust and Go are newer languages that are designed to mitigate this danger. The Linux Kernel is perhaps the most influential software project still being written entirely in C.
As for why the White House has something to say about it, I got no idea. I would have assumed this would be under the purview of NIST or something.
I'm going to become a Suckless guy because of this.
This most likely came from the NSA, which considers critical infrastructure being hackable to be a national security risk.
The white house hates the rule of three :)