Редакторы кода для Python
Уточним, что существуют два вида ПО для программирования:
- Собственно редакторы кода (editors)
- IDE (Integrated development environment) - интегрированная среда обработки
Допустим у нас есть простое "окошко" для ввода текста, который может определять синтаксические роли слов и подсвечивать их разными цветами. Как правило, такие программы легковесны и просты для освоения. Они очень удобны для работы с большими файлами. Также текстовые редакторы могут считаться одним из "строительных блоков" сред разработки.
Что касается IDE, то это многофункциональный программный комплекс, который, как следует из его названия, должны обеспечивать некоторое рабочее окружение:
- собственно сам текстовый редактор;
- интерпретаторы / компиляторы соответствующих языков. При этом они должны быть встроены в саму среду, а не требовать их установки отдельно;
- сборщики - средства, которые "пробегутся" по всем задействованным файлам: написанными нами, встроенными библиотеками или теми библиотеками, команду на скачивание которой нужно адресовать пакетному менеджеру;
- средства отладки - в простейшем случае подразумевается средство, которое проследит программные вызовы (трассировка), выведет список переменных и на каждом этапе будет следить за их состоянием.
Если в находящемся перед нами, пусть даже являющимся достаточно функциональным, редакторе нет хотя бы одного из этих компонентов, то это будет означать, что мы имеем дело ИМЕННО с редактором. Среда должна обеспечивать "безвылазную" разработку, а эти компоненты основа для этого.
Существуют универсальные среды, к которых работа может вестись для разных стеков разработки, но данный тип слишком громоздок. Как правило, подразумевается, что хорошая IDE поддержит стек технологий, которые используются в какой-то конкретной области. Речь идёт как о языках так и о надстройках. Например это могут быть специфические препроцессоры, сборщики, пакетные менеджеры. К тому же современная IDE должна работать с системами контроля версий, (возможно) принятыми в сообществе облачными хранилищами, отслеживать таски (так называемые TODO-комментарии) и генерировать документацию (синтаксис Javadoc для раздичных языков), хранить сниппеты, генерировать различные тестовые данные ("Рыба текст", случайные данные, генератор картинок (SVG), да даже базы данных, JSON и т.п).
К тому же сейчас что редакторы, что IDE располагают можными средствами декоративного оформления редактора кода, меню, фона и других элементов окна. Делается это не только для удовлетворения потребности в прекрасном, но и для сохранения здоровья глаз: каждый р\может выставить наиболее приемлемые и привычные для него настройки.
Список IDE
IDLE
Вопрос на засыпку: почему язык Python называется так как он называется? А назван в честь комик-группы "Монти Пайтон", так и IDLE (IDE) назвали в честь одного из участников этой группы — Эрика Айдла.
Данная среда предоставляется вместе с самим интерпретатором. В ОС Ubuntu устновлен Python 3, но не установлен IDLE. В Windows всё устанавливается вместе с языком.
Это самая простая IDE, насколько это только возможно: в ней нет средств управления внешним видом, интеграцией с СКВ, невозможно поставить какие-нибудь плагины. Однако в ней действительно есть действительно необходимые инструменты: редактор, терминал, дебаггер, просмотр стека. Если нам не нужны никакие изыски, но необходимо поработать с кодом в графическом режиме, то данная программа - это палочка выручалочка от создателей языка: каких-то 300 KB весит эта утилитка, но при должном опыте программирования вполне способна заменять программные комплексы.
PyCharm
Эта IDE - классика жанра для питонистов. Стоит уточнить, что данная IDE поставляется в двух вариантах: Community и Professional. Фирма JetBrains со всем вниманием относится к разработчикам различных мастей: программисты на C++ и Java, мобильные разработчики, веб-разработчики, разработчики баз данных, ну и как в нашем случае - питонисты.
Если вы предполагаете серьёзно заниматься веб-разработкой на Python, то стоит озаботиться приобретением профессиональной версии, так как именно она поддерживает разработку фронтенда на JavaScript, вёрстку (HTML/CSS). Он позволяет удобно работать во фреймворках Django, Flask, Google App Engine, Pyramid, web2py. Можно работать с базами данных, удалёнными серверами, а также возможность создания UML-диаграмм для моделирования систем. Имеется парсер JSON и YAML. Что это значит? Что мы вполне в состоянии разрабатывать полноценные сайты (фронтенд, бэкэнд, БД) на Python и соответствующих языках, применять полноценный объектный подход.
А что в версии Community? Самый минимум. А именно: интегрирован Python-интерпретатор, прикручены отладчик, рефактор, инспекторы и система контроля версий. Что вобщем-то более чем достаточно как для начального знакомства с языком и средними проектами.
Thonny
Как говорит man
thonny - Python IDE for beginners
То есть мы имеем IDE с той же философией, что и IDLE. Однако функционал более расширенный: есть комплект плагинов, более затейливый UI, который можно настроить под себя. Имеется масса просмотрщиков: стека программных вызовов, памяти, переменных. У нас в распоряжении есть даже ассистент, в котором мы можем увидеть результат анализа кода и ссылки на раздел помощи.
Spyder
Это крайне специфический редактор созданный для нужд машинного обучения. Он включает пакетный менеджер Anaconda, который используется в анализе данных и машинном обучении. Это крайне специфический инструмент, но знать о его существовании будет полезно. IDE не для новичков, да и сама система, в которой он работает нужна для достаточно серьёзного научного подхода и знания математики.
Список текстовых редакторов
Vim
Vim - это легендарный текстовый редактор. Наследник древнего редактора Vi (от англ. visiual и Vi Improved). Если его толком освоить, то, процесс редактирования и создания тектстовых файлов не будет вызывать никаких технических трудностей, потому что он очень быстрый. Если мы предполагаем работу с ним в терминале, то можно забыть про всевозможные лаги связанные с GUI - если ему "скормить" файл размером гигабайт - он бодро откроет этот гигабайт, два - два.
На возражения типа "в нём нет ..." можно ответить только одно - "ставьте плагины, редактируйте ~/.vimrc
, изучайте дополнительные утилиты терминала (tmux, например)". Его вполне можно по функциональным возможностям сделать полноценной IDE и работать из терминала. Конечно в производительности он проиграет, но даже в таком виде будет на голову быстрее практически любого другого редактора или IDE.
Для ознакомления и уверенного повседневного использования существует очень старое пособие, но актуальное до сих пор - "Просто о Vim". Пособие очень кототкое - всего 72 страницы со вступлением, содержанием и титульным листом.
Чтобы изучить Vim глубже, советую прочитать книгу "Изучаем редакторы Vi и Vim" авторов Арнольда Робинса, Эльберта Ханна и Линды Лэмб. В ней рассматриваются вопросы того, как перемещать курсор в различных режимах, как производить поиск, глобальную замену, использовать буфер, работать в многооконном режиме, разработаывать собственные скрипты для автоматизации работы, приспосабливать его для работы с разными языками программирования и много чего ещё. Многое из этого рассматривается в приведённой выше методичке, но если освоил её, то эта книга станет шагом к более профессиональному использованию Vim.
Также есть книга "Практическое использование Vim. Редактируйте текст со скоростью мысли" Дрю Нейла. Книга покороче предыдущей и построена как набор упражнений для отработки обсуждаемых функций редактора. Вполне подойдёт для заключительного закрепления и получения спортивного разряда :-)
Atom
Этот редактор умер вследствие того, что GitHub перестал его поддерживать с июня 2022 года. Однако упомянуть его стоит, так как ранее он был более подходящим редактором для Python, чем его собрат по фреймворку Electron Visual Studio Code. Проект разрабатывался с 2015 года.
Visual Studio Code
Всякий раз, когда речь заходит о VS Code язык не поворачивается назвать его просто редактором, но это на самом деле так. Философия VS Code состоит в высокой модульности. Благодаря плагинам, в нём можно реализовать любой набор возможностей. Однако вследствие того, что фактически Electron на котором написан этот инструмент представляет из себя веб-приложение с бэкэндом на Node.js и рендерингом на движке Chromium, то мы имеем Google Chrome, в котором каждое открытое окно - это как вкладка браузера, которая отъедает под сотню мегабайт оперативной памяти и каждый плагин точно также отъедает часть оперативки...
Но он удобный... Если на машине установлено достаточно памяти, то тормоза и зависания практически будут незаметны. Единственное что, в начале работы нужно дать ему возможность запустить все плагины.
Для Python в последнее время появилось достаточно плагинов: линтеры PEP8, IntelliSense (дополнение кода), отладчики, сниппеты, генераторы документации, тестеры
Sublime Text
Это один из самых распространённых текстовых редакторов. По сравнению с VS Code он достаточно легковесный. Мне сложно что-то вразумительное о нём сказать, так как я им особо не пользовался, но первое знакомство оставило достаточно приятное ощущение. Будем постепенно его осваивать.
Другие решения
Конечно есть Emacs, Eclipse, Geany, Kate, Nodepad++