BeeWare – The IDEs of Python
pybee.org
pybee.org
Almost everyone will expect an IDE such as JetBrains PyCharm, Visual Studio, and Eclipse.
For me, PyCharm has been so good, it's become one of the main reasons why I've been staying with Python, because no matter how much I complain about the issues of Python ("it's slow", 2 vs 3, Python in Windows 64 bit, to name a few), PyCharm does a lot of things right and helps in development.
It's also great to welcome new developers: just install it and it'll all magically work (99% of the time). Not the experience we had with Eclipse.
1: https://www.jetbrains.com/pycharm/features/#debugger
Things i do not use: The internal terminal; iTerm just is a lot better. The interal ipython console. I prefer iTerm + iPython. FTP and oldschool stuff like that. Did not try the new profiling feature yet.
- The best key-binding interface I have ever seen in the settings. - Find Definition: I can press F3 (my keybind for it) and see where a class, method, or variable was declared. This makes it trivial to - integrated git-blame ("annotations") when in a git repo
In short, it's a Very Polished environment that does all the things you can likely already do with Sublime + Console, and does them in a fast and convenient way.
PyCharm also has built in git support, but I still do that on the terminal. I also use the console to run my app, tests, etc, though PyCharm does have some integrated testing ability, because it happens to be more convenient for the codebase I work in. I don't consider the IDE a replacement for those, just a convenient way to Read/Explore code.
On the other hand, PyCharm is just an installer and everything works out of the box. It comes with very interesting code inspections, which spotted things that PyLint never warned us about -- biggest issue we had was a method that wasn't implemented anywhere (and luckily nobody ever called). The code inspections also nag about PEP-8 compliance, which is a good thing to clean up the code if you're coming from a codebase that never cared too much about it. And if there's something you don't want, you can turn specific inspections off so it won't bother.
To me, it is visually very similar to Sublime Text (I use one of the "dark" themes, that I find visually less demanding than the others) and then there are the little things that help all arround, like the bar at the left of code, in between the editor and line numbers, that show the VCS diff in real time. This information is also on the right side, on a thinner bar that sits behind the scrollbar (which, I have to admit, feels weird at first), that also shows the inspections results and helps navigate the code.
The other big thing for me comes also from code analysis, and is the "go to definition" shortcut, that helped me many times to find the specific class/function definition I was looking for when we had to work with code from other teams that had the horrible habit of doing "from module import ". It may not seem too hard, but when you have 5 of those things, and you got to those modules and find the same thing, it's more than a nuissance.
I'm aware we don't use it to its fullest (its more oriented to web frameworks, like Flask and Django), but in our team it has helped a lot. I get the feeling that we are all working smoother since we adopted it, and that feeling is shared amongst the team.
It was hard to think of specific things to highlight, but I tried my best. Does this "quick review" help?
* It was actually called somewhere, but our tests and our clients had never triggered that codepath for about... 6 months I believe. Yes, this issue says something about us too (as a team, and our tests), but having the tool spot it for you helps a lot.
Too bad, because it makes sense to get some exposure for these particular tools that probably few people have ever heard of.
Neat tools, but this is literally the opposite of an IDE.
Would it be a UDE?
I'll pass. I'm not Adria Richards, and I don't indict innocent men.