For the first time in history, Python outranked Java and became the second most popular programming language by the end of 2019. Its readability, support for multiple programming paradigms, and extensive standard library make it a favorite among novice and experienced programmers alike. Furthermore, the average annual salary of a Python developer is around $117,000, making it an attractive career option.
Whether you are a budding programmer or a seasoned expert looking into Python, you know that your web development tools can make or break a project. At the center of your entire workflow should be a robust text editor. And two of the most popular Python tools today are Sublime Text and PyCharm. But which one should you choose?
In this article, we will take a look at their strengths and any potential weaknesses to help you with your next project. Whether you are whipping up a simple utility tool or creating the next top content management software, you need to have the right editor. Before we go to our PyCharm vs Sublime Text Comparison, let’s answer one important question first, text editor, or IDE?
Text Editor or IDE: Which is Best for Your Project?
No, we do not use NotePad to write code anymore. However, new features have once again allowed these nifty tools to compete against the giant integrated development environment (IDE). While one is not better than the other, your project type, workflow, and preference will determine which one best fits you.
Why Use an IDE?
The keyword here is “integrated.” An IDE is a full-suite program where an entire software development happens. It turns your code into a deployable product, such as desktop applications, software, etc. It contains all the tools that you need, including a text editor, from debugging code to compiling your program. Most IDE’s also include some form of project management functionalities.
Because IDE aims to make your work as efficient as possible, it is stuffed with the features and extensions that you will need. However, this is also the same reason why some programmers are overwhelmed with it. You also have to use a more than capable machine as it requires a lot of computing power to run well.
Why Use a Text Editor?
In many projects, such as web development, a fully-featured IDE is an overkill. If you are writing a script to create a small tool, you won’t need an IDE for that. Text editors, like Sublime Text, are developed to serve this exact purpose. Code-centric editors have powerful features, such as syntax highlighting, flexible interfaces, and customizability.
Some programmers also prefer the barebones approach to development. They often use command-line tools to compile their programs as it is easy to automate tasks and use scripts. Some like to have their own workflow that IDEs do not provide.
Overview of Sublime Text
Sublime Text is a next-level editor that was developed specifically for coders. It includes features such as syntax highlighting, directory explorer, command palette, and extensive keystrokes shortcuts for much more efficient programming. The application is blazing fast and lightweight, which means it can run on most computers.
It is also a great markdown editor. When coupled with the easy-to-use directory explorer, you can turn Sublime Text into an effective note taker and document manager. However, if you want to explore better document management solutions, then head over to our detailed analysis of document management software.
The text editor’s real power comes from its customizability and robust ecosystem. You can tweak and refine snippets, macros, menus, key bindings, and more by just editing its JSON file. Its powerful Python API allows for the development of a large number of plugins to extend its functionality. With the right configuration and extended features, Sublime Text can function as close to an IDE as it can get. In fact, there are a lot of instructions online on how to set-up the text editor for full stack Python development.
Overview of PyCharm
PyCharm is a Python IDE that is a favorite among professionals. It ís being used by many IT companies to create large projects. It includes built-in developer tools right out of the box, such as testing, debugging, and profiling. You can also use the native database tools for SQL, MySQL, PostgreSQL, Access Oracle, and more. Furthermore, you can deploy your application right within the IDE with the option to do so remotely.
PyCharm vs Sublime Text Comparison
Both Sublime Text and PyCharm include a long list of features that is beyond the scope of this article. Instead, we will take a closer look at common features and compare them.
Both applications allow you to install plugins to extend their functionalities. Sublime Text’s Package Control is not natively included. While this stays true to the developer’s barebones approach to the application, some users may get confused during its early adoption. Fortunately, the developer made it easy to install the Package Control (Menu -> Tools -> Install Package Control..). Once this is done, installing a new plugin is just a few keystrokes away.
On the other hand, Plugins is built into PyCharm. However, installing a new plugin takes a few clicks, which is very reminiscent of installing a .exe in Windows. You will have to deal with a lot of buttons. For developers who prefer keyboard operations only, this can be cumbersome, especially if they need to install several extensions.
Another feature worth looking at is its multi-cursor feature in Sublime Text. This nifty little functionality makes dealing with thousands of lines of codes much more tolerable. You can edit multiple lines at the same time, such as when renaming variables.
PyCharm has implemented a similar feature that allows you to make multiple selections. While it matches some of the tricks that Sublime Text multi-cursor could do, it does not have the flexibility, especially in keyboard shortcuts.
This round of PyCharm vs. Sublime Text is won by the latter but only by a small margin.
The next criterion of our PyCharm vs. Sublime Text comparison is your development process. This will primarily depend on your project and your preference. If you are working for an IT company, you will probably have to follow the established workflow.
At the most basic level, Sublime Text is a super-charged text editor, nothing more. That means if you want to use it as you would an IDE, you will have to set it up and customize how it functions. As mentioned in the previous sections, the plugins will help you achieve functions beyond the built-in ones. You will have to install all the packages that you will need and configure them one by one. On top of that, you will have to add themes, keyboard shortcuts, custom commands, and more.
PyCharm, with its powerful development environment, has a built-in workflow that you can follow right out of the box. You can also customize and adjust it to some degree. While you may need to install plugins for specific needs, it will not be as many as you would need in Sublime Text. That is why PyCharm is a favorite in many corporate settings as you can get started almost right away.
If you are not keen on starting from scratch in terms of setting up the development workflows and the relevant tools, PyCharm fits you best. You have all the functionalities that you need without the extensive configuration. However, if you are a developer with specific processes, Sublime Text’s flexibility will open you to endless possibilities. It is perfect if you like to have control over all aspects of your development.
Ecosystem and Community
PyCharm has strongly integrated functionalities and workflow. You can easily access debuggers, add breakpoints, manage projects, and more. Its traceback feature can take you to the root of the error in just a few clicks. While the Go To function of Sublime Text is powerful, it is still limited when it comes to error tracking and debugging. Additionally, writing comments and documentations in PyCharm is much easier. It spellchecks Python docstrings and texts to ensure high-quality descriptions.
Sublime Text’s “ecosystem” is not within the app itself but in its active and vibrant plugin community. While PyCharm does have an extensive library of extensions, it pales in comparison to available tools in Sublime Text’s Package Control. They also get better support. Furthermore, if you are a polyglot programmer, you will surely find plugins so you can develop in languages, such as Erlang, Haskell, or R. The self-contained Python modules of Sublime Text are also easier to deal with than PyCharm’s Java projects.
Sublime Text downloaded and evaluated without any charge. But, you will be occasionally asked to pay for a one-time fee license at $80. Businesses can also purchase annual tiered subscriptions starting at $65/seat/year for the first ten seats.
PyCharm subscription starts at $19.90/user/month. You can also purchase an All Products Pack for $64.90/user/month that includes ReSharper Ultimate, IntelliJ IDEA Ultimate, and other JetBrains products.
Again, this will depend on whether you are a solo programmer or managing an entire team. You might find the evaluation version of Sublime Text more than enough for your needs. Its business licenses are also much cheaper than PyCharm. However, a full IDE is much more logical if you and your team are planning to deploy large projects with shorter development periods.
Which Editor Fits Your Web Development Project?
The PyCharm vs Sublime Text comparison is an endless discussion as both applications have vocal supporters and critics. You need to evaluate your use case to make the right decision.
Are you a beginner Python developer? Sublime Text’s minimal features ensure that you will experience every part of the development processes down to the smallest issues. This makes it a great learning process. Additionally, its flexibility is perfect for experienced Python devs who prefer more control over their entire workflow.
Perhaps you are an expert looking for a better tool? In that case, PyCharm’s powerful functionalities and integrated ecosystem will allow you to deploy apps efficiently. It is also easier to manage thousands of lines of codes, debug large projects, and trace errors. If you do not like switching between different apps during development, PyCharm has everything that you will need in one place.