Feeds

back to article Coders grill Herb Sutter on future of C++ at Microsoft

"The world is built on C++ and so is Microsoft," proclaimed Herb Sutter at Microsoft's Build conference last week in Seattle, Washington. Sutter is chair of the ISO C++ standards committee and Microsoft's Visual C++ language architect. Native code is currently ascendant inside his company, with C++ prominent in SDKs for Windows …

COMMENTS

This topic is closed for new posts.

Page:

Silver badge
Meh

Hello?

"...World..."?

Doubt it.

1
2
Bronze badge
Coat

"We are very happy with reference counting"

I like reference counting. It makes me feel like a manly man type programmer. IGMC.

3
0
Thumb Down

Re: "We are very happy with reference counting"

Points and laughs.

So glad I don't suffer from those 'where are my keys, wallet, bollocks' style bugs anymore.

1
0
FAIL

So cancelling Win32 APIs and forcing Metro is "to get back to parity" ?

Please... really.

Visual Studio they messed it up too due to all the Metro nonsense at Microsoft.

Metro is the worst thing ever.

Way worse than .NET (the Microsoft Java clone, way more messed up than Java itself).

7
7
Bronze badge

Re: So cancelling Win32 APIs and forcing Metro is "to get back to parity" ?

Visual Studio does not force you to write "Metro" applications. Want free? There you go.

For one I welcome increased compatibility with C++11 and hope that remaining features (deleted and defaulted functions please, and "rvalue for *this" too)

10
0
Silver badge
Windows

Re: So cancelling Win32 APIs and forcing Metro is "to get back to parity" ?

"Way worse than .NET (the Microsoft Java clone, way more messed up than Java itself)."

Uhm, you do realize that .NET is nothing more but a framework which can be used to gain easier access to specific Windows components? Its not a programming language and most certainly not a Java clone.

What you're referring to is C#(.NET); a programming language which can be used to write applications which fully utilize the .NET framework, comparable to the way a Java program is build upon the Java runtime. And indeed; in a way C# mimics Java.

But don't forget that you can also use Visual Basic as well as C++ to build .NET applications. Heck, MS' own application server (IIS) even provides .NET support for ASP build webpages.

10
2
Silver badge
Windows

@Bronek

Problem with the VS 2012 Express stuff is that you're still somewhat tied to Windows 8, which is something I'm really not looking forward of using.

So instead of that stuff I'd sooner recommend grabbing one of the VS 2010 Express versions instead. Works excellent on both Windows 7 or Windows 8 (if that's your thing).

You don't even have to deal with the "Desktop version" nonsense (personal opinion) but instead can focus on language; are you going to use C#, VB or C++ ?

2
1
Bronze badge

Re: @Bronek

Oh I forgot to mention it - CTP also adds support for running applications on Windows XP.

Should have been mentioned by El Reg, really.

In case you mean that I will be unable to run VisualStudio on Windows 7 - duh! didn't see that one coming :( Is it true?

1
0
Thumb Down

Re: So cancelling Win32 APIs and forcing Metro is "to get back to parity" ?

You have no clue what you are talking about, really.

.NET is a virtual machine just like Java.

"nothing more but a framework" you wrote there means absolutely nothing that way.

The C# language for accessing .NET components and programming doesn't mean that it isn't a virtual machine because .NET is a virtual machine, plain and simple.

That is the reason why .NET apps are so slow and bad compared to C++ ones.

And that is a good reason why since Microsoft forced video cards/GPU manufacturers to write drivers using .NET the distribution packages became a bloated mess and the number of bugs increased like never before.

C# and .NET just like Java are suited for not real programmers. Real programmers use C/C++ and in-line assembly at least.

3
6
Bronze badge

Re: So cancelling Win32 APIs and forcing Metro is "to get back to parity" ?

VB.NET is not BASIC. It looks a bit like BASIC to some one who isn't familiar with BASIC, in the same way that C# looks a bit like C++. But decades of programming BASIC don't give you any familiarity with VB.NET. Quite the reverse: your deep understanding of the way any BASIC will work just makes VB.NET irritating.

And to continue the thought, ASP (vbscript) is not ASP.NET (CLR).

Anyway, Dot Net is in no way a "framework which can be used to gain easier access to specific Windows components". It is the framework which is required to achieve access to Windows from the CLR.

Which is not quite the same thing.

0
0
Happy

Re: So cancelling Win32 APIs and forcing Metro is "to get back to parity" ?

C# is actually the "Java clone".

There are several hundred reasons why it is superior to Java not least the ability to compare strings with the "==" operand rather than the awful aString.equals(anotherString) construct.

I would not normally consider myself an MS fan. I use Ubuntu with Python or C as my preferred development platform. But must use a variety of languages in my day job which pays the rent (Java, COBOL, C, bash, Rexx, VBA and C#) the only computer language I really don't like using is C++ -- the learning curve is way too steep for anyone not using it full time.

So all credit to MS for C# and .net.

3
1

@Joerg: Re: So cancelling Win32 APIs and forcing Metro is "to get back to parity" ?

.NET is a virtual machine just like Java.

Java is a language, not a VM. Compiled Java code may, or may not, run on a VM.

1
1
Trollface

Re: So cancelling Win32 APIs and forcing Metro is "to get back to parity" ?

Pfft. Real programmers use a magnet, a needle and a steady hand.

3
1
Anonymous Coward

@Joerg

Real programmers code in any given language that fits the task they are given and the platform they need to integrate to. Be it C++, C# VB.NET, Perl, Python etc etc etc. At the end of the day they are all pretty easy to pick up.

Sticking to one platform is usally the domain of amateur developers. Professsionals who stick to one platform severely limit their employment options.

7
0

Re: @Joerg: So cancelling Win32 APIs and forcing Metro is "to get back to parity" ?

The thumbs-down is curious. Perhaps you'd care to actually explain to me what exactly is wrong with this statement:

Java is a language, not a VM. Compiled Java code may, or may not, run on a VM.

...?

Before explaining, you could perhaps look up some Java compilers that compile direct to machine code, or perhaps even open a text book.

0
0
Silver badge

Re: So cancelling Win32 APIs and forcing Metro is "to get back to parity" ?

don't forget that you can also use Visual Basic as well as C++ to build .NET applications

Yes, and dozens of other languages. VB.NET would be somewhere around my last choice, personally.

See for example the list at [1]. It's rather idiosyncratic and not terribly accurate (it lists F# only as a Caml implementation, for example, and the information for .NET COBOL implementations is rather out of date), but it gives a sense of the state of play.

[1] http://www.dotnetpowered.com/languages.aspx

0
0
Anonymous Coward

Never understood why the world and his dog don't spend more time making C++ better rather than inventing loads of junk languages. Or at least improve other solid languages that run well and fast.

Abstraction and virtualisation was possible and desirable on desktops, but on the mobile device you really want as little of that as you can get.

3
3
FAIL

Oh, they did

C++11 is BETTER THAN YOU CAN HANDLE. No, seriously, it is. It's added so many new, better features that's it's now barely usable. For example, user defined compile time constants.

The idea of improving the language by *reducing* the number of features so as to make it more flexible, consistent and understandable (and removing some of the outright bugs in the syntax) does not seem to have occurred to them.

12
0
FAIL

Re: Oh, they did

Mutter mutter. Use defined compile time constant *formats*. Formally known as 'user-defined literals'. See http://en.wikipedia.org/wiki/C%2B%2B11#User-defined_literals

(Icon referring to me this time.)

2
0
Def
Bronze badge

"Never understood why the world and his dog don't spend more time making C++ better rather than inventing loads of junk languages."

Because the world + dog isn't on the C++ standards committee. Which is why there are so many junk languages out there.

What the world really needs is a serious competitor to Visual Studio instead of a bunch of pale imitators (written in Java of all things) that are constantly playing catch up. Give Microsoft a serious run for their money in the C++ Windows development tool arena, and maybe the quality (and performance) of Visual Studio will improve.

2
3
Happy

There already is a "better" C++

Its called C.

4
2
Silver badge

Re: Oh, they did

You have a problem with the natural complexity of computing being expressed in a computing language?

You should try using Windows then.

0
0
LDS
Silver badge

People are downvoting this, but probably many forgot what MS C/C++ compiler was before Borland C++ became a serious competitor. It forced Microsft to deliver far better tools (and meanwhile do whatever they can to crush Borland - especially hiring its better employees like Hejlsberg....). Unluckily the current owner of the ex-Borland products is not capable of delivering nothing at that level... and no one else dares to enter such a market.

2
1
Anonymous Coward

what happened with .NET ?

Am I alone in recalling Microsofts original ambition was a framework that would allow applications to run on hardware independent platforms ?

1
0
Ru

Re: what happened with .NET ?

You'll have more luck moving a .net application between x86, x64 and ARM than you will with an unmanaged language. If your code is trivial, you can even get it to run on Mono.

1
1
Silver badge

Re: what happened with .NET ?

Hmmm.

Just how trivial?

0
0
JDX
Gold badge

Re: what happened with .NET ?

>>Am I alone

You mean like how you can run .NET code on Linux through Mono, or Mac through Silverlight?

1
2
Silver badge
FAIL

Re: what happened with .NET ?

Yeah sure go ahead and put a mission critical business app on Mono so you can save on windows licenses and see how long you stay employed. There are plenty of cross platform solutions but .Net is not one of them.

0
0
Anonymous Coward

Re: what happened with .NET ?

mono also runs on iOS

0
0
Silver badge

Re: what happened with .NET ?

I remember attending some of the earlier .NET stuff about how the DLL hell was at an end. I loved C# and the VS for it.

Then they upgraded to .NET 2 and you couldn’t run the two together. Kinda lost faith then.

6
0
Anonymous Coward

Re: what happened with .NET ?

I know a company that's doing that, sort of. Luckily in the years that the planned release has slipped, Mono has improved to the point where it might actually work. Equally luckily, NIST changed the policy on SHA-1 that originally gave a hard limit of 2010 for the release date.

1
0
LDS
Silver badge

Re: what happened with .NET ?

No - if you have a common set of API whatever the underlying hardware architecture is you just need to recompile - a PCode/IL just defers the compilation step to execution time. Only kernel code may have to face different hardware architecture issues - and not all of it.

Windows NT supported Alpha and MIPS also - do you remember?

Look at Linux and GCC - on how many hardware platform does it compile? C itself was devised to allow for porting operating system easily from an hardware platform to another - as long as you have a compiler for that platform you can run it on it (of course you will need some ad-hoc drivers....)

2
0
JDX
Gold badge

@adsf

This happens quite a lot. Any problems would be in the quality of the mono implementation, just as the JVM implementation can be bad on a given platform.

.NET is a cross-platform solution just as soon as the open-source community choose to make it so.

0
0
Silver badge

Re: @adsf

>.NET is a cross-platform solution just as soon as the open-source community choose to make it so.

Which is exactly my point. OSS can smell the trojan horse that .Net has been from a mile away regardless of Microsoft's promises. Thats why most distributions don't include Mono and any apps by default. Until Microsoft explicitly supports .Net on a platform, to use it for anything business critical is just plain stupid. Oracle understands this and is one more reason Java is eating .Net lunch.

1
0
Anonymous Coward

Re: what happened with .NET ?

Mono has improved to the point where it might actually work

I wouldn't go that far!

Plus I'd put money on version 2 being in C++.

0
0
Headmaster

Usage FAIL

"Still, that is past history."

*cringe*

Did you mean "history?"

2
1
Silver badge
Joke

Re: Usage FAIL

You'll probably find that Apple or Samsung or the Swiss Railways or someone have a patent on future history.

I'm sure the USPO would probably approve it anyway.

2
0
Silver badge
Joke

Re: Usage FAIL

I don't know about a patent, but I'm fairly sure Robert A. Heinlein had a copyright...

1
0
Silver badge

Re: Usage FAIL

Future History? Aasimov has prior art.

3
0
Silver badge

Re: Usage FAIL

Indeed he does and also on something ( I think it was called a calcpad ) that might be a rounded rectangle.

All from the opening pages of "Foundation"

1
0
Gold badge
WTF?

a version 1 release of ARM

"We have a really mature compiler and optimiser. It's been around for a decade or two, on x86 and x64. Then we have a version 1 release of ARM. You can expect that to get better."

The Microsoft ARM compiler is not much younger than the x64 compiler. The former dates back to the early WinCE releases, and the latter post-dates the era when Intel were trying to convince everyone that there would be no 64-bit extension to x86. If Microsoft's ARM compiler is immature, it certainly isn't because it is new.

3
0
Anonymous Coward

Isn't there a CTP on its way soon?

I'm fairly certain they're pushing out a preview of new C++ features in the near future, with an actual release at the beginning of next year. Variadic templates are on the way, but I don't think that C99 compliance will be advanced at all :-(

0
0
JDX
Gold badge

Re: Isn't there a CTP on its way soon?

I suppose MS simply don't consider C as worth focusing on. Since most C development is done on Linux, it doesn't seem too stupid a decision - they have limited resources and would rather focus on C# and (yay!) C++.

1
0
Silver badge
Meh

I know Win7 Explorer certainly is

As the error box that pops up about 1 in 20 kindly tells me before the whole thing crashes in flames before restarting itself phoenix-like.

1
0

a version 1 release of ARM

They should use gcc for ARM. It's quite good and used by loads of people already.

0
0
Silver badge

Re: a version 1 release of ARM

But even that isn't as good as Arm's (the Company) compiler, which can produce better optimised binaries. MS should just license that.

0
0

Re: a version 1 release of ARM

There's probably about as much chance of that happening as them basing IE on WebKit!

0
0

OpenCL

"But there are no plans for OpenCL, an open standard for GPU and accelerator programming."

As Direct3D is to OpenGL, C++AMP is to OpenCL ;)

0
0
Silver badge
FAIL

So this article all but admits .Net has been a failure (obvious to rest of world) and caused M$ to badly neglect MFC (which they have done) which is still how many pros build windows clients that will run on virtually every modern version of windows (sorry web folks but even HTML 5 is not fit for a fat client). Now much like with .Net and Silverlight they are pushing WinRT which like Silverlight will fail and be deprecated in three years. Hey Microsoft how about fixing MFC, and modernizing it instead of pushing out crap 3rd party add ons like the BCGSoft ribbon stuff which is badly broken. Give up trying to be sexy, you suck at it and get back to making tools real developers will use in the enterprise.

3
3
Silver badge
Trollface

managed code lmao

Managed code has its place but Microsoft was stupid to believe unmanaged code would disappear by now. Just because fresh out coding hacks don't understand how a computer works and can now hack out crap doesn't mean there is not a need for people who do understand how a computer works and can write efficient code to take advantage of that.

2
2

Page:

This topic is closed for new posts.