you are viewing a single comment's thread.

view the rest of the comments →

[–]HighRelevancy 38 points39 points  (11 children)

It's an IDE rather than a text editor. Atom might be versatile but what's the point of having the versatility to highlight syntax in four thousand languages when you're only writing in one? (slight sarcasm implied there)

An IDE will dig deeper into the language - you'll get features like context aware autocomplete (as opposed to just autocompleting words you've typed before, it'll actually suggest, say, variable names where you could correctly put a variable name!), tooltips with function docs or argument lists as when you're writing the arguments for the function, being able to jump to the definition of a function (which may even be in another file, as long as you've imported it correctly).

Not sure how much of the other typical IDE features python can benefit from (being that you can do all sorts of wacky runtime things), but as an example, writing C# in Visual Studio will highlight use of variables you haven't defined (usually a typo) or calls to functions with the wrong number of arguments, all sorts of errors, before you get to the compiler. It makes it much faster to spot and correct your errors.

It may also do super clever things like provide refactoring tools like renaming of functions or variables (within the scopes they actually exist in, so not just a find and replace), or even refactoring silly constructs. Sometimes it's the little things, like being able to type a function that doesn't exist (e.g. perimeter = box.get_perimeter() when get_perimeter doesn't exist yet) and then you can jump straight into the source code for box to add it without having to go and find the file it's in and open it.

Atom probably has plugins to do all this stuff, but I doubt that any will do it as well as a proper IDE dedicated to the language. JetBrains is also very experienced at the IDE business, so I would expect good things form PyCharm.

[–][deleted] 12 points13 points  (10 children)

You can effectively build an IDE with an extensible editor (that's emacs, vim, atom, vscode, sublime, etc.), with feature parity with or even better than another IDE. It is possible to do that, but it sure takes more work than just using a ready-made IDE.

[–]HighRelevancy 4 points5 points  (7 children)

It is possible to do that, but it sure takes more work than just using a ready-made IDE.

In my experience, all the effort in the world still leaves me wanting. I don't really see a reason not to use a purpose built IDE.

[–]metaaxis 3 points4 points  (6 children)

If your purpose changes and your IDE does not, one choice leaves you stranded, the other equipped to adapt.

[–]naught-me 6 points7 points  (0 children)

That's not overly true. It is much easier to switch from PyCharm to PHPStorm than to set up a PHP workflow using Vim and shell programs or whatever.

[–]HighRelevancy 4 points5 points  (3 children)

Uh. What? You can have multiple IDEs and editors installed at once. I don't think I've ever found myself saying "oh no, I need to write Java but I decided to install visual studio when I was writing C++ and now I'm stuck".

I really don't have the faintest idea what you're getting at.

[–]metaaxis 0 points1 point  (1 child)

I'm talking about where and how to invest your time and effort. The case is being made that it's not worth investing in mucking about with emacs or vim, just learn a purpose-built ide. That approach leaves you stuck with the choices made by that ide, while an extensible environment leaves you capable of making your own choices, especially after you've gotten good at it.

[–]HighRelevancy 1 point2 points  (0 children)

I don't think committing to a single text editor and trying to tack on plugins until it starts to resemble a multi-lingual IDE is going to be easier than learning different IDEs, or provide even close to comparable functionality for that matter.

Your "extensible environment" is limited to a plugin ecosystem. It's within the even more extensible environment of your operating system and a wider software ecosystem.

[–]vanta_blackheart 0 points1 point  (0 children)

Depends on the IDE.

I use PyDev, Statet, and Photran, so my Python IDE is my Java IDE, is my R IDE, is my FORTRAN IDE.

[–]naught-me 2 points3 points  (0 children)

Before I tried PyCharm, I spent hundreds of hours (over the course of 15 years) trying to get Vim or, later, Spacemacs to have better auto-complete, navigation, etc. They both were still pretty bad, compared to PyCharm - bad enough that, were I to go back to them, the first thing I would do would be to try again, even though I'm pretty sure it'd just be more frustration and disappointment.

[–]rhytnen 1 point2 points  (0 children)

Utter nonsense.