Содержание

Лучшие IDE и редакторы Python для Mac

Изучаем и сравниваем инструменты для программирования на Python

“Орудия труда - это навыки, инструменты и любые другие средства, необходимые для качественного выполнения своей работы.” - из определения в Collins Dictionary.

Есть несколько основных орудий труда (приложений), которые программист использует постоянно - это браузер, терминал и редактор кода или интегрированная среда разработки (IDE). Выбор правильного приложения всегда важен, поскольку время, которое ты проводишь, пользуясь этими инструментами, оправдывает время, потраченное на их выбор.

Сейчас прекрасное пора, чтобы быть разработчиком, поскольку существует широкий выбор доступных приложений. Давай посмотрим на лучшие текстовые редакторы и полнофункциональные IDE для Python разработчика, работающего на Apple Mac.

Консольные редакторы

Начнем с самого базового инструмента, доступного на любой платформе и в любое время - консоли. Можно использовать любую стандартную, но я предпочитаю лучшую, на мой взгляд, реализацию - это стабильное, быстрое и удобное приложение iTerm2. Программа полностью бесплатна и ее исходный код можно найти на GitHub, а функциональные особенности и скриншоты смотри здесь.

Как вариант можно использовать другое бесплатное приложение - Alacritty, довольно быстрый, кросс-платформенный эмулятор терминала, использующий GPU для ускорения своей работы (OpenGL на Rust). Alacritty поддерживает macOS, Linux, BSD и Windows.

Когда определился с консолью, осталось только добавить любой из нижеперечисленных редакторов, чтобы начать работу над кодом своего гениального проекта:

Nano

Название расшифровывается как Nano’s ANOther редактор. Его разработали в качестве бесплатной замены текстовому редактору Pico. Последний был частью известного в свое время почтового пакета Pine, созданного в Университете Вашингтона.

Nano - это очень простой, с базовой функциональностью, но тем не менее вполне работоспособный инструмент для редактирования кода. Большую и серьезную работу делать в нём будет сложно, но для написания простеньких скриптов и программ вполне может подойти.

Micro

Cовременный и интуитивно понятный текстовый редактор, который полностью использует все возможности современных терминалов. Micro призван стать преемником редактора Nano, будучи простым в установке и использовании, но в то же время приятным, мощным и расширяемым за счет плагинов.

Micro прекрасно настраивается, поддерживает многооконный интерфейс, работу с мышью и горячими клавишами. Это уже довольно продвинутый инструмент, в котором можно делать нормальные проекты.

Vi/Vim

Классика всех времен, Vim - это мегаконфигурируемый текстовый редактор, созданный для эффективного создания и редактирования любых текстов - от простых документов до кода сложных проектов. Он по умолчанию установлен в большинстве UNIX систем, в т.ч. и в macOS. Vim очень стабилен и постоянно дорабатывается.

На основе Vim можно при желании можно построить полноценную среду разработки (IDE). Единственный минус - на первоначальном этапе от тебя потребуется значительное время и усилия, чтобы научиться его эффективно использовать.

Neovim

Если ты предпочитаешь современные технологии, попробуй этот гиперрасширяемый текстовый редактор на базе Vim. Он практически полностью совместим с Vim и языком Vimscript. Neovim возник как попытка сделать Vim более доступным и открытым для новых технологий.

Краткое сравнение, чтобы понять, какая из версий (Vim или Neovim) тебе подходит лучше, ты найдешь здесь. Как Vim, так и Neovim потребуют от тебя некоторых усилий на изучение и настройку (опции, темы, плагины) на первоначальном этапе.

Текстовые редакторы

Сегодня существует много отличных текстовых редакторов, которые, помимо очевидных возможностей для редактирования текста, позволят тебе создать полноценную систему разработки на Python с использованием внешних плагинов.

GNU Emacs

Emacs является одним из старейших текстовых редакторов. Его первая версия была написана еще в середине 70-х Ричардом Столманом. Emacs - это по сути целая среда, которую можно настроить под любые задачи - редактирование текста, почту, музыку, веб браузинг и т.д., благодаря встроенному интерпретатору языка Lisp.

В качестве текстового редактора он когда-то соперничал с Vim по популярности, однако сейчас это скорее выбор для энтузиастов. Дебаты “Emacs или Vim” были одной из первых “священных войн”, которые велись в группах Usenet. Сравнений очень много, но если хочешь коротко, то почитай этот дельный ответ на StackOverflow.

Настройка Emacs для разработки на Python - это отдельная и очень увлекательная тема. Поскольку она довольно объемная, то я лишь порекомендую хорошую статью - Emacs: Лучший редактор Python и видео - Emacs IDE: Конфигурация для разработки на Python.

TextMate

Довольно мощный и настраиваемый текстовый редактор с поддержкой большого числа различных языков программирования и открытым исходным кодом. TextMate использует пакеты (бандлы) для настройки и работы с различными языками, системами разметки, рабочими процессами и многим другим. Он поддерживает контроль версий, сниппеты, макросы и прочие удобства.

Поддержка Python в TextMate включена по умолчанию. Чтобы проконтролировать это, просто открой настройки приложения и в закладке Bundles найди пакет Python. Он должен быть включен. Также в блоге разработчиков можно найти несколько советов для macOS.

  • Цена: Бесплатно
  • Платформы: Только macOS 10.12 или более поздняя версия
  • Сайт: https://macromates.com/

Atom

Atom - это такой специализированный вариант Chromium, разработанный GitHub, который представляет собой текстовый редактор в браузере. Каждое окно Atom - это, по сути, локально отображаемая веб-страница. Это дает большую гибкость (и, конечно, некоторые ограничения).

Разработчики представляют его как “взламываемый текстовый редактор 21 века “, что означает, что ты можешь изменить практически любую его часть. Существует целая вселенная packages, которые расширяют функциональность Atom и позволяют создавать практически все, что тебе необходимо.

Одной из интересных особенностей Atom является то, он поддерживает совместную работу над кодом в режиме реального времени с использованием P2P WebRTC (с шифрованием). Ну и разумеется, у него практически нативная интеграция c GitHub :).

Специальный пакет ide-python, превращает Atom в Python IDE.

  • Цена: Бесплатно
  • Платформы: Mac, Windows, Linux
  • Сайт: https://atom.io/

Kate

Kate или KDE Advanced Text Editor - это довольно мощный текстовый редактор, который позволяет успешно работать даже над сложными проектами. Поддерживает более 300 языков, подсветку синтаксиса, имеет развитые средства для работы с файлами, поиска и замены текста, поддержку плагинов. Буквально недавно (в марте 2022) он существенно обновил свой пользовательский интерфейс в лучшую сторону.

Nova

Редактор для программистов, созданный с использованием технологий Apple и только для macOS. Он относительно новый, быстрый и гибкий. Включает практически все необходимые инструменты - автодополнение, множественный курсор, встроенную поддержку языков, включая Python. Функциональность Nova можно расширять, используя API и плагины.

Есть встроенный менеджер локальных и удаленных файлов, ftp клиент, поиск по проекту, отчеты и прочие современные технологии, включая версионность (Git). Nova поддерживает скрипты, с помощью которых можно прописать часто используемые сценарии - запуск локального сервера, открытие нужного адреса в браузере и т.п.

Интерфейс покажется очень привычным всем, кто работает на macOS. Тему оформления легко настроить по своему вкусу.

  • Цена: $99 за первый год; $49 за каждый следующий.
  • Платформы: Только Mac
  • Сайт: https://nova.app/

Sublime Text

Функциональный и кроссплатформенный текстовый редактор, разработанный для тех, кому нужен минималистичный и эффективный инструмент. Работает быстро и стабильно, даже с очень большими текстами и проектами. Это приложение с целой экосистемой плагинов, которая позволяет создать могучую среду разработки.

Настройка Sublime Text для специфической цели может быть довольно увлекательным занятием. Поэтому пока просто порекомендую отличную статью на эту тему - Настройка Sublime Text 3 для разработки на Python.

Из всех вышеперечисленных вариантов я предпочитаю именно Sublime Text за его стабильную работу и идеальный баланс между простотой использования, возможностями и производительностью.

Jupyter Notebooks

Это интерактивная вычислительная среда, в которой можно сочетать выполнение кода, насыщенный текст, математику, графики и насыщенные медиа. Существует несколько приложений, позволяющих разрабатывать полноценные проекты в интерактивном режиме.

Jupyter

Проект Jupyter существует для разработки программного обеспечения с открытым исходным кодом, открытых стандартов и сервисов для интерактивных вычислений на десятках языков программирования, включая Python. Вы можете установить либо полный JupyterLab - интерактивную веб-среду разработки для блокнотов Jupyter, кода и данных, либо только Jupyter Notebook, который позволяет создавать и обмениваться документами с живым кодом, уравнениями, визуализациями и повествовательным текстом. Есть даже Voilà, который помогает передавать информацию, превращая Jupyter Notebook в отдельное веб-приложение, которым можно поделиться.

Pineapple

Pineapple - это автономное приложение для IPython для Mac, которое не требует других компонентов для работы. Достаточно мощное для новичков, достаточно простое для опытных пользователей. Минимальная версия содержит такие необходимые компоненты, как numpy и matplotlib, а также полную стандартную библиотеку Python. Полная версия включает scipy, pandas, bokeh, ggplot, Pillow и многое другое, всего 63 пакета.

Nteract

Приложение nteract desktop application позволяет просматривать, редактировать и публиковать блокноты с рабочего стола. Оно кроссплатформенное, поэтому вы можете использовать его в своей любимой операционной системе. Настольное приложение - отличный инструмент как для начинающих, так и для опытных пользователей блокнотов.

Хотя Jupiter Notebook остается самым популярным выбором, я предпочитаю автономный nteract, потому что было много случаев, когда веб-блокнот Jupyter Notebook зависал/замерзал из-за огромного объема вычислений или ошибки в коде, и мне приходилось принудительно выходить из всего приложения Chrome с несколькими вкладками в нем. Когда nteract зависает по тем же причинам, я перезагружаю только его, сохраняя открытыми все мои драгоценные вкладки с документами и ответами StackOverflow.

Полнофункциональные IDE

IDE расшифровывается как интегрированная среда разработки.

По сути, это набор различных инструментов в одном пакете, которые помогают разработчику выполнять и/или автоматизировать многие стандартные задачи. Они могут включать в себя анализ и предварительную обработку данных, интеграцию различных источников, тестирование, проверку, сравнительный анализ и оценку производительности кода, обновление библиотек и пакетов, используемых в проекте, и т.д. IDE была разработана для упрощения процесса разработки, уменьшения объема кодирования и повторяющихся ручных задач.

Ниже перечислены наиболее популярные IDE, используемые разработчиками Python, работающими на macOS.

Thonny

Thonny - это IDE для изучения и преподавания программирования, специально разработанная для начинающих среда сценариев Pythonista. В Thonny вы можете увидеть, как ваш код влияет, например, на переменные Python. В ней также есть очень простой отладчик. Он разработан в Тартуском университете, и его можно скачать для Windows, Linux и Mac.

  • Цена: Бесплатно
  • Платформы: Mac, Windows, Linux
  • Сайт: https://thonny.org/

CodeRunner

Легкий многоязычный редактор программирования для macOS. CodeRunner может выполнять код на 25 языках, включая Python, “из коробки”. Он также может работать с многофайловыми проектами. В нем есть все основные функции обычной среды разработки: завершение кода для большинства языков, в том числе нечеткий поиск, вкладки-выделители и фрагменты документации. CodeRunner имеет встроенный отладчик, вы просто устанавливаете точки останова и просматриваете свой код.

Spyder

Spyder - это IDE с открытым исходным кодом, обычно используемая для научных разработок. Самый простой способ начать работу со Spyder - установить дистрибутив Anaconda. Если вы не знаете, Anaconda - это популярный дистрибутив для науки о данных и машинного обучения. Дистрибутив Anaconda включает сотни пакетов, в том числе NumPy, Pandas, scikit-learn, matplotlib и так далее. Spyder обладает некоторыми значительными возможностями, такими как автозавершение, отладка и оболочка iPython. Однако ему не хватает возможностей по сравнению с PyCharm.

VS Code

Visual Studio Code (VS Code) - это бесплатная IDE с открытым исходным кодом, созданная Microsoft, которая может быть использована для разработки на Python. Вы можете добавить расширения для создания среды разработки Python в соответствии с вашими потребностями в VS Code.

Она предоставляет такие возможности, как интеллектуальное завершение кода, линтинг для выявления потенциальных ошибок, отладка, модульное тестирование и так далее. VS Code - легкий и мощный инструмент. Именно поэтому он становится популярным среди разработчиков Python.

Существует также проект VSCodium - свободно лицензируемый дистрибутив редактора VSCode от Microsoft без встроенной телеметрии. Более подробно можешь почитать об этом здесь.

PyCharm

PyCharm - это IDE для профессиональных разработчиков. Она создана компанией JetBrains, известной созданием многих других замечательных инструментов для разработки программного обеспечения. Существует две версии PyCharm:

  • Community - бесплатная версия с открытым исходным кодом, легкая, хороша, если вы только начинаете.

  • Professional - платная версия, полнофункциональная IDE с поддержкой удаленной разработки (вы можете редактировать код непосредственно на удаленном сервере), сложной отладки и профилирования и многими другими функциями.

    PyCharm предоставляет все, что должна предоставлять хорошая IDE: завершение кода, инспекция кода, подсветка и исправление ошибок, отладка, система контроля версий и рефакторинг кода. Все эти функции поставляются из коробки.

  • Цена: Бесплатно

  • Платформы: Mac, Windows, Linux

  • Сайт: https://www.jetbrains.com/pycharm/

Надеюсь, этот обзор поможет вам выбрать наиболее подходящий вариант и помнить, что инструмент - это всего лишь инструмент ;)

Желаю вам удачи с вашими проектами!