"Is Rust a great fit for this project?" I get this question quite frequently so I think it's time to write down my thoughts if it can avoid you some painful and costly mistakes. Short answer: no. Coming from someone who wrote a successful book about Rust (Black Hat Rust)
I know it’s clickbait and all, but I can’t really let their comments about “decay” go without saying anything.
I spent a weekend updating a Python project after updating the OS. Fuck Python’s release methodology.
Yeah, Rust has a lot of releases, but they’re all backwards compatible. I’m pretty sure a modern Rust compiler can compile any historic Rust program. Meanwhile every “minor” Python release has backwards incompatible changes and there’s no guarantee of backwards compatibility at all. And that’s without even bringing up the big major bump from 2 to 3 which… Was not handled well.
Honestly, if there’s any language that people should be angry at for “decaying”, it should be Python. Hell, even C and C++ have got this right.
Those doesn’t break backwards compatibility though. Naturally you can’t use match with a python 3.7 interpreter, but what scripts written for python 3.7 wouldn’t work with a 3.11 interpreter?
I haven’t encountered that issue before, so I’m curious what those problems OP have encountered looks like.
They removed a flag that didn’t do anything any more. It also didn’t hurt anybody, but since they removed it, my JavaScript project doesn’t build on Python 3.11 and needs Python 3.10. I can’t upgrade the version of node-gyp, because it’s a transitive dependency of another package I can’t upgrade.
I know it’s clickbait and all, but I can’t really let their comments about “decay” go without saying anything.
I spent a weekend updating a Python project after updating the OS. Fuck Python’s release methodology.
Yeah, Rust has a lot of releases, but they’re all backwards compatible. I’m pretty sure a modern Rust compiler can compile any historic Rust program. Meanwhile every “minor” Python release has backwards incompatible changes and there’s no guarantee of backwards compatibility at all. And that’s without even bringing up the big major bump from 2 to 3 which… Was not handled well.
Honestly, if there’s any language that people should be angry at for “decaying”, it should be Python. Hell, even C and C++ have got this right.
That honestly makes me curious, what issues have you encountered when upgrading your python(3) version?
I think they introduce new keywords every now and then. Match and async I think?
Edit: I was wrong, this is done in a backwards compatible manner
Those doesn’t break backwards compatibility though. Naturally you can’t use match with a python 3.7 interpreter, but what scripts written for python 3.7 wouldn’t work with a 3.11 interpreter?
I haven’t encountered that issue before, so I’m curious what those problems OP have encountered looks like.
Huh, ok. I thought something like
match = 0
in an old script might break a more recent version.But you may very well be correct.
match
isn’t a protected keyword likeif
is.match = 0 match match: case 0: print(0) case _: print(1)
Is legal and will give print out 0.
Well, today I learned. Thanks for pointing it out.
Some wheel didn’t install for me, so I downgraded 1 minor version and then it installed. Some cuda wheel I think.
https://stackoverflow.com/questions/74715990/node-gyp-err-invalid-mode-ru-while-trying-to-load-binding-gyp
They removed a flag that didn’t do anything any more. It also didn’t hurt anybody, but since they removed it, my JavaScript project doesn’t build on Python 3.11 and needs Python 3.10. I can’t upgrade the version of node-gyp, because it’s a transitive dependency of another package I can’t upgrade.