IDE на основе Atom для Юлии

Если вы меньше живете под камнем или вообще не программируете компьютеры, вы, скорее всего, слышали об Atom. Atom - это простой, расширяемый и красивый текстовый редактор с открытым исходным кодом, доступный в Linux, Windows и MacOS. Следует отметить, что Atom сам по себе не является интегрированной средой разработки, а просто текстовым редактором.

Для меня Atom - отличный текстовый редактор, потому что он современный, хорошо выглядит, и его легко расширять и настраивать. Atom поставляется со всеми инструментами, необходимыми для применения тем, расширений и подсветки синтаксиса для альтернативных языков. Все они встроены в их пользовательский интерфейс и обслуживаются из репозиториев расширений, разработанных бесплатными разработчиками с открытым исходным кодом. С точки зрения методологии это очень похоже на способ распространения Linux, так что он действительно мне подходит. Atom обладает широкими возможностями наряду с окном терминала для всех языков без каких-либо расширений, но часто установка расширений дает подсветку синтаксиса. Однако в случае с Juno нам предлагается гораздо больше, чем просто подсветка синтаксиса.

Julia - это многопарадигмальный статистический язык высокого уровня. Julia также имеет открытый исходный код и обладает множеством преимуществ по сравнению с другими статистическими языками, такими как R. Хотя Julia по большей части функциональна, как и Lisp, ее можно использовать для общих целей. Julia - относительно быстрый язык с таким высокоуровневым синтаксисом. Скорость обычно немного ниже, но в некоторых случаях может даже превзойти C. Конечно, это очень редкий сценарий, и это наблюдение имеет много переменных, поскольку оно было протестировано в ядре Jupyter с использованием магических таймеров IPython, но даже близко к скорость C дает Julia преимущество перед R и Python. Кроме того, у Julia отличная точность с плавающей запятой, что также ставит Julia впереди Scala.

Джулия может быть вашим языком «больших данных»

Последний кусок головоломки Atom + Julia - это Юнона. Juno превращает Atom, простой текстовый редактор, в полнофункциональную среду IDE для Julia, и это действительно потрясающе! В Juno есть множество функций, которые делают Julia самым приятным языком, который я пишу внутри Atom.

REPL

В Juno есть кое-что, чего нет у многих других расширений:

REPL

Вы можете получить доступ к циклу печати Read Evaluate Print Loop (REPL) Джулии через Atom, что делает его удобным как для включения, так и для компиляции вашей программы. С добавлением Джулии GTK Джулия становится суперсильной даже для регулярной разработки программного обеспечения.

Удаленный процесс

Вы можете не только обрабатывать Julia через свой обычный REPL, но также можете запускать удаленные процессы, которые взаимодействуют с Julia. Это потрясающая функция, потому что она превращает Atom for Julia в современную среду IDE, а не просто в простую среду IDE с окном вывода.

Форматирование

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

Беговые блоки

Еще одна особенность, которая мне очень нравится в Juno, - это возможность запускать блоки Julia. Это может сделать процесс взаимодействия очень интерактивным в сочетании с REPL, делая процесс программирования Julia более похожим на работу в записной книжке.

Настройки

Настройки Juno на удивление инклюзивны. В меню настроек вы можете настроить пути, количество потоков и режим загрузки Julia. Режим загрузки Julia - это концепция, при которой вы можете настроить в своей среде IDE отдельную среду выполнения в зависимости от того, работаете ли вы с удаленной Julia, встроенным или внешним терминалом, и даже в режиме цикла, чтобы все три процесса Julia всегда работали. чтобы ускорить работу в среде IDE. Еще одна интересная особенность - уровень оптимизации, хотя оптимизация пишется

оптимизация

в настройках.

Оптимизация позволяет вам выбирать, постоянно или временно, насколько быстрой вы хотите, чтобы была компиляция, и насколько быстро вы хотите, чтобы ваш код был. Это, конечно, тоже очень полезно, хотя я не часто им пользуюсь, так как обычно вообще не сталкиваюсь с проблемами производительности, когда работаю в Julia. Наихудшая часть работы Джулии - это перекомпиляция устаревшего файла кеша, которая:

Это не проблема при развертывании.

Хотя это и делает время загрузки сервера немного медленным с Genie, обычно «немного медленнее» составляет всего около минуты.

Открыть пакет

Juno также позволяет вам мгновенно открывать любой из ваших пакетов, установленных Pkg, внутри нового окна, что упрощает настройку ваших пакетов по своему вкусу. Единственное, что я бы изменил в этой конкретной функции, - это упростить управление виртуальными средами без REPL, и, вероятно, в отношении этой функции. Но это не значит, что в первую очередь сложно активировать виртуальную среду из REPL. Для активации среды с помощью Pkg требуется всего 3 команды, включая] и инициализацию Julia.

В качестве альтернативы вы также можете просто сделать

using Pkg;Pkg.activate("dev")

внутри REPL в нижней части Atom.

Браузер документации

Еще одна интересная функция, которая поставляется с Juno, - это возможность быстрого поиска документации из пользовательского интерфейса Atom. В этом, конечно, нет ничего нового, поскольку Джулия действительно отлично справляется с документацией в целом. Для большинства пакетов использование функции? () Распечатает документацию для указанного пакета, поэтому переход на веб-сайт документации станет делом для другого языка.

Заключение

Я очень люблю и ценю всю тяжелую работу, проделанную Juno для Atom. Я использую Atom в качестве текстового редактора изо дня в день вместе с Gedit и Nano, и иметь такое большое внимание к моему любимому языку в текстовом редакторе, который я на самом деле использую, действительно здорово. Я также очень рад, что они решили поддержать Julia на Atom, а не создавать свою собственную IDE. Для чего потребовалось бы не только больше ресурсов, но и новый опыт обучения горячим клавишам и настройкам, новый пользовательский интерфейс и дополнительное дисковое пространство переработанного приложения для редактирования текста. В целом, я очень доволен тем, как получилась Juno, и особенно рад тому, насколько легко она упрощает разработку Julia!