Follow Slashdot stories on Twitter


Forgot your password?
Programming Microsoft

Visual Studio Gets Achievements, Badges, Leaderboards 353

bonch writes "Microsoft has introduced a gamification plugin for Visual Studio that lets users win achievements and badges as they compete on leaderboards by writing code. The full list of achievements includes gems like 'Go To Hell' for using goto, and 'Potty Mouth' for using five different curses in one file. This is another example of Gamification, one of the latest trends to hit social media."
This discussion has been archived. No new comments can be posted.

Visual Studio Gets Achievements, Badges, Leaderboards

Comments Filter:
  • by elrous0 (869638) * on Thursday January 19, 2012 @09:30AM (#38747538)

    I know that the established programmer hierarchy would have me burned at the stake for even hinting at it, but I miss my old GOTO statement. Call it sloppy if you like, but a simple one line statement beats the shit out of the acrobatics I often have to do in Java to SIMPLY JUMP OUT OF THIS METHOD/LOOP TO A SINGLE SPECIFIC POINT IN THE PROGRAM.

    return;} //shit, still doesn't go where I need it to

    Now, cue the voices of 1,000 programmers looking for a non-existent "disagree" mod and screaming at the top of their girlie lungs on why GOTO is EVIL, EVIL, EVIL--as they parrot the professors who taught them that.

  • by The MAZZTer (911996) <{megazzt} {at} {}> on Thursday January 19, 2012 @09:32AM (#38747556) Homepage
    I would skip GOTO in favor of putting some of that logic into a function. Then I can simply return; from it instead of using a GOTO to break out of as many levels of logic as I need, back to the calling function.
  • by piripiri (1476949) on Thursday January 19, 2012 @09:34AM (#38747576) Journal
    Maybe you shouldn't nest these control structures like this... Flat programming, rings a bell?

    Oblig. KXCD []
  • by mattdm (1931) on Thursday January 19, 2012 @09:41AM (#38747642) Homepage

    The idea of gamification is to give little awards for postitive behavior — or at least active engagement with the site/product/tool/whatever. A few of these fit that (the badge for working on a Saturday or Friday night), but most of them are labels of shame for doing things like writing a single line of code that is several screens too wide.

  • by Anonymous Coward on Thursday January 19, 2012 @09:42AM (#38747668)

    As a gamer, I am not pleased with this trend.

    As a gamer, you were never going to be affected by this were you?

  • Gotta get 'em all (Score:5, Insightful)

    by Lunaritian (2018246) * on Thursday January 19, 2012 @10:02AM (#38747912)

    There are many players who simply have to collect every single achievement. Considering what these achievements are like (use 20 single-letter variables, write a 300-character line etc.) I hope their behavior won't carry over to programming...

  • by X0563511 (793323) on Thursday January 19, 2012 @10:06AM (#38747948) Homepage Journal

    "achievements" ruin everything - games included.

  • by swillden (191260) <> on Thursday January 19, 2012 @10:07AM (#38747952) Homepage Journal

    The Linux kernel uses goto statements. About 95000 times..

    In the absence of exceptions, goto is a great tool for simplifying and clarifying error handling.

    In a language with exceptions, goto is much less useful. I won't say it's never useful, but if I'm ever tempted to use goto for anything other than jumping to an error handling block, I know I need to take a step back and rethink the structure of the code, because there's almost certainly a better way.

  • by virgnarus (1949790) on Thursday January 19, 2012 @10:10AM (#38747976)
    There are plenty of individuals out there - including myself - that would go in a frenzy and would attempt to earn all the achievements, regardless if they're bad or not.
  • man, not vendor (Score:5, Insightful)

    by mapkinase (958129) on Thursday January 19, 2012 @10:11AM (#38747988) Homepage Journal

    Achievements should be defined by management, not the software vendor.

  • WTF? (Score:5, Insightful)

    by gstoddart (321705) on Thursday January 19, 2012 @10:13AM (#38748022) Homepage

    Why would I want my dev environment to have leaderboards and be "gamified"?

    I'm glad it's only a plugin, but to me this is part of the annoying trend that everything we do needs to be tied into social media ... I mean, "they can also brag about their achievements on Facebook and Twitter". Why on earth does everything we do nowadays need to be tied into Facebook and Twitter?

    I'm waiting for the first wave of toilets with integration to those sites ... then we will truly widespread "Twitter Shitters" and other bits of stupidity.

    Then again, maybe I'm just old and uncool, and all of the cool kids are doing this ... but to me this just sounds like something which is utterly pointless.

  • by Nelson (1275) on Thursday January 19, 2012 @10:26AM (#38748130)

    Seriously, I have been trying to get over the MS hate that I've had since Windows 3. They're just another big company, trying to do what they can and at least they try to compete in new markets even though they routinely get shelled by the competition when they stray off the desktop.

    But WTF?!?. Badges in Visual Studio? For real? They have no idea what they are doing. Are they chasing 15 year old developers to be? This is a company with 10s of billions in cash that can subsidize products like Xbox for years and years. This is fucking Bob in the IDE.

  • by Rhacman (1528815) on Thursday January 19, 2012 @10:28AM (#38748158)
    +1 Why do I never seem to have mod points when I actually care to use them.
  • by AaronLS (1804210) on Thursday January 19, 2012 @10:55AM (#38748466)

    Sometimes algorithms have complex break conditions. You are arrogant to judge so quickly when all you have is a code snippet. I love these people who glance at some code and then say "you should refactor/redesign that" and offer no more than vague suggestions. In situations where I have the authority, I respond by assigning them the task they themselves suggested. Guess what I do when they fail at the very task they themselves so derogatorily suggested?

  • by geekoid (135745) <dadinportland@yah o o .com> on Thursday January 19, 2012 @11:11AM (#38748672) Homepage Journal

    Smart men use the tool that makes the job the easiest.

  • by Twylite (234238) <> on Thursday January 19, 2012 @11:41AM (#38749020) Homepage

    Yes. We used to do that in some of our source code bases. I always like how "important programmers" at "big companies" think 'goto' is verboten, but don't notice switch statements with fall-through cases. Because they're sooo much safer ;)

    So I reversed that situation, and our incidence of resource handling errors went down markedly. As did our incidence of logic bugs from failing to break out of a switch.

    In my opinion, obscuring the logic you're trying to express by using a workaround involving an arbitrarily "approved" keyword, obscures the logic.

  • by Rary (566291) on Thursday January 19, 2012 @11:45AM (#38749084)

    People misunderstand the point of the whole "goto is evil" thing. It's not that jumping around in code is evil. No program of any real value can run sequentially from start to finish. You have to jump around to do anything useful. Conditional processing, iteration, function calls, and exception handling all involve jumps of one kind or another. Whether the language calls it "goto" or gives it a different name doesn't change the fact that it's a jump.

    However, there are a set of logical, structured jump patterns that have been well defined over the decades which produce readable, understandable, debuggable, extendable, logical code. These patterns include the constructs I described previously. Some languages have specific keywords for these constructs, while others rely on the keyword "goto" for their implementation. There's nothing wrong with using "goto" to implement one of these logical patterns, if that's how the pattern is implemented in that particular language.

    However, it is possible in languages that have a "goto", to execute a jump that is outside of these known patterns. These illogical, seemingly random jumps result in code that is confusingly obfuscated, and consequently more error-prone, as well as harder to extend.

    So, when people say "goto is evil", they're really saying "unstructured jumps are evil". Using such a construct might accomplish what you're trying to accomplish, but it will generally do so at the expense of readability, maintainability, and extendability of the code.

    And yes, any language, whether it has a "goto" or not, can be abused by a properly (un)skilled programmer to create a chaotic mess of spaghetti code.

  • If only they'd put THAT in the damn compiler I MIGHT consider using it.

"Card readers? We don't need no stinking card readers." -- Peter da Silva (at the National Academy of Sciencies, 1965, in a particularly vivid fantasy)