Monday, July 1, 2013

FeedaMail: Comments for Sutter’s Mill

feedamail.com Comments for Sutter's Mill

Comment on My //build/ talk on Friday @ noon PDT (webcast) by Grout

I joyfully retract my previous complaint. There *is* C99 to speak of in MSVC! Praise Kernighan and Richie, I will be able to use some C99 features in universal code! Thanks Herb.

Perhaps the sound of happy developers will show MS that it’s OK to support *all* of C99 by 2015. We won’t stop using C++, we promise, we just want cross-platform lowest-level code to be less painful.

PS: C++1y is looking Very Nice.

Read More »

Comment on GotW #92: Auto Variables, Part 1 by Ben Voigt (Visual C++ MVP)

@jlehrer: I assume you’re at least as smart as a good IDE. So what’s the inferred type of b in this code:

  template<typename T>  void frob( const T& t )  {      using std::begin;      auto b = begin(t);      // ...  }  

Read More »

Comment on My //build/ talk on Friday @ noon PDT (webcast) by Chuck

Whatever was said about VS2012 on OOB releases it would appear that a lot of people expected VS2012 to be given semi-regular updates to make it more C++11 compliant. The CTP is a red herring – it doesn’t have a release licence so it’s just a novelty. I know this is what happened at our company. We write an old-school MFC app and there really isn’t anything in Visual Studio for us except C++ compliance improvements (when was the last time MFC, and native desktop developers in general, got any love?). I seriously doubt we’ll be purchasing VS2013 after getting our fingers burnt, which is a shame since I think there’s a a lot of funky stuff on its way. Our only hope was that Microsoft would take all of this on board and make VS2013 a free upgrade (think Windows 8.1 after the relative disappointment of Windows 8). That’s not going to happen though.

Read More »

Comment on GotW #92: Auto Variables, Part 1 by jlehrer

I am not as good as a good IDE, that’s why people like to use IDEs. It will do the work for you and know the type of ‘b’.

I can take a guess, though. With the code you posted, there is not enough information to determine the type. This is because if the template type “T” is in a namespace then Koenig lookup dicates that the namespace is considered for a method named “begin” and that method’s return type is not shown in this code.

Oh, I think I just figured out your point. Your point is that the IDE can’t know the type of “b” either because this is templated code. Why didn’t you just say that? :) Good point.

Read More »

Comment on GotW #91 Solution: Smart Pointer Parameters by GregM

The point is that if you have data races with your smart pointer or your pointed-to object, then neither by-copy or by-ref is going to help you.

Read More »

Comment on GotW #92: Auto Variables, Part 1 by GregM

Ben, that’s a great example of how auto enables you to write much more generic code. Without auto, or at least decltype, which doesn’t provide any additional information beyond auto, you would have to write that function for each possible T, or at least pass the T down into some other template type such as vector. The ability to write generic code, of course, does mean that you need to know the types used in the instantiation before the other types that are dependent on it can be determined.

Read More »

Comment on GotW #92: Auto Variables, Part 1 by Ben Voigt (Visual C++ MVP)

@GregM, in C++03 you’d want to use a type trait to isolate the container-specific type information and leave the main algorithm generic. But indeed decltype and auto make this much much more convenient.

Read More »

Comment on My //build/ talk on Friday @ noon PDT (webcast) by Alastair

It is very disappointing that Visual C++ users aren’t going to get automatically generated move constructors and move assignment operators (“rvalue references v3″) in a RTM version of VS until likely near the end of 2014 (assuming the current VS release schedule is maintained)

Having to write (and then maintain) move ctors/assignment operators (where you simply just want what should be the default versions) is time consuming and error prone from experience

Read More »

Comment on My //build/ talk on Friday @ noon PDT (webcast) by jalf

I think the misunderstanding/confusion is that you’re thinking about this as a MSVC team member, and not as a MSVC user/customer.

A year ago, your team promised C++11 conformance features at a faster cadence than the existing 2-3 year cycle.
These updates would be delivered out-of-band, that is, without waiting for a major version of Visual Studio.

Or, from your own quote above,

> in Feb 2012 at GoingNative, we said we'd ship conformance features in "out-of-band" CTP and RTM updates

I think we all agree so far.

Now, you can draw two obvious conclusions from this (and I’d say both follow logically from the above)

1. C++11 conformance features will be delivered at a faster pace following VC++2012 RTM.
2. These updates will be added to the product your customers already bought – that is, if you buy VS2012 at launch, you will get the RTM version, and over time, it will gain new features (and bugfixes). (I don’t think you can reasonably interpret “out-of-band” to mean “in the next major version”)

*So far*, this is not just your customers misunderstanding you, it is a straightforward logical deduction based on the above promise. C++11 conformance features will come, and they will come in the form of out-of-band updates.

Then, as you said in your earlier comment, Visual Studio *as a whole* moved to this faster cadence, which means that conclusion #1 would still be true going forward, but #2 would not.

Now, your team obviously sees #1 as the main point. You want to deliver C++11 conformance, and as far as you’re concerned, it doesn’t matter which form it is shipped in: part of VS, separately, for free, at a cost, subscription-based, distributed in a lottery, whatever. As long as you get to deliver a more up-to-date compiler, the VC++ team is happy.

And to your team, #2 really doesn’t matter. It’s an implementation detail. Who cares if variadic templates are shipped in VS2012 or VS2013? What matters is the *date* at which it ships: “how fast can we churn out new features?”

And if you can deliver #1 without #2, then that’s just as good as delivering both. You don’t see #2 as having any value in itself. From your point of view, it doesn’t really matter *how* C++11 features are delivered, and at the time “out-of-band” was merely mentioned as the most feasible approach.

Or as you said above, “We (VC++) are excited that this means we don't have to do our own separate out-of-band RTM releases after all”.

To you, it’s a *good* thing that you were able to achieve the important part of the promise without having to do out-of-band releases.

But strictly speaking, “out-of-band” was part of the promise given to your customers.
Your quote above was not “we said we’d ship conformance features”, it was “we said we’d ship conformance features in ‘out-of-band’ CTP and RTM updates”.

Now try putting on your customer glasses:

Your customers certainly appreciate #1, because yes, C++11 conformance matters.

But your customers also saw a fairly direct promise that there will be “out-of-band updates”, that “if you switch to VS2012, then you will eventually have access to more C++11 features than were in RTM”.

Now, we can obviously disagree on the importance of the “out-of-band” part of the promise, but it is pretty hard to avoid the fact that it was *part* of the original promise.

It wasn’t simply your customers misunderstanding you. Your customers latched on to exactly what you *did* say, even the parts that you thought were insignificant and just “an implementation detail in order to be able to deliver on the *important* part”

Read More »

Comment on My //build/ talk on Friday @ noon PDT (webcast) by deadmg

For me personally, the difference between “Out of band update for VS 2012 in 2013″ and “VS2013 with the same new features” all comes down to pricing. I’m an ex-student and there’s no way I can afford to buy VS2013. The *main* thing I wanted to get from the out-of-band updates wasn’t that they would be delivered sooner (although that was great), but that they would be free for my licence for VS2012. If VS2013 is very cheap to upgrade, then I probably won’t care- see the Windows 8 pricing. If you’re going to want me to pay five thousand dollars, I’m going to be miffed, because that is going to be unaffordable for me, whereas I had previously thought these updates affordable.

So the short is that if you offer VS2013 at a pretty cheap price for those of us who own VS2012 already, then I think that this won’t be a big PR problem. Else, it will feel to me and many others like we’re not going to get what we thought we would.

Read More »
 
Delievered to you by Feedamail.
Unsubscribe

No comments:

Post a Comment