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.

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

у крестов рантайм, если покоцать, строк 100 на самих же крестах. там самый большой кусок - тот менеджер памяти

Вообще говоря - существенная часть runtime - это потоки.

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

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

Безапелляционность суждений наводит на мысли. Я так думаю - практики там близко к нулю. Но мне очень интересно вас послушать на тему как таки плюсы ущербны. Гавно, согласен. Только ведь лучше ничего пока не придумали…

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

Так ведь в C++ при использовании C-style cast последовательно перебираются следующие вызовы:

const_cast
static_cast
static_cast + const_cast
reinterpret_cast
reinterpret_cast + const_cast

т.е. как бы все уложены в один вызов (кроме dynamic_cast).

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

Вот этот вот плюсовое «static_cast<MyF_ingType*> сильно лучше (MyF_ingType*)» откровенно раздражает.

Может матчасть подучить и раздражать перестанет?

Речь ведь идет не о красоте и эстетичности а о том, что си-шный каст забивает вообще на все проверки, в отличии от.

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

Не использую сишные касты в плюсах только чтобы больных лишний раз не тревожить.

Наносить пользу можно по разному. В вашем случае хотя бы вот так.

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

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

Сочувственно жму руку.

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

т.е. как бы все уложены в один вызов (кроме dynamic_cast).

и что, что уложены? допустим я хочу делать только статик_каст, а не динамик и не тем более реинтерпрет.

тогда я буду писать статик_каст. почему я хочу именно использовать статик_каст? потому что я точно знаю, что в моем случае реализации есть корректное преобразование типа, которое не нужно динамически проверять. а если, при изменении кода, вдруг компилятор ругнется, что статик каст невозможен - значит где-то в типах есть проблема, и ее надо решать.

то есть смысл каста - не просто тупо преобразовать тип, а еще и давать возможность проверить - насколько это корректно, желательно на этапе компиляции.

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

Да ничего страшного. Для меня этот срач как отдохновение от текущих проблем :)

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

@Calm, я тебе скор до 50 накинул, чтоб ты здесь мог писать, а не профиль свой засирать. Единственно, просьба писать технические аргументы, а не флудить.

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

Допустим. Альтернативы какие? CL?

Можно CL, но я бы поставил на Clojure. Может она и не такая трушная и ортодоксы кривят на неё свои физии, но доступ ко всем библиотекам явы подкупает.

Где примеры, что код на нём легче отлаживается, расширяется, поддерживается

Я произнесу только одно слово: REPL. Если непонятно, то тут, извините, нужен персональный опыт. Без него слова будут только словами.

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

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

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

А я полностью согласен с тобой.

Это было по поводу твоего сообщения:

их в один каст как в си не уложишь

т.е. они почти все (кроме dynamic_cast) уложены в сишный синтаксис каста.

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

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

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

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

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

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

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

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

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

Формально Литва и Эстония, а также Румыния с Албанией, равно как и Белоруссия и вся территория России до Урала относятся к Европе, так что тут вы правы. Но обычно, когда говорят о Европе имеют в виду всё же не их.

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

А что за CU?

Видимо, «работает - не трогай» в действии,

Скорее низкая культура быта. У людей просто нет установки «вся информация должна присутствовать онлайн в удобном для потребления виде». Проверил, моя автошкола про… (утратила, в общем) свой домен. Я не знаю как они работают, может в газетах рекламу дают или по ящикам почтовым объявления распихивают, но как-то вот существуют же. Им норм, а для нас такое в 2023-м году кажется дикостью.

К внешнему виду, кстати, у меня претензий нет. Я с компа в интернеты хожу, дизайн 90-х как раз рассчитан на большой экран. Но ведь это я такой ретроград, а большинство давно со смартфонов сидит. Им-то каково?

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

GO, вылупившийся в 2012м

Что ты его молодишь. Зачат в 2007м, публично-анонсирован в 2009м. Он уже не только половозрелый, но и достиг возраста согласия. Про «болезни роста» уже речи не идёт: дураком был, дураком помрёт.

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

Что в 95 делалось по наитию, во времена создания Го должно было уже делаться более-менее профессионально.

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

Вот наглядный пример того, как на C# захотели сделать так, чтобы работало быстро.

Сам то читал?

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

Oh noes, who could have thought?

В тестах .NET HTML конкатенируют руками… А в маняфреймворке на Go всё не так, там вся взаправду.

Взаправда на Go по ссылке, указанной самим же автором:

func StreamFortunePage(qw422016 *qt422016.Writer, rows []Fortune) {
//line fortunes.qtpl:1
	qw422016.N().S(`<!DOCTYPE html>
<html>
<head>
<title>Fortunes</title>
</head>
<body>
<table>
<tr><th>id</th><th>message</th></tr>
`)
//line fortunes.qtpl:9
	for _, r := range rows {
//line fortunes.qtpl:9
		qw422016.N().S(`
<tr><td>`)
//line fortunes.qtpl:10
		qw422016.N().D(int(r.ID))
//line fortunes.qtpl:10
		qw422016.N().S(`</td><td>`)
//line fortunes.qtpl:10
		qw422016.E().S(r.Message)
//line fortunes.qtpl:10
		qw422016.N().S(`</td></tr>
`)
//line fortunes.qtpl:11
	}
//line fortunes.qtpl:11
	qw422016.N().S(`
</table>
</body>
</html>
`)
//line fortunes.qtpl:15
}
Calm
()
Ответ на: комментарий от MOPKOBKA

кроме редакторов из 60х?

Забавно в контексте Go. Пайк и Кокс используют (и другим рекомендуют) пайковский Acme, куда из идеологических соображений не завезли даже (!) подсветки синтаксиса. Зато есть жесты мышью, очень инновационно :)

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

А что за CU?

ComputerUniverse

Скорее низкая культура быта. У людей просто нет установки «вся информация должна присутствовать онлайн в удобном для потребления виде».

здесь нужно вспомнить польскую доставку еды из общепита )

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

Сам то читал?

Да.

Oh noes, who could have thought?

Сказать-то что хотели? Что автор разбора .NET-кода в статье натрындел?

В тестах .NET HTML конкатенируют руками… А в маняфреймворке на Go всё не так, там вся взаправду.

Если это цитата, то откуда она и какое отношение она имеет ко мне (если вы уж в разговоре со мной ее используете)?

Взаправда на Go по ссылке, указанной самим же автором

Пусть и так, ко мне это какое отношение имеет?

Это как-то отменяет тот факт, что в решении на .NET для TechEmpower для максимальной производительности C#-программисты упоролись низкоуровневой оптимизацией?

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

Говна там никому не нужного больше.

А ведь так и есть, и объяснение простое (впервые эту мысль на ЛОРе высказал известный мыслитель и общественный деятель по кличке Царь). На, скажем, сишке уже чего только не написано. И если делаешь новый проект, то тебе приходится либо предлагать что-то лучшее (что нетривиально на фоне уймы оттестированных решений с разработчиками, имеющими глубокое понимание соответствующей прикладной области), либо просто получается лаба. А на новых ЯП нифига нет - поэтому просто косо-криво копируешь то, что давно есть в C или в других ЯП, и с умным видом корчишь из себя эксперта, как-будто твоя лаба чего-то стоит.

И обратите внимание, «миллионы доносов пакетов» на Go - это почти всегда фреймворки, веб тулкиты, да парсинг простых форматов. Как у каждого PHP’шника раньше была своя CMS, так у каждого гофера теперь есть свой фреймворк и два тулкита.

Calm
()

Ну раз это официальный Go-go-тред-go. Что-то гоферный LSP-сервер gopls странновато себя ведёт — периодически выкатывает ошибки синтаксиса, которых нет и впадает в кататонию, приходится перезапускать. Может, конечно, клиент виноват (eglot); или я его (их) как-то неправильно Goтовлю.

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

Ты, видно, подзабыл содержание статьи? Автор жалуется, что .NET переоптимизируют свой код и TechEmpower, получается, говно, а не бенчмарк что-то реальное показывающий (срыв покровов, кто бы мог подумать). Но это якобы только для .NET он такой, а в Go, он говорит, всё не так. А в Go, во первых, всё так же. А во вторых, если сравнивать фичи, необходимые для этого самого full stack web development (то, что не меряется этим бенчмарком), в Go всё очень грустно (не от хорошей жизни начали задвигать про «микросервисную архитектуру»).

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

Ты, видно, подзабыл содержание статьи?

Нет. Я помню там еще и сравнение глобокооптимизированного кода на .NET с кодом на Java и C++.

И ссылку на статью я привел потому, что lovesan предположил, что я мог бы использовать .NET вместо C++ и получилось бы лучше. Как раз в этой статье и показывается, сколько приходится прилагать усилий, чтобы хоть чуть-чуть сократить отставание от C++.

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

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

Гугл его создавал для решения своих проблем с плюсами и петонами

Так ведь нет. В треде уже несколько знатоков, имеющих точную информацию о том «для чего Гугл создавал Гоу». Первый сказал – для «микросервисов». Второй – чтобы вытеснить Жабу. У тебя вот – решение проблем с С++.

И в педивикии сейчас какой-то официоз. Между тем, у меня либо ложные воспоминания, либо в 2010х версия озвучивалась совсем иная. Go - это личный pet проект Пайка («правило 20%» в Гугле тогда ещё не называли «правилом 120%»). Финансирования на Go не выделялось и я помню время, когда это было похоже на правду, хотя ЛОРовцы утверждали об обратном, на гугловских конференциях Гоу не было в повестке, как и вакансий с Гоу у самого Гугла.

Пайк внезапно хотел свой системный ЯП, о чём следует из презентации: https://web.stanford.edu/class/ee380/Abstracts/100428-pike-stanford.pdf Для, цитирую, «серверов, браузеров, поисковых ботов, баз данных, компиляторов, дебаггеров, анализаторов, IDE, операционных систем».

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

Да у меня и в ноде есть репл.

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

Тут речь больше про сам код.

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

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

Она долгая. Еда в доставке зачастую хуже по качеству, чем на месте в тех же заведениях. Очень часто путают заказы или не полностью комплектуют. Glovo еще туда-сюда, а Wolt по сравнению с Вильнюсским просто никакой.

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

И ссылку на статью я привел потому, что lovesan предположил, что я мог бы использовать .NET вместо C++ и получилось бы лучше.

Тогда вообще мимо. Твой пост не сравнивает .NET с C++, он сравнивает ASP.NET (конкретный веб фреймворк) с неким китайским drogon на C++. О чём нам это вообще должно сказать?

Ты никогда не будешь писать платформу на сраном drogon.

сколько приходится прилагать усилий, чтобы хоть чуть-чуть сократить отставание от C++

Сколько? В списке нет ничего экстраординарного, всё описанное рутинно применяется во всех Go решениях, когда доходит до оптимизации.

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

Чтобы получить «оттранслированный шаблон» в Go, нужно вручную запустить внешний инструмент. Какое это отношение имеет к производительности Go?

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

Его пример как раз доказывает, что отдельные критерии типа «технических качеств» на популярность влияют слабо. Влияет только общая полезность. Тебе жопаскрипт полезен — ты им пользуешься (пишешь на нём, пользуешься сайтами/приложениями на нём, строишь на этом бизнес); если вас таких становится много — жопаскрипт становится популярен. Никакой магии, никаких заговоров.

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

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

Ага, а позволь узнать, как расшифровывается COBOL?

А как расшифровывается КНДР?

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

Между тем, у меня либо ложные воспоминания, либо в 2010х версия озвучивалась совсем иная. Go - это личный pet проект Пайка («правило 20%» в Гугле тогда ещё не называли «правилом 120%»).

Нет, там сразу была небольшая команда, в которую входил Томпсон, Пайк и Грисимер, которая начала делать Go как экспериментальный проект.

Сейчас не могу найти рассказ самого Пайк-а про это, но вот пара ссылок нагуглилась

Интервью Кена Томпсона dr.Dobbs: «When the three of us [Thompson, Rob Pike, and Robert Griesemer] got started, it was pure research. The three of us got together and decided that we hated C++. [laughter]»

А вот тут вообще фрагмент письма от Грисимера Пайку и Томпсону с перечнем пунктов касательно нового языка.

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

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

Не одним бизнесом едины. Есть некоммерческие организации, государственные подсосы, фаундейшены, наколенные поделки, получившие лёгкое финансирование в период бума (как клон твиттера, где можно было писать только «йоу»: $1 млн seed инвестиций, потом $1.5 млн в Round A).

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

Тогда вообще мимо.

Если голову не включать, то да.

Твой пост

Это не мой пост.

не сравнивает .NET с C++,

Тем не менее, там есть сравнение решения на .NET и с Go, и с Java, и с C++.

он сравнивает ASP.NET (конкретный веб фреймворк)

Там в тексте прямо говорится о том, что самое высокопроизводительное решение на .NET к ASP.NET не имеет отношения.

О чём нам это вообще должно сказать?

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

Ты никогда не будешь писать платформу на сраном drogon.

О, какая-то «платформа» появилась в разговоре. Что за «платформа»?

Чтобы получить «оттранслированный шаблон» в Go, нужно вручную запустить внешний инструмент.

Этот запуск, предположу, может запросто быть частью build-процесса. Тут скорее вопрос почему разрабы бенчмарка для .NET не смогли пойти по тому же пути. Но меня этот вопрос не интересует.

Какое это отношение имеет к производительности Go?

Я понятия не имею почему вы мне навязываете разговор про производительность Go.

Была дана ссылка, в которой человек разобрал в какие тяжкие пришлось удариться разработчикам на .NET, чтобы их бенчмарк не отсасывал у всех подряд. Но и при этом он далеко позади производительных решений на Java и (что важно в контексте моего разговора с lovesan) C++.

Производительность Go меня не волнует. Но когда мне кто-то говорит, что замените C++ на .NET (конкретно на C#) и у вас все будет зашибись, то я лично в этом очень и очень сомневаюсь. И упомянутая статья (не моя!) лишнее подтверждение моим сомнениям.

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

достаточно одной строки

https://pkg.go.dev/github.com/matiasinsaurralde/go-dotnet

just wrapping the needed syscalls and making use of a lot of unsafe.Pointers to load structs from memory

proof of concept

makes heavy use of unsafe and it’s probably very unstable

https://github.com/ropnop/go-clr

This is a PoC Go wrapper … and has been tested under OSX

covers two basic use cases

Да, сразу в продакшен.

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

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

Лол, нет. Во первых, такой себе мейнстрим. Во вторых, я знаю из каких соображений сам на заре его существования вкатился в Go. «Решений стоящих проблем» (если речь не про психологические) среди них не было.

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

Только вот труд бизнесмена – это продажа результатов чужого труда

Это что-то по словарю Е. Охотникова? В юридическом словаре Burton, William (2007) определение такое:

Business is any activity or enterprise entered into for profit.

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

такой себе мейнстрим

Как оно там, в параллельной реальности?

eao197 ★★★★★
()
Ответ на: комментарий от ugoday
  1. Язык Go простой как валенок.

Первый тезис - что-то из поговорки про халву. Все кричат про какую-то мифическую простоту, но ведь нет её. Какой-нибудь академический ЯП - простой, scheme - простой. А Go - неконсистентный набор, потёртый чемодан с ржавыми дедушкиными инструментами.

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

Business is any activity or enterprise entered into for profit.

Так-то и труд крепостного крестьянина под это определение подпадает.

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

В юридическом словаре Burton, William (2007) определение такое:

Business is any activity or enterprise entered into for profit.

Вы цитируете реплику про труд бизнесмена, а даете определение понятию «бизнес». Ничего не смущает?

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

Да, scheme проще Go. Но Go проще явы с С++, которых он успешно заменяет. Вот, возьмём семью из трёх братьев, которые кроме питона ничего не знают. Старший наймётся в ява-прораммисты, второй внезапно в хаскелл-разработчики, а младший пойдёт на го кодить. (вот такая у нас грустная сказка). Кто из них быстрее в проект вкатится?

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

выше по треду твоё сообщение:

Зарабатывание денег чужим трудом.

Ну так и сравнивайте именно вот это «определение» с тем, что вы нашли в Интернете:

Business is any activity or enterprise entered into for profit.

Тогда сравнение окажется корректным. А не то, как вы это делаете.

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

Впрочем, судя по вашим репликам, у вас с lovesan-ом одна беда.

eao197 ★★★★★
()

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

Шутка

Т.е. «тупые cтуденты» востребованы и без работы не останутся.

https://5uglov.ru/post/2401_vuzi_lubyat_tupih_studentov Вузы любят тупых студентов

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

К таким неожиданным выводам пришли участники апрельской конференции Высшей школы экономики, стартовавшей сегодня в Москве.

Нам дали премию на всех.
Взялись делить – и смех, и грех:
Мы друг на друга паровозами пыхтели.
Один кричит, что он главней,
Другой кричит, что он умней…
Образованные просто одолели.
Forum0888
()
Ответ на: комментарий от crutch_master

Не, ну там может быть какие-то адские абстрактные конструкции, что две строчки кода по выразительности как половина всего проекта.

Про выразительность это не к лишпу, а к хачкелю (и к другим функциональным ЯП). Вот там посмотри что вытворяют адепты бесточечной записи: ошалеешь, пытаясь понять, что происходит в коде 🤣

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

Тут скорее вопрос почему разрабы бенчмарка для .NET не смогли пойти по тому же пути.

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

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

Была дана ссылка, в которой человек разбирал в какие тяжкие пришлось удариться инженерам мерседес (asp.net), чтобы их автомобиль вылетал из пушки так же бодро, как сушёное фекальное ядро (drogon). Вывод - ДВС (.NET) отсасывает у сушёного говна (C++).

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