LINUX.ORG.RU

Почему Go это плохо, и он вам, на самом деле, не нужен.

 ,


7

15

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

Дело в том, что Go это, на самом деле, «решение» внутренних гугловских проблем. Но отнюдь не проблем горизонтального масштабирования серверного ПО, как многие почему-то думают. Он приспособлен специально для использования в гугле вот в каком контексте.

Гугл нанимает большое количество тупых студентов, только-только после вуза или ПТУ, и заставлять их писать хоть какой-то простой код. И делать минимум ошибок, при этом. Для этого Go сделан таким тупым и упрощенным. И выкинут в паблик он только для того, чтобы вероятность, что у такого студента, только пришедшего в гугл, было хоть какое-то знание Go, была выше нуля.

Но дело вот в чем. В гугле, на самом деле, над каждой командой гошников стоит тимлид, или целая группа, который/которая вот этим взаимозаменяемым роботам-гошникам расписывает всю систему, чуть ли не вплоть до состояния конечного автомата, до if-ов, и показывает куда и что писать. Поэтому же Go на корню режет всю креативность, поэтому там нет практически никаких средств абстракции, и поэтому он не дает делать вообще ничего сложного. Дабы программисты на нем вообще ничего лишнего не думали, а кодировали все чуть ли не побуквенно по указаниям умных людей.

Из гугла же идет маразматическая система управления зависимостями Го, которая заточена на монорепы.

Тут возникает вопрос - а почему этому тимлиду не дать в руки кодогенератор, вместо всей этой accidental complexity, возникающей из-за огромного количества строк кода, и из-за затрат на коммуникацию?

А тут надо понимать, как внутри устроены огромные корпорации типа гугла.

Их давно пожрал рак бюрократии. Там у менеджерских и околоменеджерских должностей один из главных критериев промоушнов, или вообще даже ассесмента(усидения на должности), это количество людей у тебя в подчинении. И количество говнокода в вакууме которая твоя команда написала. И вот все эти люди, сидящие на более-менее средне-высоких должностях, постоянно бодаются за эти промоушны и ассесменты. Это их главная и единственная цель. Поэтому, ни о какой эффективности тут речи не идет вообще от слова совсем. Тут главное - корпоративные игры, количество голов в твоем стаде и количество и размер высеров, которые это твое стадо произвело(причем буквально, важны SLOC).

Естественно, это все отражается на качестве продуктов, и это видно как по полному прекращению инноваций в гугле, так и по постоянно мелькающим и закрывающимся высерам этой компании - hangouts, duo, google plus, google wave, и прочее и прочее, можете еще вспомнить много чего.

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

Никакой мифической простоты в отладке и в понимании кода Go не приносит. Да и сложность программных систем растет совершенно не из-за понятности/непонятности какой-то отдельной взятой строчки кода или функции. Потому, что, во-первых, понятность это понятие субъективное, во-вторых потому, что, отдельно взятая фунцкия на 5 строк понятна любому опытному программисту, будь она написана хоть на Rust, хоть на Common Lisp.

Сложность программных систем возникает из-за их размера. И Go эту проблему значительно ухудшает. Человек не может удерживать в голове слишком много вещей, даже если каждая отдельная вещь - очень простая. Количество RAM в голове ограничено.

В случае если вы не хотите выкидывать кучу денег просто так, и скорее предпочли бы нанять немного, но более-менее опытных программистов, Go будет только вреден, потому что все вменяемые люди от него, на самом деле, плюются. Он реально отталкивает опытных людей, которые способны понять сложные требования и написать, и поддерживать, более-менее сложные системы уровнем хотя бы нескольких сервисов плюс БД и MQ.

★★
Ответ на: комментарий от tp_for_my_bunghole

Emacs это максимализм.

не может быть редактор с плагинами полновесной ide в современном смысле. это как бы и смешно обсуждать

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

за что проприетарные ide для лиспа деньги берут?

Деньги там, насколько я понимаю, берутся непосредственно за саму реализацию лиспа, иде идёт в довесок, как макось к макбуку. Но это не точно, потому что сам я ими не пользовался %)

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

Emacs это максимализм

Емаксимализм — четвёртое достоинство программиста!

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

лучше развейте мысль, почему лисперы не могут себе ide написать. а аргументы что мол «виноград кислый» уже 2.5тыщ лет назад считались сомнительными.

alysnix ★★★
()

Какое же убожество этот ваш Emacs, не поддерживает даже такую простую вещь как плавную прокрутку, я специально брал 270 гц монитор что бы текст плавно прокручивался, но это гениальное поделие не может в такие чудо технологии.

Есть пакеты разной степени работоспособности, и ничего адекватного из коробки.

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

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

плавную прокрутку

Вам работать иди текст плавно крутить? %) Для работы проще поиском или оглавлением пользоваться.

Nervous ★★★★★
()
Последнее исправление: Nervous (всего исправлений: 1)
Ответ на: комментарий от Nervous

Для работы он тоже не подходит, как я уже писал когда то, нету даже автоимпорта, хотя возможно no-such-file уже запилил, отпиши если что, интересно посмотреть на решение.

Текст крутить приходится часто, неприятно когда все дергается.

Абсолютно убогий редактор который не способен делать ничего полезного, а различные почтовики и плееры конечно же сливают нормальным альтернативам, которые делаются всем человечеством а не узким кругом людей, тут тоже самое что и «приложения KDE» vs «остальной мир», первыми пользоваться невозможно, из вторых можно выбрать бриллианты и терпимые варианты.

MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 1)
Ответ на: комментарий от ugoday

у вас реально сектантство какое-то. на плюсах есть множество всяких ide. на джаве тоже, на шарпе есть, на голом си есть. на чем только этих ide нет.

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

значит вы должны признать, что лишп вовсе не то, за кого вы его выдаете. вот и все.

alysnix ★★★
()
Последнее исправление: alysnix (всего исправлений: 1)
Ответ на: комментарий от tp_for_my_bunghole

В Emacs его нету, то что я увидел меня сначала даже рассмешило, но потом все же огорчило.

Это наверное самое лучшее https://github.com/io12/good-scroll.el

MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 1)
Ответ на: комментарий от alysnix

лишп вовсе не то, за кого вы его выдаете

А за что мы его выдаём? %)

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

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

Так вот, смотрю я потом на эти пакеты, и понимаю что это абсолютное убожество которое часто и 10% от того что умеют нормальные инструменты не может.

Чем кстати восхищены емаксеры в последнем релизе своей ОС? tree-sitter который написан вовсе не для emacs, и вовсе не на elisp. lsp который написан вовсе не для emacs, и вовсе не на elisp, а на elisp ничего похожего на популярные lsp-серверы за все время написано не было, а я напомню что lsp это тоже убожество, которое хоть и лучше emacs, но не дотягивает до того что есть в нормальных IDE типа IDEA, хотя конечно для некоторых языков/инструментов есть исключения, например для бурно развивающегося Vue.

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

Ну что же ты сразу про lsp, получается emacs нужен только как тонкий клиент к серверу на нормальном языке?

Я еще добавлю что недостаточно просто иметь один lsp-клиент, они из за убогости протокола должны быть индивидуальными для каждого сервера, что бы использовать его расширения и прочее.

Что за недоязычок?

Вкуснейший из вкуснейших - PHP

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

получается emacs нужен только как тонкий клиент к серверу на нормальном языке?

С недоязычками по-другому никак. Без костылей там ни шагу не сделаешь — ну так пусть хотя бы с собой их приносят.

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

Smooth scrolling это функция GUI

Согласен, но Emacs OS видимо не может воспользоваться его достижениями, не зря же у них были проблемы с переездом на Wayland, ну у меня такая теория, не знаю в чем там проблема.

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

Можно узнать о хороших плагинах для Emacs на Elisp? Для крутейших язычков, давай отбросим недоязычки с их LSP.

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

Список конкретных претензий будет или нет?

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

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

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

Я еще добавлю что недостаточно просто иметь один lsp-клиент, они из за убогости протокола должны быть индивидуальными для каждого сервера, что бы использовать его расширения и прочее.

Расширения LSP как для Dart/Flutter в Emacs.

tp_for_my_bunghole
()
Последнее исправление: tp_for_my_bunghole (всего исправлений: 1)
Ответ на: комментарий от alysnix

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

Для тебя в этом треде слово statement было открытием которые ты всё равно проигнорировал. После этого пытаешься рассуждать про «IDE», и что Emacs это «редактор».

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

Любите notepad.exe? Я в нем кстати программирую иногда, там есть плавная прокрутка.

MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 1)
Ответ на: комментарий от tp_for_my_bunghole

клован, я в свое время из оригинального виртовского пятипроходного компилятора модула-2 делал четырехпроходный. и ты мне будешь рассказывать про стейтменты? я грамматику модулы-2 знаю наизусть. по modula-2 language report.

на тебе. можешь найти там стейтменты.

https://www.modula2.org/downloads/wirth-modula2/Wirth_Modula2.pdf

alysnix ★★★
()
Последнее исправление: alysnix (всего исправлений: 1)
Ответ на: комментарий от MOPKOBKA

Вкуснейший из вкуснейших - PHP

Ни один программист не использует это по своему выбору. Для PHP нужен коммерческий редактор который покупают те кто нанимает программистов на PHP. А для Javascript в Emacs даже свой кастомный парсер написали.

Будет в Emacs когда-то обновление инструментария парсер Semantic, например формата PEG когда базовый функционал IDE для языка возникает сам просто после написания грамматики PEG.

tp_for_my_bunghole
()
Последнее исправление: tp_for_my_bunghole (всего исправлений: 1)
Ответ на: комментарий от tp_for_my_bunghole

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

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

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

Rasmus Lerdorf использует Vim, который хуже чем Neovim который хуже чем Emacs.
На elisp есть два HTTP сервера, для каких то целей. Встроенные игры.

John Carmack для C++ использует Visual Studio ранней версии потому что всегда работал на Windows и других «IDE» для C++ никогда не было и нет.

tp_for_my_bunghole
()
Последнее исправление: tp_for_my_bunghole (всего исправлений: 1)
Ответ на: комментарий от alysnix

клован, я в свое время из оригинального виртовского пятипроходного компилятора модула-2 делал четырехпроходный. и ты мне будешь рассказывать про стейтменты? я грамматику модулы-2 знаю наизусть. по modula-2 language report.

Что написано на modula-2?

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

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

Про то что на Elisp пишутся программы я знаю, на LORе есть скриншот где на нем реализуется X11 программа без использования библиотек, весь протокол описывается на нем же.

Для C++ есть CLion. Сомневаюсь что Кармак использует раннюю версию, есть ли подтверждение? Он говорил что всегда любил лучшие инструменты, и до VS использовал Borland C++ (а что использовал под UNIX не помню).

MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 3)
Ответ на: комментарий от MOPKOBKA

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

Rasmus Lerdorf создатель PHP. Представлял публике PHP7 в 2017.

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

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

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

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

Создателю PHP достаточно Vim и во время презентации.
Ты пробуешь предъявлять претензии в этом к Emacs.

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

Кену Томпсону хватает ed, и что, уже удаляешь emacs?

Нет. Альтернатив Emacs нет. Есть идеи как сделать что-то лучше, но это всегда сводится к коду elisp.

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

Перестань оправдывать кложуру 😊. Лиспер сказал, что это не лишп, запах и вкус не тот. Как у фальшивых елочных игрушек.

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

кстати лавсан там намекнул на строго платные проприетарные IDE… откуда следует, что не все хотят страдать предлагаемым аскетизмом.

Они тоже на базе имакса 🤣

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

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

Лиспосодержащий продукт?

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

Скобкосодержащий продукт на основе натурального лиспа.

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

Алло, Common Lisp это и есть наиболее православный из лиспов. Я не знаю кем запущен мем, который ты вот упоминаешь, но он какой-то тупой. CL это результат стандартизации и унификации промышленно использовавшихся диалектов лиспа. CL это патриарх, альфа и омега лиспа вообще, на текущий момент.

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

Алло, Common Lisp это и есть наиболее православный из лиспов…

предлагаю также обьявить его халяльным и кошерным.

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

ты будешь смеяться, но в пресловутом Xerox PARC, где придумали эти ваши мышки и окошки, лисп то и использовался в основном. Да вобщем-то он и сейчас идеально подходит для формошлепся(смотри мой пример в либе, про WPF)

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

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

Тебе че надо от твоего воображаемого «IDE» вообще? Подозреваю что в SLIME все это есть.

lovesan ★★
() автор топика
Ограничение на отправку комментариев: