Так бы и писали: «как я выбирал стек при условии, что это питон и js». Прошло семь лет с памятного выступления Криса Маккорда на ElixirConfEU, технологию затащили в Rails(Hotwire), PHP (Laravel Livewire) и Go(Live/HLive), она идеально подходит для дашбордов, но увы. Мы выбираем стек из одного варианта стека.
этот путь — не стратегия, а временный выход, когда все остальные двери закрыты
Вообще-то это единственный рабочий путь в принципе. Так, в частности, почти весь OSS работает, а там нет злого дяди директора.
Реализация всего, что в голову придет — дорога в перфекционистскую черную дыру, никто не полирует всё до блеска в версии 0.0.1. Люди примерно лет 70 назад придумали оставлять в коде комментарии [TODO]. Типа, «сейчас можно и так, но потом упрёмся».
В новом коде комментарии [TODO] пропускаются в кодовую базу коммит-хуками, в затронутом — нет. Поздравляю, у вас больше нет техдолга. Проблема надумана.
На практике это означает: Claude Code держит в голове весь проект целиком.
Смешно. А если проект на 30М строк?
Вообще-то я спрашивал, откуда растут ноги у утверждения «магия Claude Code не в grep и не в памяти между сессиями. Магия в модели […]». Ваши личные наблюдения — это и есть «Рабинович напел» в чистом виде.
Размер контекстного окна — это хорошо, но я надеялся увидеть какое-то доказательство (хотя бы подтверждение) того, что хороший RAG его не заменит. (Аутентичный антропиковский раг — говно, поэтому самое уязвимое место, скорее всего, именно там, а не в размере окна.)
Это шаг вперед и два^W шаг назад: как минимум, все еще необходимо проинструктировать этого второго агента не читать до обеда советских газет^W^W^W^W агентские файлы, вот я это уже упоминал:
потому что часть этих «заметок о прошлом» валяется прямо в папке проекта и будет доступна всем моделям
Когда одна и та же модель пишет код и проверяет его, она пропускает свои ошибки. Она «помнит», почему приняла именно это решение, и не ставит его под сомнение. Знакомо?
Не знакомо. У языковых моделей в принципе нет памяти, лишь набор записок на клочках, как у борющегося с деменцией человека.
В зависимости от того, как устроен ваш RAG, модель подгрузит контекст из текстовых файлов, чтобы у людей, мало знакомых с тем, как в принципе работают LLM, возникало ощущение «длительной сессии». На практике каждый новый запрос для модели начинается с абсолютно белого листа. Не сессия, каждый запрос.
Все современные помощники для того и заставляют скачивать тонну софта, чтобы распихать эти клочки бумаги по вашему локальному диску и создать иллюзию «памяти», как страдающий Альцгеймером — расклеивает стикеры по всей квартире.
Смена модели — это стрельба из пушки по воробьям, потому что часть этих «заметок о прошлом» валяется прямо в папке проекта и будет доступна всем моделям, хоть уменяйся. Вы наблюдаете наведенный эффект от потери той части «хлебных крошек», которые первая модель раскидала по тем местам, которые вторая не видит (и не увидит, потому что частично они лежат в облаке).
Вместо этого, нужно просто эксплицитно начать новую сессию и попросить сделать код ревью, не заглядывая в гайдлайны и файлы для агентов. Тогда и целый проект для слепого подкостыливания создавать не придется.
мы едим по сути удобрения и ГСМ, без этого Земля не может прокормить более 500млн человек
«Мне не нужно бежать быстрее медведя, мне нужно бежать быстрее тебя», — как гласит старинный анекдот. Я лично ем исключительно то, что выросло своими силами, и мое потребление прекрасно балансируют почти триста миллионов американцев, которые едят макэндчиз.
А кто именно реализовывать через наследование просил?
Мне неизвестны иные способы «привести пару примеров […] объекты круга и квадрата с общим методом 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».
Это очень смешной слоп, в котором единственный кусок «кода» — вызов терраформа, то есть в RAG нет нужды изначально. Остальное бла-бла-бла — ламерская вода. Разумеется, на HN он всем понравился. На хабре бы тоже зашел. Но не на тех форумах, где водятся профессионалы.
Какой инструмент у нас есть, чтобы обойтись без MCP для кодовой базы из 3М строк, написанных за 20 лет пятью разными командами? grep и awk? Вы хоть знаете, что они такое?
Начнем с того, что у термина «объектно-ориентированный язык» есть два практически прямо противоположных друг другу значения: аланокаевское и джеймсоногослинговое.
Вика предлагает определение, списанное под копирку у Лема из «Дневников Ййона Тихого»:
Инстансы тайп-классов в хаскеле очень сложно не назвать объектами по Гослингу.
И вообще, какой язык называть «объектно-ориентированным», а какой «функциональным» в 2026 году, когда в джаве уже не продохнуть от лямбд и ленивых стримов — это теософский спор, как про табы и пробелы.
Так бы и писали: «как я выбирал стек при условии, что это питон и js». Прошло семь лет с памятного выступления Криса Маккорда на ElixirConfEU, технологию затащили в Rails (Hotwire), PHP (Laravel Livewire) и Go (Live/HLive), она идеально подходит для дашбордов, но увы. Мы выбираем стек из одного варианта стека.
А акторная модель — в триста раз лучше обоих.
Серьёзно? Может, и
electron.quantumPhaseTransition()— интуитивно понятнее, чемquantumPhaseTransition(electron)?Вообще-то это единственный рабочий путь в принципе. Так, в частности, почти весь OSS работает, а там нет злого дяди директора.
Реализация всего, что в голову придет — дорога в перфекционистскую черную дыру, никто не полирует всё до блеска в версии
0.0.1. Люди примерно лет 70 назад придумали оставлять в коде комментарии[TODO]. Типа, «сейчас можно и так, но потом упрёмся».В новом коде комментарии
[TODO]пропускаются в кодовую базу коммит-хуками, в затронутом — нет. Поздравляю, у вас больше нет техдолга. Проблема надумана.Смешно. А если проект на 30М строк?
Вообще-то я спрашивал, откуда растут ноги у утверждения «магия Claude Code не в grep и не в памяти между сессиями. Магия в модели […]». Ваши личные наблюдения — это и есть «Рабинович напел» в чистом виде.
Размер контекстного окна — это хорошо, но я надеялся увидеть какое-то доказательство (хотя бы подтверждение) того, что хороший RAG его не заменит. (Аутентичный антропиковский раг — говно, поэтому самое уязвимое место, скорее всего, именно там, а не в размере окна.)
Это шаг вперед и два^W шаг назад: как минимум, все еще необходимо проинструктировать этого второго агента не читать до обеда советских газет^W^W^W^W агентские файлы, вот я это уже упоминал:
Не знакомо. У языковых моделей в принципе нет памяти, лишь набор записок на клочках, как у борющегося с деменцией человека.
В зависимости от того, как устроен ваш RAG, модель подгрузит контекст из текстовых файлов, чтобы у людей, мало знакомых с тем, как в принципе работают LLM, возникало ощущение «длительной сессии». На практике каждый новый запрос для модели начинается с абсолютно белого листа. Не сессия, каждый запрос.
Все современные помощники для того и заставляют скачивать тонну софта, чтобы распихать эти клочки бумаги по вашему локальному диску и создать иллюзию «памяти», как страдающий Альцгеймером — расклеивает стикеры по всей квартире.
Смена модели — это стрельба из пушки по воробьям, потому что часть этих «заметок о прошлом» валяется прямо в папке проекта и будет доступна всем моделям, хоть уменяйся. Вы наблюдаете наведенный эффект от потери той части «хлебных крошек», которые первая модель раскидала по тем местам, которые вторая не видит (и не увидит, потому что частично они лежат в облаке).
Вместо этого, нужно просто эксплицитно начать новую сессию и попросить сделать код ревью, не заглядывая в гайдлайны и файлы для агентов. Тогда и целый проект для слепого подкостыливания создавать не придется.
А есть какие-то подкрепления этому тезису, или это Рабинович напел?
«Мне не нужно бежать быстрее медведя, мне нужно бежать быстрее тебя», — как гласит старинный анекдот. Я лично ем исключительно то, что выросло своими силами, и мое потребление прекрасно балансируют почти триста миллионов американцев, которые едят макэндчиз.
Этому тезису никак не мешает то, что раст начали пилить в 2006 (ради Servo, но кто теперь вспомнит), а Go — в 2007?
В целом, с ООП жить можно, — но всегда неприятно.
Мне неизвестны иные способы «привести пару примеров […] объекты круга и квадрата с общим методом
area».Если имелось в виду не с «общим методом», а «каждый с методом area» — уверен, вы сами осилите написать такой пример на хаскеле.
Второй, но я уже заметил, что вам до фени факты,
Естественно. Это же хабр, а не профессиональный форум. Убеждать лично вас мне без надобности, писать тривиальный код, который бесплатный дипсик за десять секунд может нагенерировать — тем более.
Я развлекаюсь, глядя, как вы пыжитесь. Для этого и существует хабр, разве нет?
«Обще-» это кем конкретно?
Я прочитал «Введение в Хаскель за 7 часов» и знаю на базовом уровне, как там устроена инкапсуляция. А вот что такое «ООП-шная инкапсуляция», простите уж, я не в курсе. Это какая-то особенная инкапсуляция? С блекджеком и методистками?
Ого! Окамл-то тут при чем? В Окамле что же, настоящее православное общепринятое ООП?
Очень за вас рад. А кто именно такой тезис высказал? Может быть, нам этого человека тоже позвать?
Полиморфизм, реализованный через наследование, — это вообще никаким боком не часть парадигмы, это детали имплементации. Вы просите, чтобы вам повторили слово в слово джавовый код на хаскеле, а лучше бы попытались понять, о чем вообще талдычит собеседник.
Кто это?
Давайте я еще раз попробую. «Основных понятий ООП» не существует в аксиоматике нашего мира. Алан Кай под ООП подразумевал одно, Гослинг — совершенно другое. Тут уместно вспомнить еще Матца, доведшего идею «everything is an object» до абсурда в руби.
Потом еще на горизонте появился Боб Мартин, со своими мухоморовыми галлюцинациями. Графомания этого инфоцыгана, в жизни не написавшего ни строки серьёзного кода, внезапно была воздвигнута на хоругви (потому что люди en masse туповаты, и без шор и узды в приниципе ни на что не способны). В результате у нас появилось определение ООП размером не менее трех печатных листов.
Инкапсуляция, полиморфизм и еще добрый десяток «основных понятий ООП» — прекрасно доступны во всех языках, от КОБОЛа до Хаскеля. Остальные — наследование, классы и прочие паттерны — никому нафиг не нужны (единственное разумное «наследование» вместо правильного решения — полиморфизма — реализовано в джаваскрипте).
То ООП, которое придумал Кай ко всему этому никакого отношения не имеет. То, которое предлагал Матц — тем более. Гослинг ну кхм.
В этом смысле, если выбросить в мусорную корзину бобмартиновщину и фаулерщину, — то инстансы тайп-классов в хаскеле — это хорошие, правильные объекты.
С чем рифмуется? Какая именно история?
Хороший MCP — на ⅔ состоит из Service Discovery. Три кита MCP — Prompts, Resources, Tools. И только первый из них отвечает за беседу с клиентом.
Ваше предложение обойтись без MCP — вероятнее всего, вызванное банальным непониманием, что такое MCP в принципе и как устроен протокол — это предложение писать код в кодах вместо высокоуровневых языков — в результате-то все равно все в коды превратится, так и давайте уберем лишние звенья.
Прекрасно. Набор инструментов, конечно, как у третьеклассника, ну да ладно. А через что Remote Assistant догадывается, как ему уточнить постановку задачи, или получить недостающую информацию в ходе процесса? У меня вот самописный MCP выдаёт более 50 инструментов и модель справляется. А у вас как? Вы останавливаете выполнение и «поднимаю сам или пишу тулзу под задачу в рантайме»?
Это детский сад, который поломается на первой же задачке посерьезнее «раскатить образ убунты по ста железякам».
Зиновий, вы очень тупой.
Впрочем, и так понятно было, зря я влез.
Service Discovery для SOAP (гуглить по Universal Description, Discovery, and Integration (UDDI)) изобрели 30 лет назад. В UDDI можно было поднять абсолютно новый сервис и все клиенты в ту же секунду про него знали и умели с ним общаться. Сервис!
Смысл этого заявления не сильно отличается от такого: «REST — это костыль, количество эндпоинтов статично, а количество записей в базе постоянно растет!!!111».
Смешно опасаться саботажа в ситуации, когда самая большая опасность — ужасающая некомпетентность.
Это очень смешной слоп, в котором единственный кусок «кода» — вызов терраформа, то есть в RAG нет нужды изначально. Остальное бла-бла-бла — ламерская вода. Разумеется, на HN он всем понравился. На хабре бы тоже зашел. Но не на тех форумах, где водятся профессионалы.
Какой инструмент у нас есть, чтобы обойтись без MCP для кодовой базы из 3М строк, написанных за 20 лет пятью разными командами?
grepиawk? Вы хоть знаете, что они такое?Терминология — мать порядка.
Начнем с того, что у термина «объектно-ориентированный язык» есть два практически прямо противоположных друг другу значения: аланокаевское и джеймсоногослинговое.
Вика предлагает определение, списанное под копирку у Лема из «Дневников Ййона Тихого»:
Инстансы тайп-классов в хаскеле очень сложно не назвать объектами по Гослингу.
И вообще, какой язык называть «объектно-ориентированным», а какой «функциональным» в 2026 году, когда в джаве уже не продохнуть от лямбд и ленивых стримов — это теософский спор, как про табы и пробелы.
Разбор потока байт по любому банковскому протоколу из сокета, например. Там кроме длинных строк и dynamic dispatch ничего нет.
Поскольку меня в консоли не забанили, помогу вам.