Not all devs. Microsoft tools have contributed to a long, successful, and enjoyable career for me, and I have yet to find an IDE as nice as VS (any contemporary version). The MS toolsets have been mostly good to work with, a few warts not withstanding.
What OSS tools and IDEs are making your devs so happy, and making their jobs better than say, VS 2012? (serious question)
• Replacing Windows servers with Redhat has opened up a wealth of automation opportunities
• RoR on the frontend has allowed a much faster development and deployment pipeline (ASP.NET and Java are still used for the high-ceremony stuff)
• Our monitoring and alerting is much more straightforward and comprehensive for the OSS components
• I am so tired of propping up sickly MS servers, the Redhat servers are rock solid straight out the gate
OTOH for large enterprise, Sharepoint and Office integration works very well, that's really the MS sweetspot. I'm also interested in their new ALM offering (TFS), I haven't seen an OSS equivalent as yet. However these are not dev stacks.
I'm not saying you can't do great stuff using MS tech - stackoverflow is proof of that. But I have extensive experience in both worlds, and I'll take OSS any day.
You will believe that I am joking, but Vim, bash, git, grep, gdb, valgrind, llvm and lots of UNIX tools. We use IDA Pro a lot too.
Most of the people that work with me learned with Microsoft tools, myself included but we can't stand it anymore. Why? They are so powerless and limited, specially in the extension mechanism: extending it using your own tools, which basically do 90% of our work.
The main reason for that is that commercial companies can't let you do what you want, they can't let you do what you need like reading the system internals like with linux system utilities(Windows or Apple monopolizes access to it making amazing tools like Numega SoftIce dead) and even reading the source code.
We use VS 2012 and Xcode for compiling Windows and Mac versions of our software, that is mainly designed and tested in pure Unix.
> What OSS tools and IDEs are making your devs so happy, and making their jobs better than say, VS 2012?
It depends to a large extent on what people are doing. To be honest, I have become so happy with VIM, BASH, base UNIX utilities, and such that I don't think I am ever likely to achieve the same productivity in an IDE. The thing is that IDE's are a fundamentally different paradigm and they make easy things a bit easier, but I think a text processing paradigm is better for the hard problems.
It is a silly comparison but it is so unbelievably common here. Try comparing it to ASP.NET MVC and you'll see that Microsoft actually has a modern and compelling offering. They really haven't sit still since you've been gone.
There is a difference between being keen to see the new features in the next version of .Net, and having Microsoft suddenly decide, actually, we dont care about .Net anymore, XNA is cancelled, metro apps are javascript only now. All that WFC stuff you were doing with windows phone... yeah, forget that.
People invest their time and knowledge in a technology stack, and Microsoft just seem to love throwing things away rather than improving them.
When you set fire to the developers that use your technology, are you really surprised when they don't want to have anything to do with you?
I've only seen this anecdotally, but new developers who haven't yet been set on fire seem to be very positive about the integrated MS stack.
...and slightly older jaded developers who are on fire, and looking for jobs using technology no one cares about anymore say things like 'I'll never use microsoft technology again'.
That's just been my personal experience, but I've got to admit, seeing it, I'm pretty skeptical about investing any more of my time in learning to use MS stack for anything.
...but yes. C# is quite a nice language. I fully endorse the use of Xamarins offerings (ie. C# .Net outside of microsofts control)
Xamarin deserves particular mention as the ability to share 80-90% of your core codebase between all mobile phone platforms is just stellar. It makes absolutely no business sense to re-write your core business logic for each platform and in that platforms language. So much less project risk, merge three/four code bases into one. Do it once then implement native UI's for each platform and bind back to the core library? Spot a problem in the core library on iOS? Android gets the hotfix for free. Just ask Rdio ;-)
Other hotness:
- https://www.nuget.org/ - http://www.servicestack.net/ - http://owin.org/ - http://nancyfx.org/ - https://github.com/MvvmCross/MvvmCross - http://research.microsoft.com/en-us/projects/pex/ - https://github.com/swax/CodePerspective - http://signalr.net/ - https://github.com/Redth/PushSharp - https://github.com/Squirrel/Squirrel.Windows
Last but not least:
http://blogs.msdn.com/b/visualstudioalm/archive/2013/06/26/d...
BTW I had to bandage up a limping ASP.NET MVC app about three years ago for a large Canadian telco. Nothing I saw under the hood changed my mind about MS.
As for your claim to have "bandaged a limping ASP.NET MVC app about three years ago", you might not be aware that version 1.0 was only released about 4 years ago and that they're currently at version 5.1. How much work with Razor syntax have you done considering it didn't exist three years ago?
Crappy work can be done in any language/framework
Not that I care, not having used any of the technologies discussed here other than a little VS, that a I liked, and a little VSS, that I hated.
Don't let prior experience prevent you from seeing when great stuff is happening.
A member of the legal team cannot decide to NOT extort e.g. Patent fees from e.g. Android handset makers, or allow e.g. BeOS to be installed by licensed vendors that were forbidden to do so.
A company behaves like an individual, sometimes schizophrenic, often psychopathic or sociopathic. But policy, and reponsibility is not, in fact, up to individual employees.
What you say is true of a group of sports fans, not of a company. And having watched Microsoft's stacking of the ISO committees, patent extortion and chilling effects, SCO proxy war, scathing disregard for industry standards etc - I'll say that I think they have earned all the hate they get here, and then some. The fact they they are not doing as much damage these days is mostly thanks to sliding away from the dominant position - but the culture is still one of bullying.
I've heard nothing but good things about RubyMine, but few people use it because a good text editor is all you need to work with most dynamic languages. C# is practically unusable without Visual Studio.
I've worked with both, give me Rails any day.
Why?
a) Rails is an actual MVC framework. b) ASP.NET was an over-complicated, leaky, fairly opaque abstraction for web programming. c) It took years for MS to then come out with their own MVC framework.
And VS is I think one of the best IDEs out there.
I mostly use WebStorm, while having pretty shitty intellisense for JS itself, is a much better experience for node.js development. Second would probably be MS's Web Matrix, and I'm disappointed that MS chose not to include the, imho (with an addon) much better support for node.js into VS.
I'll say that for C# development, I really like ASP.Net MVC, I've used classic ASP in the past (both JScript and VBScript) and also used VB.Net with ASP.Net. I've used PHP in the past (hate it with a passion), as well as a dabble of Ruby (like some aspects, not as much with others). I'm warming up to CoffeeScript, and have also done a bit of Python (desktop UI) and currently toying with Go.
I'm not really tethered to MS by any means, I'm pushing for moving away from what little MS tech we're using in the product I work on. That said, VS is pretty damned good, and on a whole, I haven't used better.
Downloading MonoDevelop as we speak, thanks for the reminder :)
$ sudo apt-get mono-complete $ echo "using System; static class Entry { static void Main() { Console.WriteLine(\"Hello World\"); }}" > hello.cs $ mono-csc hello.cs $ ./hello.exe Hello World
I don't mean to imply any judgment here, I'm just noting another difference between F# and OCaml.
Most people seem to think it's not syntactically very different: http://stackoverflow.com/questions/179492/f-changes-to-ocaml
I really like all the consumer products by Microsoft, but never liked or got into the development stuff.
At the same time, I've tried OSX a few times (I have both a Windows and a Mac), and just never got into it as an OS.
After learning several OSS stacks, I have nothing but contempt for Microsoft technologies. I wouldn't say I hate MS - they are what they are - but I am certainly conditioned to be very suspicious of their offerings. I would never take a job working on a MS stack again, ever.
I currently work for a large enterprise that uses a mix of MS and OSS, and I take every chance I get to swap out the MS tech with OSS. The devs love it and it makes me happy.