LINUX.ORG.RU

Go vs. Swift

 , , ,


0

6

На ЛОРе поклонников Go - хоть ж..ой жуй (через одного). А вот о Swift'е, насколько заметил, отзываются не сильно положительно. Есть пользователи последнего? Чем примечателен? Говорят, на Go похож?

Быстрой уткаУткаХодьбой выяснил, что:

  • Как и Go, Swift имеет децентрализованный менеджер пакетов. Правильно понимаю, что авторы ни одного другого ЯП до такого не додумались, заставляя в 2017 складывать все яйца в одну корзину?
  • У разработчиков Swift не так выражен NIH, заставляющий Go Core Team всё писать самостоятельно и с нуля. Поэтому, имеется, например, несколько реализаций сервера (в Go есть стандартный и неправильный).
  • Swift на первый взгляд посвободней: великодушный диктатор не указывает как форматировать свой код. По соответствующему запросу находится Styleguide каких-то хренов с горы и Github'а, который сильно походит на Styleguide Go.
  • Swift побогаче на синтаксис. Есть generics, например.
  • Swift использует LLVM и пилит WebAssembly backend, возможно уже можно компилировать. Группа из лицемерной корпорации, работающая над проектом Ванадиум тоже запилила Go frontend для LLVM (если конечно это они запилили, а не просто используют) и судя по слайдам, наверное, можно получить WASM, но не уверен (после 5 часов компиляции необходимого C++ кода, которая всё это время выжирала всю RAM, получил ошибку, решил на этом пока закончить).

Что плохого в Swift, о чём я не знаю? На первый взгляд одни витамины же. Ну кроме пафоса какого-то клоуна, который его презентует?

Что можно сказать. Язык одной платформы _ненужен_.

anonymous ()
Ответ на: комментарий от anonymous

Так не одной же. Кроме Windows всё есть. Утка говорит, что даже под Android можно. Go тоже можно, но там сопутствующие библиотеки никто не разбежался пилить.

MadDeer ()

Что плохого в Swift, о чём я не знаю?

В завязанном на платформе (айось) ничего. Из кроссплатформенного, например, веб-фреймворки все поголовно кривые, с тучей багов и без фич типа миграций, ORM так же очень простой. Для обилия библиотек и фреймворков нужно время.

Deleted ()
Последнее исправление: Deleted (всего исправлений: 1)

Как и Go, Swift имеет децентрализованный менеджер пакетов. Правильно понимаю, что авторы ни одного другого ЯП до такого не додумались, заставляя в 2017 складывать все яйца в одну корзину?

Ты понимаешь неправильно. Смешно, но даже NPM не является централизованным.

tailgunner ★★★★★ ()
Ответ на: комментарий от tailgunner

даже NPM не является централизованным

В чём это проявляется?

MadDeer ()
Ответ на: комментарий от Deleted

веб-фреймворки все поголовно кривые, с тучей багов и без фич типа миграций

Без фич типа миграций и в Go. Там это «не нужно»; вообще всё, чего нет в Go объявлено не нужным. На счёт фреймворков на Swift, вот IBM какой-то пилит. Этот то не должен быть кривым.

MadDeer ()
Ответ на: комментарий от MadDeer

Без фич типа миграций и в Go. Там это «не нужно»; вообще всё, чего нет в Go объявлено не нужным.

Что за бред? Уверен, что есть ORM с миграциями. Фреймворк IBM не щупал.

Deleted ()

Я как-то хотел потыкать в swift, но он очень бедный в плане библиотек. А на Go есть библиотеки практически на любой вкус. Или в чем заключается твой вопрос?

dnb ★★ ()
Ответ на: комментарий от MadDeer

В том, что ты можешь сделать зеркало центрального репозитория и/или локальный.

tailgunner ★★★★★ ()

Написал калькулятор на swift 1.0 2 года назад по их туториалу. После этого писать на нем срочно расхотелось. Столько сахара, что попа слипается. Если злоупотреблять, оно превращается в нечитабельное гогно потипу перла. Го не пробовал и не хочу.

unt1tled ★★★★ ()
Ответ на: комментарий от Deleted

Подобия ORM есть, но не в полной мере ORM. И их использование - не Ъ way.

anonymous ()

Swift больше похож на Rust, чем на Go.

Deleted ()

Если сравнивать именно с Go - это тогда да. Разве что либ поменьше.

Только я бы не стал писать всё равно ни на одном из них до последнего, хипстовато это всё.

Bfgeshka ★★★★★ ()

Я хз где обитают фанаты свифта, но я их нигде особо не замечал. Видимо на чисто маковских форумах сидят.

Тем не менее прог/репозиториев на swift довольно много и они имеют приличную популярность.

PS: Go не нужен.

RazrFalcon ★★★★★ ()
Ответ на: комментарий от imbaaa

Сообщество у него странное. Молятся на него как на священную корову. Еще и постоянно в темы про rust залазят, хотя сравнивать-то нечего.

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

RazrFalcon ★★★★★ ()

Эскобара уже постили?

Pavval ★★★★★ ()
Ответ на: комментарий от RazrFalcon

Видимо на чисто маковских форумах сидят.

Подскажи чисто маковские форумы для разработчиков. Нужен umtx только для MacOs ядра. Да и вообще мак-специфичные вещи при кроссплатформенной разработке где-то нужно узнавать...

anonymous ()

Я не очень понимаю смысл таких тем - обсуждать язык. Бери. Пиши. Всё узнаешь сам. Лично я пишу под мак и иос на свифте и куча разработчиков тоже. Используют биндинги к Objective-C и C либам. Пока что многое нужно реализовывать самому, всё не так просто как в Qt писать на си++ формочки, но и не сказать, что жопа с либами - любые си либы да и тупо мелкий код обёртываются на раз-два, выдёргивается что нужно, зачастую оборачивается objective-c кодом. А про веб фреймворки на компилируемых языках - это ад и израиль, все эти перекомпиляции, нахрен нужно.

По поводу сахара в swift - дело вкуса, слишком нежные разрабы, видимо, уж в сто раз легче и приятней писать, чем на Си++. На месте ТС я бы ещё подождал бы годик, к версии 4-ой apple swift будет конфеткой, сейчас ничего толкового в стандартной либе нет для кросс платформы с сетью и многопоточностью. А то я знаю, многие привыкли к жабо кодингу в IDE, которая всё подсказывает, показывает в режиме реального времени значения переменных и прочему; к куче библиотек на каждый чих, этим сейчас и npm грешит, где пользователи тянут либы даже для работы с массивами и чуть ли не сложения чисел, так вот...в swift пока всего этого нет (для Linux), язык только начал жизнь, но appCode уже давно есть для комфорта и шелковых волос, не пробовал его под Linux.

menangen ★★★★★ ()

У Go больше поклонников потому, что он простой и легко начать кодить/установить к себе, больше готовых либ, никто сейчас не пишет ничего с нуля, обычно понапихают 50 либ на гоу и релизятся.

menangen ★★★★★ ()

Ещё у Go целевая аудитория - скриптеры, кому нравится Python, но не нравится его скорость, а также всякие примитивные сервайсы, где 5 функций обёрнуты rest api.

Ясен пень, что у Swift другая ЦА: разрабы под мобильные девайсы и мак компы, которым нужно максимально удобно и в короткие сроки вникнуть в язык, перевести существующие objective-c проекты на swift для более простой разработки и более частых релизов + поддержка платформ в родной среде: ios tvos watchOS MacOS, чтобы один код и везде работал, быстро и легко отлаживался. Всё.

menangen ★★★★★ ()

Что вы повторяете как попугаи про яйца в одну корзину? Через децентрализованный менеджер вам прилетит любой троян в любой момент, причем только вам, и не разберетесь потом. Только полная централизация как с пакетными системами дистрибутивов. И интеграция с ними, кстати.

anonymous ()

Что плохого в Swift, о чём я не знаю?

ИТ подошел к моменту, когда нужен паровой двигатель, а они за место этого катафоты на телегу лепят и к лошади спойлер на задницу веревками привязывают. Вот в этом вся суть этих Swift и Go.

foror ★★★★ ()
Ответ на: комментарий от foror

А если выражаться техническим языком? Swift вполне современен.

tailgunner ★★★★★ ()
Ответ на: комментарий от tailgunner

Если технически я склоняюсь к тому, что нужно делать IDE и ЯП, которые будут пронизаны друг с другом. IDE должна выполнять смарт анализ кода и фактически писать код за программиста. Но это так - в общих чертах, на первую прикидку, тут нужен ресёрч...

foror ★★★★ ()
Ответ на: комментарий от anonymous

И их использование - не Ъ way.

Это кем ещё решено?

Deleted ()
Ответ на: комментарий от foror

Твоя суть — зайти в тему и насрать у всех на виду на почве своей детской ненависти к языкам программирования.

Deleted ()
Ответ на: комментарий от foror

Куча народу в виме кодит, а вы про какое-то IDE. Ну и практика показывает, что языки, завязанные на IDE так и не взлетели. Те же delphi и smalltalk.

RazrFalcon ★★★★★ ()
Ответ на: комментарий от Miguel

Дебилы придираются ко всякой ерунде, не имеющей к языку никакого отношения.

anonymous ()

Не приходилось писать ни на одном из них, но мнение имею. Бери Swift, так как там есть дженерики в отличие от Go. Языки без дженериков не нужны.

ox55ff ★★★ ()
Ответ на: комментарий от foror

что нужно делать IDE и ЯП, которые будут пронизаны друг с другом

Уже сделали лет 40 назад подобное и закопали. Особо упоротые даже визуальное программирование пытались изобретать, не изобрелось.

Freyr69 ★★★ ()
Ответ на: комментарий от zamazan4ik

GC это не всегда плохо.

GC это почти всегда хорошо. Потому практически во всех современных языках они есть, ну или хотя бы подсчет ссылок есть.

Freyr69 ★★★ ()
Ответ на: комментарий от zamazan4ik

ну только не подходит для всяких сфер, куда C++ пихают

До риал тайма, где нужна предсказуемость. Да, там пока ГЦ нет. Обычный прикладной софт без гц писать — это слишком, по-моему.

Freyr69 ★★★ ()
Ответ на: комментарий от Freyr69

у нас на конторе мы пишем прикладной софт на C++. На шарпах там только GUI.

Так как я гоняю статическим анализом всё, то багов в принципе немного и всё глупое ловится до попадания в CVS. Скорость радует. Почему C++? Потому что там ещё и драйвер есть.

zamazan4ik ★★ ()
Ответ на: комментарий от zamazan4ik

Скорость радует.

При чем тут GC? Любой язык с вменяемым GC и компилятором даст аналогичную скорость: Go, OCaml. Даже хаскель те же трейдеры используют.

Freyr69 ★★★ ()
Ответ на: комментарий от Freyr69

При том, что нет непонятных проседаний за счёт GC. И когда это у Go стала скорость сравнима с C++? Не холивара ради, и истины для: тесты есть какие-нибудь более-менее серьёзные? Интересует скорость выполнения и потребление RAM.

zamazan4ik ★★ ()
Ответ на: комментарий от zamazan4ik

При том, что нет непонятных проседаний за счёт GC

Но есть непонятные проседания за счет malloc/free. Да и что такое проседание? Вон у OCaml паузы в пары миллисекунд в худших случаях. Это вообще заметно в прикладном софте?

И когда это у Go стала скорость сравнима с C++?

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

Freyr69 ★★★ ()
Ответ на: комментарий от I-Love-Microsoft

И как я без GC на Qt5 живу?

Страдаешь от фрагментации памяти и постоянных задержек free, очевидно же.

Freyr69 ★★★ ()
Ответ на: комментарий от Freyr69

Вон у OCaml паузы в пары миллисекунд в худших случаях.

Зависит от железа же. Ну и пара мс всё таки довольно много.

RazrFalcon ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.