TGViewer
Channel Public Channel
igrishaev

igrishaev

@igrishaev_blog

Ivan Grishaev on everything // grishaev.me
Subscribers
688
Photos
212
Videos
8
Links
446
Recent Posts 15 shown
Post #1236 270
Естественная сложность никуда не уходит. Как правило, все что можно сделать – грамотно распределить ее. Принимаясь за работу, подумайте: действительно ли вы удаляете сложность или выдавливаете в другие места.
  • ❤ 3
Post #1235 341
Есть у меня идея, которую я называю “теория о несжимаемой сложности”. Звучит так:

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

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

Сюда же относятся микросервисы. Полагаю, сегодня очевидно всем: фрагментация сервисов не упрощает систему. Когда сервис А идет в сервис B, а тот в C и D, сложность устремляется в потолок. Нужен тулинг, чтобы отслеживать цепочки вызовов, находить сетевые задержки, воевать с сериализацией данных, находить тех, кто кого-то ди-доссит, разворачивать сложный CI. Где здесь упрощение?

В нулевых годах скрипт на PHP ходил в базу, собирал HTML-страничку и выплевывал клиенту. Сегодня на стороне клиента работает приложение, состоящее из сотен библиотек. На одну страничку совершается 50 аякс-запросов, после чего запускается локальный рендер. Что именно этим хотели упростить, я не знаю. Но зато знаю, что условная Джира загружается около 20 секунд. Когда я открываю вкладку с Джирой, то уже выработал привычку переключаться на что-то другое, чтобы дать ей прогрузиться в фоне.

Под теорию несжимаемой сложности подходит вся веб-разработка. В нулевые года мы писали на смеси HTML и неудачного языка – PHP. Сегодня мы пишем на смеси HTML и другого неудачного языка – JavaScript. Чтобы “упростить” процесс, Микрософт выкатила свой TypeScript, который тоже нужно учить, понимать, местами – бороться. За двадцать лет, после вложения адских денег и миллинов человеко-часов, мы в лучшем случае остались при своих.

В теорию вписываются не только айтишные, но и общие процессы. Скажем, 25 лет назад школьные олимпиады проводились просто – давали листок с заданиями, листок для чистовика, черновик, канцелярию – и все. Сегодня олимпиады проводят на сайтах образовательных платформ, а входить на них нужно через Госуслуги. Как айтишник я вижу, где именно упростили процесс – в проверке. Если раньше проверяли учителя, то теперь программа читает базу данных, сравнивает ответы с образцом и выставляет баллы – и все это за микросекунды.

Однако сложность никуда не делась: ее перекинули на учителей и детей. Должны быть компьютеры с интернетом. У ребенка должен быть телефон, почта, учетка на Госуслугах. Пароль от нее должен быть не менее 8 символов с решетками и долларами, при этом ребенок обязан помнить его, чтобы ввести на чужой машине. Спрашиввается: что именно этим упростили?

Я давно заметил то, что выражено в начале статьи: многие улучшения на самом деле не снижают сложность, а выдавливают ее на другой участок, перекладывают на чужие плечи. Дробим микросервисы – растет сложность их взаимодействия. Выносим логику на фронтенд – там ничего не работает, а мы даже не знаем об этом. Обложились технологиями – тонем в их несогласованности. Цифровизировали образование – втянули детей в цифровое болото, хотя должны были оттягивать этот момент. И так далее.

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

А теперь у нас эйай, и все сказанное умножается на бесконечность. Теперь на каждом участке что-то отчаянно “упрощают”: генерят код, тесты, скрипты, документацию. Обещают десятикратное повышение всего и вся, но пока что видно обратное. Если и раньше было трудно обуздать сложность, то теперь она льется через край.
  • ❤ 15
  • 👍 8
Post #1228 469
Игры (3). Покахонтас #games

Ненадолго вернусь к теме игр. С 8-битными играми закончили, перехожу к 16-битным (то есть Сеге). Первая игра на ней, достойная воспоминания — "Покахонтас".

Как ясно из названия, игра в точности повторяет мультфильм Диснея. Сделана она с теплотой и любовью, присущим ранним произведениям студии. Пейзажи, животные и герои нарисованы профессиональными аниматорами, качество картинки замечательное. Сохранены основные музыкальные темы, в том числе главная "Colors of the Wind".

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

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

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

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

За героиней следует ручной енот. Иногда управление переключается на него, чтобы проникать через норы и решать головоломки. Уровни излагают сюжет фильма: сначала мы знакомимся с лесом, встречаемся с Джоном Смитом, делаем вылазки в лагерь. Ближе к концу нужно успеть к месту казни до рассвета, чтобы его спасти.

Игра довольно короткая и проходится за 40 минут, однако в детстве я долго ей любовался. “Покахонтас” – целостное произведение: на деревья и водопады приятно смотреть, красивую музыку – слушать. Эта отличная работа, выполненная командой сценаристов, аниматоров и программистов. Как “Алладин”, только в другом ключе.

Если накатит на вас 16-битная ностальгия, знайте: “Покахонтас” будет отличным выбором.

https://www.youtube.com/watch?v=r02WpoY38jE
YouTube Pocahontas (Sega Genesis) Walkthrough Pocahontas walkthrough for Sega Genesis / Megadrive. Collected all amulet pieces and all berries. Its rather easy game except one really difficult jump at the waterfalls.
  • 🔥 6
  • ❤ 4
Post #1227 470
Post #1226 470
Пишут, что социальные сети проигрывают иски, связанные с детьми. Где-то соцсети даже признали вызывающими зависимость, то есть приравняли к сигаретам и алкоголю. Представители соцсетей вяло оправдываются и предлагают меры: ограничить доступ при помощи детских аккаунтов, привязанным к родительским.

У меня есть несколько мыслей по этому поводу.

Во-первых, к соцсетям я испытываю крайнее отвращение. Сидеть в них для меня – примерно как купаться в нечистотах. Понимаю, дело вкуса, но от одного вида VK или Фейсбука меня подташнивает. Так что да, я предвзят.

Во-вторых, тезис о зависимости поставлен совершенно верно. Топ-менеджеров и директоров по развитию не интересуют дети. Пусть дети торчат в телефонах до 4 утра, отвлекаются на уведомления, завидуют, ревнуют, смотрят рекламу, повторяют за популярными блоггерами. Это никого не интересует. Топ-менеджеру важно расширить продукт и поднять метрики, поэтому в ход идут все более хитрые инструменты, чтобы удержать ребенка у экрана.

Наконец, третье: детский аккаунт – это обман. Формально они будут созданы (где-то уже созданы), но пользоваться ими никто не будет. Почему? А потому, что я пробовал и знаю, что это такое.

Когда моему сыну еще не было 13 лет, он начал пользоваться смартфоном. Покупал и настраивал телефон, конечно, я. При входе в аккаунт я всегда указывал возраст старше 13, чтобы система не придиралась. И вот однажды решил проверить: что будет, если указать честно?

Гугл говорит: до 13 лет нужен детский аккаунт, который нужно привязать ко взрослому. Я попытался пройти процедуру и не смог. Нужно что-то сделать на детском телефоне, зайти в админку на своем телефоне, ввести пароль, код из смс, что-то подтвердить, взять обратно детский, что-то там нажать, потом еще раз подтвердить на родительском. Пайплайн очевидно не доработан: то ошибка, то бесконечный спиннер, то попробуйте еще раз. Сущий ад. Плюнул и указал возраст 16 лет.

Поэтому когда я слышу “детские аккаунты”, то лишь фыркаю – это обман. Квест пройдет только очень мотивированный родитель, который понимает айтишную байду. Обычный человек не будет разбираться. Ребенок укажет 16 лет, и система его пропустит. В итоге все довольны: у родителя не болит голова с настройкой аккаунта, ребенку не нужно долбить родителя, соцсеть собирает данные, топ-менеджер идет на повышение.

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

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

Будет ли соцсеть этим заниматься? Нелепый вопрос. Так что детский аккаунт – это подачка суду, чтобы утерлись. Да, сделали детские аккаунты. Да, настройка занимает двадцать экранов. Да, все по закону. Да, никто не пользуется. Нет, это не наша вина: виноваты тупые родители и ушлые дети.

Цинизм соцсетей и раньше был запредельным, а теперь просто рвет в небеса.
  • 👍 12
  • ❤ 2
  • 💯 1
Post #1225 650
Смотрел доклад. Хороший, но рассказчик злоупотреблял одним приемом: задавал вопросы в зал и просил поднять руки. И я вспомнил, что давно хотел об этом написать.

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

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

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

Сидя в зале или перед монитором, я не хочу быть дрессированной собакой. Я считаю, что уважил докладчика уже тем, что пришел. Я здесь, рассказывай, только пожалуйста, не заставляй поднимать руки. По той же причине мне не нравятся номера артистов с людьми из зала. Даже когда я смотрел маленьким КВН, мне не нравилось, когда выступающие обращались к членам жюри или Маслякову. Зачем? Им запрещено взаимодействовать, они смотрят и улыбаются.

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

А у вас есть такое? Поднимите руки те, кто не поднимает руки.
  • 💯 12
  • 😁 10
  • 👍 1
  • 👏 1
Post #1224 836
К одному из прошлых постов был комментарий, который я бы хотел обсудить отдельно.

В какой-то момент обратил внимание, что коллеги на ревью оставляют очень развёрнутые комментарии, написанные без единой орфографической ошибки. Думаю – неужто разработчики резко научились выражать мысли? Потом дошло, что чуваки просто скармливают пуллреквест элэлэмке и постят её ответ (при том что в гитлабе есть кнопка "запросить ревью у ИИ"). И почему-то это очень неприятно (хотя комментарии преимущественно по делу), но я для себя не могу сформулировать, почему именно.

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

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

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

Если говорить конкретно о комментариях нейросети, которые коллеги выдают за свои, то они напоминает вот что. Каждый из нас совершал такую ошибку: заходил в организацию и пытался попасть в директору. На входе охранник или вахтер спрашивают: вам по какому вопросу? Ты как дурачок выкладываешь свой вопрос. Охранник внимательно слушает и отвечает: по понедельникам директор не принимает, и вообще он на месяц в отпуске. Зачем тогда было спрашивать причину визита? Просто чтобы развлечься: человеку скучно, хочется послушать чужие дела. Такой у него характер, нравятся подобные вещи, что поделаешь.

Ребята, которые выдают ревью нейросети за свое, в сущности, такие же. Пройти мимо – скучно, и хочется как-то о себе напомнить, посмотреть на чужую реакцию: как он будет выкручиться?

Очевидно, если человек запрашивает мнение нейросети, он не разбирается в вопросе. Нужно ввести это в контекст. Этичный комментарий звучал бы примерно так: "дружище, я не вникал в тему, но нейросеть говорит сделать так. Я вижу, что ты сделал по-другому и поэтому спрашиваю, чтобы лучше понять. Этот коммент на твое усмотрение."

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

Так что вот почему машинные комменты так выводят. Будь нейросеть трижды права, вы не этичны. И тут вам нейросеть не поможет.
  • 👍 23
Post #1223 907
В этот светлый день не помешает вспомнить, как пишутся праздники-даты. Если число пишется прописью, оно принимает на себя заглавную, а месяц пишется со строчной. Пример: Третье сентября. Если число пишется цифрой, заглавная переходит к месяцу: 3 Сентября. Не перепутайте!
  • ❤ 6
  • 👍 4
  • 👎 2
  • 👌 2
Post #1222 733
Прогресс не стоит на месте, и все чаще я сталкиваюсь с результатом вайб-кодинга. Сначала я хотел написать “с нейрослопом”, но передумал. Кажется, это слово считается обидным: людям неприятно, когда их работу называют помоями, поэтому обойдемся нейтральным термином.

Я смотрю на результат вайб-кодинга и не знаю, что с ним делать. Во-первых, объемы: текущий PR, что передо мней, включает 3200 новых строк. Вдумчиво их просмотреть – это сорок минут мозговой деятельности, а если учесть набор комментариев – то весь час.

Далее, комментарии. Набирая их, понимаешь, что автор не будет их читать. В лучшем случае он скормит их модели и скопирует ответ, но скорее всего просто проигнорирует.

Качество сгенерированного кода посредственное. Код раздут, ему не хватает краткости. Я не говорю о стремлении записать все в одну строку; речь о той краткости, при которой код передает идею. Вместо встроенной функции – свой костыль: на момент обучения модель не знала о возможности языка. Вместо одного класса – два: абстракция и транспорт, хотя можно было свести к нескольким функциям. В коде на Питоне везде проверки: это словарь? это строка? это число? И много другого в том же ключе: приемлемо, но лучше исправить. Ощущение, что код писал джуниор с заявкой на мидла.

И тут возникает момент: был бы автор человеком, мы бы сели и разобрали все минусы. В следующий раз он напишет код лучше, а через какое-то время ему можно будет доверять. А вот что делать с коммерческой моделью – я не знаю. Автор очевидно не хочет учиться сам. Зачем мне тратить час на объяснение недостатков? С таким же успехом я могу объяснять их уборщице или коту.

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

Другими словами, код теперь как файл .psd. Хочешь поправить — покупай подписку на Фотошоп. Нет денег? Лох и неудачник, вон из профессии.

Возникает противоречие: как быть, если кто-то (например я) не пользуется моделями. Как править этот код? Разворачивать окружение, переходить на вайб-кодинг? Не знаю. Лично я не собираюсь этого делать и, наверное, пересмотрю место работы, если слопа станет все больше.

Уже на этом этапе видна зависимость от моделей и подписок, в которую впадают разработчики. Чтобы поправить код, произведенной моделью, нужна модель. И тут я удивляюсь: неужели никто не видит параллели? Нам же известно понятие “вендор-лок” и его последствия, ведь так? Разве эти ваши клоды-копайлоты не вендор-лок? И вы, друзья-элэлэмщики, не только садитесь задницей на иглу все глубже и глубже, но и затягиваете других.
  • 👍 33
  • 💯 3
  • 😢 2
  • ❤ 1
  • 🔥 1
Post #1221 645
Когда что-то не работает, очевидное решение в том, чтобы починить. Второе неочевидное – отказаться. Чем старше становлюсь, тем чаще отказываюсь от того, что ломается. Разумеется, тезис слишком абстрактный и решается по ситуации. Но часто отказ не рассматривают в принципе и чинят одно и то же годами. Не надо так: отказ и пересмотр очень важны.
  • 🔥 9
  • 👍 1
Post #1220 982
Читаю Конфуция. Вот какой случай напомнил о нем.

Жил в Америке ультра-патриот. Трамп, МАГА, все дела. Потом женился на русской эмигрантке, и пара поехала в отпуск. Супруга как раз продлевала визу, и оказалось, что старый документ уже недействителен, а новый еще не выдали.

В аэропорту к паре подошли представители ICE – Immigration and Customs Enforcement (иммиграционная и таможенная служба США). Тут важно понимать контекст. Формально ICE борется с незаконной миграций, однако при Трампе штат расширили на порядок, чтобы проводить облавы. На работу в ICE устраивается отребье вроде бывших военных, таксистов и охранников. Мало того, что эти люди озлоблены на всех; так еще государство дает им в руки летальное оружие, чтобы задерживать мигрантов.

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

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

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

История пары на этом не кончилась: им еще ходить по инстанциям в браслете и доказывать правоту. Однако оставим их и подумаем над другим вопросом: при чем же тут Конфуций?

При том, что примерно в 680 году ДО нашей эры (то есть 2700 лет назад) Конфуций вывел формулу человеколюбия: не делай другим того, чего не желаешь себе. Разумеется, и до Конфуция эту мысль высказывали в том или ином виде, но он возвел ее в абсолют. На человеколюбии держится все учение Конфуция.

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

Но когда в жернова попадает близкий человек, все меняется. Товарищ Сталин Трамп, произошла чудовищная ошибка…

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

За последние 2700 лет люди не придумали ничего лучше этой формулы. Остальные религии и учения – просто ее повторы. Например, формула целиком вмещает десять христианских заповедей: почитай родителей, не укради, не убий… В самом деле: хочешь, чтобы дети тебя уважали? Уважай своих родителей. Не хочешь, чтобы у тебя крали? Не кради сам. Не хочешь быть убитым? Не убий.

И так далее.

Глядя на историю людей, иной раз поражаешься. Мысль высказали 2700 лет назад и с тех пор повторяют во всех вариациях. Понять ее – это ведь не вырастить плавник или третью руку: тут не нужны тысячелетия. Но судя по текущей обстановке, до понимания формулы осталось еще очень и очень долго.
  • 👍 20
  • ❤ 8
  • 👎 3
  • 😁 1
Post #1218 903
Когда вы увозите ребенка к бабушке в деревню, скорее всего там нет микроволновой печи, кондиционера, интернет-канала на 4К и других полезных вещей. Но никто не сомневается, что ребенку в деревне полезно: речка, солнце, животные. Отдохнет от гаджетов, помоется в дачном душе и вообще – не развалится.

Так и здесь. Да, чего-то не хватает, но не развалитесь. Можно и на Кложе писать хороший софт, зарабатывать и получать удовольствие. Да и не только на Кложе: я бы с удовольствием взялся за коммерческий проект на Common Lisp или Cobol — да на чем угодно! Нет тулинга? Не беда: либо обойдусь, либо напишу свой.

С таким настроем легко жить и смотреть в будущее.
  • ❤ 16
  • 👍 7
Post #1217 727
Если я правильно понимаю ты писал (пишешь?) на питоне в том числе. Просто я немного поглядываю что происходит в мире clojure и вижу, люди как-то справляются без linter-ов, typechecker-ов и без такого инструмента, как uv (это менеджер интерпретатора, зависимостей проекта и виртуального окружения) в мире python.


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


До прихода в Кложу я много писал на Питоне. Сейчас, хоть и меньше, тоже приходится: на работе есть Python-лямбды и скрипты. Питон — популярный язык, и я прибегаю к нему в случаях, если нужно что-то продемонстрировать для широкой аудитории.

Если отвечать на вопросы буквально, то да: тулинг Кложи не дотягивает до Питона. Для него созданы десятки линтеров и чекеров, а к каждому — еще столько же плагинов. Есть Jetbrains с Pycharm, которая выводит типы и предлагает автокомплит на любой чих. Программирование на Питоне в Pycharm стало как в Джаве — все типы подхватываются, и возникает ощущение, что в языке строгая типизация. Что касается uv и uvx, то я не застал их, но знаю, что это мощные средства.

До этого изобилия Кложе далеко как до Луны. IDE нет, есть только плагины к редакторам. Я пользуюсь связкой Emacs + Cider, но понимаю, что освоить ее новичку трудно. Автокомплит каждый настраивает как может. Проверку синтаксиса в полете и прочие удобства — тоже. Централизованным решением вроде Jetbrains даже не пахнет, и вряд ли оно когда-либо появится.

Не все так плохо с линтерами. Есть весьма развитый clj-kondo, который отлавливает много ошибок, например неверное число аргументов, необъявленные переменные и так далее. Суммарно кложурных линтеров наберется с десяток, и если использовать хотя бы пару из них, это решит некоторое число проблем. Также есть форматтеры кода по определенным правилам.

Существует кложурный LSP сервер (Language Server Protocol). Во многих редакторах LSP-клиент идет из коробки (VS Code, Emacs), так что здесь наблюдается развитие. С LSP у вас будет автокомплит, переход по коду и остальные базовые вещи.

В Кложе есть REPL, который закрывает много проблем. REPL основан на том положении, что единственный способ доказать, что код работает – это запустить его. Бывает, что код на Джаве выглядит корректно, но не работает. Непойманное исключение, ошибка индекса в массиве, NPE и так далее. Все это проверяется на практике, компилятор не поможет. Будет глупо оправдываться тем, что компиляция прошла: какая разница, если прод падает?

Зато REPL позволяет выполнить код в редакторе и отловить подобные случаи. Кстати, замечаю вот что: все больше джавистов топят за TDD – разработку от тестов. Парни не понимают, что TDD – это прокисший REPL, своего рода костыль, чтобы поскорее запустить код. В Джаве нет репла, но есть зеленая кнопочка Run, которая появляется в Main- и Test-классах. Нажатие этой кнопочки – просто убогий способ запустить код и ничего больше.

REPL не отменяет тестов, их пишут – юнит-, интеграционные и так далее.

Если переходить на Кложу с языков вроде Питона или Джавы, будет неудобно. Там у вас уютный Jetbrains, который по одной клавише угадывает экран кода. Здесь — самосбор: плагины к редактору, запуск линтера из командной строки. Зачем все это?

Затем, чтобы выйти из зоны комфорта, увидеть разнообразие, попробовать себя в чем-то другом. IDE и тулинг на все случаи жизни — это здорово, но нельзя на них замыкаться. Не вся работа делается в IDE по подписке. Когда Рич и Кен делали Unix и Си, разве были у них средства, аналогичные нашим? Они сами написали линтеры, парсеры, чекеры и прочие обвязки. А как написали IDE без IDE?

Удобства – это хорошо, но плохо, когда зависишь от них. Если точнее, плохо, когда кругозор сужается до той степени, когда жизнь без удобств становится немыслимой. Речь не о том, чтобы полностью от них отказаться. Но полезно быть в состоянии что-то сделать без привлечения мощных средств.
  • 👍 12
  • ❤ 1
Older posts →

About this channel

How can I read @igrishaev_blog without a Telegram account?
TGViewer shows the public web preview Telegram publishes for igrishaev: recent posts, photos, videos and the subscriber count, with no app, login or account.
How many subscribers does igrishaev have?
igrishaev (@igrishaev_blog) has 688 subscribers on Telegram, refreshed roughly every 30 minutes.
Does igrishaev know I viewed it here?
No. Public channel previews carry no viewer identity, and TGViewer has no accounts or tracking of what you look up.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →