Pull to refresh

Comments 8

Когда я интересовался последний раз свифтом на серверной стороне, насколько я помню, всё было очень плохо никак. Что-то изменилось? Я могу поставить его на убунту и кодить в удобной IDE под GNU/Linux? Если да, то расскажите, как — с удовольствием в свободное время дооценю ваш недооценённый ЯП.

Хорошо, что вы заинтересовались!


Насколько знаю, со свифтом на GNU/Linux все просто замечательно. В этом и смысл. Можно скачать прямо бинарники для GNU/Linux, но также можно собрать из исходников. Сборка из исходников не только повышает безопасность, гарантируя что бинарник не пропатчен, но и повышает общий уровень вашей грамотности в используемом стеке технологий.


Кроме того, это лицензия Apache License 2.0. Это, конечно, не AGPL, но уже очень хорошо. И APL2 совместима с GPL3 (но не с GPL2), то есть можно мешать исходники между собой при создании деривативов.


В качестве IDE советую попробовать Visual Studio Code c плагином vscode-swift. У обеих лицензия MIT, которая хоть и является свободной и совместимой с GPL в одну сторону, не является копилефтной лицензией, а значит дает проприетарщикам возможность давления на вашу свободу. Подробней проблема описана на специальной странице на сайте GNU. К сожалению, хорошей IDE с лицензией GPL3 для Swift нет, поэтому придется довольствоваться VSCode.


В целом, разрабатывая свободный софт под лицензией GPL на языке Swift под операционную систему GNU с ядром Linux вы продвигаете вперед сообщество свободного программного обеспечения, и человечество в целом.

Спасибо за столь развёрнутый ответ. Я сначала было обрадовался тому, что Вы так всё расписали, но начал читать, а в тексте — лицензии, лицензии, лицензии. Вы сёрьзно, да? По существу, конечно, тоже ответили, за это — отдельное спасибо.

Пока Вы отвечали, я сам пробежался по Интернету. И что я обнаружил, меня не очень обрадовало. Да, на сайте swift.org есть бинарники, и они под мою любимую убунту… но больше ни под что их нет (кроме MacOS).

Странно говорить, что язык недооценён, когда на оффсайте есть бинарники под один дистрибутив. А как же, например, CentOS? Тоже популярный серверный дистриб. Я уже не говорю про остальные, и про FreeBSD, и про Windows.

Кроме того, как я понял, я не могу набрать sudo apt install swift и получить поддержку этого языка на своей машине. И даже в PPA его нет. Или всё таки я ошибаюсь? Если не сложно, поправьте меня на этот счёт.

На сайте Digital Ocean я нашёл инструкцию установки именно бинарников. В конце статьи я нашёл ссылку на книгу, как оказалось, бесплатную по последней версии языка. Я обрадовался. Перешёл по ссылке и попал на сайт iTunes, где мне сообщили, что This book can be downloaded and read in Apple Books on your Mac or iOS device. Вы шутите? Для того, чтобы изучить язык и использовать его на сторонней ОС, я должен купить айпад, чтобы прочитать книгу?

Конечно, есть документация на том же swift.org, можно и ручками поставить бинарники, можно извернуться и что-то напрограммировать под Visual Studio Code… но неужели с таким подходом язык может стать популярным где-то за пределами мира Apple? Учитывая, что ему уже четыре года и он перешагнул порог четвёрной мажорной версии, а всё так, я не побоюсь сказать этого слова, плохо.
Для того, чтобы изучить язык и использовать его на сторонней ОС, я должен купить айпад, чтобы прочитать книгу?

Нет, не нужно, вот она же в виде сайта docs.swift.org/swift-book, а то что об этом не упомянуто в той инструкции вопрос к ее составителям.
Хотя на самом деле я тоже отношусь к свифту на сервере весьма скептически, по крайней мере пока. Ну и заголовок у статьи, конечно, желтый, зашел посмотреть как оно там реально на сервере со Свифтом, а по факту почти все что по этой теме есть в статье уже приведено в самом заголовке

Да, я совершенно серьезно. Это не просто лицензии — это гарантии свободности используемого вами ПО. Рекомендовать несвободный язык было бы, как бы правильней выразиться, аморально? Например, нельзя посоветовать несвободный .NET Framework для использования С#, но можно посоветовать свободный .NET Core.


Подробное описание причин лучше прочитать полностью на сайте GNU, оно составлено Ричардом Столлманом лично и является хорошим введением в вопрос.


Программное обеспечение зачастую распространяется в виде исходных кодов. Хотя эта форма выпуска может быть неприемлема, например, для детей, это вполне нормальная форма дистрибуции для взрослого человека, и тем более разработчика. Умение установить ПО, распространяемое в виде исходных кодов — один из ключевых столпов компьютерной грамотности. Более того, именно исходные коды под правильной лицензией (например, GPL3) и являются основным носителем свободности ПО.


Так что, не совсем понятно, кого и за что вы собрались винить. Вот глядите, есть мантейнер пакета для операционной системы Ubuntu GNU/Linux. Он потратил свое личное время на то, чтобы облегчить вам установку ПО. Время, которое он иначе мог бы потратить на общение с женой или ребенком. Если бы мантейнер пакета под Убунту собрал бы его неправильно, можно было бы предъявить ему некие неформальные претензии, да и то со скидкой, что вряд ли это сделано намеренно.


Но для вашей ОС CentOS GNU/Linux нет пакета. Нет того человека, который бы потратил личное время и собрал бы его. Ваши претензии к несуществующему человеку?


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


То, что Apple распространяет книгу с помощью ПО, не являющегося свободным — безусловно, позор. Но этого вполне можно было ждать от маркетологов коммерческой компании, это бич нашего общества.


Я всячески не рекомендую устанавливать подобное ПО, чтобы качать эту книгу. Вместо этого вы можете воспользоваться поиском по интернету, чтобы найти что-нибудь более доступное, что тоже позволит вам разобраться в Swift. Например, вот здесь опубликована отличная подборка материалов: Awesome Swift. И опубликована надо сказать, под лицензией Creative Commons Zero v1.0 Universal — одной из наиболее пермиссивных лицензий, совместимых с GPL (пользоваться коей я все равно не советую по причине, описанной в предыдущем сообщении).


Популярность — продажная девка. Не все самые лучшие языки являются одновременно самыми популярными. Одна из лучших IDE в мире, Emacs, написана на Emacs Lisp и С, и непохоже, чтобы ELisp находился на верху индекса Tiobe. Делает ли это Elisp плохим языком?


В любом случае, я старался помочь вам советом относительно выбора и использования языка, а не разводить пустопорожнюю полемику.


В завершение хочу предупредить, что операционная система CentOS GNU/Linux опасна, так как может содержать несвободные компоненты. Советую использовать только дистрибутивы, описанные на сайте FSF. Моя персональная рекомендация — Parabola GNU/Linux-libre, это дистрибутив, основанный на Arch Linux.

Спасибо огромное за ещё один столь развёрнутый ответ. Я бы вам с радостью налепил плюсов, но у меня, как мне сообщает этот сайт почему-то не «полноправный аккаунт», так что извините :) Касательно пакетов для сторонних ОС — я считаю, этим должна заниматься сама Apple, если ей, конечно, нужно, чтобы язык таки дооценили.

И, я так понимаю, вы всё же гораздо лучше разбираетесь в лицензировании и вот этом всяком, потому, не могли бы вы ответить на такой вопрос? Если я, простой разработчик из богом забытой деревни, возьму исходники Swift, соберу пакеты под свою любимую ОС, выложу в PPA или ещё куда-нибудь — мне за это ничего не будет?

Vapor — красота, но дистрибутивов под последнюю версию убунты ещё не было, но всё равно было клёво разрабатывать с комфортом на маке и деплоить это всё на DO/ubuntu.

Sign up to leave a comment.