4 ms·
> Rust on the other hand is optimized for maintaining I completely DISAGREE with this statement! I have already seen many year-old Rust projects fail to buil
by zibzab 6y ago
> Rust on the other hand is optimized for maintaining
I completely DISAGREE with this statement!
I have already seen many year-old Rust projects fail to build due to changes to language, compiler and core libraries.
- aw1621107 6y agoOut of curiosity, would you be able to provide concrete examples of those build failures?
- zibzab 6y agoJust try random project from github without using nightly, alternatively try a project from 2018 with a current rustc. Specially the debian/Ubuntu Rust packages have hard time compiling many recent projects.
- steveklabnik 6y agoThese two issues sound totally different, a 2018 project that doesn’t use nightly should absolutely compile today, unless there was a soundness issue. (And the vast majority of projects don’t use nightly features.) The latter bit is the opposite, that is, old compilers can’t possibly know about new features, and that’s not a compatibility issue. That’s an older tool chain issue, or maybe a “community prefers newer tool chains than distros do” issue.
- zibzab 6y agoBut how in gods name can you call a language "maintainable" if just compiling it after certain time requires some detective work to find the right rustc/cargo versions? And that's only the first problem with maintaining old Rust projects. There are so many other issues, specially with projects created in very early Rust days. Tell me, have you ever seen a go project failing due to similar issues? Python had this problem once (2 to 3) and they are still apologising for it. (Not trying to start a language flame war. I like Rust and want it to succeed. But right now things are a bit chaotic)
- steveklabnik 6y agoI mean, it shouldn't! After some time, you'd be using a newer version. You want to be using an old rustc to compile a project created later in time. There are very very few languages that do not add new features over time. Even Go adds new standard library functionality or toolchain features in new releases. The Python 2 to 3 situation is very different, that is about new versions not compiling old code. We go to great lengths to make sure that that works well in Rust.