Visual Studio Gets Achievements, Badges, Leaderboards
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."
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;} //shit, still doesn't go where I need it to
break;}
break;}
return;}
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.
SJW: Someone who has run out of real oppression, and has to fake it.
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.
It just makes them dull things with out of place social media gimmicks.
As a gamer, I am not pleased with this trend.
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.
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.
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.
As a gamer, I am not pleased with this trend.
As a gamer, you were never going to be affected by this were you?
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.
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!)
My -1 Troll is actually a +1 funny. And my -1 flame is actually a +1 insightfull.
(Achievement Unlocked - Flying Spaghetti Code (50G) )
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.
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.
x86, oh yes, I'm pro.
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...
Huge hideous bugs!
I for one would find these badges nice:
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?
This makes me so very glad I didn't go into this field for a profession.
http://alternatives.rzero.com/
for writing my first 1000 lines of code!
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.
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...
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..."
We don't need no stinking badges!
Somebody had to say it.
An enigma, wrapped in a riddle, shrouded in bacon and cheese
Clearly my code commenting technique is slightly different from the norm.
"achievements" ruin everything - games included.
For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
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.
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.
Achievements should be defined by management, not the software vendor.
I do not believe in karma. "Funny"=-6. Do good and forbid evil. Yours, Oft-Offtopic Flamebaiting Troll.
Personal favorite: Job Security. Because meaningful variable names are pish-posh! *facepalm*
Taking inspiration from Dungeons of Dredmor (with NH homage, I believe):
Suddenly the Dungeon Collapses
Achieved when you manage to crash the program.
Helping an old lady
Doing my homework
Calling my mum
Achievement score!!
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.
Lost at C:>. Found at C.
And all of them are incontrovertible evidence that MS is jumping over a very large shark.
Real men use gcc, vim, coffee, and a gun.
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
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.
This joke ridiculing a trend was turned into real thing ridiculing a trend, so it is evidence of a trend!
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.
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.
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.
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...)
I'm 22 and I think this sounds pretty cool. I'm already addicted to achievements in videogames, why not be addicted to achievements in programming, too?
It's like the drug dealers who gave out free samples of crack with the heroin they sold.
The goal seems to be to get developers aware of and experienced using particular features of the most premium editions of VS.
For great justice.
It could really ease the evaluation step :)
Video of some good progressive thrash music
Achievement unlocked(-10G) You have more errors than lines of code.
I can't wait for achievement to be everywhere. I think they me the best way to get a populous to achieve an over all, non critical goal.
The Kruger Dunning explains most post on
When will Visual Studio achieve the "supports the C++11 standard" badge?
I'd argue that working on a Saturday or Friday night is the exact opposite of positive behavior.
If anything, it should earn a label of shame for management, as it's clear evidence of poor scheduling and inadequate allocation of resources.
But alas, this is protestant america, where wringing the last bead of sweat from your lifeless husk is seen as fantastic.
What if we had government gamification instead of taxes? Instead of taxing cigarettes, let's have an achievement for not smoking. Or achievements for eating healthy foods. Achievements would earn you points toward social security. Companies could offer achievements toward pensions and retirement. Maybe instead of a military, we could have achievements for killing enemy soldiers. Oooh, I see the makings of a dystopian novel coming on!
I'm clicking a cow.
they can add to the award list something like: *Copy-Pastry Chef* and *Spaghetti Monster*
I'm many decades past 15 and this looks awesome.
If you stopped and looked around for moment instead of assume you know what's going on you would realize how powerful achievements are. There are many, many good outcomes to this. The biggest will be more knowledgeable and experience developers.
You can't have been around that long if you think this is MS Bob.
That said, MSBob had a great start, but someone future wife was put in charge and basically managed it to shit.
The Kruger Dunning explains most post on
Seem to agree with the thread parent, but then flip it around and call their continued employment into question!
But is a "decent optimising compiler" available as free software? Or is it like C++, where at one time one had to replace g++ and libstdc++ with proprietary, expensive Green Hills products to get any reasonable performance and footprint?
Load up the linux kernel source code. you will get the "riddled with filth" achievement.
Do not look at laser with remaining good eye.
How many registers do state variables , forcing more useful variables to be spilled to the stack? Run a profiler on the state variables version of a function and the version with goto used as described in chapter 7. If the goto version is at least 50 percent faster with no cost in readability, then why not use the goto version?
Meaningful coding achievements need to be task-oriented.
But this is a good idea for making sure you're familiar with all the features the IDE offers. Done right, with interactive walkthroughs and whatnot, achievements could serve as an excellent supplement to documentation.
Oh, absolutely. I just meant that it shows engagement, so it could be construed as positive in that way. But overall it fits the negative theme.
There's a great blog entry on 40-hour work weeks for programmers from, amazingly enough all considered, someone at Microsoft: http://blogs.msdn.com/b/jmeier/archive/2010/10/21/40-hour-work-week-at-microsoft.aspx
So it's not like they dont' get this.
From a classic issue of ACM's Computing Surveys devoted entirely to authors responding to Dijkstra's article.
I think 5 curses in a file indicates bad design. If you need more than one library for handling your TUI you're clearing Doing It Wrong.
In particular, the best reason it should be enforced by people, is that, many such rules have exceptions, and the people will understand them, the IDE won't.
Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
You could put the variable declaration outside the block assigned to null and then test if the value is null inside the finally
Which would violate the commonly quoted best practice to make each variable's scope no longer than needed. That is, don't initialize the variable to null when you declare it and overwrite the null value later; instead, declare the variable where it is initialized for real.
maybe it's time to think about decomposing the code into more manageable chunks
Until the overhead of packing an inner chunk's return values into a return value object, passing it back to the caller, and unpacking them in the caller becomes measurable in the profile.
1. It's optional.
2. Yes, they do want to hook young programmers.
3. It's essentially a tech demo for the VS plugin system, not a new core feature.
If you don't know where you are going, you will wind up somewhere else.
If only they'd put THAT in the damn compiler I MIGHT consider using it.
"Write a enum with 30 fields. Who needs numbers when you've got words! "
Why is this bad? I'd rather have an enum for return codes that make sense rather than returning 8238712;
Are they chasing 15 year old developers to be?
Yes.
"First they came for the slanderers and i said nothing."
OMG, someone is trying to take a tedious job and make it just the tiniest bit more fun. And they might even help us learn something in the process. Microsoft certainly isn't forcing you to install this little add-on. It's coming out of Channel 9, which is targeted more towards amature and hobby programmers. One of their main sections is Coding4Fun. Don't be a hater.
In order to do this, they're either evaluating the code on the client to determine if you won a badge or not, which makes it extremely "hackable" (i.e. anyone can hack the client to make it send the signal that they've won a badge), or, even worse, it's sending all of your code to Microsoft for evaluation. I'm not sure your employer would approve of your IDE transmitting all their proprietary code to Microsoft.
"I have never let my schooling interfere with my education." - Mark Twain
If you want your code to be as fast as c, I recommend writing it in c. Every higher level language I use allows you to link it in.
I can think of one exception: C# on Xbox Live Indie Games and on Windows Phone 7 has no P/Invoke.
...retards!
is a dead bug.
No thanks, I'm already playing lots of fun games in Visual Studio, like "Guess What this 3000 Line Function Does," "Find the Configuration Issue," and "Who Broke the Build?"
Ask me about my sig!
Just wait until MS springs the next add-on: Visual Studio MMORPG (some folks will call it co-development tools) and charges us a $14.00/mo fee for "coding".
This sounds like a confusion of goto versus setjmp/longjmp. IIRC the K&R book essentially says "use at your own risk" due to reasons in gp's explanation. The normal goto does not have this caveat.
GOTO is a useful tool, as long as it is only used when that is the most sensible and elegant way of solving a problem. Or in rare cases when a quick fix is needed with minimal side effects, and again when it definitely won't cause stack or unwinding problems.
I guess if you don't want to pay for programming help this is an alternative, especially when you can't import half of India on H1B visas like Bill Gates would like to do.
For newer generations, if it is not in game format, they don't care.
none
Award GTH badge when the compiler emits JMP?
After all, if it's bad for a novice programmer to use a jump to a label like that, how much worse is it for a compiler writer to use one, when they are supposedly professionals who know better?
-- Terry
you may have an armoury covering 4500 meters of space with racks 10 meters high but sometimes in some cases the only thing that will do X Cleanly is That Shotgun and Those Rounds.
the trick is to not use it when its unneeded (or on your FOOT)
Any person using FTFY or editing my postings agrees to a US$50.00 charge
It's called Visual C++ for a reason - it really is primarily a C++ compiler with accidental C support, that, AFAIK, is there mainly due to its Microsoft C legacy.
Are "fuck" and "motherfucker" separate curses? Come on guys I need to know, my supervisor said I need to have 50 points by next Monday!
Well said AC! It reminds me of this grid of "How programming fanboys see each other"; Visual Studio deserves it's own column, each picture that of a tinka-toy.
"I'm already addicted to achievements in videogames"
You are being played.
BS. Go back to playing kick-ball without keeping score and leave the rest of us alone.
If you correctly play "Mary had a little lamb" on the bicycle horns with your nose, will it dispense a fish?
Can I claim prior art?
3 years ago I posted this blog as a joke: http://blog.kennardconsulting.com/2008/12/new-features-in-eclipse-35.html
Now it appears Microsoft has actually gone and done it!
Achievements != Score. Go back under your bridge.
For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
Did you ever try to use the "strip" utility?
No, but I used objcopy, which does the same thing. It converts ELF to a raw binary and strips out the debugging symbols in the process.