Shub
у нас существует некая "платформа", которую по уму надо растворить, т.к. они банально ничего не делают сейчас, новый проект не взял ни одной зависимости из этой "платформы", причем целенаправленно.
Shub
но говорить это вслух разумеется нельзя
AlexB
а я уже собирался гуглить и качать))))
Нормальная книга. Так-то можно все довести до маразма. Ее автор сейчас топит за кложур, кстати.
Vagif
у нас существует некая "платформа", которую по уму надо растворить, т.к. они банально ничего не делают сейчас, новый проект не взял ни одной зависимости из этой "платформы", причем целенаправленно.
Общие платформы, имхо, чаще губительны, чем помогают. Я сам по неопытности в прошлом грешил "общей платформой", теперь уверен, что решение об использовании соседнего корпоративного кода должно быть исключительной прерогативой разработчиков проекта. В моем нынешнем проекте мы используем 0 библиотек соседних команд.
Shub
На одной из прошлых работ была, кстати, подобного рода платформа и команда, которая ей занималась. Смотрю, что такое достаточно часто встречается.
я заметил, что в рунете и вообще в странах бывшего СНГ это менее распространенная проблема. не дошло, или может все-таки менталитет более здоровый
Shub
Общие платформы, имхо, чаще губительны, чем помогают. Я сам по неопытности в прошлом грешил "общей платформой", теперь уверен, что решение об использовании соседнего корпоративного кода должно быть исключительной прерогативой разработчиков проекта. В моем нынешнем проекте мы используем 0 библиотек соседних команд.
ну я лично родился в мире, где "писать платформу - это плохо" уже было аксиомой. мне довольно трудно представить, чем руководствовались люди, решившие запилить "платформу" как часть продуктового проекта, при том, что в самой компании уже была общая "платформа"
Vagif
Должен сказать, что поменял свое отношение я радикально. Еще десять лет назад я не просто верил в общие платформы, но хотел, чтобы меня посадили ответственным за общие библиотеки и я бы 100% времени этим занимался. Даже не знаю, как пришло осознание пагубности идеи. Видимо, сказался переход в проект в организацию, где была полная автономия, и все там в срок и успешно делалось без всяких общих платформ (хотя были отдельные попытки такие вещи внедрить, но инициаторы наталкивались на игнор)
Vagif
Причём ощутимо упоротая и старая платформа, надо сказать.
Почти все общие платформы - старые. Это одна из их проблем
Vladislav
critical failure @ restart как же надоел райдер уже господи
Vagif
Кстати, майкрософт мудро поступил, сделав класс string sealed. Сколько было бы имплементаций строк в общих платформах!
Shub
Почти все общие платформы - старые. Это одна из их проблем
вот у нас щас именно эта проблема. дофига проектов, которые взяли эту платформу в зависимости, очень страдают, так как платформа, как водится, не обобщенная и сама зависит от сотни других либ
Vagif
critical failure @ restart как же надоел райдер уже господи
А у меня он вдруг быстрее стал. Пожаловался, что performance страдает из-за Windows Defender, предложил добавить каталоги в игнор, и как-то поживее пошло. Не знаю, надолго ли. Вообще у меня он не валится. Тормозит просто и спу жрет
Shub
сейчас у нас идет титаническое усилие по переводу всего на докер, а платформа виндовс онли. она написана под полный фреймворк и из расчета, что сервис работает на виндовс
Ilya
Нормальная книга. Так-то можно все довести до маразма. Ее автор сейчас топит за кложур, кстати.
Блин, я уже который раз вижу вот это "Мартин топит за кложур, кстати". Что это означает? Что кложур не очень? Что Мартин не очень? Чувствую, что у меня недостаточно знаний для верной интерпретации информации.
AlexB
Общие платформы, имхо, чаще губительны, чем помогают. Я сам по неопытности в прошлом грешил "общей платформой", теперь уверен, что решение об использовании соседнего корпоративного кода должно быть исключительной прерогативой разработчиков проекта. В моем нынешнем проекте мы используем 0 библиотек соседних команд.
На позапрошлой работе платформа была - набор базовых классов, а под каждый продукт/страну нужно было их наследовать и допиливать. Вишенка на торте - классы эти были - нсервисбас хэндлеры/саги 😂 . Настолько замечательная идея оказалось, что всех авторов перевели пилить интерфейсы от греха подальше, а новый тим года 2 распутывал этот адский клубок.
Doge
И про зависимость от винды и большого фреймворка и про сложности с зависимостями и т.п.
Doge
Ну и невозможность приложения на этой красоте упаковать даже в виндовый докер
Shub
Блин, я уже который раз вижу вот это "Мартин топит за кложур, кстати". Что это означает? Что кложур не очень? Что Мартин не очень? Чувствую, что у меня недостаточно знаний для верной интерпретации информации.
есть группа поехавших, уверенных, будто выбранная система типизации что-то решает по большому счету. с их точки зрения поддержка языка с динамической типизацией дядей Бобом - это плевок в лицо. "будь ты проклят, ты всех нас предал" - такого плана
Doge
То есть я слабо представляю как можно продуктивно работать в средах, где у тебя даже нет возможности надежно переходить к обьявлением или, например, производить простейщие переименования и рефакторинги подобного рода
Vladislav
Падает
Shub
inb4 ваши аргументы не аргументы
Doge
https://arxiv.org/pdf/1901.10220.pdf
Это про code quality, а не UX разработчика
Shub
если UX разработчика не влияет на code quality - то это нерелевантный фактор, не так ли?
Doge
Речь про то, что если я не могу открыть абсолютно незнакомую код базу и спокойно лазить по ней целиком по хинтам, поиску и навигации в IDE - то это очень странно смотрится в 2020м году.
Doge
А в динамических языках такой возможности толком нет, даже в самых продвинутых IDE, увы.
Shub
давай мы сравним навигацию по CL проекту и навигацию по java + lombok?
Doge
назови хоть один динамический язык, в котором это нельзя сделать в 2020
Запросто, на js либах без тайпингов подобного рода навигация разваливается очень быстро даже в идее
Shub
Запросто, на js либах без тайпингов подобного рода навигация разваливается очень быстро даже в идее
на каждый случай развалившейся типизации в java у меня найдется как минимум один случай развалившейся навигации в С++ и жаве
Ilya
У меня райдер в дебаге пару раз отказывался переходить к объявлению интерфейса недавно...
Shub
кроме того, навигация по той же жаве не зависит от жавовской типизации, она зависит от умения идеешечки самостоятельно строить ast
Doge
на каждый случай развалившейся типизации в java у меня найдется как минимум один случай развалившейся навигации в С++ и жаве
Вот не знаю, стабильно пишу на всякой экзотической статике с сырыми плагинами и с подобной фигней не сталкиваюсь. Понадобилось на js написать и сразу пошло-поехало, как только дошло дело до либ без ts тайпингов.
Doge
Тут же ничего подсказать не могу, перейти к определнию метода не могу, поиск работает по всем символам, а не только релевантным и т.д. и т.п.
Shub
ну я верю, что так может быть, и даже верю, что у тебя это случилось. только я думал, что мы говорим про языки в принципе
Shub
а если говорить про языки в принципе, то тезису "в динамике нет навигации по коду" есть куча антитезисов
Shub
а так же куча примеров, когда навигации нет в статике тоже.
Doge
а если говорить про языки в принципе, то тезису "в динамике нет навигации по коду" есть куча антитезисов
Ну в принципе ничего не мешает восстанавливать типы в динамике самими IDE, чтобы нормально подсказывать, но только таких IDE ещё толком и нет.
Doge
ну конечно же нету. ты smalltalk видел?
Ну тут IDE и среда исполнения сшиты, это достаточно экстремальный кейс и не оч. применимый в текущем IT
Shub
Кложур очень хорошо, я б на нем писал. Мартин в целом норм, немного кэптан обвиос и любит поучать, но меня не напрягает.
хз, я че-то скептически настроен к hashmap driven development. раньше нормально было, щас че-то захотелось больше
Doge
CL + slime, clojure + cider
Я clojure + cider пробовал, он, увы, не дают желаемого экспириенса.
Shub
кроме того, ты начал с принципиальной точки зрения, мол, динамика по своей сути не может обеспечить навигации по коду
Shub
Я clojure + cider пробовал, он, увы, не дают желаемого экспириенса.
хаха, ну чудак, всей Молдаванке дает, а тебе не дает
Doge
хаха, ну чудак, всей Молдаванке дает, а тебе не дает
Ну я не знаю, опять поставить и записать видео про разницу в подсказках, навигации и т.п. между clojure + cider и какой-нибудь IDEA?
Shub
так давай все-таки определимся, в чем дело: никто не влил миллионы в разработку иде для динамики, или что динамика принципиально не может обеспечить навигации?
Крылатый
А об чём спор-то? О качестве кода?
Shub
Ну я не знаю, опять поставить и записать видео про разницу в подсказках, навигации и т.п. между clojure + cider и какой-нибудь IDEA?
я к тому, что ты уже второй раз приводишь свой частный случай как опровержение более общему аргументу
Shub
Если принципиально - то и для статики не может быть IDE сделано в большинстве случаев.
тогда что в твоем понимании эргономика и UX разработчика?
Doge
Если принципиально - то и для статики не может быть IDE сделано в большинстве случаев.
Потому что системы типов у очень большого числа языков оказываются полными по Тьюрингу, что приводит к закономерному эффекту, что всегда найдется участок кода, который компьютер подсказать не сможет.
Shub
я так понимаю, никто не в восторге от разработки, где надо в уме парсить код, чтобы знать, какого типа у нас переменная в малом контексте?
Doge
Т.е. даже та же джава полна по тьюрингу в своей системе типов, насколько я помню.
Shub
Потому что системы типов у очень большого числа языков оказываются полными по Тьюрингу, что приводит к закономерному эффекту, что всегда найдется участок кода, который компьютер подсказать не сможет.
иде в общем случае не пользуются системой типизации из языка. они его парсят как текст с регулярной грамматикой, потому что в общем случае большинство компиляторов не делятся информацией
Shub
ну недавно llvm стал делиться, у МС компилятор тоже может производить базу для навигации
Doge
иде в общем случае не пользуются системой типизации из языка. они его парсят как текст с регулярной грамматикой, потому что в общем случае большинство компиляторов не делятся информацией
Так тут как раз суть в том, что просто из кода на статически-типизрованном языке IDE могут извлечь куда больше нужной им информации
Roman
@eglyph ты хочешь сказать, что статическая типизация и мощность системы типов никак не помогают в разработке?
Shub
но те же жетбрейнз или нетбинз, претендующие на обобщенный иде, вынуждены писать свои инструменты
Shub
@eglyph ты хочешь сказать, что статическая типизация и мощность системы типов никак не помогают в разработке?
это не я хочу сказать, это хотят сказать авторы исследования по ссылке выше
Doge
так давай все-таки определимся, в чем дело: никто не влил миллионы в разработку иде для динамики, или что динамика принципиально не может обеспечить навигации?
И да, вон есть rubymine, pycharm и т.п., в бюджеты которых нормальные деньги влиты, но это что-то особо им не помогает в этом плане.
Shub
если речь лично обо мне, то я одинаково продуктивен в обоих лагерях, так сказать
Doge
это не я хочу сказать, это хотят сказать авторы исследования по ссылке выше
Там речь про code quality. И по достаточно своеобразной статистике собранной
Roman
не представляю, как можно быть настолько же продуктивным в большой скотобазе на динамическом языке
Shub
Там речь про code quality. И по достаточно своеобразной статистике собранной
никто не мешает оспорить их результаты. насколько мне известно, до сих пор никому не удалось, но вы попробуйте
Shub
не представляю, как можно быть настолько же продуктивным в большой скотобазе на динамическом языке
а как быть продуктивным в скодобазе со скриншота Айрата представляешь?