Противники наследования
155
76
Pudgewerksaw сказал(а):↑Да и компилить его ещё под всевозможные платформы спс говна пожрал.
Легче питон 40мб вместе со скриптом отправить.
Не говоря уже о том что эти бинарные личности которые не терпят никакие среды выполнения объективно шизы. Ведь они живут в 91 году видимо
Нажмите, чтобы раскрыть...не, бинарники это удобно
еще лучше статически упакованные бинари
Pudgewerksaw сказал(а):↑Только нафиг не нужно 2020 год на дворе.
Конечно это приятный бонус. Но называть это плюсом когда у языка кроме этого исключительно минусы это преступление.
Нажмите, чтобы раскрыть...ну для меня это deal-breaker
я не хочу ждать когда JVM запустится или CLR, Node и прочий ужас, как пользователь
я не хочу знать как ваш там язык устроен, какая там система сборки и что за интерпретатор там используется
я не хочу это ставить себе на компьютер и возиться с тем, что оно чего-то там не видит
весь этот киберсекс, который вы устраиваете пользователям, отказываясь от бинарей
мне, как пользователю должно быть насрать на чём вы там написали свою программу
я хочу зайти в releases, скачать бинарь под мою систему или получить его через пакетный менеджер, закинуть его на флешку
и забыть о вашем существовании
в худшем случае должна быть инструкция как это скомпилировать руками
с Go я как пользователь, который на этом языке не писал, не встречал проблем so far
я делал git clone, go чёт там и вот мои бинарники — красота
я всё это сношу с компа и кидаю на флешку
YoshkinKot сказал(а):↑https://github.com/gokcehan/lf/blob/master/app.go
ну вот посмотри
ну вроде выглядит как типичная C-подобная ботва
Нажмите, чтобы раскрыть...Да вопрос даже не про то, как код выглядит, а скорее как язык на практике применяется.
Типа, написать обработку огромной кучи текста на питоне - это дело пары вечеров, да, он будет дико медленным, поэтому ещё пару вечеров потребуется, чтобы задачу распараллелить каким-то околооптимальным способом, и он останется все равно довольно медленным.
Но зато мне не надо будет ничего кроме питона, абсолютно никаких сторонних библиотек на сервере, ну, и я могу просто загрузить в репозиторий скрипт, который каждый пользователь сможет потом запустить из консоли или даже самостоятельно отредактировать при желании.
Если на Go можно разрабатывать примерно так же быстро, как на питоне, не надо параллелить код, чтобы получить вразумительную производительность, у него досточно богатая библиотека из коробки, без необходимости что-то дополнительно скачивать (это не всегда возможно, некоторые компании секьюрнее других), и бинарники выходят не супержирными после компиляции, то окей, можно попробовать им пользоваться для таких целей.
YoshkinKot сказал(а):↑ну для меня это deal-breaker
я не хочу ждать когда JVM запустится или CLR, Node и прочий ужас, как пользователь
я не хочу знать как ваш там язык устроен, какая там система сборки и что за интерпретатор там используется
я не хочу это ставить себе на компьютер и возиться с тем, что оно чего-то там не видит
весь этот киберсекс, который вы устраиваете пользователям, отказываясь от бинарей
мне, как пользователю должно быть насрать на чём вы там написали свою программу
я хочу зайти в releases, скачать бинарь или получить его через пакетный менеджер, закинуть его на флешку
и забыть о вашем существовании
Нажмите, чтобы раскрыть...Обычно секс с бинарями и происходит из-за миллиарда архитектур платформочпецифичного кода и так далее. А остальные минусы не критичны.
Да и aot так и так уже везде внедряются, в c# например уже есть aot.
Это к тому что не надо популизировать GOвно из-за одной незначительной фичи, иначе это останется с нами навсегда как джава и с++ из-за бесконечно легаси. Гоу надо запретить на международном уровне
YoshkinKot сказал(а):↑мне, как пользователю должно быть насрать на чём вы там написали свою программу
Нажмите, чтобы раскрыть...Вооо, вот в чём и вопрос.
А мне как программисту должно быть насрать, что находится на удалённом сервере моей компании, я не хочу лишний раз общаться с админами и секьюрити питон есть в любом дистрибутиве RHEL и в нём из коробки есть довольно много, а вот про Go я не думаю, что такое можно сказать
Funcrusher Plus сказал(а):↑Вооо, вот в чём и вопрос.
А мне как программисту должно быть насрать, что находится на удалённом сервере моей компании, я не хочу лишний раз общаться с админами и секьюрити питон есть в любом дистрибутиве RHEL и в нём из коробки есть довольно много, а вот про Go я не думаю, что такое можно сказать
Нажмите, чтобы раскрыть...ну я-то про CLI тулзы говорю
типа lf, lazygit, vim, btop, tmux и всё в таком духе
приложения которые многократно ежедневно используются в комбинациях друг с другом обмазанных башем
QlyouQwa сказал(а):↑он не говорил что это плохо, он сказал что без этого спокойно делаются задачи
для чего мне наследоваться от базового абстрактного класса допустим? чтобы получить базовые методы? так это можно сделать и без наследования от этого класса
он об этом и говорит, не пойму че тебе смешно)
Нажмите, чтобы раскрыть...Мне прям интересно где и кем ты работаешь) есть модель напрмиер. В которой большая часть уже реализована, а тебе надо просто отнаследоваться и переопределить то, что нужно в твоей реализации. Вместо этого ты почему-то предлагаешь делать все с нуля и не понимаешь, что здесь смешного?)
Salovar сказал(а):↑Мне прям интересно где и кем ты работаешь) есть модель напрмиер. В которой большая часть уже реализована, а тебе надо просто отнаследоваться и переопределить то, что нужно в твоей реализации. Вместо этого ты почему-то предлагаешь делать все с нуля и не понимаешь, что здесь смешного?)
Нажмите, чтобы раскрыть...Раз интересно, то работаю в бигтехе. Мне до сих пор непонятно че тебе смешно, если ты написал то же самое что и в первый раз, только развернуто.
В смысле делать все с нуля, ты понимаешь вообще чем наследование отличается от композиции? Зачем мне что-то писать с нуля и наследоваться, если я эту модель могу встроить там где мне нужны поля и методы этой модели? Зачем мне что-то переопределять для своей реализации, если я могу просто дополнить? А если придется полностью переопределять конкретные методы, то это по-моему говно, а не модель.
Salovar сказал(а):↑Мне прям интересно где и кем ты работаешь) есть модель напрмиер. В которой большая часть уже реализована, а тебе надо просто отнаследоваться и переопределить то, что нужно в твоей реализации. Вместо этого ты почему-то предлагаешь делать все с нуля и не понимаешь, что здесь смешного?)
Нажмите, чтобы раскрыть...Жесть ты говно пилишь
Salovar сказал(а):↑Мне прям интересно где и кем ты работаешь) есть модель напрмиер. В которой большая часть уже реализована, а тебе надо просто отнаследоваться и переопределить то, что нужно в твоей реализации. Вместо этого ты почему-то предлагаешь делать все с нуля и не понимаешь, что здесь смешного?)
Нажмите, чтобы раскрыть...В ГО это спокойно решается
Встроил класс А в класс Б
Переопределил в Б то, что тебя неустраивает из А
kiesel сказал(а):↑Жесть ты говно пилишь
Нажмите, чтобы раскрыть...поподробнее) расскажи, что ты пилишь)
haHAA сказал(а):↑В ГО это спокойно решается
Встроил класс А в класс Б
Переопределил в Б то, что тебя неустраивает из А
Нажмите, чтобы раскрыть...а давай скажем это другими словами. пронаследовался Б от А, переопределил что не устраивает. и в чем отличие от наследования?) в названиях?)
QlyouQwa сказал(а):↑Раз интересно, то работаю в бигтехе. Мне до сих пор непонятно че тебе смешно, если ты написал то же самое что и в первый раз, только развернуто.
В смысле делать все с нуля, ты понимаешь вообще чем наследование отличается от композиции? Зачем мне что-то писать с нуля и наследоваться, если я эту модель могу встроить там где мне нужны поля и методы этой модели? Зачем мне что-то переопределять для своей реализации, если я могу просто дополнить? А если придется полностью переопределять конкретные методы, то это по-моему говно, а не модель.
Нажмите, чтобы раскрыть...в курсе. а вот зачем ты наследование и композицию ставишь в один ряд - хз. точно у меня каша в голове? щас бы принципиально разные вещи зачем-то сравнивать.
Salovar сказал(а):↑а давай скажем это другими словами. пронаследовался Б от А, переопределил что не устраивает. и в чем отличие от наследования?) в названиях?)
Нажмите, чтобы раскрыть...Наследование это отношение классов Б и А в формате "является". Б является А, поэтому в функцию, где аргумент типа А, прокинуть объект типа Б
Композиция это отношение классов Б и А в формате "есть/имеет". У класса Б есть внутри объект А, который можно использовать. Условно у класса А есть метод "абоба": в ГО при анонимном встраивании (композиции) можно встроить в Б класс А и вызывать метод "абоба" таким образом: б.Абоба, а не б.а.Абоба
Ну и очевидно ты из-за формата "еcть/имеет" не можешь прокидывать в функцию, как в первом абзаце
Мне нравится, что язык не дает тебе высирать огромные иерархии классов, как в джаве
haHAA сказал(а):↑Наследование это отношение классов Б и А в формате "является". Б является А, поэтому в функцию, где аргумент типа А, прокинуть объект типа Б
Композиция это отношение классов Б и А в формате "есть/имеет". У класса Б есть внутри объект А, который можно использовать. Условно у класса А есть метод "абоба": в ГО при анонимном встраивании (композиции) можно встроить в Б класс А и вызывать метод "абоба" таким образом: б.Абоба, а не б.а.Абоба
Ну и очевидно ты из-за формата "еcть/имеет" не можешь прокидывать в функцию, как в первом абзаце
Мне нравится, что язык не дает тебе высирать огромные иерархии классов, как в джаве
Нажмите, чтобы раскрыть...что тебе мешает создать класс с двумя объектами классов Б и А? ничего.
Salovar сказал(а):↑а давай скажем это другими словами. пронаследовался Б от А, переопределил что не устраивает. и в чем отличие от наследования?) в названиях?)
Нажмите, чтобы раскрыть...в том что в композиции ты не можешь на это смотреть полиморфно
ну условно class Derived : class Base
Base* ptr = new Derived{чот там};
ну и это короче проблема, потому что часто ты конечно не хочешь ничего подобного
потому что это означает, что ты теперь всё должен поддерживать, что поддерживает Base
а ты не хочешь эт делать ваще
Salovar сказал(а):↑ахахахах. то есть наследование от абстрактного базового класса это плохо?) мда))) дай угадаю, зп 300к в секунду?)
Нажмите, чтобы раскрыть...Если ты поподдерживаешь лютейшее легаси (а ты, я так понял, джавист) потом поймешь, какая же жопная боль с этим наследованием
А вообще никто не говорит, что это плохо, везде свои издержки. Всякие Мартины Фаулеры могут идти лесом со своими советами, когда у тебя сроки сгорели еще неделю назад)
Но на интерфейсах и утиной типизации оч приятно писать код, без этих ваших наследований)
Artikon90 сказал(а):↑Если ты поподдерживаешь лютейшее легаси (а ты, я так понял, джавист) потом поймешь, какая же жопная боль с этим наследованием
А вообще никто не говорит, что это плохо, везде свои издержки. Всякие Мартины Фаулеры могут идти лесом со своими советами, когда у тебя сроки сгорели еще неделю назад)
Но на интерфейсах и утиной типизации оч приятно писать код, без этих ваших наследований)
Нажмите, чтобы раскрыть...А что в моих словах заставило тебя думать, что я джавист? У меня си, с++, питон в основном. Вся библиотека qt на наследовании. TouchGFX исключительно на наследовании. А композиция как архитектурное решение исключительно может рассматриваться.
Tor4illa сказал(а):↑А какой нормальный язык для ровных типов? Ну чтоб не зашквар как ГОvno
Нажмите, чтобы раскрыть...С++ хоть и худший, но это все равно язык для ровных типов.
Еще языки для ровных типов известные лично мне: C#, Kotlin, Python. C.
C++ прощается потому что это динозавр очевидно многое из того что сделало его страшным для того времени таким не считалось. Go же уникален тем что это современный язык, но при этом такое говно.
ke1evra сказал(а):↑поэтому нужно писать на ассемблере
Нажмите, чтобы раскрыть...Как человек, который работает в эмбедед - ассемблер околомертвый.
Pudgewerksaw сказал(а):↑С++ хоть и худший, но это все равно язык для ровных типов.
Еще языки для ровных типов известные лично мне: C#, Kotlin, Python. C.
C++ прощается потому что это динозавр очевидно многое из того что сделало его страшным для того времени таким не считалось. Go же уникален тем что это современный язык, но при этом такое говно.
Нажмите, чтобы раскрыть...Хз что ты называешь ровным типом, но питон и си в одном предложении выглядит дико
Тема закрыта