C compilers: we gave you a 30 year grace period to fix your invalid code, and now finally it's erroring out.
Python: version N says "use method foo", version N+0.01 says "no, foo is gone, now it's called fooo because that's a more correct spelling".
C compilers: we gave you a 30 year grace period to fix your invalid code, and now finally it's erroring out.
Python: version N says "use method foo", version N+0.01 says "no, foo is gone, now it's called fooo because that's a more correct spelling".
Like seriously, if you're making a programming language, any program written *correctly, to the spec* in year Y should still run unmodified in year Y+25. If you can't guarantee that, your language is a joke.
@steve This is kinda true but an exaggeration. C is a fairly simple language without too many footguns, and if you're not trying to show off living on the edge of the rules, they're not hard to avoid.
C code which hits them is mostly written by smartasses trying to do "portable asm", premature optimization, etc.
@dalias C and C++ solve this by littering the spec with so many landmines that no one can write a “correct to the spec” program. Newer languages solve it by simply not having a spec.
Fortran and COBOL remain undefeated as the only widely-used serious languages.
@steve It's still worth something that the degree to which you might have to fix stuff is proportional to how nonconforming your code accidentally was. As opposed to being at random whim of someone who thought changing the name of something would make the language prettier.
@dalias yes, I’m exaggerating, it is _possible_ to write conforming C programs. But still we live in a world where only a very small fraction of the C code written actually is strictly conforming.
@jn *sigh* I thought they'd finally fixed that.
@dalias a bit of a different issue, but it reminds me that the rust 'libc' crate it still stuck on musl 1.1, i.e. before the big y2038 proofing
@dalias Yes, and same for operating systems. OpenBSD regularly has breaking API (not just ABI!) changes, potentially requiring 3rd party software to be ported to every new release.
@muvlon And just ignores the standards when Theo thinks "hey, a function by that name should do something different"... 🤬
GNU social JP is a social network, courtesy of GNU social JP管理人. It runs on GNU social, version 2.0.2-dev, available under the GNU Affero General Public License.
All GNU social JP content and data are available under the Creative Commons Attribution 3.0 license.