Wow the level of drama and anger here is crazy. I assume it was cathartic to write at least!
Wow the level of drama and anger here is crazy. I assume it was cathartic to write at least!
I think there are some crates that wrap the unsafe code for you, e.g. https://github.com/rodrimati1992/abi_stable_crates/ (I haven’t ever tried it).
He is. By using statically linked binaries.
Technically this is conflating two things: bundling dependencies and static/dynamic linking. But since you have to bundle your dependencies to use static linking, and there’s little point dynamic linking if you bundle your dependencies… most of the time they are synonymous.
Exceptions are things like plugins, but that’s pretty rare.
I don’t know why you’re being downvoted. It literally starts with the word OPINION in bold red caps.
asking the maintainers to lock down APIs which the C devs purposefully leave malleable, in part, to avoid binary blob drivers being feasible.
No, they were asking them to define the semantics of the filesystem APIs. Those semantics are not encoded in the C API but the Rust devs wanted to encode them in the Rust API to avoid making mistakes.
The C devs didn’t want to, not because of concerns about binary drivers, but because the semantics are already broken. Apparently different filesystem drivers assume different semantics for the same functions and it’s a whole mess. They don’t want to face up to this and certainly don’t want anyone pointing it out, so clearly it must be the Rust devs’ fault for wanting APIs to have consistent semantics.
The rest of your comment is nonsense.
Totally depends what you end up working on as a programmer. If it’s web apps, you’ll be totally fine. All you need is basic arithmetic. Writing a game engine? You’ll need to know some basic to moderate matrix maths…
If you’re doing formal verification using unbounded model checking… good fucking luck.
On average I would say most programming tasks need very little maths. If you can add and multiply you’ll be fine. Definitely sounds like you’ll be ok.
Why do you say it needs more time in the oven? I’ve had zero issues with it as a drop-in replacement for Pip in a large commercial project, which is an extremely impressive achievement. (And it was 10x faster.)
I tried Poetry once and it failed to resolve dependencies on the first thing I tried it on. If anything Poetry needs more time in the oven. It also wasn’t 10x faster.
I don’t think libuv
is really that popular, nor is it that confusing.
But I do agree it’s not a very good name. “Rye” is a much better name. Probably too late anyway.
Yes it’s terrible. The only hope on the horizon is uv
. It’s significantly better than all the other tooling (Poetry, pip, pipenv, etc.) so I think it has a good chance of reducing the options to just Pip or uv
at least.
But I fully expect the Python Devs to ignore it, and maybe even make life deliberately difficult for it like they did for static analysers. They have some strange priorities sometimes.
There’s also CPC/Farnell but none of those are in the same league as McMaster Carr. Much smaller ranges, worse prices, worse websites, missing CAD models, etc.
Another option is Misumi but they have even worse prices and don’t even sell to individuals.
I’d recommend going to McMaster Carr just to see what we are missing out on.
I wish we had something like McMaster Carr in the UK. I don’t even care if it’s fast! You guys had better appreciate how good you’ve got it.
I have never seen a single C++ codebase do that. It helps but it’s not a practical full solution.
I think once things get established the people in charge see any attempt to change it as some kind of personal insult, so they just go into defence mode. You see the same thing e.g. with Python - for literally decades they’ve denied that performance matters and it’s really only recently that that has changed.
I think it will only get worse for C++ because the people who understand this stuff have mostly given up on C++.
Yeah I mean it’s definitely a reference volume of last resort, rather than a tutorial you would read cover to cover. Clearly a genius but he explains things as if you already understand them, and can also read his mind.
That said, for a lot of the content the only alternative is research papers and they are even less accessible. I definitely would only use it if I couldn’t find answers anywhere else though.
The biggest issue is move constructors. Explanation here: https://cxx.rs/binding/cxxstring.html#restrictions
Probably seems like a little thing but I found it quite annoying in practice, and there are other things like not being able to combine serde-derive and cxx FFI on the same struct.
Oof found the Java developer. No thanks.
The C++ standards committee don’t see memory safety or UB as a problem. If they did they wouldn’t keep introducing new footguns, e.g. forgetting return_void()
in a coroutine. They still think everyone should just learn the entire C++ spec and not make mistakes.
Interop between Rust and C++ is pretty bad actually - I can understand wanting to avoid that.
However I still agree. I can’t see opt-in mechanisms like this moving the needle.
It’s significantly less of a nightmare and Deno is downright pleasant.
Not really. It will predict more vulgar output but that is fixed by fine tuning. It’s not going to “poison” it in any meaningful sense.