What if Visual Studio had Achievements?
blog.whiletrue.com
blog.whiletrue.com
When achievements were first released for the Medic in Team Fortress 2, players who weren't Medics suffered. Some of the achievements require the Medic to either become an offensive player, or intentionally make bad choices. The more players tried for achievements, the worse your team did. For future achievements releases, Valve changed the focus of achievements to reward class strengths, showcase new features, reward good behavior, or highlight awesome events.
A Visual Studio achievement like "Job Security" would be terrible. It just encourages bad practices. I don't want to fix a bug in a 30-line Linq query, or understand if it does exactly what you say it does. In fact, its opposite is a better achievement: "If You Linq, You Will Miss It: Write 100 Linq queries with 3 lines or fewer." It encourages users to use a great feature, doesn't punish them if they find a case where they absolutely need to write something longer, and encourages a good habit.
That being said, some of them were also good. I could see Visual Studio using "Gimme back my ASM" or "The Academic". Some also had a Valve-style personality, like "Shotgun Debugging" or "Rage Quit."
"The MS Employee" - Seal 50% or more of the classes in your project.
Inheritance is one of the closest couplings you can have between two pieces of code in an OO language. When you inherit, you're depending very deeply on the behaviour of the base class. If you're a platform vendor, having third parties deeply reliant on very specific behaviour is a nightmare. It greatly increases your testing burden and limits future flexibility, as you'll likely have to maintain buggy invariants into the future, possibly to the point of having to introduce redundant parallel functionality merely to avoid third-party breakage when trying to expand the feature set.
If any source code outside your control is going to be using your code, and you have some kind of obligation or incentive not to break their code, then I strongly recommend that you seal your classes (final in Java, etc.), or saving that, make very few methods virtual, and ensure that they have been tested and documented appropriately.
But, in answer to the question, I would probably jeer at my old friends on the VS IDE team ;)
The Engineer - Killed a zombie with The Wrench
If this is a joke about Visual Studio, I must not be using it enough because I don't get it at all.
http://eu.techcrunch.com/2010/11/17/playnice-ly-exits-beta-w...
Controversial - used a goto statement
Ultimate question - nested 10 if statements
Why should the user distinguish between "in memory" and "on disk". That's a performance optimization for the program to decide on.
(Incidentally, I would really enjoy a "national force-ide-programmers-to-use-vim day". "Wow, you can switch between files without your whole system crashing!?")
That'd probably gain lots of traction.
Could be a fun project to understand creating extensions better. Though I don't have 2010, and I gather that's a heck of a lot easier to make extensions for.
However, json.net is awesome - I'm using it to get my latest personal project to talk to CouchDB - so its json all the way from the client, through the server through to the database.
I suppose I'm just jaded, but doing anything in Visual Studio feels horrible. I guess I'm a *nix+vim fan boy through and through.
Seriously, this is beyond a dumb idea. Programming is a profession, not a game, and you do not reward malpractice (more than 10 parameters? 30 line Linq statements?) We already have achievements in our industry and it's called a C.V.
http://blogs.msdn.com/b/lukeh/archive/2007/10/01/taking-linq...
Just my 2¢