Earlier quoted context omitted.
I don't understand it either. It's as though they want to ignore the history of free software, which simply wouldn't have happened without copyleft.
Tautologically, it wouldn't have happened as it did , but free software long predates the FSF.
Cross-platform Rust rewrite of the GNU coreutils
461–470 of 498 posts
Re: Cross-platform Rust rewrite of the GNU coreutils
#462Earlier quoted context omitted.
Let me re-read it. He makes several points. The first is that they're intentionally relying on undefined behavior known to cause problems sometimes out of nowhere. He says it's OK they rely on it because it's not currently causing them problems. Relying on something impossible to rely on as kbenson worded it since that's working out so far. Reminds me of a George Carlin quip about people building villages on active v…
> Next, he conflates compiler bugs with undefined behavior. Maybe Rust is just not specified for every corner case? The compiler could just do anything in such cases (e.g. what a C compiler would do -- not checking for arithmetic overflow, for example). You can then go ahead and claim it wasn't UB in Rust. But effectively it is the same, and you can't expect that Rust will specify that a compiler must check for arith…
> Maybe Rust is just not specified for every corner case?
Even in the absence of a formal specification, if you demonstrate undefined behavior in safe code, it will be regarded as a high-severity bug and slated for correction. If it's a bug in the compiler, it will be patched. If it's a bug in the language itself, the language will be redefined to prevent that behavior in safe code and the implementation will be updated to reflect this. If these changes break existing code, then so be it: soundness fixes are an instance where the Rust developers reserve the right to break backwards compatibility. Rust takes UB seriously.Re: Cross-platform Rust rewrite of the GNU coreutils
#463Earlier quoted context omitted.
Sure, the primary burden of proof is on those proposing a change. However, any time you stand up and make an argument, the burden is on you to make sure it actually makes sense, and that goes for both sides.
Anything that is stated without proof can be refuted without proof. Why you think your opinion should be regarded at a higher standard than anybody else's?
Re: Cross-platform Rust rewrite of the GNU coreutils
#464Earlier quoted context omitted.
I think the idea that "elite" developers can write bug-free C (or even just network-facing C free of security-sensitive memory safety problems) is pretty well refuted at this point. Now you can write bug-free C if you're willing to spend enormous time and money on testing: this is to a first approximation what SQLite did. But that only makes economic sense for a small minority of projects. Just putting "elite" develo…
It will be interesting to see if the formal proof/verification work that is being done by NICTA for the seL4 project will mature into something that can be used practically elsewhere in industry. https://sel4.systems/
Re: Cross-platform Rust rewrite of the GNU coreutils
#465Earlier quoted context omitted.
Sure, the primary burden of proof is on those proposing a change. However, any time you stand up and make an argument, the burden is on you to make sure it actually makes sense, and that goes for both sides.
This is getting a bit meta, but I disagree. It would be trivial to abuse in discussions. A: Bash would be way better for SQLite, really! B: But Bash is a terrible choice because X, Y, Z, ... A: If you make those arguments, you have to prove them.
Re: Cross-platform Rust rewrite of the GNU coreutils
#466Earlier quoted context omitted.
> One of the reasons golang is so successful is that there is very little magic in the syntax, and even when there is it's fairly easy to grok (an example would be the `go` keyword). Do you have a specific symbol you would like to change in Rust, and what would you like to change it to? The only example I've seen (in a child comment to yours) is effectively a complaint that Rust has lifetimes and Go doesn't, which is…
I'm definitely a Rust fanboy, but the single-quote syntax for lifetime annotations can be irritating. Several editors I've used automatically insert a second quote to match, and I am frequently unable to disable that behavior without losing all paired delimiter insertion (like for parentheses or braces). It's a minor quibble to be sure, but it's the only language symbol that bothers me when writing Rust. Not sure wha…
* For heap and owner pointers respectively.
Re: Cross-platform Rust rewrite of the GNU coreutils
#467Earlier quoted context omitted.
Every function in the C++ standard library reliably communicates allocation failure to the application without relying on aborting the whole program. If Rust can do it, C++ can do it too. Rust got itself into this trap by eschewing exceptions.
Maybe avoid using judgmental language like calling a standard allocator that aborts on oom a "trap." The Rust team made conscious design choices in full awareness of the trade-offs. Moreover, Rust actually does have thread unwinding, and even the ability to catch an unwinding thread, so it is not true that the Rust standard library could not have unwound on oom. Rust's standard library just isn't designed for writing…
> The Rust team made conscious design choices in full awareness of the trade-offs
I don't think that anyone who isn't already predisposed to avoid exceptions would consider the tradeoff the Rust people made to be the correct one.
Re: Cross-platform Rust rewrite of the GNU coreutils
#468Earlier quoted context omitted.
> The concept of a corporation using your code for their profit without giving back is mostly just an imagination. One of the authors of the Python requests HTTP library has called out Uber for using Python, and almost certainly using requests, and not paying any money https://lukasa.co.uk/2015/08/Funding_OSS/
There are quite a few questions open here - are they proven to use the library? - did they modify it? - you can submit changes back only if you changed anything - as it is server-side software, GPL had not changed much here, you have to provide the source of your program only to those who got delivery of that program, but that is not covering running on your servers. - none of the licenses discussed require to donate…
This is exactly the reason the Affero GPL was invented.
And, yes, there is no legal requirement to donate money. However it shows bad faith and it shows that "a corporation using your code for their profit without giving back" is a reality.
Re: Cross-platform Rust rewrite of the GNU coreutils
#469Earlier quoted context omitted.
Like many other programmers, I avoid GPL'd code like the plague. The idea that you can own an idea seems ridiculous to me, and it feels unjust to sue "random corporations" for using ideas that you published. We're standing on the shoulders of giants, and I see the GPL as a tumor that's draining the world's resources. Just my two cents.
sorry, but is the "random corporaions" the tumor: they just use the code, maybe improve it, but keep that private, and the improvement is lost for the rest of the people.
>the improvement is lost for the rest of the people. You are forgetting that businesses sell a product. You can get the improvements by buying their product.
If the business saves money because they used opensource technology this should translate into lower costs and it follows that they will reduce prices (after all they have to compete with free as in beer!) for their customers.
If you don't want them to earn money from your MIT code you can always try to erode their profits by implementing similar improvements.
Re: Cross-platform Rust rewrite of the GNU coreutils
#470Earlier quoted context omitted.
You're giving a lot of strongly-worded advice/opinions on legal issues in this thread. Are you a lawyer? Can you point to any case-law to back up what you're saying? I'm not a lawyer, and I don't really know who's right in this thread, but I'd find any citations you have really interesting to read.
Here's an crazy thought: when lawyers are in court, one of them is always wrong. Imagine that. A lawyer being wrong. Mind blown. Is your lawyer a software engineer? If not, he doesn't know anything! He has literally no idea. He can't even comprehend software. It would melt his brain. So you ask, how can I the holder of meagre so-called "Computer Science PhD", comprehend the the holy (and unspeakable) knowledge of tho…