I'm a .NET developer so to me this is a slam dunk. How does the Python crowd feel though? I'd guess the majority tend to be Microsoft-adverse. Why wouldn't you use VS when it seems to be so ahead of the competition?
Parallels for Mac is rock-solid. I've been developing professionally with VS and SQL Server Management Studio on a Mac for 1.5 years now, without a hiccup. And VS is amazing.
I don't agree that VS is ahead of the competition. In my view the best IDEs in the Python space are PyCharm and WingIDE, and they've both been doing excellent auto-complete, debugging, refactoring, etc. for years.
Visual Studio Code support for Python is limited to syntax highlighting and bracket matching. So in the context of the article developers are actually limited to Windows only.
I work in Visual Studio exclusively for my day job the last 8 years so my experience is pretty limited. But every time I try out other languages and IDEs on my own time, I'm almost shocked at how hard the tools are to work with compared with Visual Studio. VS has excellent intellisense. Compile and runtime errors are clearly pointed out, usually with helpful error messages. And real-time debugging and being able to set variable watches make developing much easier. Compine that with the new integrated performance/memory profiling tools and it's a slam dunk.
These tools may be available in other IDEs, but they are so easy to use in Visual Studio. Again, this may be due to my experience and familiarity, but I haven't found anything close. In theory Eclipse should be able to compete since the debug capabilities should be the same (.NET vs JVM) but it was disappointing. Cludgy IDE, poor intellisense. And even creating a simple Java console application required several manual configuration steps. In .NET you can have a new console app running in 2 clicks, and it's pretty intuitive so even new users shouldn't be too overwhelmed.
Did you work with other IDEs/languages before you started working with VS?
I typically use VS every day (currently on 2013), and yes, I have a similar experience with other IDEs. Then I remember that I know VS pretty well, and maybe that's why this other IDE doesn't seem so great. If I spent 8 years with a different IDE, and someone gave me VS2015, I'd probably have that same "this clearly isn't as awesome as X" feeling.
I'm not sure. I used Eclipse extensively for several years (though am not an expert), but immediately discarded ANY interest in Eclipse within about 20 minutes of using PyCharm. Because of that experience, I no longer felt that IDEs were interchangeable.
I haven't used Visual Studio in about a decade or more, but I would not be surprised if there were things about it that don't have an easy analogue in others, and which people miss.
I'm a front-end guy and after working at a MS heavy shop where this is all we used for everything (TFS for source control, ALM for project management, Azure for test and dev environments) and I fell in love with it. The ease which all of these are integrated into your IDE spoils you a lot.
Also, even as a front-end guy, I was able to debug fairly complex applications because the compiling errors are so clearly laid out where they are and hints on how to resolve them.
I've used nearly every IDE imaginable and I've found VS's intellisense to be second to none.
Creating a Java console app is not really the same as creating a non-portable, Windows only console app. Of course VS does Windows integration better, that's kind of the point :)
In VS, you create a new console solution (Or web) in your language of choice... a hello world template is created... click the run/debug button, it compiles and runs.
That has emphatically not been my experience with Eclipse at all... I've had to participate on a number of Java solutions over the years, but it always felt like a hair pulling experience. For that matter, I'm often frustrated with VS after spending most of my time the past 4-5 years in node... full text editor, and two console windows open (plus browser(s)). After a while, it feels like the low tech option is easier.
There are things I miss when I play with VS... but when I use VS for JS editing, I find I'm fighting with formatting options that reformat my text, and other developers with the defaults that don't care. That said, I do like VS more than every other IDE I've used... WebStorm is really nice for node, but I haven't tried the latest NTVS seriously.
2013 was a pretty big jump (IMO) for Visual studio. It added some cool features that I use all the time.
Filtering in the solution explorer.
Peeking definition.
Code Lens
Parallel watch.
(Ultimate Only) Number of references listed above the function and tests associate with it.
2015 has some even cooler stuff.
It shows memory and cpu usage as you debug any program (tests/console/etc).
You can call linq from the watch window (not sure where I saw this buy a key feature that was missing).
The built in diagnostics tools are better (I use resharper so I don't really need that).
I also really like some of the built in Code Review tools they have, which you don't need if you do pull requests in git.
I assume those features are strictly for the MS stack. Am I wrong? Do they work with Python? In terms of costs, what do you pay for it (including the OS)?
Argh hate to fess this up but I think some of those features might be locked into MS stack. Just tried on my 2013 version on python and peek wasn't working. Will try 2015 later to see, but I'm not hopeful.
why not? with parallels or a similar transparent solution why would you care?
Heck most modern solutions even setup all the environment variables and paths so you barely even notice that you are on a different file system when you using them.
Why would you pay for two OS licences when you've got an OS you're happy with? Sure, you might choose an OS based on the applications available (eg I strongly preferDebian GNU/Linux because of apt-get and xmonad) -- switching OS to use a tool seems like a bit of a stretch though.
If you like the MS toolset, by all means use Windows. But using a vm for especially a gui program (which then interacts poorly with your os ui) seems like a sub-optimal solution?
That's not true at all. I'd much, much rather have OS X's build of Photoshop even when using it with a game I'm writing in C# and it's much easier to quickly munge things using rbenv-managed Ruby than to fight with cygwin or RubyInstaller.
The application's similar, but the drivers aren't. Wacom's drivers and configuration management are a lot more finicky under Windows. Another helpful thing: Core Audio is about as fast as ASIO is under Windows, making music and SFX more pleasant to work on here--even, again, when writing a game in C#. (Even discounting that Logic doesn't run at all under Windows.)
It also has the nice side effect of not making me hate the computer I'm using and the project I am working on. The more things I have to touch on Windows, the more unhappy I am; I find it to be unpleasant and death-by-a-thousand-cuts draining to use for more than casual use (I own a Surface Pro 3, but only because I got it very cheap). There are two applications open in my Parallels virtual machine: Sublime Text (for editing YAML files) and Visual Studio for working on code--it's the minimal set of things I have to touch to use C# for development.
I use Parallels on my MacBook for VS and SSMS, and that is all. But it's a perfect dev setup. I adore the MS dev stack. It's insanely powerful, and quite elegant.
I don't think this has much to do with the change of the guard at the top. Iron Python was started in 2008, and Python tools for VS was first released in 2011.
Agreed. Clearly I'm being unfair, but I think I may not be alone in my aversion to the old Ballmer brands. Perhaps SN should "do an Edge" on the VS moniker.
I have to disagree. I've tried and failed several times in the past 15 years to start using emacs for software development. Some people seem to grok it, I just don't. Maybe it's some quirk of mental processes - I love vim so it's not like I don't dig obscure unixy tools.
How long does it take to set up Emacs to be as good as IDE? Also, how little effort does it take? Thing about something like VS or IDEA, is that you install it, and all the stuff is already set up. I have deadlines, and for me, tinkering with my editor is very much a hobbyist thing (whereas I'd prefer to be writing actual code in my free time).
I used to use the auto-complete package instead, which in some configs (with ac-source-words-in-buffer or ac-source-words-in-same-mode-buffers in the source list) basically tokenize the buffer and provide autocomplete on all words.
Yea, the switch from auto-complete to company mode was annoying to get done right, but was well worth it in terms of accuracy. It also provides function signatures which my old setup didn't. I also switched to using virtualenv mode as well.
I can probably try and dig up the relevant part of my config, but since I'm using prelude as a base now it mostly just works with only a few lines of tweaking in my personal.el -- mostly just virtualenv locations and enabling virtualenv mode with a hook.
I have to admit I come from the opposite side to you. I learnt emacs at University almost 15 years ago and have been using it ever since. I've tried using Eclipse a few times in the past but I never really learnt the 'proper' way to use it and found it utterly uncompelling. I always end up going back to emacs. I write C code mostly though not sure if that is relevant.
I think I'm one of those grumpy set in his way types now so I'm unlikely to change my habits.
That, and the fact that it's very easy to extend it with Emacs Lisp. I know that it's possible to write extensions for most of the IDEs or text editors out there, but the degree of customization is higher with emacs, mainly because emacs is basically couple of primitive functions written in C + a lisp interpreter (also written in C) and the rest is written in lisp, so you have access to everything emacs has to offer if you want to customize it.
How so and what is your experience with both? I've been using VS for a few years now, I used Emacs in college, but I much prefer VS (although I haven't touched Emacs for a long time so I'd like to hear more about what you like about it more).
Does it have good integration with things like Peeking defintion, code lense, Debugging with watch variables/autos, etc?