Nobody likes to be called a dummy by a dummy.

Hate that AP feature

This post is about technology and so it should actually have been in the main JoS forum, but it's got a slight off-topic bend, so here it is.

Just venting out about that AP feature that I hate in C++. I hope you guys understand. I mean its ugly and it always emits wrong output. And it creeps into the list like an unwanted bug.

Of course, if you aren't a programmer or into IT, you won't get it, so if the AP feature is to compile this rant, it probably won't enter the IF construct and so it won't understand this condition.

So, those of you hate that feature, raise your hands. Like there was the VB MVP petition, I'd want to garner your vote about whether you hate this feature or not.

The vote obviously won't make any difference. Just for fun. That feature in that programming language in that technology sucks.

[] Yes
[] No
Permalink Raise both your hands 
March 28th, 2005
I use C++ and have no idea what you mean by the AP feature.
Permalink Davis Maculay 
March 28th, 2005
What is "that AP feature"?
Permalink hoser 
March 28th, 2005
Well, its not that easy to describe the AP feature in such obliqueness. It's also quite tricky to be able to identify the AP feature without a straight forward reference to its characteristics. However, I am going to take a stab at it and hope you'll follow the cue. It's actually more fun this way - when you do not have a direct reference to the AP feature, but instead have a pointer to a pointer to the AP feature. That said, I am certain you have witnessed the AP feature creep in at most unwanted times and emit horrible, coarse, foul output on the monitor of your screen. Next time, look closer. This is going to be more fun than I imagined.

As to what the feature is that I am talking about, it is a private (read anonymous) member of the class that has little relevance to the "class" of the class.

Let me draw an analogy. Let's say you have a class to represent a discussion list or a collaboration software or a social networking software. No, let's take something we are already familiar with - this forum.

To represent this forum, our class "contains" an aggregation from a collection object - a collection of person objects represented by a Members property. However, the Person class that these person objects instantiate do not represent a regular Joe. The Person class actually "should've" derived from an abstract base class with an immutable const private member called "IsGeek" or "bIsGeek" set to true/non-zero.

Instead, the Person class implements an interface called IGeekie that has only one method called SetGeekness() that accepts an argument of type bool/int and does something like this:

class Person:public IGeekie
{

public:
  void SetGeekness()
  {
    _bIsGeek = bIsGeek;
  }

private:
  int _bIsGeek;

};

This is the problem. Any person object can coerce this private property by setting geekness to true/non-zero in order to gain entry into the Members collection of the Forum class object.

Further, the forum class implements an interface called ITopicness, which imposes a topic behaviour on the forum. You see, even Off-topic is a "concept" that relies on "topicness" for its existence. It is a diminutive, a negation of "topicness", and thus depends on topicness for its meaning.

The feature I am talking about in the above scenario is an instance of the Person class that set its _bIsGeek to true and to clear the check that the forum class instance performs before adding the person instance to the members collection/property. The AP feature also has a language [design] problem. It emits absolute crap in its native platform language. The fun part is, since the feature has its _bIsGeek property coerced, it won't even compile this rant. It's got a weak compiler, a horrible, horrible lexical parser and it has a dire need for "Eats, Shoots and Leaves".

I wouldn't hate a feature so much about any programming language, but it's just that the usefulness of the feature is almost nil and the worst part is that it doesn't behove a programming language feature to be that harsh in its native platform language, which most of you, being non-native to its platform probably don't catch as exceptions.

Make sense?
Permalink Raise both your hands 
March 29th, 2005
No.
Permalink  
March 29th, 2005
I forgot to mention the argument in the above snippet. However, I hope I've made a valid argument. I am no bigot but I hate insensitive language features exhibiting inappropriateness in conduct.

void SetGeekness(int bIsGeek)
  {
    _bIsGeek = bIsGeek;
  }

Do you dig that?
Permalink Raise both your hands 
March 29th, 2005
"++ No.++"

meaning -

(a) you've never come across the feature in your programs?
(b) you've come across the feature and it sucks?
Permalink Raise both your hands 
March 29th, 2005
Hating C++ is one of my hobbies, but still I have no damn idea what you are talking about.
Permalink Damien Katz 
March 29th, 2005
Meaning WTF does the "A" in "AP Feature" stand for, and WTF does the "P" in "AP Feature" stand for.

We don't necessarily want an object-oriented explanation with three levels of indirection, we just want to know what the letters stand for. Most letters in most acronyms stand for a word.

You've said you really hate this thing, whatever it is, and asked if others hate it, too, but the amount of mind-reading required to give you a meaningful answer is getting irritating.
Permalink AllanL5 
March 29th, 2005
AP is an acronym. Its a member of the (this) forum class. It needs a copy of Eats, Shoots and Leaves badly. It vomits street speak in its native language sometimes.
Permalink Raise both your hands 
March 29th, 2005
>"++ No.++"
>
>meaning [...]

No (adv.)
Used to express refusal, denial, disbelief, emphasis, or disagreement.

In this case:
Make sense?
No.
Permalink  
March 29th, 2005
<start_of_quote>
In this case:
Make sense?
No.
</start_of_quote>

you got it. I think you got it.
Permalink Raise both your hands 
March 29th, 2005
"Any person object can coerce this private property by setting geekness to true/non-zero in order to gain entry into the Members collection of the Forum"

Only if the forum doesn't validate the property before accepting the object.

The problem isn't that the person is a liar, it's that you're a blind believer.

So whats the problem?

(Have I understood your analogy correctly?)
Permalink Jonathan 
March 29th, 2005
Ignore my last post.
Permalink Jonathan 
March 29th, 2005
Hmm, I have to conclude Troll.
Permalink AllanL5 
March 29th, 2005
>Have I understood your analogy correctly?

Yea! I think you got it somewhat.



>The problem isn't that the person is a liar, it's that you're a blind believer.

No. I'm not being sectarian against the feature for lacking geekness or not being a part of the clique. What I'm trying to point out is that in the light of the feature's errant behaviour and usage of foul programming language in its native platform, it becomes more visible that the usefulness of the person object is almost nought.


And, of course, the forum does not validate the property before adding a member, and it rightly shouldn't because there's actually no way to guarantee a check on the geekness of a member. I painted this picture to ease the identification of the feature.

Have you been able to identify the feature in your programs?
Permalink Raise both your hands 
March 29th, 2005
Allan, have you been able to decode the acronym? They keywords are "Eats, Shoots and Leaves" and disrespectful language, street slang, in the "native" VM.
Permalink Raise both your hands 
March 29th, 2005
Either a troll or an attempt to be funny. I don't understand why anyone bothered to reply to this in the first place.
Permalink muppet 
March 29th, 2005
> >Have I understood your analogy correctly?

> Yea! I think you got it somewhat.

But... I *retracted* my post! Having the forum validate doesn't solve the original problem.

Still, it was an incorrect challenge, so you gain an extra point!
Permalink Jonathan 
March 29th, 2005
This was not just another troll. It was a rant from a poster about a particular thing that be believes sucks. I've also tried to make it clear that the programming language feature I named above is an acronym. Let me also add that both the words that form the expanded acronym can be found in this paragraph.
Permalink Raise both your hands 
March 29th, 2005
You still could have flamed Another Poster a bit more creatively. This post is incredibly obtuse and the joke highly abstracted. The fact that NO ONE got it should be a clue.

Anyway is the OP Sathyaish?
Permalink muppet 
March 29th, 2005
"This was not just another troll. It was a rant from a poster about a particular thing that be believes sucks. I've also tried to make it clear that the programming language feature I named above is an acronym. Let me also add that both the words that form the expanded acronym can be found in this paragraph."

{ a, acronym, add, also } x { paragraph, particular, poster, programming }

gives...

a paragraph
a particular
a poster
a programming

acronym paragraph
acronym particular
acronym poster
acronym programming

add paragraph
add particular
add poster
add programming

also paragraph
also particular
also poster
also programming

You know what? I just *hate* Also Particulars too.
Permalink Jonathan 
March 29th, 2005
Arggh! I missed 'another'. Dammit!
Permalink Jonathan 
March 29th, 2005
Using your notation, that should probably be something like:
{another, about, a, above, an, also, add, acronym} X {poster, particular, programming, paragraph}

But really, it's best to keep it in sexp notation ;) --
((a (another about a above an also add acronym))
(p (poster particular programming paragraph)))
Permalink Tayssir John Gabbour 
March 29th, 2005
In a few years, we will remember "the legendary AP feature."

You Nazi.
Permalink Alex 
March 30th, 2005
God, how annoying.

I want those minutes back I spent reading this thread.
Permalink Aaron F Stanton 
March 30th, 2005
Aaron,

You can have your time back.


int RedeemMinutes()
{
  return 10;
}

Jonathan and muppet got it right. And Alex, I ain't no Nazi. Just a little hateful only just now. Guess, I'll switch off the hate mode. [Hate mode switched off]. Yet, I am hateful of that feature in C++. I wish you'd know what that feature spits out in it's native language. It's unforgivable.
Permalink Raise both your hands 
March 30th, 2005

This topic was orginally posted to the off-topic forum of the
Joel on Software discussion board.

Other topics: March, 2005 Other topics: March, 2005 Recent topics Recent topics