Обновить
-8
Mickey Rookie@amcured

Ambient Coder

0,9
Рейтинг
Отправить сообщение

в раст не завезли ооп, потому что его не завезли в го

Этому тезису никак не мешает то, что раст начали пилить в 2006 (ради Servo, но кто теперь вспомнит), а Go — в 2007?

в целом жить без ооп можно, но иногда неприятно

В целом, с ООП жить можно, — но всегда неприятно.

А кто именно реализовывать через наследование просил?

Мне неизвестны иные способы «привести пару примеров […] объекты круга и квадрата с общим методом area».

Если имелось в виду не с «общим методом», а «каждый с методом area» — уверен, вы сами осилите написать такой пример на хаскеле.

третий комментарий пытаюсь

Второй, но я уже заметил, что вам до фени факты,

ему, видимо, приятнее пофилософствовать про ООП, дядю Боба и т.д., вместо того, чтобы реально привести код

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

Я развлекаюсь, глядя, как вы пыжитесь. Для этого и существует хабр, разве нет?

википедийное определение, которое более-менее совпадает с общепринятым

«Обще-» это кем конкретно?

ООП-шной инкапсуляции в хаскеле нет […]

Я прочитал «Введение в Хаскель за 7 часов» и знаю на базовом уровне, как там устроена инкапсуляция. А вот что такое «ООП-шная инкапсуляция», простите уж, я не в курсе. Это какая-то особенная инкапсуляция? С блекджеком и методистками?

модули считать объектами нельзя, поскольку в хаскеле они, в отличие от окамла, не first-class

Ого! Окамл-то тут при чем? В Окамле что же, настоящее православное общепринятое ООП?

Я спорю с тем, что хаскель это объектно-ориентированный ЯП.

Очень за вас рад. А кто именно такой тезис высказал? Может быть, нам этого человека тоже позвать?

объекты круга и квадрата с общим методом area

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

набор основных понятий ООП: абстракция данных, инкапсуляция, наследование, полиморфизм подтипов, класс, объект

Давайте я еще раз попробую. «Основных понятий ООП» не существует в аксиоматике нашего мира. Алан Кай под ООП подразумевал одно, Гослинг — совершенно другое. Тут уместно вспомнить еще Матца, доведшего идею «everything is an object» до абсурда в руби.

Потом еще на горизонте появился Боб Мартин, со своими мухоморовыми галлюцинациями. Графомания этого инфоцыгана, в жизни не написавшего ни строки серьёзного кода, внезапно была воздвигнута на хоругви (потому что люди en masse туповаты, и без шор и узды в приниципе ни на что не способны). В результате у нас появилось определение ООП размером не менее трех печатных листов.

Инкапсуляция, полиморфизм и еще добрый десяток «основных понятий ООП» — прекрасно доступны во всех языках, от КОБОЛа до Хаскеля. Остальные — наследование, классы и прочие паттерны — никому нафиг не нужны (единственное разумное «наследование» вместо правильного решения — полиморфизма — реализовано в джаваскрипте).

То ООП, которое придумал Кай ко всему этому никакого отношения не имеет. То, которое предлагал Матц — тем более. Гослинг ну кхм.

В этом смысле, если выбросить в мусорную корзину бобмартиновщину и фаулерщину, — то инстансы тайп-классов в хаскеле — это хорошие, правильные объекты.

С чем рифмуется? Какая именно история?

Хороший MCP — на ⅔ состоит из Service Discovery. Три кита MCP — Prompts, Resources, Tools. И только первый из них отвечает за беседу с клиентом.

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

Я работаю без MCP. Нужен инструмент — поднимаю сам или пишу тулзу под задачу в рантайме. grep, ast-grep, git log --all -S, tree-sitter — зависит от того что ищу.

Прекрасно. Набор инструментов, конечно, как у третьеклассника, ну да ладно. А через что Remote Assistant догадывается, как ему уточнить постановку задачи, или получить недостающую информацию в ходе процесса? У меня вот самописный MCP выдаёт более 50 инструментов и модель справляется. А у вас как? Вы останавливаете выполнение и «поднимаю сам или пишу тулзу под задачу в рантайме»?

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

Зиновий, вы очень тупой.

Впрочем, и так понятно было, зря я влез.

Service Discovery для SOAP (гуглить по Universal Description, Discovery, and Integration (UDDI)) изобрели 30 лет назад. В UDDI можно было поднять абсолютно новый сервис и все клиенты в ту же секунду про него знали и умели с ним общаться. Сервис!

Для кодовой базы из 3М строк это не решение, а костыль - ты не опишешь всё заранее, кодовая база живая.

Смысл этого заявления не сильно отличается от такого: «REST — это костыль, количество эндпоинтов статично, а количество записей в базе постоянно растет!!!111».

Never attribute to malice that which is adequately explained by stupidity.

— Hanlon, The Barber

Смешно опасаться саботажа в ситуации, когда самая большая опасность — ужасающая некомпетентность.

Eric Holmes в феврале 2026 опубликовал «MCP is dead. Long live the CLI» - пост, который вышел на первое место на Hacker News.

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

Какой инструмент у нас есть, чтобы обойтись без MCP для кодовой базы из 3М строк, написанных за 20 лет пятью разными командами? grep и awk? Вы хоть знаете, что они такое?

Терминология — мать порядка.

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

Вика предлагает определение, списанное под копирку у Лема из «Дневников Ййона Тихого»:

Объектно-ориентированный язык программирования (ОО-язык) — язык, построенный на принципах объектно-ориентированного программирования.

Инстансы тайп-классов в хаскеле очень сложно не назвать объектами по Гослингу.

И вообще, какой язык называть «объектно-ориентированным», а какой «функциональным» в 2026 году, когда в джаве уже не продохнуть от лямбд и ленивых стримов  — это теософский спор, как про табы и пробелы.

Разбор потока байт по любому банковскому протоколу из сокета, например. Там кроме длинных строк и dynamic dispatch ничего нет.

Поскольку меня в консоли не забанили, помогу вам.

А вот есть ли там ЗАВТИПЫ?
А вот есть ли там ЗАВТИПЫ?

F#, Haskell, Lisp, Scala — все они уступают Rust в скорости и потреблении ресурсов.

Citation needed. Да и в целом, «язык А быстрее языка Б, вот и пластмассовые бенчмарки подоспели» — это либо глупость, либо вредительство. Если вагон задач, в которых любой из вышеперечисленных языков уделает раст, как бык — овцу.

Раньше ФП ругали за медлительность. «Это не для серьёзных задач», «это только для прототипов».

Citation needed. Да и в целом, хаскель ругают за одно, а скалу — за совсем другое.

[…] попробовать функциональный Rust. Без mut

Совет прям от Григория Остера. А как насчет стейта в асинхронных тредах? В базу сохранять?

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

Не нужно тащить в джаву лямбды, в джаваскрипит классы, в раст — иммутабельность, пожалуйста. Возьмите подходящий вашим препочтениям язык (функциональных иммутабельных языков — полно́) — и пишите на нем. А в расте даже акторная модель через жопу сбоку прикручена.

В 1980-е советские инженеры читали зарубежные технические журналы через систему межбиблиотечного обмена и через личные связи с коллегами из соцстран.

В 1980-е советские инженеры из Иоффе имели прямой канал связи по email (UUCP) с коллегами из самых что ни на есть капиталистических стран, я ежедневно начинал утро с проверки почты и ответов на письма.

А мой отец печатался в самых что ни на есть капиталистических журналах, за что получал гонорары чеками ВнешПосылТорга с примерно начала 70-х.

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

Простите, я не способен воспринимать всерьез мнение, заканчивающееся тремя дегенеративными скобочками.

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

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

Проблема была в том, что без этого элемента все остальное не имеет смысла — это как автомобиль без движка.

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

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

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

Я неоднократно пытался перевести наше общение в диалог: уточнял, прояснял, задавал вопросы, объяснял логику и важность этого элемента. […]

Я же не спорил, не обвинял, не защищался. 

«Объяснение логики и важности» — это спор.
«Уточнения и вопросы» — это защита.

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

У меня нет сертификатов, я не оканчивал школ и не никогда посещал никакие тренинги, но я не припомню случая, чтобы мне не удалось переубедить собеседника. Однажды мне пришла в голову правильная идея в машине на пути к заказчику, и я ему честно сообщил:
— Мы привезли вам план-проект, техническое задание, договор. Придраться к нам невозможно. Но я хотел бы вам предложить сначала меня выслушать. Я собираюсь сказать вещь, узнай о которой мой шеф — он меня немедленно уволит. В этой папке лежит говно. Но пока мы сюда ехали, я все придумал. У меня нет ни эскизов, ни плана, ни ТЗ, ничего. Но если вы хотите, чтобы все было круто — выслушайте меня.

Как вы думаете, что именно произошло в моём кейсе?

Вам нужно было не «пытаться перевести наше общение в диалог: уточнять, прояснять, задавать вопросы, объяснять логику и важность этого элемента», а просто сказать: «ОК, а какой основной элемент тут видите вы?». А потом — свести два русла воедино.

Ваша ключевая ошибка состояла в том, что вы не сумели (не захотели) хотя бы на минуту допустить, что облажались. Вместо того, чтобы слушать, и пытаться понять, почему и в чем — вы начали спорить и доказывать собственную правоту. Удивительно, что вас в принципе не выгнали спустя десять минут.

Работа требует полной отдачи себя.

Обалдеть, какое скотство со стороны государства.

На Мещанке штоле?

1
23 ...

Информация

В рейтинге
2 254-й
Зарегистрирован
Активность

Специализация

Бэкенд разработчик, Архитектор программного обеспечения
Старший
Linux
Ruby
Erlang/OTP
Проектирование архитектуры приложений
Алгоритмы и структуры данных