Talk:Placement syntax/GA1

GA Review
The edit link for this section can be used to add comments to the review.''

Reviewer:   talk 22:39, 14 November 2009 (UTC)

I have reviewed the Placement syntax article to determine if it is a good article. While I feel that this article appears to be a fairly complete treatment on the subject (and fully deserving of its current B status), there are enough issues with the article that prevent me from passing it at this time. The issues are broad enough that I have decided to not put the article "On Hold", as I believe that fixing this article will take more than a few days. Once the issues have been addressed, feel free to renominate the article for GA status. If you disagree with my review, feel free to get a second opinion by renominating. I will list the issues with the article below:

Too Technical
The concept of placement syntax is technical by its very nature. So, to some degree, this article is unavoidably technical. However, this does not mean that we can't bring the topic into a broader context for a non-programmer. Currently, the only attempt to do this is the very first sentence: "In the C++ programming language, placement syntax allows programmers to explicitly specify the memory management of individual objects — i.e. their "placement" in memory." Fair enough. But, why is this good? Why should I care if I can explicitly specify the placement of objects into memory? What does this capability allow programmers to do that they couldn't do before? Furthermore, what is the history behind placement syntax? Why was it not included in previous programming languages? Was there any specific event that sparked the inclusion of this capability?

We get a sentence in the middle of the article that sort of explains this: "Bjarne Stroustrup originally observed, in his book The Design and Evolution of C++, that pointer placement new is necessary for hardware that expects a certain object at a specific hardware address." However, statements like these should appear at the top of the article, and should be put into terms that a reasonably computer-savvy non-programmer could understand.

In summary, the top of the article needs a broad rewrite so that non-programmers can understand (at the very least) what the topic is about, why it is important, etc.

Wikilinks
Additionally, the article is very low on links. Including links for technical terms can also help the article become more accessible to a non-programmer who is really trying to understand the subject, but is not totally familiar with all of the terms. Here are a list of terms that are not linked in the article, but probably should be:
 * 1) Operator
 * 2) Function
 * 3) Expression
 * 4) Parameter
 * 5) Syntax
 * 6) Compiler
 * 7) Overload
 * 8) Array
 * 9) C++ Standard Library
 * 10) Global
 * 11) Namespace
 * 12) Static Linkage
 * 13) Exception
 * 14) Allocator
 * 15) Constructor
 * 16) Destructor
 * 17) Pointer
 * 18) Memory Leak

While going through the article to make the above list, I noticed that some of the terms I mentioned are actually linked, but in many cases they are only linked far down into the article, on their second or third instance in the article. All wikilinks should appear on (at least) the first instance of the term.


 * Thanks for the review. This article does take a slightly more technical approach to the subject than the other C++ GA's, and I think reworking the lede would do a lot to remedy this situation. I'll renominate when I feel that the issues identified by you have been addressed. Regards, decltype (talk) 15:01, 15 November 2009 (UTC)