Why Write Python in Visual Studio?
blogs.msdn.com
blogs.msdn.com
It's free.
I'm sure there are a lot of Python developers who already have a full-featured IDE they love, but then there are also people (like me) who sometimes write Python and just use Sublime Text or Vim. Or even Eclipse.
I see plenty of minor issues (mainly in setting up the dev environment), but for most things its good enough. I know it reasonably well, and it has plugins for Perl and SQL which is a nice benefit.
PyCharm makes my developer life so much better....
I've been converting people from Eclipse to IntelliJ/PyCharm left and right at work.
I was also skeptical at first but once I figured out how to use remote xdebug - it was earth shattering for me.
http://www.hanselman.com/blog/OneOfMicrosoftsBestKeptSecrets...
https://www.jetbrains.com/pycharm/help/type-hinting-in-pycha...
You can also configure it to run on whatever JRE you want as well. I've switched it to 8 before without an issue.
https://intellij-support.jetbrains.com/hc/en-us/articles/206...
It's easy to make the argument for switching from vim/sublime + ipdb to a real IDE, but that argument falls apart when you compare a windows-only, good-luck-trying-to-download-it-without-a-windows-account IDE.
Some things that annoy me:
- Reading intellisense python documentation in the mouse over window is really tedious. There is an object window that can display documentation for your classes, but not from libraries.
- Rendered docs are much easier to read. Spyder did this very well. With PTVS I'm looking at the docs online for numpy and matplotlib. With spyder I just ctrl+I and it displays using sphinx very nicely.
- I was not able to get IPython to cooperate with displaying plots in separate windows in executing scripts as easy in PTVS compared to Spyder.
- Being able to commit and push to github is a great feature.
- Spyder had superior debugging features in terms of examining array data throughout the debug process. Make plots just by right clicking the object in the variables window. Very useful for making sure a step for a scientific algorithm is doing what I intended.
I'm hoping more features like the above will be added over time. However I'm looking at going back to Spyder + some git plugin or tool, or switching to PyCharm.
As for the other things they aren't complete yet but they are definitely very valid suggestions. If you would file issues on http://github.com/Microsoft/PTVS we can track them and hopefully keep you posted on the progress to getting them into the product.
Thanks for your feedback! Also, I hope you enjoyed PyData Seattle! (just came across your Twitter handle and noticed a few photos)
Having been using Python professionally for about 8 years now, i've been playing with PTVS and finally think its ready for public consumption - if you've tried it more than 9 months ago, be sure to try again - it is lightyears better, especially when it comes to things like remote debugging and managing venvs.
Documentation is still a bit lacking here and there when it comes to getting PTVS to play nicely with other debuggers like pdb and werzkeug, but overall, i cant wait to see the project and the team continue on this effort.
Ive used it before (2005, 2008, 2010), but it was just another IDE. How have things improved?
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.
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.
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 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.
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.
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.
def function1(x):
variable1 = x+1
return variable1**2
def function2(x):
variable2 = 2*x
return 5+v...
And I get two auto-completion choices: variable1 and variable2, while only variable2 is logical.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.
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.
Does it have good integration with things like Peeking defintion, code lense, Debugging with watch variables/autos, etc?
I think I'm one of those grumpy set in his way types now so I'm unlikely to change my habits.
I do a lot of .Net development, and more JS/Node development... I don't miss VS or windows most of the time.
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?
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.
This support for Python in VS may be a step in that direction.
That said, I'll probably try it out.
- Does it perform better than PyCharm?
- How is Windows working for you as an OS (to develop Python on)?
I've developed a few pieces of software on Windows and by far, the most painful thing I had to do install Visual Studio Express to compile some of the C extensions. I used Pycharm on Windows, so it pretty much abstracted away tasks like making virtualenvs, setting up environment variables, etc.
It has seemed to get better lately. I usually use Windows, and I've been getting along great lately with Python dev work.
Any MS / Python people?
https://www.youtube.com/playlist?list=PLReL099Y5nRdLgGAdrb_Y...
10k foot view web page: https://www.visualstudio.com/en-us/features/python-vs
if you want to get a feel for an advanced feature, try:
My worry is it's going to create VS-specific files, which I'm adamantly opposed to (or any IDE-specific files, for that matter). We'll see, though. I guess I tolerate the .idea directory already, I just don't want to depend on the VS files, similarly to how I have a .gitignore line for .idea currently.
I can't be sure if it's because I already had cygwin installed on my PC prior to my upgrade to 10, but I'm very pleased with the updated cmd.exe. I think I recall ctrl C/P working as expected too!
Right now I'm dealing with a weird encoding issue when I SSH to my Ubuntu box from CMD.exe, but I'm sure it's just a setting somewhere I've got to tweak.
TL;DR - We do have project files but are working to remove that necessity.
First, we do have some VS specific files, namely SLN and PYPROJ files. These are unfortunately needed for us to manage your project. We do hope to not need these in the future but we currently need them due to the project system we use in Visual Studio. We do hope to replace this with a different solution eventually.
The good news is these files are easily generated and do not need to be saved. If you go to File>New>Project>Python>From Existing Python Code you can generate these by giving a folder.
Second, As for the SSH troubles, CMD has been given an overhaul for Win10 and I suspect you are seeing the effect of that. I know they handle encodings differently now so that is probably the issue. I know I have seen some things render a bit strange since my transition to Win10 last week.
But the half-baked integration of VS with Python or IronPython, and the slow/clunky evolution of PTVS has put me off Microsoft tooling for good. Python is a great language for nimble development - locking yourself in to Microsoft's whim messes up with that, unfortunately.
1.) Is the foundational work that has gone into this going to be used to help support intellisense in other languages in the future?
2.) Will any of this make it into Visual Studio Code?
VS Code doesn't really have "intellisense" it's a nice fork of ATOM but considering just how much of an amazing development environment VS is i feel like having Code under the same brand devalues it quite a bit.
Visual Studio also has support for Ruby, Node and virtually every other language out there from LoLCode to Scala the only real downside of VS is that it's not multi-platform, but outside of Silicon Valley you won't find that many software houses that develop on Mac's or Linux machines that often either.
That's patently untrue - Linux is extremely, extremely popular all over India. All major laptop manufacturers (Dell, Lenovo, Asus, Acer) sell laptops with pre-installed Linux.
Unfortunately, Macs are getting pretty popular here - even though they are double in cost.
Plus I think you have to sign in now to maintain your license in community edition and the SDK is no longer standalone.
IronPython. Might trick me once... won' let u trick me twice.
PyCharm is a good Python IDE. You can get a lot of these features in Emacs (or try Spacemacs), or Vim, or Sublime (with plugins).
Then don't, you don't have to log in. That's just to help roam your settings and hook up to Azure if you've got an account.
If you don't want these features, just click "Don't Sign In".
You also don't -have- to sign in. So your post is just nonsense.
Windows 10 sends your typed text to remote servers. That's a keylogger. You can opt out, but most users won't. Other companies do it and I criticize them too.
Or, as partiallypro says, are they only sending the contents of e.g. browser search fields?
If the answer to the first question is yes, then this is a keylogger. If partiallypro is correct, then calling it a keylogger is disingenuous. By that logic you could call my mail client a keylogger, because it saves drafts to a folder on an IMAP server.
If a company records my keystrokes (even if just in part of the software, excluding credit card numbers) and sends my input to a remote server in order "to help serve you better, show you ads, and share with our trusted partners", words like keylogger and spyware are appropriate.
For example, Google sends your keystrokes as soon as you start typing in the search box, and uses this for autocomplete. Presumably you didn't read the full T&Cs before you started typing your search query, so by your logic this is a keylogger. But I think most people would make a distinction between this and a "traditional" keylogger.
Just for the record - I'm not condoning this behaviour or arguing that it is desirable.
I'm right, but still getting downvoted.