Beta

Slashdot: News for Nerds

×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Visual Studio Gets Achievements, Badges, Leaderboards

Soulskill posted more than 2 years ago | from the looking-at-the-headline-like-a-curious-puppy dept.

Programming 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."

cancel ×

353 comments

I miss GOTO...there I said it (5, Insightful)

elrous0 (869638) | more than 2 years ago | (#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.

                  break;}
          break;}
      break;}
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.

Re:I miss GOTO...there I said it (5, Insightful)

The MAZZTer (911996) | more than 2 years ago | (#38747556)

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.

Re:I miss GOTO...there I said it (5, Informative)

Twylite (234238) | more than 2 years ago | (#38748222)

Judicious use of GOTO can dramatically simplify resource cleanup when exception handling is not supported. A function that must grab N resources in order (and free them in reverse order on success or failure) requires N nested blocks if you don't use GOTO (and no nesting if you do use GOTO). Often the only way to refactor such logic into sub-functions is by using continuation passing style, which is clear as mud.

Re:I miss GOTO...there I said it (4, Informative)

Robadob (1800074) | more than 2 years ago | (#38747566)

You can use labels in java to break out of nested loops?

Re:I miss GOTO...there I said it (5, Funny)

gilwooden (1937542) | more than 2 years ago | (#38747638)

You can use labels in java to break out of nested loops!

Re:I miss GOTO...there I said it (0)

elrous0 (869638) | more than 2 years ago | (#38747680)

Maybe you missed the //shit, still doesn't go where I need it to.

Re:I miss GOTO...there I said it (0, Troll)

Anonymous Coward | more than 2 years ago | (#38747768)

But the fact you were calling break 3 times already suggested you aren't a particularly experienced with Java, if you were you may have thought ahead when designing the algorithm.

Re:I miss GOTO...there I said it (0)

Anonymous Coward | more than 2 years ago | (#38748252)

As Robadob suggested, go read about loop labels [google.com] .

Your example did not use labels, so your "//shit ..." is irrelevant to Robadob's post.

Re:I miss GOTO...there I said it (1)

Hentes (2461350) | more than 2 years ago | (#38747978)

Exactly that's maybe the only low-level feature where Java is better than C++.

Re:I miss GOTO...there I said it (5, Insightful)

piripiri (1476949) | more than 2 years ago | (#38747576)

Maybe you shouldn't nest these control structures like this... Flat programming, rings a bell?

Oblig. KXCD [xkcd.com]

Re:I miss GOTO...there I said it (1)

Viol8 (599362) | more than 2 years ago | (#38747770)

Maybe you should try writing a serious program without nested control structures then and show us how it should be done or are you going to suggest just making endless function calls so the code is unintelligable and the cost of push and popping on the stack becomes huge?

Re:I miss GOTO...there I said it (2)

SuricouRaven (1897204) | more than 2 years ago | (#38747970)

I don't know about Java, not being a coder in it myself, but in C you can inline small function calls so they don't pushpop. You don't even need to on the very small ones - any decent optimising compiler will do it for you transparently.

Re:I miss GOTO...there I said it (2, Informative)

Anonymous Coward | more than 2 years ago | (#38747594)

What's your problem? Java supports loop labels [wikipedia.org] .

Re:I miss GOTO...there I said it (0)

Anonymous Coward | more than 2 years ago | (#38747620)

Try the 'continue' statement

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html

Re:I miss GOTO...there I said it (1)

dokc (1562391) | more than 2 years ago | (#38747760)

Try the 'continue' statement

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html

'continue' statement allies only to one loop level. He wants to jump out from several nested loops.

Re:I miss GOTO...there I said it (0)

Anonymous Coward | more than 2 years ago | (#38747632)

I'll accept that there may be cases where goto is a good solution. But there's also the possibility that you need to rethink the flow of the function so it's more straightforward.

Or you could hack an alternative to GOTO with an abuse of exceptions

Re:I miss GOTO...there I said it (2)

Bigfield (742477) | more than 2 years ago | (#38747646)

I agree that goto has it place. Used in a right place it may result in much more readable and maintainable code. But, when used unwisely it will result in spaghetti code. You _can_ write all your code without goto but when your code screams for a goto, use it!

In you example, however, that deep nesting is just asking for trouble; goto or no goto. ;-)

Re:I miss GOTO...there I said it (5, Funny)

Sponge Bath (413667) | more than 2 years ago | (#38747816)

...when your code screams for a goto, use it!

When your code anthropomorphizes, hit the delete key.

Re:I miss GOTO...there I said it (1)

MacGyver2210 (1053110) | more than 2 years ago | (#38748178)

If only someone would tell Cyberdyne that!

Re:I miss GOTO...there I said it (1)

Chris Mattern (191822) | more than 2 years ago | (#38748380)

when your code screams for a goto, use it!

When my code screams at me, it's time to go home and get eight hours sleep.

Re:I miss GOTO...there I said it (5, Informative)

Anonymous Coward | more than 2 years ago | (#38747798)

Was why GOTO is a bad idea every explained to you?

The honest fact is that, if you go low level enough, it (equivalent) is the only method of not proceeding to the next instruction, so you'd think that it would make sense to have it in all the higher languages.
However, the difference there is each label is (generally) only used once, and the state of all registers will be the same before and after. The problem with goto is that it requires the compiler to work out the meaning of all the variables at the point it jumps to, and to deal with loading those all into memory as part of the jump operation. At least with breaking out of a loop, you're going to be in the same scope as leaving it through the loop's condition becoming false. Returning from that context will move up (or, if you view things the other way, down) a scope, which is reasonable to deal with

GOTOs, on the other hand, used to allow jumps into noticeably different scopes, where variable contexts could lead to information not having the right meaning. And, that's where the raptors break through.

[citations needed]

Re:I miss GOTO...there I said it (1)

gbjbaanb (229885) | more than 2 years ago | (#38748304)

that might be true today, the the 'goto considered evil' has been around for a lot longer than CPUs with L2 cache.

The problem was that it used to be used for program flow like it was an while statement. That led to some pretty convoluted and impossible to understand code, and we won't even go into jumping to other function code.

Nowadays, the idea of using goto as a 'jump to function end' is reasonable, and a lot less expensive than throwing an exception to do the same thing... yes, I've seen them used for that.

Re:I miss GOTO...there I said it (-1)

Anonymous Coward | more than 2 years ago | (#38747810)

People who reflexively bash goto need to go through the disassembly of their programs and remove all the JMPs.

It, much like anything in life, is just fine when used properly.

Captcha: immature. Like people who reflexively jump (pun intended) on use of goto

Re:I miss GOTO...there I said it (0)

Anonymous Coward | more than 2 years ago | (#38747858)

Good programmers know when to use (not abuse) the GOTO statement.
Even Djikstra didn't advocate to the elimination of the GOTO.

Unfortunately people just took the extreme view on Dijkstra's analysis so we had entire generations of programmers taught to despise and never, ever use the GOTO statemente even in the rare cases where it would have been the fastest and easiest and more readable solution.

Re:I miss GOTO...there I said it (4, Informative)

jps25 (1286898) | more than 2 years ago | (#38747886)

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

Re:I miss GOTO...there I said it (5, Insightful)

swillden (191260) | more than 2 years ago | (#38747952)

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.

Re:I miss GOTO...there I said it (1, Insightful)

Rhacman (1528815) | more than 2 years ago | (#38748158)

+1 Why do I never seem to have mod points when I actually care to use them.

Re:I miss GOTO...there I said it (0)

Anonymous Coward | more than 2 years ago | (#38748334)

Too bad that the main exceptionful languages are C++ and Java where they bring more trouble than worth.

Java has checked exceptions which means that you need to litter the whole call stack with useless remarks about what each method might throw and using exceptions in C++ eventually forces the whole "C++ way" of coding starting with RAII first, then smart pointers, then templates, stl and finally madness when you end up fixing logic-defying constructor memory leaks in the night while thinking about how easy it would have been to simply "return -1".

Re:I miss GOTO...there I said it (2)

MacGyver2210 (1053110) | more than 2 years ago | (#38748200)

Is it written entirely in ASM?

Re:I miss GOTO...there I said it (0)

Anonymous Coward | more than 2 years ago | (#38748404)

C without libc pretty much is assembler...

Re:I miss GOTO...there I said it (2)

dkf (304284) | more than 2 years ago | (#38747934)

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.

                  break;}

          break;}

      break;}
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.

While I'm not averse to using goto as necessary where available, I do try to avoid it as it is distinctly easy to make unclear code with it. With Java you do have the ability to label (and break/continue) loops, and of course you have exceptions and finally clauses to make various cleanup patterns simple. You also have private methods that are really cheap. All that sort of horrible mess that would lead to the precise thing that you're complaining about should be refactored so that it conveys its exact intention clearly instead of spreading complexity all round the place. If all those good things I just mentioned are not sufficient to handle your specific case, I want to know what's going on. (Or maybe I don't; it sounds really scary-bad!)

Of course, if your real problem is that you're working somewhere with a strict "no break in loops, no return from functions except at end" policy, there's no hope for you. You're doomed by someone in charge who hasn't understood a single thing written about how to analyze programs for the past 30 years.

Throw an exception (-1)

Anonymous Coward | more than 2 years ago | (#38747944)

Throw an exception. No, seriously! I've had to do this before to work around no goto in Java. So I had a simple throw new FuckYouGoslingAndYouTooDjickstra() just to get program flow correct.

Well, not really, the exception was named something more descriptive, but the idea is the same.

Re:Throw an exception (1)

Frohboy (78614) | more than 2 years ago | (#38748072)

Incidentally, this is how "break" is implemented in Scala. There is no break keyword in the language, but it is implemented at the library level by throwing/catching an exception.

Here's the source code:
https://lampsvn.epfl.ch/trac/scala/browser/scala/tags/R_2_9_1_final/src//library/scala/util/control/Breaks.scala#L1 [lampsvn.epfl.ch]

Re:I miss GOTO...there I said it (1)

TheNinjaroach (878876) | more than 2 years ago | (#38747946)

Not a Java developer, but a quick search for "java break statement" shows you can set labels in your code and then specify them when you break.

Re:I miss GOTO...there I said it (1)

Anonymous Coward | more than 2 years ago | (#38747968)

Linus Torvalds defends "goto" in the Linux kernel. http://kerneltrap.org/node/553/2131

"Any if-statement is a goto. As are all structured loops."

Re:I miss GOTO...there I said it (1)

ilguido (1704434) | more than 2 years ago | (#38748006)

That's why the use of the GOTO statement is accepted by the Linux kernel coding style [kernel.org] (Chapter 7: Centralized exiting of functions).

Re:I miss GOTO...there I said it (2)

ifrag (984323) | more than 2 years ago | (#38748106)

The way it's described in the kernel coding style is probably one of the very few "correct" uses of it. In fact, I know we have code here that does exactly that, goto cleanup; then it has a return right after taking care of whatever buffers and such. Initially I was somewhat offended looking at it but after a while I've started to agree with it. In fact, I'd say that use pretty much justifies its continued existence.

Re:I miss GOTO...there I said it (2)

randomsearch (1207102) | more than 2 years ago | (#38748024)

Interesting comment, but I'm with Dijkstra on this one:

http://www.ifi.uzh.ch/req/courses/kvse/uebungen/Dijkstra_Goto.pdf [ifi.uzh.ch]

RS

Re:I miss GOTO...there I said it (4, Informative)

gstoddart (321705) | more than 2 years ago | (#38748338)

Interesting comment, but I'm with Dijkstra on this one:

One of my profs once laughed at me when I said his code had a goto and we shouldn't do it that way (because that's what we'd been taught in class).

Then he sat me down and walked through the code, and explained what the code was doing, and the failure modes that made it necessary to use a goto. This was OS-level code, and performing some very fiddly things, and several layers deep in looping structures. You'd have had to put in twice as much code to check the error conditions necessary to peel out of that, and since it was essentially working on bare metal, there was simply no room to add much more overhead.

He did manage to convince me that a goto isn't something you do because it's convenient, but that in some code, in some languages there simply isn't a better alternative to bail out of some code in the event of a failure.

I have worked in a couple of languages (one being C, the other proprietary) in which a goto was the cleanest/only way to get out of the code, and get to a place where you could do all of your cleanup and get out cleanly.

It has its place, but it should definitely be used sparingly. Blindly saying never use a goto doesn't always give you the best solution.

Re:I miss GOTO...there I said it (1)

Anonymous Coward | more than 2 years ago | (#38748088)

Oddly enough, GOTO does have a legitimate use in C#. Switch statements in C# don't fall through. If you want a switch statement to fall through, you have to use a goto ; to force the fall through.

Re:I miss GOTO...there I said it (4, Informative)

VGPowerlord (621254) | more than 2 years ago | (#38748208)

Oddly enough, GOTO does have a legitimate use in C#. Switch statements in C# don't fall through. If you want a switch statement to fall through, you have to use a goto ; to force the fall through.

Unless it's an empty switch statement. Those are allowed to fall-through.

Re:I miss GOTO...there I said it (1)

Anonymous Coward | more than 2 years ago | (#38748114)

Fear not the wrath of your fellow programmers! The COMEFROM statement is a safe and perfectly fine alternative to GOTO.

Re:I miss GOTO...there I said it (1)

tomhudson (43916) | more than 2 years ago | (#38748124)

goto is not evil - it's just hidden inside modern languages. Every switch statement is really a goto, with the case: being a label (target). Anyone who's ever programmed in assembler knows that jmp is not evil.

Does goto: lead to spaghetti code? That's up to the programmer - not the language feature. You want to see REAL spaghetti code? Look at some of the horrors coming out of Java.

Re:I miss GOTO...there I said it (1)

bstrobl (1805978) | more than 2 years ago | (#38748146)

I consider any language which does not have gotos simply crippled.
Gotos are bad if you have retarded labeling systems (coding on a graphing calculator in BASIC *shudder*) or if you jump all over the code like a kid with ADD.
But they are great for things such as nested loops.

Simple example:
I have an array with ten values which I scan through. If a value in the array matches an expression/whatever, the whole loop can be skipped and a small amount of code following the loop (which would be executed by default if the loop fails to find something) can be skipped as well.
With Java you can break out of the loop but you would still need to set some stupid variable etc. in order to ignore the code right after the loop.

Feel free to correct me on this situation. I have been using exactly this for a game I am creating so I think gotos have been very valuable. Then again, I am coding everything in C so there might be OOP equivalents.

Re:I miss GOTO...there I said it (2)

Dhalka226 (559740) | more than 2 years ago | (#38748172)

I'm not a purist. I don't believe there is anything in a programming language that works fine and yet should never, ever be used. If it is appropriate, use it.

Obviously I only see the fragment of code you put there (and in all probability you made it up on the spot rather than taking it from an existing codebase) but when I see that level of nesting and then you're still not happy with where the code ends up my first instinct isn't "gosh, a goto would work great here." It's "is this program really structured well?" I'm honestly having trouble thinking of why you would need to nest three levels deep and yet do so in a function without a return value. It sounds like a goto here would just be taking the place of a return value and a switch.

In any event, my main objection is your attitude. You dismiss calls that it may be sloppy and then declare you use a goto because you want to do exactly what goto does (well no shit, why else would you use it?) and then go on some rant about potential moderations and insult people who might disagree with you as girlie parrots incapable of arriving at a conclusion without regurgitating something they were told by a professor and yet don't understand. I wonder if there is any kind of middle ground to be had? Naaaah.

Gotos usually are sloppy. If there really is no way to refactor something into a way that doesn't need one, or it is really so egregiously difficult to do that it is not worth the time to do so at any point, so be it -- use it. Usually they are a crutch for bad flow. Insulting people for acknowledging that does not change it. If you are one of those magical programmers who use gotos and yet never misuse them, congratulations. Without knowing you or anything about you, though, I am more inclined to think it's a case of illusory superiority.

Re:I miss GOTO...there I said it (0)

Anonymous Coward | more than 2 years ago | (#38748182)

I like GOTO, use it in C#. Of course you should not use it often and only in small jumps.

Re:I miss GOTO...there I said it (0)

Anonymous Coward | more than 2 years ago | (#38748408)

Try refactoring to call functions instead of GOTO.

Goto is great when bringing up a compiler (0)

Anonymous Coward | more than 2 years ago | (#38748410)

Goto is great when bringing up a compiler for a new architecture. The first legal program I've compiled when creating a new backend is something like this:

void foo(void)
{
        bar:
                goto bar;
}

The equivalent of while(1); is quite a bit harder to bring up since you need a functioning conditional test for the while() to function (at least when you are compiling without optimizations, which is probably a pretty good idea when bringing up a compiler the first time...)

This just confirms it (1, Funny)

hedwards (940851) | more than 2 years ago | (#38747602)

MS wants code for Windows to be as inept and inefficient as possible. I never thought they would get to the point where they weren't just tolerating poor practices, but encouraging them as well.

seriously — they're totally missing the poin (4, Insightful)

mattdm (1931) | more than 2 years ago | (#38747642)

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.

Re:seriously — they're totally missing the p (1)

hedwards (940851) | more than 2 years ago | (#38747688)

Things like that are punished by having to deal with them later, and if you're not having to deal with them later then nothing is likely to get you to do it right.

Ultimately, these things are much better enforced in person. Yes, if you're a team of one that's not going to happen, but then again if you're a team of one, you had better know what you're doing and do it right without having people mocking you for poor style.

Re:seriously — they're totally missing the p (5, Insightful)

virgnarus (1949790) | more than 2 years ago | (#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.

Re:seriously — they're totally missing the p (1)

Tim4444 (1122173) | more than 2 years ago | (#38748312)

I guess I'm playing with cheat codes. All I have to do is check out and compile one of our solutions and I've automatically got all the "Power Coder" achievements. Until today, I'd never considered any of those attributes to be things anyone would want to consider as goals - not that they are inherently bad. That's nothing special either. I think there are hoardes of programmers out there working on software for which this is true.

Where's the points for things like consistant formatting and naming conventions? How about a low ratio of intermodule dependencies comparied to complexity (ie. orthogonality)? How about points for checking error conditions? How about points for adding a unit test or updating the comments around the code you're working on? Is "Equal Opportunist (10 points) Write a class with public, private, protected and internal members. It's all about scope." really the best they could come up with for a Top 6 list? It's sad to see how far they've fallen since the days of Steve McConnell and Code Complete.

Re:seriously — they're totally missing the p (0)

Anonymous Coward | more than 2 years ago | (#38748034)

And all of them are incontrovertible evidence that MS is jumping over a very large shark.

Re:This just confirms it (1)

Anonymous Coward | more than 2 years ago | (#38747676)

The opposite could be the case, someone might be using goto not knowing it's considered bad and learn that it is from this achievement.

Re:This just confirms it (2)

CadentOrange (2429626) | more than 2 years ago | (#38747822)

The opposite could be the case, someone might be using goto not knowing it's considered bad and learn that it is from this achievement.

You'd have to be living under a rock to *not* know that GOTOs are considered bad.

Re:This just confirms it (3, Funny)

elsurexiste (1758620) | more than 2 years ago | (#38747884)

The achievement for using goto is "Go To Hell". How is that encouraging, I have no idea :) . In fact, most of those achievements are just a funny take on amateur programmers. Just take a look at the list:

  • Interrupting Cow (Have 10 breakpoints in a file.Where's that bug? Could here, could be there, could be anywhere! - 5 points)
  • Stubby (Generate method stubs 9 times. You're a TDD bad ass! - 5 points)
  • Save A Tree (Print source code. My boss told me to. I swear! - 5 points)

Re:This just confirms it (0)

Anonymous Coward | more than 2 years ago | (#38748122)

Except Stubby is more likely to be gotten by competent programmers than amateurs...

"Gamification" doesn't make dull things a game... (2, Interesting)

Anonymous Coward | more than 2 years ago | (#38747626)

It just makes them dull things with out of place social media gimmicks.

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

Re:"Gamification" doesn't make dull things a game. (2, Funny)

Anonymous Coward | more than 2 years ago | (#38747656)

I know right? It is poor to think that only 5 'curse' words per file gets you Potty Mouth status. They obviously think that is a challenge.

Re:"Gamification" doesn't make dull things a game. (0, Insightful)

Anonymous Coward | more than 2 years ago | (#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?

Re:"Gamification" doesn't make dull things a game. (2, Insightful)

X0563511 (793323) | more than 2 years ago | (#38747948)

"achievements" ruin everything - games included.

What Are We Shooting At? (1)

Anonymous Coward | more than 2 years ago | (#38747662)

If this new Visual Studio is a game, then what are we shooting at? Aliens? Monsters? Zombies?

Or is it a racing game? I hate racing games.

Obvious isn't it? (5, Funny)

Viol8 (599362) | more than 2 years ago | (#38747852)

Huge hideous bugs!

Actually... (1)

Deus.1.01 (946808) | more than 2 years ago | (#38747710)

If it can teach me to use a debugger to its full purpose and gladly want a scout badge for it.

(yes im horrible at everything i do!)

Re:Actually... (5, Funny)

Deus.1.01 (946808) | more than 2 years ago | (#38747722)

*even grammar*

Just wait for the map packs! (0)

Anonymous Coward | more than 2 years ago | (#38747714)

(Achievement Unlocked - Flying Spaghetti Code (50G) )

Good idea (3, Interesting)

XrayJunkie (2437814) | more than 2 years ago | (#38747734)

I find this idea quite nice. Encourage people to have some fun while programming (boring stuff). This wont result in bad code. The gain for MS: create an account to store and publish your achievements.

Re:Good idea (2)

Speare (84249) | more than 2 years ago | (#38747872)

I find this idea quite nice. Encourage people to have some fun while programming (boring stuff).

If writing code is the boring part of your career, why did you train yourself and get into that line of work? Most people I know who write code, because they want to write code, they feel best when given the opportunity between meetings to write code. The best developers I know tend to go home after their job, and sit down to their hobby projects where they... write code.

Re:Good idea (1)

HaZardman27 (1521119) | more than 2 years ago | (#38748226)

This wont result in bad code.

I'm guessing you didn't look at the list of achievements, particularly the "Don't Try This at Home" section. It has achievements for writing a 300 character-long line of code, or for having a method with 10 overloads.

Do While (3, Funny)

QBasicer (781745) | more than 2 years ago | (#38747752)

It better have one for do-whiles, I always feel like I've made a great accomplishment when I use one. It makes a day a little less sucky.

Re:Do While (2)

networkBoy (774728) | more than 2 years ago | (#38747826)

That's funny. The codebase I inherited is *full* of do{}while(0); with a bunch of breaks inside of the do to jump out at any point something goes haywire. Come work for my team, your day will never suck (at least my that metric).
-nB

Re:Do While (0)

Anonymous Coward | more than 2 years ago | (#38748220)

Might I suggest walking? ... Seriously?

That's worse than a goto.

Resume builder? (5, Funny)

ashmon (592459) | more than 2 years ago | (#38747846)

So, is this going to be a good thing to put on your resume?

* Stay focused and attentive to work.
* Hard worker
* Level 32 Visual Studio Achievements
* Stays on task

Uhhhh...

Re:Resume builder? (1)

DigiShaman (671371) | more than 2 years ago | (#38748040)

Toilet cleaning duty: Achievement UNLOCKED!

Never thought I'd hear of a day when cleaning shit off porcelain will bring a smile to someone's face.

Re:Resume builder? (0)

Anonymous Coward | more than 2 years ago | (#38748348)

I actually like seeing that stuff on the resume. It saves me a lot of time as I don't even waste a phone screen on the candidate.

Possible badges for good code (4, Interesting)

tucuxi (1146347) | more than 2 years ago | (#38747880)

I for one would find these badges nice:

  • compiled without warnings (cumulative for "N times in a row")
  • doxygen-compliant comment coverage (percentage-wise cumulative)
  • safe programming practices (always compares constant == lvalue, initializes all values, ...)

On the other hand, IDEs like Netbeans and Eclipse are getting better and better at nagging users about such issues (and auto-generating code to fix many of them). Do we really need the badges?

War Games: "The only way to win...." (1)

tverbeek (457094) | more than 2 years ago | (#38747896)

This makes me so very glad I didn't go into this field for a profession.

I wonder if I can get an achievement (1)

Hentes (2461350) | more than 2 years ago | (#38747902)

for writing my first 1000 lines of code!

Re:I wonder if I can get an achievement (0)

Anonymous Coward | more than 2 years ago | (#38748082)

You do, if it is one file with only one main method, no indentation, no comments, no empty lines.

FUN! With programming and Achievements!?!? (3, Interesting)

Etrahkad (1399575) | more than 2 years ago | (#38747904)

WTF is my first reaction. Second reaction is that that would have been awesome to work on the team that built that in because it shows that they have a bit more freedom with what goes in a program like Visual Studio. This sounds like a progressive step forward in the engineering team @ Microsoft. I can't give them kudos for this _exact_ application of listening to programmers but the idea that people are allowing for ownership and creativity is gratifying to see in a development firm. Its something different than the boring troll of debugging the application, fixing build errors, and building more.

Gotta get 'em all (4, Insightful)

Lunaritian (2018246) | more than 2 years ago | (#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...

Re:Gotta get 'em all (0)

Anonymous Coward | more than 2 years ago | (#38748392)

Winner of Potty Mouth goes to the author of this class [pastebin.com] .

Good achievements? (0)

Anonymous Coward | more than 2 years ago | (#38747916)

Any achievements for "good" behavior? Even then, I see this encouraging people to write inconsistent code just to "win" achievements. "I need to do something with this data structure, I'll stick it in here, even though something else would probably be better..."

Badges?!?! (1)

CanHasDIY (1672858) | more than 2 years ago | (#38747930)

We don't need no stinking badges!

Somebody had to say it.

Only 5 curses in one file? (4, Funny)

Coisiche (2000870) | more than 2 years ago | (#38747938)

Clearly my code commenting technique is slightly different from the norm.

Re:Only 5 curses in one file? (1)

avandesande (143899) | more than 2 years ago | (#38748372)

Weird- I am from NJ and pretty foul-mouthed, but I have never once in 15 years felt the urge to put profanity in my comments.

Yes! Facebook and twitter sharing. (1)

Bigfield (742477) | more than 2 years ago | (#38747974)

Not only there are badges but you can share them on social media. How's that for a progress! Now we only need find a person who would willingly do that...

Seriously, this feature must be from the clippy department. I find it very hard to see that any sane person would find any use for these "advanced" features.

man, not vendor (4, Insightful)

mapkinase (958129) | more than 2 years ago | (#38747988)

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

Job Security (1)

broseidon (2537346) | more than 2 years ago | (#38748008)

Personal favorite: Job Security. Because meaningful variable names are pish-posh! *facepalm*

Next on the list: (2)

ledow (319597) | more than 2 years ago | (#38748014)

Taking inspiration from Dungeons of Dredmor (with NH homage, I believe):

Suddenly the Dungeon Collapses

Achieved when you manage to crash the program.

So, when do I get Achievements in real life? (0)

Anonymous Coward | more than 2 years ago | (#38748016)

Helping an old lady
Doing my homework
Calling my mum

Achievement score!!

WTF? (5, Insightful)

gstoddart (321705) | more than 2 years ago | (#38748022)

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.

What real men use.. (1, Redundant)

kallisti5 (1321143) | more than 2 years ago | (#38748044)

Real men use gcc, vim, coffee, and a gun.

frIst p5ot (-1)

Anonymous Coward | more than 2 years ago | (#38748052)

I've been trying to recover from decades of hating (4, Insightful)

Nelson (1275) | more than 2 years ago | (#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.

Re:I've been trying to recover from decades of hat (0)

Anonymous Coward | more than 2 years ago | (#38748272)

If Rover pops up when you fail to authenticate to SVN three times and just prompts you to change your password I'll be all for it. Security through absurdity.

Hey, everyone, look! (1)

0xdeadbeef (28836) | more than 2 years ago | (#38748196)

This joke ridiculing a trend was turned into real thing ridiculing a trend, so it is evidence of a trend!

Maybe the real reason.... (4, Funny)

Dcnjoe60 (682885) | more than 2 years ago | (#38748234)

Maybe the real reason for the badges and leaderboards is so inept managers who know more about marketing than programming have some way to evaluate what the programmers are doing.

Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Create a Slashdot Account

Loading...