anacrolix | 2 comments | 2 weeks ago
Git is about data integrity. Improved correctness is extremely valuable here.
Rust can be injected into native projects because it has no runtime requirements. So here it's ideal and makes a true rewrite unnecessary unlike other languages.
Rust is creeping into system software as a wholistic replacement. It's very rare that a language can actually entirely replace C/C++. However it's discovering that the process is incredibly slow.
There are things Rust isn't as good for, but it's only a matter of time before those gaps close (mainly around specialised environments and targets).
I don't know if Rust will actually succeed in replacing C/C++ before something better comes along but the writing is on the wall. If you want to get in early on Rust, now is a good time.
norir | 6 comments | 2 weeks ago
I personally believe that rust has some intractable problems that make it quite unlikely that it ever reaches even half of c/c++ level ubiquity. The problems begin with the incredible complexity of the language which manifests in cryptic error messages, puzzling syntax and brutal compile times. The latter especially is a complete non starter for me. I would have to be at risk of going homeless with slinging rust as my only employment option before I would voluntarily subject myself to rust compile times every day.
My hunch is that we are going to see smaller, more specialized languages take off in the next decade. Compared to past eras, it is now so much easier to build quality language tooling that we can have the best of both worlds: small targeted languages, optimized for the relevant problem domain, _and_ professional quality tooling.
dboreham | 0 comments | 2 weeks ago
bionhoward | 0 comments | 2 weeks ago
Puzzling syntax, I simply disagree, it’s not that bad, can you give an example?
Brutal compile times? Idk, for me it’s usually instant, and if there’s a problem I know right away instead of needing to wait for runtime crashes
Rust has been hella worth it for me. Only time I didn’t like it was when I tried to “impl Future for T” instead of writing “async fn”
asoneth | 0 comments | 2 weeks ago
The first stable release of Rust was almost ten years ago at this point so I agree that this isn't particularly "early" in technological timeframes, but I suppose it could be considered young compared to C++ (first stable release ~40 years ago) or C (~50 years ago).
TheCoelacanth | 0 comments | 2 weeks ago
mongol | 0 comments | 2 weeks ago
anon291 | 2 comments | 2 weeks ago
And I'm a c++ programmer
rileymat2 | 1 comment | 2 weeks ago
anon291 | 0 comments | 2 weeks ago
binary132 | 1 comment | 2 weeks ago
steveklabnik | 0 comments | 2 weeks ago
Ferret7446 | 1 comment | 2 weeks ago
In fact, Git is probably one of the types of programs that least benefit from Rust. As a one shot program, you technically don't even need any memory management. You can just malloc stuff and let the kernel collect it when the process exits.
cozzyd | 0 comments | 2 weeks ago
cadamsau | 0 comments | 2 weeks ago
On the more fun side, when I read the headline I instantly thought of making a side project that lets you watch a bunch of language models in a chat room, infinitely bikeshedding among themselves about the merits of this decision.
Kind of like https://degenerative-sitcom.online/ but for bikeshedding :)
kazinator | 1 comment | 2 weeks ago
How far does that scale? How easy is it to contribute to any area of a project that is written in 17 different languages?
versteegen | 4 comments | 2 weeks ago
* If you're curious, in roughly decreasing order of use: FreeBasic/ReloadBasic, HamsterSpeak, Euphoria, C++, Python, C, Bash, Batch, XSLT, JS, Objective C, Emacs Lisp, Squirrel, GDB script. Removed languages: QuickBasic, x86 assembly, Makefile
_nalply | 0 comments | 2 weeks ago
Kudos to all HamsterSpeak programmers!
aaomidi | 0 comments | 2 weeks ago
digdugdirk | 1 comment | 2 weeks ago
Out of curiosity, why would you choose to add a new language for throwaway tasks? Is the project niche enough in various areas that these languages are truly orders of magnitude better than a common alternative for the specific task? Or is it more of a "I'd like to learn this new language, might as well see how it works in production" sort of thing?
versteegen | 0 comments | 2 weeks ago
I did indeed add Squirrel just to try it out (I'm considering using it as a scripting language), though I wouldn't be surprised if Euphoria and XSLT were also originally used for that reason. XSLT is there for generating .html documentation. C because I needed speed but didn't want to use C++, C++ because a C++ programmer contributed, Obj-C for the Mac port, JS for the web port, x86 assembly for the original DOS version, Bash, Batch and Python for scripts... any project can quickly reach 10 languages this way.
pabs3 | 1 comment | 2 weeks ago
versteegen | 0 comments | 6 days ago
cozzyd | 1 comment | 2 weeks ago
yjftsjthsd-h | 1 comment | 2 weeks ago
cozzyd | 0 comments | 2 weeks ago
maximilianburke | 1 comment | 2 weeks ago
riedel | 1 comment | 2 weeks ago
palmfacehn | 0 comments | 2 weeks ago
inopinatus | 0 comments | 2 weeks ago
binary132 | 0 comments | 2 weeks ago
grayhatter | 1 comment | 2 weeks ago
rust and cargo are both such a nightmare to use, I really hope the RIIR meme dies out soon... I actually like that I can compile code without an internet connection.
maximilianburke | 1 comment | 2 weeks ago
grayhatter | 7 comments | 2 weeks ago
My issues with cargo, are less about the tool in isolation, but more how it's used. IMO Dependencies should be avoided by default, cargo encourages bad habits. If cargo as a tool behaved more like pip, where you'd call `cargo install dependency` and then completely unconnected `rustc build`. I'd have no issues with cargo. (Also note, pip has many more problems than cargo, but at least you don't use your package manager to run your python code)
It's possible I've still jaded because the first time I had to actually use cargo, it was setting it up for my team to work on it, and have it function, from within an air gapped network... never again!
do_not_redeem | 0 comments | 2 weeks ago
This has the problem that your deps can get out of sync with your lockfile... which is why most/all the newer python package managers have a run command that works more like cargo e.g. https://python-poetry.org/docs/basic-usage/#using-poetry-run
If you tried it a while ago things likely improved since then. `cargo fetch` and `cargo vendor` are both single-command solutions for airgapped networks.
oconnor663 | 0 comments | 2 weeks ago
I don't want to assume too much about your specific use case, but in a lot of situations that people describe this way, the truth is that the code would've been correct if it was C but -- because it violates the no-mutable-aliasing rule -- it's genuinely broken under the Rust memory model and will trigger UB if you use unsafe code to work around the compiler errors. https://youtu.be/DG-VLezRkYQ
arjie | 1 comment | 2 weeks ago
If you find it aggravating to use, then it’s not likely this will make you happy but just in case it helps, you can just bake it into your image and be completely airgapped and the only real factor is storage because the actual functionality is easy.
ilyagr | 1 comment | 2 weeks ago
arjie | 0 comments | 2 weeks ago
local du -h -d 1 .
214G ./crates
33G ./dist
830M ./rustup
2.7G ./crates.io-index
250G
I'm fairly indiscriminate with my setup. I just used defaults everywhere.thesuperbigfrog | 0 comments | 2 weeks ago
You can use the 'cargo vendor' command to download all of a project's dependencies and then transfer them to an air-gapped environment.
https://doc.rust-lang.org/cargo/commands/cargo-vendor.html
This allows for the project's dependencies to be checked before they are introduced in the air-gapped environment and also placed in version control for a full snapshot of the project.
At $WORK we have been using Rust this way for a few years now and it has been great. Cargo is much easier to use than cmake, make, and other custom build scripts we were using before. After a few trials, we have been migrating projects from C/C++ to Rust and management has been impressed with the results. The code is equally fast, errors are down, and our velocity is improving since we find and correct more problems earlier in our processes.
maximilianburke | 0 comments | 2 weeks ago
Cargo does have an `offline` mode for `cargo build` which won't hit the network, and you can vendor dependencies. You can also invoke `rustc` directly outside of Cargo. In general though I think the Cargo team is optimizing usability for the 90%ile who can and do use the internet while developing (which is also unavoidable with other language ecosystems). But getting stuck if you're in that 10% is always hard.
LAC-Tech | 0 comments | 2 weeks ago
That's what unsafe is for. From the rust book:
"Unsafe Rust exists because, by nature, static analysis is conservative. When the compiler tries to determine whether or not code upholds the guarantees, it’s better for it to reject some valid programs than to accept some invalid programs. Although the code might be okay, if the Rust compiler doesn’t have enough information to be confident, it will reject the code. In these cases, you can use unsafe code to tell the compiler, “Trust me, I know what I’m doing.” Be warned, however, that you use unsafe Rust at your own risk: if you use unsafe code incorrectly, problems can occur due to memory unsafety, such as null pointer dereferencing."
applied_heat | 1 comment | 2 weeks ago
ajayvk | 3 comments | 2 weeks ago
MBCook | 1 comment | 2 weeks ago
From the entitle I assumed it had something to do with discussions that had been going on for a long time or kept coming up and it was just a typo or something.
Interesting to find out there was a an OS I never heard. Unfortunately the Wikipedia page isn’t very comprehensive.
dboreham | 1 comment | 2 weeks ago
sillywalk | 0 comments | 2 weeks ago
bigfatkitten | 0 comments | 2 weeks ago
https://www.computerhistory.org/collections/catalog/10262869...
sillywalk | 0 comments | 2 weeks ago
yoav | 0 comments | 2 weeks ago
rendaw | 1 comment | 2 weeks ago
cozzyd | 0 comments | 2 weeks ago
ImJamal | 0 comments | 2 weeks ago
byyoung3 | 0 comments | 2 weeks ago
dlahoda | 0 comments | 2 weeks ago
also, why they hate cpp? cpp without exceptions and late binding virtual inheritance is nice, and gpt said nonstop has full 17 and partial 20 cpp standard support.
nixosbestos | 0 comments | 2 weeks ago
Edit: lol I have a feeling some of you didn't, you know, read the article.