Live data from Hacker News

How to not rewrite it in Rust

adventures.michaelfbryan.com

211–220 of 231 posts

Re: How to not rewrite it in Rust

#211

Earlier quoted context omitted.

Having everything available in Rust code also means you don't have to do lots of extra work for cross-compilation.

How does Rust help you if you have to cross-compile?

You can compile rust in one go. If you rely on native libraries, you need to be able to link them during cargo build and that's painful to set up. Not impossible... just really annoying to manage.

Re: How to not rewrite it in Rust

#212

Earlier quoted context omitted.

You are free to fork, but that doesn't make it right. Imagine a well-funded startup trying to make a name for themselves decided to fork the top 10 emerging open source projects, put their company name on them, and then spend millions in PR/marketing so that (A) it seems like they invented them, and (B) they fork the community. Are they free to? Is it right? What will it mean for the original authors and experts who…

Forking for whatever reason is in the spirit of open source. Asking if something is right is nonsense. From an ethical point of view, it follows the license of the project so there is no issue. If the author of the original source had an issue with the above scenario, they would've chosen a more restrictive license that didn't make it possible.

> From an ethical point of view, it follows the license of the project so there is no issue.

This seems like the opposite of the usual ethical/legal distinction. It’s definitely legal to fork the project and the community, but not necessarily ethical.

I don’t think you can blame authors for not using a license that describes exactly what they are happy with. What constitutes an “ethical” fork is subjective, based on how necessary the fork is, and I don’t think a license could describe that.

Also, consider this analogy. The MIT license doesn’t contain a patent grant. So if some MIT-licensed software uses a patented technique, the software author and patent holder is within their legal rights to sue all forks of their for patent infringement. But this would be unethical, as the MIT license implies that the licensed software is given freely, not that you will sue all users of your software. Would you blame the sued parties for choosing to use MIT-licensed software, the way you are saying you would blame software authors for choosing a license that doesn’t forbid certain forks?

Re: How to not rewrite it in Rust

#213
post #171

Earlier quoted context omitted.

Do you know how much c++/cli is automatically compatible with c# code? And how much does it retain compatibility with standard c++?

Everything that obeys to CLS. https://docs.microsoft.com/en-us/dotnet/standard/language-in... https://docs.microsoft.com/en-us/cpp/dotnet/managed-types-cp... Then you can also use regular low level stuff, but in that case you will get mixed mode Assemblies (other forms are now deprecated). https://docs.microsoft.com/en-us/cpp/dotnet/mixed-native-and... C++/CLI is basically a set of language extensions, just like clan…

Thank you, this is very interesting!

Re: How to not rewrite it in Rust

#215
post #61

Earlier quoted context omitted.

Exactly, when we talk about RiiR, we are saying, "I would like to have the guarantees that Rust provides". If the Rust ecosystem depends heavily on C/C++ libraries, then the system has the properties of the union of all the flaws and the properties of the language do not translate into a quality of the ecosystem. That said, I think containing C/C++ to a Wasm sandbox that can be integrated transparently with Rust woul…

TBH I still don't see it happening or being the case atleast in the near foreseeable future... Why you may ask..? The answer is simple cause there is always a cost. So the question is what is easier or when can one say the cost of using a "safer" language out weighs a "less safer" one.. Cause otherwise Rust is also too damn unsafe, just move to something completely safe Idris could be a good starting point. /s Puttin…

Over the medium term (years to decades), there is no question that rewriting in a safe language is worth the cost. It's a one-time project, and security issues cost our economy billions on an ongoing basis.

Rust isn't perfect, and perfect automatically-checked safety probably isn't possible, but it's dramatically safer than C/C++, and cuts down the amount that would need to manually audited to the point where it would be feasible to do it comprehensively.

Re: How to not rewrite it in Rust

#216
post #210
post #203

Earlier quoted context omitted.

Yes, it is one less failure point to worry about, but in my experience using the respective task libraries in distributed applications, most of the multithreaded access bugs lie on external resource usage, and those Rust does not prevent. Not saying that it isn't important though.

Ownership/affine typing does allow modelling that, within a single program. For instance, the type representing a handle to the external resource can have limited constructors and limited operations, that will enforce single threaded mutations or access (including things like "this object can only be destroyed by the thread that created it").

Assuming you are accessing the distributed resource from multiple threads instead of multiple distributed processes, which is quite common in distributed architectures.

Borrow checker doesn't help at all with process IPC.

Plus all ML derived languages have good enough type systems to model network states, while enjoying the productivity of automatic memory management.

Re: How to not rewrite it in Rust

#218
post #175

Earlier quoted context omitted.

No, I'm talking about the Debian OpenSSL bug Luciano Bello discovered. It was a lot worse than Heartbleed. Kurt Roeckx didn't introduce Heartbleed, and Heartbleed wasn't introduced by removing undefined behavior, so there is no plausible reason for you to infer that I was talking about Heartbleed. As for the cost of rewrites, there's a lot of evidence from software project metrics that the cost of modifying software…

We can almost always tell what a given piece of software will do, we just can't tell what all software will do in all cases.

That's a pretty significant almost. Regardless, kragen's point was not about whether figuring it out was possible but how expensive it would be.

Re: How to not rewrite it in Rust

#219
post #48

Earlier quoted context omitted.

Autotools is rarely portable. I've been doing a lot of cross compiling recently: the vast majority of autotools projects can't be cross compiled. Sure autotools itself supports it, but something required to make it work didn't get connected up and so you can't do it. If you want to natively compile on a fairly recent linux with the common standard libraries autotools works well. Even though autotools was written to w…

Cross compiling to what? Autotools is probably the most portable piece of software out there as far as Unices are concerned.

Embedded Linux on arm. Nothing very far out really. Note that I'm careful not to blame autotools, it is the user's fault, there are a couple projects that use autotools and cross compile easily. The vast majority do not.

CMake based projects almost always cross compile easily.

Re: How to not rewrite it in Rust

#220

Earlier quoted context omitted.

We can almost always tell what a given piece of software will do, we just can't tell what all software will do in all cases.

That's a pretty significant almost. Regardless, kragen's point was not about whether figuring it out was possible but how expensive it would be.

It's not that significant. We can tell what the vast majority existing software will do in an automated way. Compiling a program is the equivalent of encoding it's semantics in another language which implies knowing what it will do - at least that's one way of 'knowing what it will do'.
Post reply on HN