Live data from Hacker News

Herb Sutter confirms no more support for C beyond C90 in Visual C++

herbsutter.com

41–50 of 53 posts

Re: Herb Sutter confirms no more support for C beyond C90 in Visual C++

#41
post #11

I'm seeing a lot of negativity here that I don't understand. The post seemed fairly well-reasoned and reasonable; the objections seem to assume that the content of the objection should be obvious. It's not obvious to me---C++ is not a superset of C, and hasn't been for some time now, although there remains a lot of overlap and cross-pollination. So why shouldn't a C++ compiler decide to just be a C++ compiler?

The thing is that they haven't decided that. They decided that they're going to be a C and C++ compiler, but only for an outdated version of C.

Re: Herb Sutter confirms no more support for C beyond C90 in Visual C++

#42
post #39
post #11

I'm seeing a lot of negativity here that I don't understand. The post seemed fairly well-reasoned and reasonable; the objections seem to assume that the content of the objection should be obvious. It's not obvious to me---C++ is not a superset of C, and hasn't been for some time now, although there remains a lot of overlap and cross-pollination. So why shouldn't a C++ compiler decide to just be a C++ compiler?

In particular, C++98 and C99 was when C and C++ began to split, and obviously MS chose to implement C++98 instead of C99.

No. It started to split with C++98, when C++ started to error on things that were valid C.

Re: Herb Sutter confirms no more support for C beyond C90 in Visual C++

#43
post #33

Earlier quoted context omitted.

There's still a ton of C legacy code running on windows machines out there.

You say that like they are removing all C support. Unless that "legacy" code suddenly mutates to use C99 features that aren't in C++, it'll still compile in the future.

> Unless that "legacy" code suddenly mutates to use C99 features that aren't in C++, it'll still compile in the future.

Forcing legacy code to stay woefully out of date to support a single vendor's stubbornness, perpetually growing its maintenance burden as the rest of the world moves on. Hooray for the Microsoft way!

Re: Herb Sutter confirms no more support for C beyond C90 in Visual C++

#44

Earlier quoted context omitted.

It already supports C. They're just not updating the version, leaving it stuck in C89 mode.

Touche. Perhaps I should have said "Supporting versions of C past the point where one could plausibly just pipe the C code through a C++ compiler."

> Perhaps I should have said "Supporting versions of C past the point where one could plausibly just pipe the C code through a C++ compiler."

Like supporting for-loop variable declarations, which MSVC's C++ compilation mode (/TP) supports, but MSVC's C compilation mode (/TC) does not?

Oh - and what about declaring a variable anywhere other than the start of a scope? Allowed in C++, not in C. Cute.

Re: Herb Sutter confirms no more support for C beyond C90 in Visual C++

#45
From the Dr Dobb's link:

> The C99 standard is interesting because it was created at a time when a lot of people on the previous committee went away and did other things. And it was a smaller group that came over who were interested in a special-purpose area, and so it ended up having a lot of things that were not of general-purpose interest.

Sutter's comment seems spot on about the apparent departure of a lot of the original authors. C99 seems to have been designed by a group of people who's overriding motivation was FORTRAN envy.

Really, how many people were screaming for built-in complex types, type-generic math, or variable-length arrays? noalias even made it's way back into the language.

Take the Good Parts of C99: BCPL comments, long long, and , and you've basically got MSVC's C compiler.

Good Parts of C11? Anonymous structs and unions. Plan 9 FTW.

Re: Herb Sutter confirms no more support for C beyond C90 in Visual C++

#46
post #43
post #33

Earlier quoted context omitted.

You say that like they are removing all C support. Unless that "legacy" code suddenly mutates to use C99 features that aren't in C++, it'll still compile in the future.

> Unless that "legacy" code suddenly mutates to use C99 features that aren't in C++, it'll still compile in the future. Forcing legacy code to stay woefully out of date to support a single vendor's stubbornness, perpetually growing its maintenance burden as the rest of the world moves on. Hooray for the Microsoft way!

I have severals problems with this. 1) The implication that working legacy code needs to be modified to use C99 features lest it be "out of date". 2) The idea that the world is moving on to newer C standards. 3) The idea that legacy code is moving on at all.

C90 isn't going away, and it's not Microsoft's fault. Many C compilers still support 1st edition K&R style for a reason — old C code is going to stick around, and it's probably not going to change much, let alone in any way that needs C99 features.

Re: Herb Sutter confirms no more support for C beyond C90 in Visual C++

#47
post #33

Earlier quoted context omitted.

You say that like they are removing all C support. Unless that "legacy" code suddenly mutates to use C99 features that aren't in C++, it'll still compile in the future.

But will never be updated to include C99 features. Exactly.

Exactly what? C99 doesn't have any killer features that legacy code would need to "update" to. If a C89 program is working, adding unique-to-C99 features isn't going to magically make it better.

Re: Herb Sutter confirms no more support for C beyond C90 in Visual C++

#48
post #46
post #43

Earlier quoted context omitted.

> Unless that "legacy" code suddenly mutates to use C99 features that aren't in C++, it'll still compile in the future. Forcing legacy code to stay woefully out of date to support a single vendor's stubbornness, perpetually growing its maintenance burden as the rest of the world moves on. Hooray for the Microsoft way!

I have severals problems with this. 1) The implication that working legacy code needs to be modified to use C99 features lest it be "out of date". 2) The idea that the world is moving on to newer C standards. 3) The idea that legacy code is moving on at all. C90 isn't going away, and it's not Microsoft's fault. Many C compilers still support 1st edition K&R style for a reason — old C code is going to stick around, an…

Ad 1) If C99 (or C11) was supported, you could perhaps use C99/11's features to refactor parts of the legacy code into more elegant code than possible with C89 (and yes, there are sometimes good reasons not to use C++).

Ad 2) If there is support for features there will be people using them.

Re: Herb Sutter confirms no more support for C beyond C90 in Visual C++

#49
post #5

Wow, they go so far as to recommend gcc if you want "new" features. ~"We won't support those features, if you want them go use a more full featured product". Kind of makes it hard to keep peddling their product in the long term if they plan to lag behind no?

They're not peddling their product as a C compiler.

Re: Herb Sutter confirms no more support for C beyond C90 in Visual C++

#50
post #6

Earlier quoted context omitted.

Depends. From the article it seems they position their product as a C++ compiler. You don't expect your Haskell compiler to also do OCaml.

No, but I do expect my OCaml compiler to also do Caml.

C++ isn't just an extension to C in the way OCaml extends Caml. C++ is a different language, with some retained source compatibility for convenience.
Post reply on HN