3 ms·
> Now you're left to the lowest common denominator in the name of compatibility. Have you really accomplished anything? What's the point of having new features
by wyldfire 9y ago
> Now you're left to the lowest common denominator in the name of compatibility. Have you really accomplished anything? What's the point of having new features if you can't actually use them?
Programming languages making new revisions is better than the absence of revisions.
> All of this would be different if you could just compile this stuff to a binary format
Hardly. C99/11, C++98/03/11/14/17/2a -- these changes modify syntactical language features available during compilation and target libs. This article is from 2012 but its author appears to come to this conclusion as of yesterday [1]. Unfortunately, instead of embracing the change that takes place in both Python and C/C++, she seems to reject it all due to the complexity introduced.
Indeed, some folks tend to embrace portability over all else. CPython itself only started to move beyond requiring C89 within the last couple of years, and they're selective on which C99 features they're willing to leverage. It's an extraordinarily portable project, IMO. OTOH there are projects who leverage more modern language features in C or C++. Those projects sacrifice portability, often to move the complexity of some of their design elements into the compiler and/or platform libraries. I believe that the latter is a better option, when it's available.
[1] http://rachelbythebay.com/w/2018/04/02/cpp/ http://rachelbythebay.com/w/2018/04/02/cpp/
- dwc 9y ago> I believe that the latter is a better option, when it's available. Expanding on an aspect of that... Usually portability, along with many other such things, should be considered as a higher level goal. Decide on the portability requirements and then pick the best options within constraints. This varies wildly between projects! The same dev team may come to different decisions on various projects.
- jcelerier 9y ago> It's an extraordinarily portable project, IMO is it, though ? I write daily in C++17 and have yet to find a relevant platform where a pure C89 program such as CPython would work and mine wouldn't. I mean, for hell's sake, you can target Commodore 64 and MS-DOS with the latest c++ revisions.
- x1798DE 9y agoI imagine this depends on how you define "relevant". I think a lot of companies still use AIX, and Python compiles just fine on it, but I don't think there's a compiler that supports C++17 on it.
- jcelerier 9y agoThere is GCC 4.8 at least, which is more than enough to build GCC 7 and use c++17 afterwards