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.

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

Подозреваю, здесь логика такая: JS-еры за зарплату в $N сделают проект за 3 месяца

Возможно. Надеюсь ты же в это не веришь…

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

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

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

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

Да, хотя бы аудиоплеер. lovesan, подскажи, какие есть библиотеки для гуи, что нибудь современное gtk4 или qt6, и что нибудь для аудио, flac, mp3 хотя бы.

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

Для CL невозможен, да и не нужен LSP, потому что он не работает как убогенькие недоязычки типа C++, Go и прочих. Скажем так, это не совсем язык, и на синтаксическом уровне, внешним анализатором, его разбирать не очень много смысла.

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

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

Принципиально отказывается? %)

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

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

Надеюсь ты же в это не веришь…

Я как-то не сталкивался за последние N лет с задачами, которые бы можно было решать как на JS, так и на C++. Выбор все больше между C++ и C, в последние годы еще и между Rust и Go.

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

Этот тред поднял человека из 16 лет небытия. Сила.

Сделал из обезьяна человека. Вот что срач животворящий делает!

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

Ну вот десктопные приложения можно делать на C++ и на JS.

Смотря какие. Если это видео-, аудио- или даже нормальный фото-редактор, то JS вряд ли. Даже для UI вряд ли.

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

Для CL невозможен, да и не нужен LSP

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

на синтаксическом уровне, внешним анализатором, его разбирать не очень много смысла.

Ну там символ переименовать, выделить форму в отдельный defun, заменить круглые скобки на квадратные и всё такое прочее — неплохо было бы иметь.

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

Сначала вы утверждаете что:

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

и затем сразу обделываете себе портки с:

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

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

И вместо использования любого адекватного по срокам решения Вы предлагаете удесятерить время решения задачи без пропорционального увеличения выгоды для бизнеса, только исходя из своего маниакального предпочтения делать на Lisp. Это или сектантство или описанное Вами выше набивание часов и имитация бурной деятельности. Сэр, Вы - серите.

Далее, по тексту:

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

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

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

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

Common Lisp это промышленный стандарт ANSI INCITS 226-1994 (S20018), созданный на деньги DARPA…

А NASA проводил эксперименты с женщиной и дельфином подкармливая обоих ЛСД (с сексом до свадьбы) каждый может ошибаться. На то время Лисп был актуален, как и ЛСД. Но времена меняются и промышленные стандарты созданные до появления основных языков современности теряют свою актуальность. Жидкая апелляция к авторитету - отклонено.

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

Эта поделка - все что может предоставить развитая экосистема Lisp. Sad but true.

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

Забыл что шизы не воспринимают сарказм без кавычек, виноват, исправлюсь.

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

Внятного ответа зачем брать CL чтобы писать на Python, вместо го того чтобы сразу решить задачу на Python, я не дождусь. Ну я и не питал надежд.

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

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

Контору палить не буду, ибо NDA из-за санкций. Скажу только что она в EU. Каюсь, за 21 год в ИТ как-то не довелось работать внутри России, сначала не умел работать за мало денег, потом видимо сила привычки. Короче, так сложилось исторически.

Или только анонимно срать можешь?

Но серите тут пока только Вы. Право, Lisp стоило изучить хотя бы для того чтобы опускать на землю подобных снобов с выраженным синдромом Даннинга-Крюгера.

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

Да вроде про Emacs речь, так вот, за много лет, ничего достойного на elisp не появилось для популярнейших языков. А CL это да, как писать только на шаблона С++, никаких гарантий, никаких проверок.

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

В смысле ты насмотрелся?

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

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

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

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

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

Ого, это с какой версии? В моем мире в каждом проекте у нас в confluence или запись экрана или 20+ шагов импорта проекта чтобы хоть что-то начало работать. Но все равно многим новым разработчикам приходится помогать т.к. в разных ОС по разному, в разных версиях идеи по разному, если что-то не так нажать то проще снести весь конфиг и начать заново. (языки java, scala, ruby, TS. Идея ультимейт)

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

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

А почему ты сам до сих пор не создашь свою компанию? Судя по твоим комментариям ты светоч в этом темном царстве. Будешь делать софт для клиентов быстро, качественно и дешево. К тебе толпа клиентов будет ломиться.

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

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

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

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

Тебе список литературы предоставить?

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

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

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

По пятницам буду переходить на сторону Лавсана и вместе, плечом к плечу, отстаивать непорочность зачатия CL. Если не забуду.

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

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

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

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

то есть вы там махайтесь своим лиспом против сишарпа или голанга, а сравнивать с сями и плюсями - это совсем смешно.

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

Ты просто Emacs не видел, там 20 экранов и 100 шагов нужно что бы открыть Hello World. Понятно что и с IDEA могут быть сложности, в таком случае с Emacs будет проще убиться.

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

Магия CL тает когда дело доходит до практической реализации в современных задачах.

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

Будет перевод стрелок на «заплатите тогда я напишу и то ещё подумаю» или что-то в этом духе. Просьба верить в превосходство CL на слово. Джентльмены друг друга не обманывают же.

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

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

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

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

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

Ты критикуешь то, что написано и хорошо работает, но сам каких-то проектов, которые были бы лучше существующих не сделал. Из этого можно сделать вывод, что серьезнее pet-проектов ни чего не делал в жизни.

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

Я прекрасно знаю, чем руководствуется бизнес IRL

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

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

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

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

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

Это браузеры то хорошо работают? Охохонюшки. Текут, глючат и тормозят. Их хотя б на дотнет бы переписать и то хорошо было бы. Но это стоит огромных бабок, и только и исключительно поэтому, никто этим не занимаются, и все продолжают пердолить это глючное дерьмо на C++.

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

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

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

Видел vim (5+ лет подряд у себя на экране) и в нем хотяб понятно что происходит и как твои настройки повлияют на его работу. От пары лет работы в идее впечатление что просто учишь 10 способов попросить что-то сделать потому что 9 из них по какой-то причине не сработают.

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

В notepad.exe точно так же все просто, открыл файл и пошел писать код, можешь попробовать перевести людей на него с ужасной IDEA.

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

Магия CL тает когда дело доходит до практической реализации в современных задачах.

Лол, аноним, который на CL и строчки кода в жизни не написал(и вообще поди жабо/js макака работающий в ((европейском)) аутсорсе) рассуждает про практические задачи на CL.

Поэтому вряд ли мы дождемся вменяемого куска кода от Лавсана.

У меня вон на github лежит код интеропа CL<->.NET.

Вперед, сделай мне интероп с дотнетом для JS или Go.

Особенно когда он знает что не он один тут понимает Lisp, кек.

Ну ты то точно не понимаешь.

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

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

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

А почему ты сам до сих пор не создашь свою компанию?

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

Тебе список литературы предоставить?

Понятно, на картинках CL видел.

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

Обычно такие конструкции языки быстро перенимают.

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

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

На лиспах даже ПО для марсоходов писалось.

Да и есть realtime GC, но видимо в плюсомирке про это и не знают.

Более того, GC можно на время отключать(прикинь).

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

https://www.amazon.co.uk/Garbage-Collection-Algorithms-Automatic-Management/dp/0471941484

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

Это браузеры то хорошо работают? Охохонюшки. Текут, глючат и тормозят. Их хотя б на дотнет бы переписать и то хорошо было бы.

Солист:
– Перепишем на дотнеееет!

Хор:
– Докупите память! Докупите память!

Солист:
– Ничего приятней нееет!

Хор:
– Докупите память! Докупите память!

Чтоб у браузера были системные требования как у Киберпанка 77? %)

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

Нет, ну иногда и не старый, и при чем тут дотнет вообще, лол.

Видел и modern C++ код, написанный такими как ты, за который руки авторам хотелось оторвать

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

На лиспах даже ПО для марсоходов писалось.

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

Да и есть realtime GC, но видимо в плюсомирке про это и не знают.

параллельная сборка мусора? просто попытка об’ехать проблему на кривой козе.

Более того, GC можно на время отключать(прикинь).

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

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

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

параллельная сборка мусора?

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

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

Понятно, еще один сказочник у которого представления о дотнете из срачей на ЛОРе.

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

никакого детерминизма тебе не дают, и могут в неожиданные моменты неожиданно долго висеть из-за фрагментации и остального)

«обычные аллокаторы» при фрагментации застрянут просто навсегда, и уплотнять ничего не будут.

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

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

был у истоков стартапов, которые выстрелили

Здесь, кстати, написано буквально следующее: «проекты успешно взлетали после того, как я оттуда уходил».

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

«обычные аллокаторы» при фрагментации застрянут просто навсегда, и уплотнять ничего не будут.

Куда они застрянут? При фрагментации у тебя malloc-у придется все дольше и дольше ходить, причем непонятно когда и как такое случится. Потом, по free у тебя какие-то блоки освободятся, модель фрагментации поменяется, это вызовет перепердоливание внутренних структур в аллокаторе и это тоже зависит от того, насколько у тебя в памяти насрано(в случае C++ с указателями на умные указатели на тупые объекты в рандомных местах - насрано будет прилично). Это все к тому же будет вызывать промахи кеша повсюду(и блокировки кеш-линии в плюсах с умными указателями).

И всё, ни о каких там реалтайм гарантиях и прочем, говорить уже вообще нельзя. Либо же ты опускаешься до уровня сишечки с ручным пердолингом структурок и пулом заранее выделенной памяти(вообще допустим в bss).

Аллокаторы это не магия, и не sbrk, а популярные аллокаторы общего назначения типа malloc - они хуже чем современные GC просто по всем параметрам.

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

Опять сказки венского леса. Я уже сказал - выше ссылка на книжку. Купи и прочитай.

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

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

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

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

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

Лол, аноним, который на CL и строчки кода в жизни не написал(и вообще поди жабо/js макака работающий в ((европейском)) аутсорсе) рассуждает про практические задачи на CL.

Бог миловал, не JS. Хотя, активно встречается вокруг да около. Какой бы язык программирования из десятка так или иначе используемых я бы не назвал - Вы тут же вцепитесь как бульдог, пытаясь перевести внимание от Ваших откровенных ляпов в логике и рассуждения к недостаткам конкретного ЯП.

У меня вон на github лежит код интеропа CL<->.NET.

Т.е. Вы снова предлагаете использовать лисп только для того чтобы что-то делать на другом языке, в этот раз - на .Net

Штош, давайте посмотрим в репу. Я не буду обсуждать качество Вашего кода - мы не на собеседовании. Глаз только зацепился за:

.NET 6+ runtime loading crashes SBCL or CCL on Linux due to floating point exception

This is a major/blocking issue that the library author needs help with.

Это печально конечно. Уверен, Вы найдёте решение чтобы слава CL снова была неоспорима.

Вперед, сделай мне интероп с дотнетом для JS или Go.

Интероп с .Net можно прикрутить к любому современному языку тк CLR идёт в комплекте чуть ли не с 1998 года.

Пожалуйте, для js:

  1. https://github.com/AtsushiSuzuki/node-clr
  2. https://github.com/sebastienros/jint

Там ещё куча вариантов, но пары рабочих думаю хватит.

А вот для Go:

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

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

тоже, думаю хватит.

Итого, чтобы написать интероп Go<=>.Net достаточно одной строки:

import "github.com/matiasinsaurralde/go-dotnet" 

Одна. Строчка. Кода.

Вы там сознание не потеряли ещё? Переживаю за Вас.

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

и при чем тут дотнет вообще, лол.

Так у вас же весь послужной список – это .NET

Видел и modern C++ код, написанный такими как ты, за который руки авторам хотелось оторвать

Пример можно?

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

Ну там символ переименовать

Где переименовать? Без семантического значения символа в данном конкретном контексте, никакое переименовывание не имеет смысла. Контекст может меняться макросами и прочим.

выделить форму в отдельный defun

Почему именно в defun, и чем это лучше чем другие макросы?

Если ничем - то мы приходим к ситуации, что никакой фиксированный LSP нам не подходит, нам нужен семантический анализ работающего образа, включающий анализ раскрытий макросов в конкретном контексте и так далее. И приходим к Emacs + SLIME/SLY или аналогам в коммерческих лиспах. Всё. Никакие средства для убогеньких недоязычков для лиспов не подходят, еще раз.

заменить круглые скобки на квадратные и всё такое прочее — неплохо было бы иметь.

Со скобками в емаксе нормально все.

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

Вы там сознание не потеряли ещё? Переживаю за Вас.

Ну вот у лиспа плохо всё с экосистемой, а ТС её развивает, молодец. Но это ничего не говорит о говёности самого лиспа как языка. Мб он язык-то и хороший, просто незаслуженно забыт. Надо обсуждать язык, а то ничего не понятно. Например, вот 100500 строчек на го, а вот так в 10 строчек это решается на лиспе. Или наоборот.

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

Вы такие вещи пожалуйста тут не пишите. Мне ещё в Пятницу с Вами вместе расовую чистоту CL отстаивать, а Вы сразу каминг аут делаете…

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