Hacker Timesnew | past | comments | ask | show | jobs | submitlogin

C99 can link to programs written in ANSI-C just fine. The issue is with trying to compile the latter on a compiler written for the former.

This will always be an issue when dealing with a language as entrenched as C: Most of your user-base will have oodles of code written under the previous standard. If you break backwards-compatibility on a level that's going to take them multiple man-months just to get working again, most aren't going to bother and will stay with the older standard instead. Your new standard stagnates and dies.

There IS a way to do this, but it's not nearly as simple as you seem to believe. Take a look at what's happening with Python 2 & 3. It's a difficult, albeit possible, transition, and I'm not sure how often exactly one can reasonably expect to pull it off.



AFAIK, Python folks are experiencing something different: they have two incompatible languages which can't talk to each other, that's why they have to port code from Python 2 to 3. OTOH, no matter how bad I think about Perl, it seems Perl folks are doing fine instead, regarding backward compatibility of version 6 toward 5 (version 6 will have a compatibility mode). Ehi! If I'm not mistaken, ISE Eiffel will happily compile and link both Eiffel and C++ code.

I agree that old code is sacred and I agree that handling backward compatibility is not an easy task, but carrying decades old baggage isn't a solution either, if you ask me. I remember how one day while I was coding in C++ and I realized how much baggage I was carrying in my mind at each step while writing code.

Of course programmers will not switch to the new standard if it does not provide enough advantages, but then history shows that people are willing to even switch languages if their current one becomes an unmanageable mess.

As PG said in an essay of his, different versions of a language are different languages. Then just treat them as such.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: