I write Python professionally, and it will be pretty hard to get me away from PyCharm. I don't see anything in the blog post that indicates a feature PyCharm doesn't already have.
I remember seeing that you can simultaneously debug python and c extensions in visual studio. That's pretty impressive. If PyCharm has a similar feature, I'm not aware of it.
I'm curious how smart auto-complete in PyCharm compares to IntelliSense here. The claim that a variable's lifecycle is followed from beginning to end is interesting. I'm finding that the JetBrains autocomplete knows what a variable's type is maybe the first or second time it's mutated, but often loses track. It's had the positive effect of lessening the amount I rely on re-assigning values to the same variable, but I wonder if IntelliSense can actually deliver here.
I've found it to be mostly reliable until, like you said, accessing maybe an index of an array at which point I use type hinting, which seems to work well.
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.
Is there any difference in the code completion for the professional and the community edition. I tried out both and it seemed like some of the code completions only work with the professional edition. Just want to know if this is a bug or a feature :)
As an Eclipse / Aptana user, can I ask what you think is so bad about it, and what I would benefit from changing?
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.
I was pretty impressed by the mixed native/python debugging capabilities in PTVS (https://github.com/Microsoft/PTVS/wiki/Mixed-Mode-Debugging). It's really handy to be able to just step into native code and back seamlessly if you project has native components. Not sure if PyCharm offers something comparable.
I wish it was that easy for me. I've been trying to get people at my job to use or at least try PHPStorm (also made by Jetbrains) - but they seem to think that vi is much better (even though PHPStorm has a vi plugin).
I was also skeptical at first but once I figured out how to use remote xdebug - it was earth shattering for me.
If your organization does periodic engineering meetings or demos of cool things, you might show off that one feature that you feel is killer. You'll be able to field questions and hopefully demonstrate how it would be useful and awesome.
Not true. The JRE version on my copy of PyCharm is 7 (it's from 2014 and may be JRE8 now) and it's running on Windows currently. I ended up buying Intellij IDEA instead and I know it's running under JRE 8 by default, so I assume so is the latest Pycharm.
You can also configure it to run on whatever JRE you want as well. I've switched it to 8 before without an issue.
That's not true.
The Mac Version has a Installer which installs Java8, too.
And on Linux/Windows PyCharm uses your Java8 default, that just doesn't work on Mac, which is the reason why they bundled Java8.
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.
I've been using PTVS for about two weeks now. Previously I just used Spyder which shipped with the Anaconda distribution.
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.
I am Chris Wilcox, one of the developers on Python Tools for Visual Studio. I am happy you have tried the product and glad you took the time to provide some feedback. We have some pretty decent GitHub support built in to Visual Studio and our tooling. With Visual Studio 2015 we also have a nifty 'Open in Visual Studio' button added to all GitHub pages.
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.
Short Answer: No.
Longer Answer:
We are currently licensed as Apache 2.0 and are satisfied with the constraints of that license. Virtually all products released at Microsoft as OSS are released under MIT or Apache 2.0. We haven't had issues with the license we are using and have no plans to change it.
Thanks for your feedback! Also, I hope you enjoyed PyData Seattle! (just came across your Twitter handle and noticed a few photos)
I've met Steve and his team mates at the last PyCon - the team is very knowledgeable, approachable, and most of all enthusiastic about their project.
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.
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?
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.
I work at a .Net shop and wanted to build a developer tool with python for my colleagues. None of them have a python interpreter so it needs to compile to an .exe
I've googled for hours on how to do this with IronPython but the information is incredibly sparse and outdated. Is there any way to do this currently?
I was going to write a little client library for a REST API my city's transport system exposes, and I think I'll try this out on my gaming PC, rather than my intended plan of writing it on my Macbook.
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.
Prior to Python I used to work with Visual Studio (C# and VB) and loved it - especially the ease of designing great-looking GUIs and ease of access to API documentation.
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.
I like VS but is this fundamentally better than PyDev? I've become accustomed to Eclipse so I get auto-complete and full interactive debugging already.
Last time I tested PTVS, running any simple script was 100x slower than running it within Wing IDE (professional) which I was I used 99% of the time. This pretty much killed the idea of using Python in VS, unfortunately (for me anyways).
hi smortaz, project lead for PTVS. i'd love to get a pointer to the script (or repro). this should definitely not be the case! sorry about your experience.
Python had intellisense support both officially (through MSFT) and non-officially through community addins since VS2003, MSFT has support since 2005 with working examples.
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.
>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.
And one really great reason not to use it, the license. At any point they can yank it away from you, why invest time into learning something like that?
They have made at least two attempts to do that in the past as well with dropping the cheap versions of visual c# 2003 and then trying to yank the desktop version of visual studio 2013 express so a fair observation.
Plus I think you have to sign in now to maintain your license in community edition and the SDK is no longer standalone.
You don't have to sign in to use Visual Studio? I've downloaded it twice and didn't see a way to use it without signing in. If it's there, it's hidden.
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.
If I'm using Windows 10 and I type my credit card number in to a text input field, is that sent to MS?
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 I type something into my computer, and I do not explicitly opt-in for that data to be sent to a remote server, it is keylogging.
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.
I think this approach dilutes the meaning of the term keylogger.
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.
Bits and pieces of both your comments are correct..... Apple and Google are both complicit in it as well.
the issue with your comment is "only" - sure, they're optimizing algorithms, but its a symptom of not reading Terms & Conditions to believe they aren't also associating your search query with some sort of identifier. It's too easy not to implement this.
I didn't see an option not to sign-in on my last two attempts at installing it. I will check again now. It says 28 Gb of my hard drive needs to be used for this IDE if I check all the boxes during install.