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.

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

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

Не староват ли юнец для роста в таких базовых вещах?

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

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

  1. РНР. Программерская – мы можем делать сайты на языке, подобном С++ или Явы, но он проще. Бизнесс – делать сайты значительно проще, чем на других языках;
  2. Python/Ruby. Программерская – у нас нет типизации, сделали синтаксис как можно проще. Бизнесс – сделали быстро прототип, потом его переписали на С;
  3. GO. Программерская – сделали язык, простой, как питон и многопотоковость нормальная. Бизнесс – можно экономить на мощностях дата-центров и скорость разработки примерно такая же как на питоне.
  4. 1С. Программерская – можно писать на русском языке, не надо учить английский. Бизнесс – 1С делается под бизнесс-процессы, сами бизнесс-процессы можно не трогать;
  5. Java. Программерская – это такой С++, но со сборщиком мусора и прочими плюшками. Бизнесс – приложения могут запускаться хоть на компьютере, хоть на кофемолке.
  6. C#. Программерская – это такой Java, но с плюшками от винды и более продвинутым синтаксисом. Бизнесс – приложения могут запускаться везде, где есть виндовс. А он в те времена был везде.
  7. JavaScript. Программерская – можем что-то делать на стороне браузера. Бизнесс – интерфейс вебсайта становится более дружелюбный.

Мне кажется, что из-за того, что нет идеи чем лучше для зарабатывания денег такие языки, как perl, common lisp, prolog, D, erlang не пошли в массы.

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

perl … не пошли в массы

А 4 мил это всё

The Comprehensive Perl Archive Network (CPAN) is a repository of over 250,000 software modules and accompanying documentation for 39,000 distributions, written in the Perl programming language by over 12,000 contributors

написал лично Ларри Уолл? %)

Но так-то ты прав, конечно. Чтобы чем-то пользовались, оно должно быть не просто в чём-то полезно, но и полезнее альтернатив — причём желательно для всех заинтересованных сторон.

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

D полезней С++, но не взлетел - хоть и лучше, но не настолько.

C# не полезней Java, но взлетел - с микрософтом-то попробуй не взлететь.

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

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

Давно появился как раз, это Common Lisp. Покрывает все ниши в которых можно использовать Go

А не используют его потому, что 99.999999999% индустрии – это неадекваты с двумя курсами провинциального ПТУ за плечами, типа меня. Правильно?

И только оставшийся 0.000000001% – это lovesan.

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

D полезней С++

Практика показала, что бесполезнее.

но не взлетел

Вот потому и не взлетел.

PS. D нужно было соревноваться не с C++, т.к. GC (причем так себе GC в первых версиях D) закрывал для D ниши, в которых C++ чувствовал себя более-менее адекватно. А как раз с Java и C#. Но когда вокруг D был хоть какой-то хайп, нативный язык с GC мало кому был нужен. Но вот стоило появится Go от Google, как многие прозрели и отказалось, что быстрый нативный код с GC – это как раз то, что нужно в эпоху Docker-ов и Kubernetes.

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

GC в D опциональный, насколько я помню. И это очень удобно. Там были свои проблемы вроде двух стандартных библиотек, полупроприетарного компилятора, но, имхо, это всё мелочи, проблемы роста. Он был лучше С++, да и сейчас, наверное, лучше, но проще терпеть недостатки С++, чем получать небольшие преимущества D.

Вот Rust это канонический пример языка, который на голову выше С++ и взлетел за счёт своей крутости. Но это скорей исключение в современном мире.

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

GC в D опциональный, насколько я помню.

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

Делать GC опциональным начали, хорошо, если лет 10 назад. И первые несколько лет таких попыток отключение GC убивало часть stdlib и отключало исключения (емнип). Отсюда и метания разработчиков в сторону BetterC.

Вот Rust это канонический пример языка, который на голову выше С++ и взлетел за счёт своей крутости.

Давайте будем честными: взлетает. Пока что до распространенности C++ ему еще очень далеко.

Но я не буду сильно сожалеть, если Rust со временем C++ обгонит и вытеснит вообще.

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

Ну я соглашусь только в одном, пожалуй. «Бизнес-задачи» в виде распила, отката, набивания часов и изображения бурной деятельности, Common Lisp, к сожалению, решать не помогает. Поэтому таким «архитекторам» в таких наебизнесах, он вообще лишний.

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

Это всё домыслы, естественно. Потому что

  1. Технические характеристики инструментов нихрена от слова совсем в современном IT не решают, с популярностью не вяжутся абсолютно совсем, и не являются причиной создания и распространения языка, иначе бы все писали на CL, или на каком-то подобном лиспе, а JavaScript бы вообще не существовал. Про это как-то упоминал даже Lex Fridman (подкастер известный, американец российского происхождения, а также заведующий лабораторией искусственного интеллекта в MIT)

  2. Бизнес сам нихера не знает, если он не является создателем какого-либо инструмента. И в последнем случае - одна из главных и часто чуть ли не единственная цель - это подсадить на «свой» язык и экосистему, нагенерив хайпа. Это было и с санками/ораклом, и с MS, и с популяризацией C++ корпорациями в свое время, и с Python, и вон с Golang.

Технические характеристики языка или платформы в случае (2) тут идут вообще последними в списке, и это как правило, вещи, опять же не связанные с тем, о чем думает среднестатистический недалекий кодерок. Так, например одни из важнейших целей создания дотнета была унификация ABI виндовых приложений и решение проблем с зависимостями(кто вот тут вообще знает что такое GAC?)

Мне кажется

Когда кажется, креститься надо. На лиспы в свое время выделялись миллионные если не миллиардные бюджеты, и писались на них приложения в миллионы строк кода, включая операционные системы, десятками и сотнями тысяч разработчиков. Erlang в реальности в хвост и гриву используется, но это среднестатистическому уебщику, ессно не видно. Ставить CL и пролог же в один список это смешно просто. Еще бы с MUMPS сравнил.

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

А не используют его потому, что 99.999999999% индустрии – это неадекваты с двумя курсами провинциального ПТУ за плечами, типа меня. Правильно?

Правило 95% никто не отменял. Да, потому что идиоты, хайпожоры, ведомое хомячье, потому что blub paradox во все поля, и так далее.

Тут даже про лисп упоминать не надо. Например, я абсолютно уверен что всю хероту которую ты там на крестах говнокодишь, можно легко переписать на дотнет, на C#, и качество продукта, простота разработки и поддержки, и даже производительность от этого только вырастет. Я в свое время написал на дотнете видеостриминг, и клиент и сервер, причем сервер еще общался со всякими микроконтроллерами. Начал было, кстати, писать на плюсах, но быстро себе по рукам дал, и выкинул их(кроме совсем узких мест, где всякое там SSE с ассемблерными вставками - там оставил, но там скорее что-то среднее между сишечкой и ассемблером).

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

Но так-то ты прав, конечно. Чтобы чем-то пользовались, оно должно быть не просто в чём-то полезно, но и полезнее альтернатив — причём желательно для всех заинтересованных сторон.

Нет, конечно, это не так. Иначе бы вместо JavaScript в браузерах была бы какая-нибудь Scheme. И вообще, это идиотская пресуппозиция, что якобы что язык что все остальные инструменты в современном IT выбирают якобы оценив технические качества, применимость и все остальное. Это какое-то абсолютное непонимание природы человека, что впрочем у компьютерщиков встречается повсеместно.

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

PHP и JS появились в 1995м и до сих пор испытывают проблемы роста. По сравнению с ними GO, вылупившийся в 2012м, ещё пешком под стол бегает, но уже довольно бойкий.

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

А 4 мил это всё

The Comprehensive Perl Archive Network (CPAN) is a repository of over 250,000 software modules and accompanying documentation for 39,000 distributions, written in the Perl programming language by over 12,000 contributors

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

dicos ★★
()
Ответ на: комментарий от lovesan
  1. Технические характеристики инструментов нихрена от слова совсем в современном IT не решают

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

  1. Бизнес сам нихера не знает, если он не является создателем какого-либо инструмента.

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

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

На COBOL еще больше. Но он остался устаревшим специализированным языком для фин.систем. А CL стал языком, к которому только академический интерес.

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

Очень хороший показатель потребности в этом языке – количество вакансий. У Erlang по сравнению с go вообще ни о чем.

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

Но так-то ты прав, конечно. Чтобы чем-то пользовались, оно должно быть не просто в чём-то полезно, но и полезнее альтернатив — причём желательно для всех заинтересованных сторон.

Нет, конечно, это не так. Иначе бы вместо JavaScript в браузерах была бы какая-нибудь Scheme.

А что не сделаешь такой браузер? Или ты из тех, кто любит покричать, но к принятию решений на пушечный выстрел не подпускают?

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

Не идеально, но решают.

Нет, конечно.

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

И что? «Бизнес» в IT понятия не имеет о том как и какие инструменты выбирать, и главное - зачем. И постоянно вляпывается в то, что толкают корпорации, или в перехайпованное нечто, о котором недоучки растрезвонили. Вон опять же в COBOL, в Java, или в Golang.

На COBOL еще больше. Но он остался устаревшим специализированным языком для фин.систем.

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

Ну так вот Golang, Java и C++ - это как раз уровень COBOL.

А CL стал языком, к которому только академический интерес.

Это ты на ЛОРе такие сведения почерпнул?

Очень хороший показатель потребности в этом языке – количество вакансий. У Erlang по сравнению с go вообще ни о чем.

Нормальные вакансии на помойках типа hh не выкладываются. Судить же по российскому IT о всем мире вообще, так это вообще смешно. Тут и так всю дорогу уровень развития технологий был сельпо(нормальных продуктов мирового уровня практически нет), а сейчас и того хуже.

И что такое «потребность» в языке? Вакансии пишут как правило менеджеры, или HR, которые понятия не имеют, что им нужно и зачем. Об этом шутки ходят уже не одно десятилетие - и про «20 лет опыта на Swift», или про студентов с 10 годами опыта, и так далее.

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

А что не сделаешь такой браузер?

Какой в этом смысл?

Или ты из тех, кто любит покричать, но к принятию решений на пушечный выстрел не подпускают?

Меня как раз последние много лет допускают. А вот тебя, надеюсь, нет.

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

Правило 95% никто не отменял. Да, потому что идиоты, хайпожоры, ведомое хомячье, потому что blub paradox во все поля, и так далее.

Можно было бы удивиться тому, что вы придерживаетесь мнения о 95% идиотов, но не понимаете, что «идиотам» нужно что-то сильно проще, чем CL, поэтому им-то как раз Go и нужен. Т.е. вроде как вы исходя из своих убеждений логично говорите A, но вот в рамках той же логики не можете сказать B.

Но, общаясь с вами не в первый раз, не удивляюсь.

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

Например, я абсолютно уверен что всю хероту которую ты там на крестах говнокодишь, можно легко переписать на дотнет, на C#

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

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

Я в свое время написал на дотнете видеостриминг, и клиент и сервер

Видеостриминг и на Erlang-е пишут.

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

А вот это правильно. Использовать инструмент, которым не умеешь пользоваться, – это верный путь к провалу проекта.

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

CL мало того что шиз-lock (полный аналог с vendor-lock) язык, так он ещё и бесполезен для актуальных задач разработки, а отсутствие статический типизации переводит его из категории «Всё вокруг натуралы один я - Д’артаньян» в категорию «Дед - пей таблетки, а то получишь по жопе».

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

Стоит чуть высунуть нос в реальность несовершенного мира и стройные абстракции рассыпается.

Выше я привёл довольно простую задачу, решенную с помощью GO. Давайте поможем Лавсану решить её на Lisp.

Итак, есть созданная и обученная с помощью Tensorflow v2.14 (далее TF) сеть которую нужно запускать на сервере, скармливать ей данные и получать результат.

Есть биндинги TF на С которые позволяют использовать любой современный язык программирования вплоть до JS включительно.

Давайте посмотрим, что предлагает нам Lisp:

  1. Common Lisp interface to Tensorflow: https://gitlab.common-lisp.net/cungil/tensorflow

Открываем readme.md: Note: works with SBCL and CCL on MacOS, but crashes SBCL on Linux.

Ничего страшного, Closure CL же работает, да и вообще, Макось тот же Линукс, можно же с умным лицом указать MacosX в требованиях к ОС сервера.

Смотрим историю коммитов: Apr 27, 2019 updated to the latest Tensorflow version 1.13.1

Упс, репа протухла на 4 года, у нас TF 2.14. Отбрасываем (как и все остальные похожие репы 4х и 6-летней давности).

  1. Понятно что основной язык для ML сейчас Python и там все что нужно есть. Но т.к. мы не какие-то там натуралы-посредственности, то мы можем взять готовый диалект CL специально под эту задачу. И такой язык есть, встречайте - Ху (Hy) https://docs.hylang.org/en/stable/

Диалект Лисп для написания кода в абстрактное синтаксическое дерево Python! Зачем брать питон если можно взять лисп и писать на питоне?! Вся глубина и мудрость этого решения до сих пор ускользает от меня.

  1. Ваши варианты в комментариях.

Поставленная задача была решена на GO за один день, Python не использовался только из-за требования к скорости. Хотя там реально и на Python и на JS (JS, Карл!) можно было реализовать за то же время.

Подытоживая: объективная реальность - бессердечная ты сука.

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

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

Разве я что-то говорил про технические качества? Я говорил про полезность для заинтересованных сторон.

Вот виндовс 98. Ну какие там технические качества, прости г-споди. Но игрушки же запускались? Запускались. Бесплатно? Бесплатно. Миллионам людей этого оказалось достаточно.

А жопаскрипт. Того, что он может, оказалось достаточно для нешуточной популярности, как среди разработчиков/бизнесов, так и среди пользователей — вот и всё. Есть польза для масс — есть популярность среди масс.

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

Нет никакого заговора кретинов в интересах дебилов. Есть только невидимая рука рынка %)

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

нужно что-то сильно проще, чем CL, поэтому им-то как раз Go и нужен.

Это говорит человек, который про CL разве что на ЛОРе читал, соответственно обсуждать с ним какую-то мифическую «сложность» CL смысла вообще нет.

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

Так это несложно, квалификация выше чем у тебя будет примерно у каждого второго дотнетчика с улицы.

Видеостриминг и на Erlang-е пишут.

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

А вот это правильно. Использовать инструмент, которым не умеешь пользоваться, – это верный путь к провалу проекта.

Нет, использовать C++ - это верный путь к провалу проекта, либо к раздутым бюджетам, сорванным срокам, и выгоранию.

Использовать C++ вообще нет никакого смысла, кроме как в случае поддержки какого-то древнего говнокода на C++, впрочем и в таких случаях - его лучше изолировать в углу, и пусть оно там лежит, и пока не дойдут руки его переписать - его трогать не надо. Такую стратегию лично видел, в одной крупной компании, и она с успехом там работала(причем говнокод на крестах даже отдельно в SVN лежал - специально, это типа как табличка такая «Опасность! Радиоактивные отходы!»).

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

А жопаскрипт.

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

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

Не в полезности дело, а в перехайпованности говна для кретинов, еще раз. Мифическая «полезность» практически никому в современном IT нахер не всралась.

Нет никакого заговора кретинов в интересах дебилов.

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

Есть только невидимая рука рынка %)

Это, конечно, не невидимая рука рынка из либертарианских сказок. Разве что если она занимается мастурбацией.

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

Это говорит человек, который про CL разве что на ЛОРе читал, соответственно обсуждать с ним какую-то мифическую «сложность» CL смысла вообще нет.

Не-не-не, я CL видел в первом издании книги «Объектно-ориентированный анализ и проектирование» Гради Буча. Полагаю еще до того, как вы читать научились.

Так это несложно, квалификация выше чем у тебя будет примерно у каждого второго дотнетчика с улицы.

А если оценивать знания .NET, то и у каждого первого!

Нет, использовать C++ - это верный путь к провалу проекта, либо к раздутым бюджетам, сорванным срокам, и выгоранию.

Ну, раз lovesan сказал, значит так и есть. Илитка звиздеть не будет.

Для меня, правда, непонятно, почему KDE написано на C++, Gnome на Си, а вот чего-то сравнимого на CLOS не было, нет и не будет. Как и на Java или C#.

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

Нет, использовать C++ - это верный путь к провалу проекта, либо к раздутым бюджетам, сорванным срокам, и выгоранию.

Ага, а не использовать C++ и писать тежелые приложения на js/java - это по итогу получить бездонного монстра, запихивающего в себя память и производительность цпу и сделать то, что летало на компьютере десятилетней давности, будь оно написано на C++.

к провалу проекта, сорванным срокам

Слишком упрощаешь, к провалу приводит комплект факторов.

либо к раздутым бюджетам

Что-то я не вижу зп у плюсовиков сильно выше чем у js-иков.

и выгоранию

… приводит С++? - ах вон оно что, оказывается выгорание только у плюсовиков, ааааа, ясно понятно :-)

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

либо к раздутым бюджетам

Что-то я не вижу зп у плюсовиков сильно выше чем у js-иков.

Подозреваю, здесь логика такая: JS-еры за зарплату в $N сделают проект за 3 месяца, а C++ники, постоянно починяя баги и «выгребая корки по утрам» (с) – за 12 месяцев. Поэтому даже если у C++ника зарплата будет $(N/2), то все равно выйдет дороже. Да и C++ников больше потребуется, т.к. то, что делает один JS-ер, должны будут делать целых три C++ника.

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

CL мало того что шиз-lock (полный аналог с vendor-lock) язык, так он ещё и бесполезен для актуальных задач разработки,

Сказал человек который про CL читал разве что на википедии и на ЛОРе.

а отсутствие статический типизации переводит его из категории «Всё вокруг натуралы один я - Д’артаньян» в категорию «Дед - пей таблетки, а то получишь по жопе».

Вот сколько наблюдал разработчиков, так как правило, замороченные на статической типизации - те еще шизики упоротые, которые о практическим применении вообще не думают. У них это прямо по МКБ/DSM - навязчивая идея - типизация, дескать. Где они это прочитали, уже даже не важно, идеи фикс они такие - лечатся только таблетками. Так что иди таблетки выпей, действительно.

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

Common Lisp это промышленный стандарт ANSI INCITS 226-1994 (S20018), созданный на деньги DARPA и нескольких крупных корпораций, для унификации и стандартизации промышленно использовавшихся диалектов лиспов - таких как MacLisp, InterLisp, ZetaLisp, Lisp Machine Lisp, и других. Свои выдумки про академию иди в другом месте рассказывай.

Стоит чуть высунуть нос в реальность несовершенного мира и стройные абстракции рассыпается.

Пациент опять с голосами в голове разговаривает.

Итак, есть созданная и обученная с помощью Tensorflow v2.14 (далее TF) сеть которую нужно запускать на сервере, скармливать ей данные и получать результат.

Меня область питономакак с этим всем перехайпованным дата-саенсом, нахер в большинстве случаев никому не всравшимся, не интересует. Но интересовала бы - действительно бы написал биндинги для CL, или скорее, бы, даже не написал, а использовал бы grovell-er, который бы их автоматически сгенерировал, и дальше бы работал с этим по обстоятельствам. Хотя насколько я помню, Python с Tensorflow общается по недокументированному специально для Python сделанному API, поэтому возможно не так там все и просто.

Впрочем, задача не рокет саенс. Если тебе нужно решение этой задачи от меня - выкатывай описание в Job, цену я скажу.

Common Lisp interface to Tensorflow: https://gitlab.common-lisp.net/cungil/tensorflow

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

Таблетки прими, не забудь.

Макось тот же Линукс

У меня чуть челюсть не отвисла. Это каким надо быть недоучкой чтобы такое ляпнуть?

Ваши варианты в комментариях.

Всегда можно взять FFI для питона. Вот тут на выбор: https://awesome-cl.com/#python

Поставленная задача была решена на GO за один день

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

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

leftpad это шуточный пример, это не отменяет того что у golang намного больше библиотек, вопросов на stackoverflow, и даже есть IDE, у Common Lisp есть что то кроме редакторов из 60х?

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

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

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

Автор языка знает про APL, так что думаю полезность map, filter, reduce он осознает.

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

Ага, а не использовать C++ и писать тежелые приложения на js/java

А больше платформ и языков не существует? Я уже раз сто привел в пример дотнет, и вообще не помню сколько раз привел в пример тот же CL. Но нет, «не хочу дотнет, не хочу CL, хочу жрать говно»

Слишком упрощаешь, к провалу приводит комплект факторов.

Ну и кресты, и возня с языком вместо решения задачи - один из ключевых.

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

Ну и кресты, и возня с языком вместо решения задачи

lovesan, это же вы из собственного опыта, ведь так?

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

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

leftpad это шуточный пример, это не отменяет того что у golang намного больше библиотек,

Говна там никому не нужного больше. Тебе 99.999% этих наколеночных поделок нахрен не всрались.

вопросов на stackoverflow

Охерительный показатель просто. facepalm

Common Lisp есть что то кроме редакторов из 60х?

Конечно есть, в любой коммерческой реализации свои навороченные IDE.

Но, если про редакторы из 60х это пинок в сторону емакса - так современные IDE для недоязычков типа Go - в сравнение не идут с удобством SLIME/SLY + Emacs, которая как раз полноценная IDE, со всем необходимым, включая дебаггер и все остальное.

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

lovesan, это же вы из собственного опыта, ведь так?

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

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

D полезней С++

Когда мы говорим о полезности, надо понимать — для кого. Полезность субъективна.

Go взлетел исключительно благодаря гуглу

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

То, что Го оказался при этом полезен и для множества других людей, говорит о том, что 1) означенные гуглопроблемы на самом деле не уникальны для гугла и мешают множеству людей по всему миру; 2) Го их на самом деле решает. Вот и всё.

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

А больше платформ и языков не существует? Я уже раз сто привел в пример дотнет, и вообще не помню сколько раз привел в пример тот же CL

Какая есть замена Eigen для C# или CL? Или нужно работать без задержек, есть какие то решения что бы GC не тормозил? Идет работа с графикой, нужен Vulkan, какие есть решения?

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

То, что Го оказался при этом полезен

Никому это поделие не «полезно», ты опять включаешь какой-то аутизм/аспергер. Еще раз - он взлетел исключительно из-за хайпа, в том числе двигаемого гуглом.

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

Стоит всетаки заметить что либа требуемая для вашей задачи занимает несколько сотен строк кода и нет проблем скопировать ее себе и поправить/обновить.

В суровом мире корпоративных языков обычно приходится или есть что дают или подписываться на поддержку форка на десятки тысяч строк которые писались десятками макак совсем разными стилями. Например tfjs репа - 321к строк, умеет конечно много, но если вдруг появится желание оптимизировать bundle size то будет очень больно читать это все и вырезать лишнее.

В моем проекте к примеру поддерживаются форки react-select, react-datepicker и еще нескольких либ поменьше чтобы исправить их проблемы и постоянно появляется желание переписать с нуля.

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

Не только, конечно,

Т.е. это вам Рабинович напел?

я 15 лет уже в индустрии

Вы так говорите, как будто это много :)))

и много где насмотрелся на кресты, в том числе насмотрелся на таких их адептов как ты

Таких адептов, как я, вы вряд ли видели.

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

Вот совсем не угадали.

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

В суровом мире корпоративных языков обычно приходится или есть что дают или подписываться на поддержку форка на десятки тысяч строк которые писались десятками макак совсем разными стилями. Например tfjs репа - 321к строк, умеет конечно много, но если вдруг появится желание оптимизировать bundle size то будет очень больно читать это все и вырезать лишнее.

В моем проекте к примеру поддерживаются форки react-select, react-datepicker и еще нескольких либ поменьше чтобы исправить их проблемы и постоянно появляется желание переписать с нуля.

Вот прямо голос разума в пустыне.

Эти вон адепты «а зато в X много библиотек» достали просто невероятно, такое ощущение что IRL с крупными проектами никогда не работали в жизни.

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

Тебе 99.999% этих наколеночных поделок нахрен не всрались.

Полностью согласен, проблема в 0.1%

Охерительный показатель просто. facepalm

Отличный, всякие темы на форумах, чаты в телеграмм, как узнавать ответы на вопросы? Тебе на почту писать?

Конечно есть, в любой коммерческой реализации свои навороченные IDE.

Можно узнать
1) цену этой реализации
2) является ли IDE этой комерческой реализации, MDI убожеством из 90х без возможностей современной IDE?

в сравнение не идут с удобством SLIME/SLY

Очень сомнительно, с IDEA ты просто запускаешь .exe и открываешь проект, и все само делается, все само подсвечивается, добавляются автоимпорты, в maven или packages.json отдельный редактор который подсвечивает все ошибки и версии пакетов, а отладчик максимально интуитивен и прост в использовании, а какая прекрасная интеграция с git, в lispworks с этим как?

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

Никому это поделие не «полезно»

То есть ты лучше других людей знаешь, что для них полезно, а что нет? %)

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

Таких адептов, как я, вы вряд ли видели.

Почему? Крестомакаки, застрявшие на уровне развития второго курса провинциальной шараги, это очень распространенное явление, особенно в постсовке. Про таких еще сто лет назад Луговский писал.

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

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

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

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

Почему?

По уровню вменяемости.

Крестомакаки, застрявшие на уровне развития второго курса провинциальной шараги

Ой, да, я же забыл ваш илитарный взгляд на мир, в котором все идиоты, кроме вас.

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

Нормальные вакансии на помойках типа hh не выкладываются.

Нет никаких объективно нормальных вакансий, у всех разные требования и ожидания. Для кого-то и править пхп лапшу прямо на хостинге за б-жественные 20 рублей в час — вполне нормально, а кому-то непременно нужно писать искусственный интеллект для навигации на субсветовых скоростях, можно вообще бесплатно. Люди все разные же.

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

Отличный, всякие темы на форумах, чаты в телеграмм, как узнавать ответы на вопросы? Тебе на почту писать?

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

цену этой реализации

В гугле и на сайтах - можно, разрешаю.

Очень сомнительно

Конечно сомнительно, если понятия не иметь что такое вообще Emacs, и как в нем работается с лиспами.

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

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

мы не ма ка ки ма ка ки не мы

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

Я знаю что такое Emacs, убогий редактор из 60х, где люди радуются и славят Microsoft за то что даровала им возможность наконец то не мучится с кривыми плагинами на древнем языке, а использовать zaglot.el для подключения к божественному LSP (сами LSP-сервера пишутся на нормальных языках).

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

Не только, конечно, я 15 лет уже в индустрии, и много где насмотрелся на кресты

В смысле ты насмотрелся? Ты 15 лет на C++ разрабатывал? Или нет? Это как медсестра, которая 15 лет рядом с врачом сидела на приеме. Или водитель, который 15 лет на скорой и «ВСЕ ТАМ ЗНАЕТ»

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

Для лиспов существуют и форумы, и реддиты, и чаты(больше в IRC), и так далее.

Казалось бы, уже можно и написать что-нибудь.

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