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
Raise both your hands
March 28th, 2005
I use C++ and have no idea what you mean by the AP feature.
Davis Maculay
March 28th, 2005
What is "that AP feature"?
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?
Raise both your hands
March 29th, 2005
No.
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?
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?
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.
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.
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.
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.
March 29th, 2005
<start_of_quote>
In this case:
Make sense?
No.
</start_of_quote>
you got it. I think you got it.
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?)
Jonathan
March 29th, 2005
Ignore my last post.
Jonathan
March 29th, 2005
Hmm, I have to conclude Troll.
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?
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.
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.
> >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!
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.
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?
"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.
Jonathan
March 29th, 2005
Arggh! I missed 'another'. Dammit!
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)))
In a few years, we will remember "the legendary AP feature."
You Nazi.
Alex
March 30th, 2005
God, how annoying.
I want those minutes back I spent reading this thread.
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.
Raise both your hands
March 30th, 2005