Anonymous
так это ошибка повторю. А не говнокод.
Anonymous
но да...
Snusmumriken
PVS Studio ловит такие ошибки в сишке/плюсах.
Anonymous
Но там не буде ошибки
Anonymous
потому что объект не изменится.
Anonymous
Ну точнее как. В 90% случаев это буде локальной ошибкой. Но я понял к чему вы.
Anonymous
Другой вопрос, в том чо это может и не быть ошибкй.
Snusmumriken
Но ругнуться надо.
Anonymous
Зачем?
Snusmumriken
Чтобы обратили внимание.
Anonymous
На стадии инит теста ты поймешь
Snusmumriken
Лол, нет.
Anonymous
да.
Snusmumriken
Ты не можешь покрыть тестами всё.
Snusmumriken
Где-то отловишь, но далеко не везде.
Anonymous
90% кода го покрывают тестами
Anonymous
среднем 80 % правда.
Snusmumriken
Ты знаешь сколько подобного кода и таких ошибок в не так часто используемой фигне в крупных проектах?
Snusmumriken
среднем 80 % правда.
Вот именно, а потом ты идёшь писать исью на годот что там с вулканом проблемы, потому что твоя проблема оказалась в тех 20% ))0
Anonymous
Ага, но вот люди кто перешли на го. Считают что в го тяжело писать говнокод, ошибки, и.т.д.
Snusmumriken
Потому что они нубасы и долбоёбы, и компилятор который тыкает их в базовое говно воспринимается как штука на 100% защищающая от говнокода.
Anonymous
Понятно. Гугл нубасы
Anonymous
:C
Snusmumriken
Не переводи стрелки.
Snusmumriken
Гугловцы разумеется не считают что в го тяжело писать говнокод ))0
Anonymous
Никаких стрелок. Все нубы..
Но давайте так
Snusmumriken
Кстати, попробуй тайпскрипт.
Anonymous
Я могу сложить число со строкой легко в питоне?
Anonymous
Да
Anonymous
Я могу накосячить с UTF?
Anonymous
Lf
Snusmumriken
Anonymous
Я могу сделать какую то херню на перегрузки операторов?Да
Anonymous
Я же смогу это сделать если захочу
Anonymous
Как минимум исключением
Aqendo
🎬 Code:
"one"+1
🚫 Error:
Traceback (most recent call last):
File "/data/data/com.termux/files/home/Hikka/hikka/modules/python.py", line 80, in ecmd
it = await meval(
File "/data/data/com.termux/files/home/.local/lib/python3.10/site-packages/meval/__init__.py", line 86, in meval
r = await locs["tmp"](**kwargs)
File "<string>", line 1, in tmp
TypeError: can only concatenate str (not "int") to str
Aqendo
Не можешь
Aqendo
Anonymous
Да? окей. __add__
Snusmumriken
Я могу сделать какую то херню на перегрузки операторов?Да
И это всё что ты описываешь — частные частности, что является хернёй на постном масле, потому что легко исправляется и покрывается тестами.
Существует огромное количество вещей с которыми не справляется строгий компилятор, и которые приводят к куда более тяжёлым последствиям.
Строгий компилятор это колёсики поддержки на велосипедике для детей. Это действительно хорошо. Если ты ребёнок или инвалид.
Но пора переходить к чуть более взрослым проблемам, тебе не кажется?
Anonymous
Так вот в том и ваш нюанс. Вы не знаете как пишут архитектуру на Го. И что там очень тяжело косячить.
Snusmumriken
А архитектуру на го делают точно так же, как и на любом другом языке.
Anonymous
Да?
Snusmumriken
Да.
Snusmumriken
Потому что архитектура это языконезависимая штучка.
Anonymous
Хорошо. Разница интерфейса го и явы какая?
Snusmumriken
Никакой принципиальной для архитектуры.
То что "одно где-то там можно лепить а другое где-то там нельзя" — не имеет отношения к делу.
Anonymous
а я про реализацию.
Anonymous
На самом деле я могу до бесконечности менять что то приводя к определенном интерфейсу.
Anonymous
Это даже не будет говнокодом.
Snusmumriken
Молодец, и это будет говнокодом ))
Anonymous
В чем?
Snusmumriken
Потому что я так сказал ))0
Snusmumriken
Не забываем про субъективность.
Anonymous
Ну аргумент конечно. Субъективность именно в том. Что большинству на нее плевать.
Anonymous
По этому все используют Unity
Anonymous
На самом деле мне всегда больше нравились языки где больше свободы.
И легче писать говнокод. Потому что это путь к крутым вещам.
Anonymous
Можно делать кртые оптимизации уменьшать код, лаконично что то делать.
Anonymous
Вот го антиговнокод платит тем что пошел ты нахрен с лаконичностьюю.
Anonymous
Но если в Java/ PHP / C# легко все поломать,отстрелить ногу.
А с С++ ходить по минному полю.
То в го ну царапины пофиксили мы молодцы.
Snusmumriken
Так вот, я из той категории людей, которых можно обозвать анархистами. Мне плевать на колёсики для велосипедика, они мешают мне делать резкие повороты. Мне не нравится статическая типизация (хотя строгая — на удивление норм), потому что это глупости для тех людей, которые не могут нормально абстрагировать куски архитектуры, так что приходится держать в голове больше 2-3 полей у 2-3 классов.
Я пишу кучу программ, и микросервисов и комплексной херни. И там куча говнокода, и я его вижу, и я его оставляю или иногда рефакторю. А ещё леплю сверху кучу говнокода.
Почему же так происходит? Потому что это жизнь, ёпта, она слишком дорога чтобы переписывать говно на чуть меньшее говно, чтобы через пол года меньшее говно стало пиздец говном. Куда рациональнее и эффективное просто держать приемлемый градус говна.
Snusmumriken
А ещё есть забавные шаблоны итераций: в самом начале были только строго типизированные языки. На них выросли сильные программисты, которые могли в голове разворачивать свои проги и дебажить в уме, и они начали придумывать динамические языки чтобы делать всё то же самое, но быстро и просто, как того требовал бизнес "быстра быстра нада чтобы было быстра".
На динамических языках выросло поколение говнопрограммистов, и бизнес-хуизнес столкнулся с потоком говна, приводящего иногда к развалу этого самого бизнеса. И бизнес-хуизнес, вместе с кучей высоколобых придурков, начали проталкивать обратно статическую типизацию и тесты и прочие колёсики поддержки инвалидов, чтобы хоть как-то придержать говнопоток.
На следующем поколении будет свежий приход к динамике, потому что средний уровень чутка подтянется, а бюрократические колёсики поддержки опять остоебут.
Snusmumriken
Snusmumriken
Не в меньшей степени кстати, этому способствуют инфоцыганские курсы типа гикбрейнсов, активные вопли "а Вася Пупкин в своём айти сидит перед комплюхтером туц-туц по клавиатуре и 300ккк/нсек заколачивает" и всякое такое прочее ))
Anonymous
Вопрос в том. Что как раз где то на 50 тысячи строчки кода. Вы уже не будете помнить весь путь той или иной переменной объекта и.т.д. С типами это легко понять, рефакторить , улучшать. Но для этого так же есть IDE и.т.д.
Другой вопрос в производительности, синтаксисе, удобстве, логичности и.т.д.
Если вы не знаете lua достаточно хорошо, вы не можете знать что копируется, а что нет.
И даже если вы знаете его хорошо, будут моменты когда вы будете сомневаться.
В Lua реже в python чаще.
Что делается там внизу, на уровне VM.
В строгих языках таких вещей меньше по этому можно проще писать производительный код.
ИМХО. Динамика для бизнес логики не больше 1к строк.
Все остальное статика.Я не хочу писать core на скриптовом языке. Потому что он не даст мне гарантий.
Гарантии нужны тогда когда ты пишешь в команде. Команда меняется часто это работа или opensorce.
Другой человек может быть сильнее или слабее вас в программировании.
Но го именно и решает эти проблемы. Однородности кода, глупых ошибок, единообразия и.т.д.
Без 200 строчек стайл гайда. Все интуитивно понятно.
Го это для всех, а если вам надо сделать магию.
ТО у вас два пути. Кодогенерация, рефлексия = у вас есть много магии.
Жаль что меньше чем у Rust / Nim / C/C++ /Zig но она есть.
И вот лично мне хотелось бы скриптовый типизированный язык и который можно встроить и у него была бы фича untyped.
Жаль его пока нет.
Опять же вопрос прикладной области. Где то риск ошибки мал, где то миллионы и миллиарды долларов.
Я ценю экосистему языка в первую очередь.
Лично мое ИМХО экосистема го лучшая.
Документация, библиотеки и в каком они виде. Как их можно установить.
Объем конечно , это отдельная проблема. Но это уже на совести самих разработчиков.
С другой стороны я вечно топлю. Дайте препроцессор , дженерики для методов, перегрузку всего и вся, макросы.
И тогда это будет простой язык для новичков и и крутой инструмент для сильных.
Увы этого не будет. Или надо самому написать.
Но то что сильных программистов нет...хм. Мне кажется это причина, потому что тяжело заработать если не делать как все.
Мало кому удается получить работу где он может делать что хочет и писать то что ему хочется.
Так получается говноигры, программы и.т.д.
Потому что Бизнес стал выше разума программиста.
И он диктует что использовать, а что нет.
Hello, World! 🎄
Snusmumriken
Вопрос в том. Что как раз где то на 50 тысячи строчки кода. Вы уже не будете помнить весь путь той или иной переменной объекта и.т.д. С типами это легко понять, рефакторить , улучшать. Но для этого так же есть IDE и.т.д.
Другой вопрос в производительности, синтаксисе, удобстве, логичности и.т.д.
Если вы не знаете lua достаточно хорошо, вы не можете знать что копируется, а что нет.
И даже если вы знаете его хорошо, будут моменты когда вы будете сомневаться.
В Lua реже в python чаще.
Что делается там внизу, на уровне VM.
В строгих языках таких вещей меньше по этому можно проще писать производительный код.
ИМХО. Динамика для бизнес логики не больше 1к строк.
Все остальное статика.Я не хочу писать core на скриптовом языке. Потому что он не даст мне гарантий.
Гарантии нужны тогда когда ты пишешь в команде. Команда меняется часто это работа или opensorce.
Другой человек может быть сильнее или слабее вас в программировании.
Но го именно и решает эти проблемы. Однородности кода, глупых ошибок, единообразия и.т.д.
Без 200 строчек стайл гайда. Все интуитивно понятно.
Го это для всех, а если вам надо сделать магию.
ТО у вас два пути. Кодогенерация, рефлексия = у вас есть много магии.
Жаль что меньше чем у Rust / Nim / C/C++ /Zig но она есть.
И вот лично мне хотелось бы скриптовый типизированный язык и который можно встроить и у него была бы фича untyped.
Жаль его пока нет.
Опять же вопрос прикладной области. Где то риск ошибки мал, где то миллионы и миллиарды долларов.
Я ценю экосистему языка в первую очередь.
Лично мое ИМХО экосистема го лучшая.
Документация, библиотеки и в каком они виде. Как их можно установить.
Объем конечно , это отдельная проблема. Но это уже на совести самих разработчиков.
С другой стороны я вечно топлю. Дайте препроцессор , дженерики для методов, перегрузку всего и вся, макросы.
И тогда это будет простой язык для новичков и и крутой инструмент для сильных.
Увы этого не будет. Или надо самому написать.
Но то что сильных программистов нет...хм. Мне кажется это причина, потому что тяжело заработать если не делать как все.
Мало кому удается получить работу где он может делать что хочет и писать то что ему хочется.
Так получается говноигры, программы и.т.д.
Потому что Бизнес стал выше разума программиста.
И он диктует что использовать, а что нет.
На 50 тысячной строчке кода, ты, при нормальном, интуитивном именовании полей и методов класса, сможешь по одному названию класса узнать все методы и внутренние объекты. Потому что ты в тысяче других программ делал то же самое и точно так же их именовал.
А то с чем ты работаешь конкретно СЕЙЧАС — достаточно держать рядом один-два файлика с конкретными классами.
Если ты можешь делать архитектуру с настолько минимальным количеством связей — поздравляю, ты справился.
Anonymous
Snusmumriken
Не важно что обозвать классом. Если это структура с функциями для работы с ней, по функционалу это тот же класс.
Anonymous
Хорошо что делает функция в которой еще десятка три функций
Snusmumriken
Она делает то, что описано в её названии.
Anonymous
Дом
Snusmumriken
Она делает дом.
Anonymous
Что делает дом?
Anonymous
Что есть внутри дома?
Snusmumriken
Насрать, у тебя есть дом. Точка. Всё.
Snusmumriken
Если там что-то ещё — функция неправильно названа.
Anonymous
Но что бы понять что внутри надо смотреть внизу...
Anonymous
Нет праильно
Snusmumriken
Нет, неправильно и это говнокод.