Pull to refresh

Atom: новый редактор кода от Гитхаба

Reading time 3 min
Views 130K
Original author: GitHub Atom team
imageОт переводчика: вчера без официального объявления на Гитхабе были опубликованы несколько десятков репозиториев, содержимое которых свидетельствовало о том, что команда Гитхаба уже давно ведёт разработку нового текстового редактора для программистов и готова представить его публике. Несколькими часами позже заработал и официальный сайт редактора atom.io, на котором сейчас можно запросить инвайт на бета-тестирование, ознакомиться с документацией и плагинами к редактору. Эта статья — перевод двух первых постов из блога проекта Atom, посвящённых концепции и архитектуре редактора.

Представляем Atom


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

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

Мы считаем, что можем сделать лучше. Наша цель — бескомпромиссное сочетание удобства и настраиваемости: редактор, с которым может разобраться и школьник, только начавший изучать программирование, но в то же время и инструмент, который не будет ограничивать опытного хакера.

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

В ближайшие недели мы будем рассылать приглашения бета-тестерам, а уже сейчас мы опубликовали больше 80 библиотек и пакетов, которые используются в редакторе. Мы открыли многие API, которые нужны, чтобы писать мощные расширения, но, так как это бета-версия, в них ещё могут произойти изменения на основе обратной связи от вас. Мы будем стараться делать их как можно осторожнее, в то же время активно дорабатывая редактор.

Ждём от вас обратной связи, пакетов и патчей. Сделаем это вместе!

Ядро атома


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

Нативный веб

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

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

Коду JavaScript, работающему в каждом окне, доступны все API, которые доступны любому приложению Node.js. Такое гибридное решение создаёт уникальные возможности для разработки.

Так как вся работа происходит локально, нет никакой нужды заботиться о загрузке ресурсов, конкатенации скриптов и асинхронной подгрузке модулей. Если нужен какой-то код, достаточно лишь require в начале файла. Система модулей Node.js без проблем позволяет разбить систему на маленькие хорошо сфокусированные пакеты.

JavaScript вместе с C++

Взаимодействие с нативным кодом тоже очень просто. К примеру, мы написали обёртку вокруг движка регулярных выражений Oniguruma для поддержки совместимости с TextMate. В браузере нам пришлось бы разбираться с NaCl или Esprima. Интеграция с Node сильно упростила задачу.

Кроме API Node.js мы так же используем нативные API диалоговых окон браузера, главного и контекстных меню, управления размерами окна и так далее.

Веб-технологии: всё самое лучшее

Ещё один большой плюс работы над Atom состоял в том, что мы всегда гарантированно работали с последней версией Chromium. Это значит, что нас не беспокоили вопросы кросс-браузерной совместимости. Мы могли использовать все новшества веб-технологий уже сегодня.

Например, вёрстка рабочего пространства и панелей редактора использует flexbox. Это ещё не устоявшийся стандарт, но несмотря на то, что он менялся во время работы, мы были счастливы, что уже можем с ним работать.

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

Tags:
Hubs:
+66
Comments 57
Comments Comments 57

Articles