When Copywriters Try To Program
Not that I'm against a bit of cross-pollination, and I certainly enjoy the occasional ad that speaks to my inner (and outer) geek, but if you're going to do it, do it right. Case in point, the Axe ad to the left. On first look to most people it probably seems funny, if perhaps a bit cutesy. Upon closer inspection, though, I suspect most people will recognize the code's flaws, but semantic and logical.
For starters, the call to "understand.this" makes no sense. At best, this would likely return a reference to "understand", which makes it redundant. At worst, it's a compiler error. (Both these comments are, of course, somewhat language dependent.) Next, we all know that using the equals operator (==) can be problematic. Further, it seems odd to compare "you" to "understand.this", which are likely different data types and therefore defy comparison. A more logical and semantically valid statement would be:
-
if( you.understand( this ) ) {
As well, the call to "get.a.girlfriend" is problematic. For starters, the object/property/call chain makes little sense. While it might be work well as a URL, it is clearly an action and therefore (again) should be a method call, not a property/field call. Notice as well that the call operator (()) is missing, which, while valid in a few languages, is generally not acceptable. Again, the perhaps correct way of writing this would be:
-
you.get( girlfriend );
Or, perhaps:
-
you.getGirlfriend();
Or we could go all the way, abstract it out a bit more, and go with:
-
you.getFriend( Gender.Female, Interest.Romantic );
Rolling that up into a complete block, you wind up with:
-
if( you.understand( this ) )
-
{
-
you.getFriend( Gender.Female, Interest.Romantic );
-
}
'Nuff said...
(Thanks to Kelly for the original link to the ad - http://cerium50.niloo.fr/18-10-2008/creatives-ads-volume-3/)





Kelly wrote:
Simply awesome, Jason
Posted on 20-Oct-08 at 11:32 am | Permalink
paul wrote:
Excellent!
Thanks for the very concise write-up. Hopefully future geek ads will get it right.
Posted on 20-Oct-08 at 12:09 pm | Permalink
Ian wrote:
Perhaps they could have gone with getAGirlFriend (); as the copy writers could come back with equal grammatical arguments.
Posted on 20-Oct-08 at 1:19 pm | Permalink
Dave DuPlantis wrote:
I think it might be better to write
var girlfriends = 0;
if( you.understand( this ) ) {
while( girlfriends == 0 ) {
you.approach( woman );
if( you.getNumber( woman ) ) {
try {
repeat {
you.date( woman );
if( woman.isInterested( you ) {
girlfriends++;
}
} until( girlfriends == 1 or woman.phoneNumber() == null );
} catch ( ) {
// hopefully nothing
}
}
}
}
Of course there are probably errors in the logic. I haven’t run this code recently.
Posted on 20-Oct-08 at 2:08 pm | Permalink
Binary Code » win = Jason.p0wn( Axe.ad ) wrote:
[…] In which Jason tears apart and then rebuilds Axe’s rather clichéd ad, and in the process makes it funny instead of just dumb: When Copywriters Try To Program. […]
Posted on 20-Oct-08 at 3:29 pm | Permalink
Nek wrote:
The copywriting on this one sucks in a funny way =)
You’ve made great work on fixing the errors!
Posted on 20-Oct-08 at 4:50 pm | Permalink
If you can read this get a girlfriend wrote:
[…] formal für nicht korrekt erklärt, analysiert und unter der Überschrift “WHEN COPYWRITERS TRY TO PROGRAM” auch gleich einen saubereren bzw. besseren Code […]
Posted on 07-Mar-09 at 4:55 am | Permalink
Reba wrote:
Lol, that’s really amusing. With the errors fixed, the only thing remaining is testing whether the algo actually works.
Side note: thanks for the creative ads link.
Posted on 10-Jun-09 at 5:33 am | Permalink
Photography West Palm Beach wrote:
Photography West Palm Beach
So I actually did this last minute entry, but I think it came out really well. I just submitted it now, and we’ ll see how that goes! If anything, this is something I can add to my resume for design. (With slideshowpro, the file compressed, so qualit…
Posted on 24-May-10 at 10:32 am | Permalink