Почему Julia’s Pkg - лучший менеджер пакетов, который я когда-либо использовал.

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

Выглядит здорово, не правда ли?

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

Упак.

Pkg - это менеджер пакетов Джулии, и это не типичный менеджер пакетов вроде тех, что вы найдете в Python или R. На самом деле, по большей части я твердо уверен, что менеджер пакетов Джулии превосходит все менеджеры пакетов Linux, которые я когда-либо использовал. , включая Dnf, Apt, Man и, вероятно, самый надежный: Pacman. Есть несколько ключевых преимуществ, которые упрощают управление пакетами в Julia с помощью диспетчера пакетов Pkg, и вы, вероятно, скажете

"Он может это сделать?" в какой-то момент.

REPL и пакет

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

]

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

add "Lathe"

Однако, помимо REPL, Julia’s Pkg также поставляется в форме самого пакета Julia. Это полезно, потому что это означает, что вы можете не только добавлять пакеты из REPL, но и сам код. Это было особенно полезно, когда я создавал TopLoader, который представляет собой пакет Python, который позволяет вам создать виртуальную среду Pkg, а затем использовать пакеты, добавленные в эту среду.

Интеграция с Github

Менеджер пакетов Джулии полностью основан на Github, где пакеты помещаются в репозиторий Registrator.jl, с которым вы можете ознакомиться здесь.

Это не только делает невероятно простым проталкивание ваших пакетов Julia через Github, но также позволяет добавлять незарегистрированные пакеты с URL-адресами Git. Это позволяет всегда использовать неопубликованное программное обеспечение, которое обычно хранится в репозитории, совместимом с Git. Пакеты Джулии используют Github в качестве основы для разработки, и это определенно неплохая идея, поскольку даже не разработчики хорошо осведомлены о том, что разработка с открытым исходным кодом в основном вращается вокруг Github.

Виртуальные среды

В жизни есть много вопросов, на которые еще предстоит ответить, но извечный вопрос

«Кто сделал окружающую среду лучше всего?»

безусловно, уже был дан ответ. По сравнению с Pip, Package get, Quick Lisp и тысячами других менеджеров пакетов, которые также называются «Pkg», Julia’s Pkg снова затмевает конкурентов. С самого начала вы можете активировать виртуальную среду с помощью двух простых команд из REPL или метода из пакета.

using Pkg
Pkg.activate("venv")
julia> ]
pkg> activate "venv"

Это невероятно упрощает управление этими виртуальными средами и их использование. Трудно оправдать эту методологию активации виртуальных сред, не сравнивая ее с аналогичным вариантом одного из конкурентов Джулии, Python. Менеджер пакетов для Python - это Pip, и хотя он, конечно, не такой надежный, как Pkg, я думаю, что Pip определенно выдерживает испытание временем и выполняет свою работу на Python. Но чтобы активировать виртуальную среду для Pip, вам необходимо установить совершенно новый пакет, например, venv или что-то подобное (есть несколько разных вариантов).

sudo pip3 install virtualenv
python3 
python3 -m venv venvname

Это, конечно, не ужасно, но с другой стороны: конечно, не так надежно и просто, как эквивалент Julia. Повторюсь о моем пакете Python для загрузки модулей Julia в виртуальную среду, разработка этого пакета была невероятно простой, потому что я мог использовать метод activate ().

Заключение

Мне нравится Julia’s Pkg, и я снимаю шляпу перед разработчиками, которые приложили немало усилий, чтобы разработать его, только для того, чтобы сделать опыт программирования Julia намного лучше. Я думаю, что многим другим менеджерам пакетов есть чему поучиться у Pkg, потому что лично мне он всегда казался идеальным менеджером пакетов. Я рекомендую вам попробовать, так как это похоже на глоток свежего воздуха в мире, наполненном менеджерами пакетов CLI. В целом, я думаю, что Pkg.jl очень помогает Джулии и делает язык еще более приятным, чем его уже (трудно сделать) в использовании.