Programmers usually fall into two camps. Those who studied Computer Science or similar at school; and those who are eventually pushed into the programming world and use interest and necessity to drive their progression.
As a graduate with a Management Masters and a BSC in Biology, programming is far from my background. Even after learning python and touching on a few web languages, I constantly found myself wondering where on the spectrum of understanding I actually stood. If you’re like me and are constantly trying to advance your knowledge and practise good standards then you too might spend a lot time on Google going around in circles. I recently learned that not all IDEs are created equally and because I had used Wing101 for so long I decided to do some research to see if I could better my practise in python.
A quick google returns a plethora of blogs about useful environments from fairly expensive to cheap, right down to free ones. Many that offer license based IDEs offer a free one with limited options but ones that are still useful for those starting out. Wing, Sublimetext 3, Eclipse, PyCharm the longer you look the more that emerge and with cult like support for each, it was hard to simply pick one.
The most obvious thing that stood out for me was that in today’s python world if your IDE doesn’t have support for more than one language, and doesn’t support common Python frameworks like Django, then it is time to find a new IDE. After reading many documents, blogs, articles, reviews and general comments on IDEs and text editors there were a few common and recurring options.
In recent times, PyCharm and Komodo have been mentioned as heavyweights in the Python IDE world. Older long standing champions include Wing IDE, NotePad++, Emacs and PyDev in Eclipse. Depending on your budget and goals, any one of these is acceptable. Do your research and weigh up the pros and cons of each.
Komodo IDE is a nice package to with further language support for RUBY, PHP etc., but at $99 for a single use licence without update support, $395 for the full transferable license and only a 21 day trial I was less inclined to give it a go. Emacs is a very highly regarded environment but comes with its own learning curve because it is built using the GNU framework. If you are comfortable with python and want to build your own libraries this is the IDE for you. Wing comes in three different packages, having used Wing 101 I didn’t want to simply update to the professional version, although for some of you this may be all you need to see a lot of benefit.
After some research, I decided to try PyCharm, because it offers a free python only option, and is very highly regarded by those who have used simple lightweight IDEs beforehand. The commercial license is only a $100 license and adds support for JS, Node, CSS, etc, and because I will likely be doing web design and mapping applications in the future, this suited me.
Initially the step up from Wing IDE 101 to PyCharm was vast in a way that was both daunting and exciting. There are many more toolbars, from the inspector which can find bad practises and spelling, to the structure toolbar which displays functions, classes and variables. While there are many more menus, it all seems very similar. As I said I was excited to try much of this new functionality.
Pycharm has functionality like an Android (sorry Iphone users), and there are many tools I have still yet to use however, the ones that I have used and continue to use are outstanding. Pycharm lets you load different versions of Python in (32Bit, 64Bit, 2.7, 3.0…) as well as creating virtual environments and installing packages for you. It even automatically re-opens all of the files you were using when you load a project. If there is one drawback it is that it suffers from memory problems and crashes randomly after extensive testing and debugging periods. It also saves as you type. Removing the need for constantly pushing save and run, however if you delete some code during a redo/undo and it crashes you’re stuck with what you had.
If you have considered using a different IDE to better your understanding of a language or have never changed are stuck using a seemingly obsolete IDE, I would recommend an upgrade. And while there have been times where I felt like it’s going to be too steep a learning curve, hanging on and pushing through has helped me in the long run. Do your research and find what you feel is the best match to not only improve now but also provides options to do it again in the future.
- Cody Kinzett