- Python-an overview
Python was created in 1991 by Dutch programmer Guido Van Rossum. It is an interpreted language. This means that it has an interpreter to execute the programme directly, as opposed to depending more complicated machine languages. In fact, Van Rossum wants Python to eventually as understandable and clear as plain English. He has also made the language open source, which means that anyone can contribute to it, and he hopes that it will become as powerful as competing languages.
- Readability is a key factor in Python’s philosophy. As such, it aims to limit code blocks (blocks of source code text) and have white space instead, for a clearer, less busy appearance. It’s a versatile language that runs on many systems, which brings us to..
- Python’s used
Not surprisingly, given its accessible and versatile nature, Python is among the top five most popular languages in the world.
Python is used by Wikipedia, Google (where Van Rossum used to work), Yahoo!, CERN and NASA, among many other organisations.
It’s often used as a scripting language for web applications. This means that it can automate specific series of tasks, making it more efficient. Consequently, Python (and languages like it) is often used in software applications, pages within a web browser, the shells of operating systems and some games.
- Python a free software:
Python is a free, open-source programming language that is available for everyone to use. It also has a huge and growing ecosystem with a variety of open-source packages and libraries. If you would like to download and install Python on your computer you can do for free at python.org.
- Python IDEs For Data Science:
IDE stands for Integrated Development Environment. It a coding tool which allows you to write, test, and debug your code in an easier way, as they typically offer code completion or code insight by highlighting, resource management, debugging tools,.. And even though the IDE is a strictly defined concept, it starting to be redefined as other tools such as notebooks start gaining more and more features that traditionally belong to IDEs. For example, debugging your code is also possible in Jupyter Notebook.
You can probably most clearly see this evolution in the results of the Stack Overflow Developer Survey below, which also includes these new tools, next to the traditional IDEs that you might already know; They all fall under the section development environment
Because of all the features that IDEs have to offer, they are extremely useful for development: they make your coding more comfortable and this is no different for data science. However, given the fact that there are not only the traditional IDEs to consider, but also new tools, such as notebooks, you might be wondering which development environment to use when you are just starting out with data science.
IDEs Versus Text EditorsThe truth is that you can code in almost any software, from prompt command to Windows notepad, but you may also want a proper programming environment which combines coding facility with a debugging environment.
So why would or do you choose a traditional IDE instead of, for example, a notepad?
The answer would be practicality. For instance, imagine that you are coding in any text editor like Windows notepad. When your code is ready, you will need to run it. You can not execute your program in a text editor like this, so you must use a prompt command to do it. Rather than use two different programs, would not better have it all in just one place? Thats what an IDE is ready for.
But, take a closer look at the image above. Notepad++, which is a text editor in its essence, is one of the tools most used by Stack Overflow community.
Is not that weird?
Well, many text editors can be used as a development environment if you make use of plugins: when you are working with Notepad++, for example, you can use these plugins such as the DBGP for Notepad++ to install a debugger in the application, allowing you to run and analyze your code directly in your favorite text editor.
And this immediately explains why text editors can be so popular: they not only offer you the blank slate, but they also give you the option to add features that you might need. This stands in clear contrast with IDEs such as Visual Studio and Spyder, where these features are built in and you do not need to install anything else to start developing, but where the learning curve might be a little bit steeper for users.
The Top 5 Development Environments
Creating a list with just five development environments for data science with Python is a hard task: you might not only want to consider the possible learning curve, price or built-in/downloadable features, but you also might want to take into account the possibility to visualize and report on your results, or how easy a certain the environment is to collaborate with others.
You will see that your choice will balance all of these things and that the best development environment for you will be the one which makes your life easier and your work more comfortable. This means that you could potentially also switch between IDE, notebook and text editor according to whatever is more useful for you!
Thats why its best to see this list as a guide of software to test before you pick your favorite.
- Spyder
If you have the Anaconda distribution installed on your computer, you probably already know Spyder. Its an open source cross-platform IDE for data science. If you have never worked with an IDE, Spyder could perfectly be your first approach. It integrates the essentials libraries for data science, such as NumPy, SciPy, Matplotlib and IPython, besides that, it can be extended with plugins.
You should try it out because.. Different of most of IDEs around the web, Spyder was built specifically for data science. It may not be as charming as another IDEs such as Visual Studio or Atom, but give it a try! The learning curve is so smooth that you will master it in a blink of an eye. If you are a beginner, you will like to use features like the online help, which allows you to search for specific information about libraries.
Note also how this interface is quite similar to RStudio; Thats why, if you are switching between Matlab or R to Python, this is the way to go.
Features Spyder contains features like a text editor with syntax highlighting, code completion and variable exploring, which you can edit its values using a Graphical User Interface (GUI).
If you are switching from Matlab or Rstudio to Python; Spyder is the way to go, It very intuitive for scientific computing.
Download Spyder is free and its available for Windows, MacOS and major Linux distributions, like Debian, Fedora, and Ubuntu. You can install Spyder by downloading Anaconda on Continuums website.
- PyCharm
PyCharm is an IDE made by the folks at JetBrain, a team responsible for one of the most famous Java IDE, the IntelliJ IDEA.
You should try it out because... PyCharm is perfect for those who already have experience using another JetBrains IDE, due to the fact that the interface and features be similar. Also, if you like IPython or Anaconda distribution, its nice for you to know that PyCharm integrates its tools and libraries such as NumPy and Matplotlib, allowing you work with array viewers and interactive plots.
In addition to Python, PyCharm provides support for JavaScript, HTML/CSS, Angular JS, Node.js, and so on, what makes it a good option for web development.
Features Just like other IDEs, PyCharm has interesting features such as a code editor, errors highlighting, a powerful debugger with a graphical interface, besides of Git integration, SVN, and Mercurial. You can also customize your IDE, choosing between different themes, color schemes, and key-binding. Additionally, you can expand PyCharm’s features by adding plugins; You can take a look at the PyCharm Plugins Library here.
I have tried most of the popular IDEs for Python and hands down the best one in my opinion is PyCharm. It has a very nice debugger, plays nicely with git, and works easily with the use of multiple Python versions with virtualenv. Reindexing is relatively fast, and I like the interface. The community version is free and does not at all feel like it is lacking.
Download You can download the Lightweight PyCharm IDE for Python and scientific development for free here. Its available for free for Windows, macOS, and Linux.
- Thonny
The next IDE is Thonny: an IDE for learning and teaching programming. It a software developed at The University of Tartu, which you can download for free on the Bitbucket repository for Windows, Linux, and Mac.
Among its features, Thonny supports code completion and highlight syntax errors, but it also provides a simple debugger, which you can run your program step-by-step. This is very nice for beginners, as they can step through statements and expressions. While editing a function, a new window is opened with local variables and the code being shown separately from your main code. The purpose of Thonny is to give you a good understanding of how Python works under the hood.
- Atom
An open source text editor developed by Github. That sounds great, right?
That’s exactly what Atom is.
You should try it out because... Although this text editor is available for many popular programming languages such as Ruby on Rails, PHP, Java and so on, Atom has interesting features that create a good experience for Python developers.
Features One of the best advantages of Atom is its community, chiefly due to the constants enhancements and plugins that they develop in order to customize your IDE and improve your workflow.
For instance, One of these plugins - called Packages - is the Data Atom, which allows you to write and execute SQL queries. It supports PostgreSQL, Microsoft SQL Server, and MySQL. Besides that, you can also visualize your results on Atom, without open any other window. Additionally, you also have a plugin called Markdown Preview Plus, which provides you with built-in support for editing and visualizing Markdown files and which allows you to open a preview, render LaTeX equations, and much more!
As you could have already expected, Atom’s integration with git is awesome. And, as other IDEs, it allows you to use multiples panes, themes, and colors, managing multiples projects.
Do you want to know one of the downsides? Atom might have a weak performance on older CPUs.
Using hydrogen for Atom, very fast and useful, its worthwhile try out. […] Very recommended.”
Tip Use Atom in combination with Hydrogen, a package that lets you run your code directly in Atom using any Jupyter kernels you have installed.
Download Based in Electron - also known as Atom Shell, a cross-platform desktop applications framework by using Chromium -, Atom is available for free for Windows, OS X, and Linux. You can download it clicking here!
- Jupyter Notebook
Jupyter Notebook was born out of IPython in 2014. It is a web application based on the server-client structure, and it allows you to create and manipulate notebook documents - or just notebooks.
You should try it out because.. Jupyter Notebook provides you with an easy-to-use, interactive data science environment across many programming languages that does not only work as an IDE, but also as a presentation or education tool. Its perfect for those who are just starting out with data science!
Features The Jupyter Notebook supports markdowns, allowing you to add HTML components from images to videos. Thanks to Jupyter, you can easily see and edit your code in order to create compelling presentations. For instance, you can use data visualization libraries like Matplotlib and Seaborn and show your graphs in the same document where your code is. Besides all of this, you can export your final work to PDF and HTML files, or you can just export it as a .py file. In addition, you can also create blogs and presentations from your notebooks. If you want to know more about the features that Jupyter has to offer to you, check out this article.
Jupyter Notebook should be an integral part of any Python data scientists toolbox. Its great for prototyping and sharing notebooks with visualizations.
Tip If you want to know everything about the Jupyter Notebook, the installation process and how to get started with this tool, check out this tutorial that will guide you through this awesome data science tool.
Download Jupyter Notebook is easy to install and easier to use. You can download it here.
Other IDE Alternatives To Consider
- Whats the best IDE for you?
The answer is simple: that one which makes your life easier and your work more comfortable.
The purpose of this list is to give you good references to start off. You can test each one and give your considerations about what it’s good and bad at. In addition to that, you can try some alternatives, and maybe you’ll even find them better than the ones that are put in the top 5!