Size: a a a

2021 April 03

CD

Constantine Drozdov in Lisp Forever
Dmitry Plesovskykh
сложные синтаксические правила (неочевидные и в целом странные), поддержка огромного слоя совместимости (легаси), дроч с выделением и освобождением памяти, убогие инструменты типа препроцессора и прочие другие, которые надо объяснять что "в современном С++ используются только вот в таких вот случаях", очень стремная система типов, сложный порядок приоритетов операций, до (относительно) недавнего времени отсутствие тех или иных базовых для фп языков вещей.
> сложные синтаксические правила
какое-то оценочное суждение, обычный С-грамматический язык до понимания проблем совмещения префиксов с суффиксами
> поддержка огромного слоя совместимости (легаси)
опять какое-то оценочное суждение, это мусор до тех пор, пока вы не хотите написать код, который через 15 лет скомпилируется
> убогие инструменты типа препроцессора
претензии к существованию инструмента абсурдна - никто не заставляет им пользоваться
> очень стремная система типов
можно афинные как в расте, только потом окажется, что любая реализация SSO строки содержит ветвление в доступе по индексу (замеры прошлого обсуждавшего это товарища 10% замедление производительности)
> сложный порядок приоритетов операций
никогда не видел проблем с этим, кроме специально созданных
> до (относительно) недавнего времени отсутствие тех или иных базовых для фп языков вещей
а это и не фп язык
источник

DP

Dmitry Plesovskykh in Lisp Forever
это я еще не сказал о том, что начинающему придется постоянно думать о странных и плохо описывающих его задачу типах, вместо самого алгоритма. в динамическом языке он будет держать контекст в голове, и возможно в комментариях, а в С++ придется еще держать в уме и то, как именно система типов в твоей программе НЕ описывает типы в твоего голове, в чем их различия и как их следует учитывать. при этом изначальный сложный (самый обычный) тип придется все так же удерживать в голове, статика тут не поможет.
источник

DP

Dmitry Plesovskykh in Lisp Forever
Constantine Drozdov
> сложные синтаксические правила
какое-то оценочное суждение, обычный С-грамматический язык до понимания проблем совмещения префиксов с суффиксами
> поддержка огромного слоя совместимости (легаси)
опять какое-то оценочное суждение, это мусор до тех пор, пока вы не хотите написать код, который через 15 лет скомпилируется
> убогие инструменты типа препроцессора
претензии к существованию инструмента абсурдна - никто не заставляет им пользоваться
> очень стремная система типов
можно афинные как в расте, только потом окажется, что любая реализация SSO строки содержит ветвление в доступе по индексу (замеры прошлого обсуждавшего это товарища 10% замедление производительности)
> сложный порядок приоритетов операций
никогда не видел проблем с этим, кроме специально созданных
> до (относительно) недавнего времени отсутствие тех или иных базовых для фп языков вещей
а это и не фп язык
мне не очень интересен этот холивар, но из ваших ответов явно видно, что вы упускаете изначальный контекст обсуждения - про нормальный язык для обучения детей основам программирования
источник

CD

Constantine Drozdov in Lisp Forever
Dmitry Plesovskykh
это я еще не сказал о том, что начинающему придется постоянно думать о странных и плохо описывающих его задачу типах, вместо самого алгоритма. в динамическом языке он будет держать контекст в голове, и возможно в комментариях, а в С++ придется еще держать в уме и то, как именно система типов в твоей программе НЕ описывает типы в твоего голове, в чем их различия и как их следует учитывать. при этом изначальный сложный (самый обычный) тип придется все так же удерживать в голове, статика тут не поможет.
>  как именно система типов в твоей программе НЕ описывает типы в твоего голове
напоминаю, мы говорим про язык, который в принципе может компилировать Idris в строковых литералах
источник

DP

Dmitry Plesovskykh in Lisp Forever
Constantine Drozdov
>  как именно система типов в твоей программе НЕ описывает типы в твоего голове
напоминаю, мы говорим про язык, который в принципе может компилировать Idris в строковых литералах
вы говорите явно о чем-то своем
источник

CD

Constantine Drozdov in Lisp Forever
Dmitry Plesovskykh
вы говорите явно о чем-то своем
вы когда-нибудь на С++ программировали что-нибудь сложнее Hello, world?
источник

DP

Dmitry Plesovskykh in Lisp Forever
да. но к чему вопрос?
источник

a

anton in Lisp Forever
причем тут лисп, казалось бы
источник

CD

Constantine Drozdov in Lisp Forever
Dmitry Plesovskykh
да. но к чему вопрос?
к тому, что список ваших претензий к языку скорее соответствует случаю, когда вы этим языком не пользовались и его настоящих проблем не знаете
источник

CD

Constantine Drozdov in Lisp Forever
странная система типов это когда List<Integer> кастуется к List<Object>
источник

DP

Dmitry Plesovskykh in Lisp Forever
Constantine Drozdov
к тому, что список ваших претензий к языку скорее соответствует случаю, когда вы этим языком не пользовались и его настоящих проблем не знаете
вы кроме того, что полностью утеряли контекст обсуждения, так еще и делаете достаточно глупые выводы и притягиваете за уши обоснование каких-то собственных предубеждений. если С++ так сильно ломает мозг, то детям его точно не стоит изучать в качестве первого языка.
источник

a

anton in Lisp Forever
Constantine Drozdov
странная система типов это когда List<Integer> кастуется к List<Object>
не кастуется же
источник

CD

Constantine Drozdov in Lisp Forever
Dmitry Plesovskykh
вы кроме того, что полностью утеряли контекст обсуждения, так еще и делаете достаточно глупые выводы и притягиваете за уши обоснование каких-то собственных предубеждений. если С++ так сильно ломает мозг, то детям его точно не стоит изучать в качестве первого языка.
C++ ломает мозг потому, что он не пытается упростить сложность области, в которой существует - с тем же успехом можно утверждать, что С ломает мозг концепцией нулевого указателя
источник

A

Aragaer in Lisp Forever
то есть всякие там референсы на референсы и шаблоны с итераторами референсов это область, в которой с++ существует?
источник

DP

Dmitry Plesovskykh in Lisp Forever
Constantine Drozdov
C++ ломает мозг потому, что он не пытается упростить сложность области, в которой существует - с тем же успехом можно утверждать, что С ломает мозг концепцией нулевого указателя
уже два раза вам указал на то, что вы апеллируете к тезисам _вне_ обсуждаемого контекста, но вы опять за свое. про С можно утверждать что это очень плохой язык даже для своей области. С++ с жеским кодестайлом (утверждающим те или иные ограничения для конкретного случая) подходил бы в 99% лучше, чем С для всего.
источник

DP

Dmitry Plesovskykh in Lisp Forever
единственное преимущество С перед С++ это его простота (примитивность), на этом плюсы заканчиваются и начинаются недостатки. но к чему мы это обсуждаем я не совсем понял? давать детям С или плюсы как первый язык (попутно объясняя указатели и прочий байтодроч) это почти гарантированно отбить у них желание к программированию.
источник

A

Aragaer in Lisp Forever
по моим личным ощущениям с++ переусложнен и со временем становится только еще сложнее. Что касается стрельбы по ногам, я за последние пару недель уже видел два бага в сишном и плюсовом коде, которых бы не возникло, если бы это был раст.
источник

A

Aragaer in Lisp Forever
ну то есть да, я не осилил плюсы
источник

CD

Constantine Drozdov in Lisp Forever
Dmitry Plesovskykh
единственное преимущество С перед С++ это его простота (примитивность), на этом плюсы заканчиваются и начинаются недостатки. но к чему мы это обсуждаем я не совсем понял? давать детям С или плюсы как первый язык (попутно объясняя указатели и прочий байтодроч) это почти гарантированно отбить у них желание к программированию.
Напоминаю, что мы обсуждаем проблему изучения С++, высказан тезис, и что концепции С++ скрыты некоторым "мусором", и вашу позицию стоит рассмотреть на предмет полного непонимания С++. Если вы считаете, что в плюсах есть какие-то вопросы с выделением памяти - их нет. Просто нет. Ни одному изучающему С++ не нужно узнавать, как в С++ выделяется и освобождается память.
источник

DP

Dmitry Plesovskykh in Lisp Forever
Aragaer
ну то есть да, я не осилил плюсы
все норм, их никто не осилил. поэтому в любом нормальном проекте, в котором используются С++ по тем или иным причинам (и эти причины могут действительно существовать) выбирается жесткий коде-стайл с набором фич которые мы НЕ используем. то есть используется всегда урезанная версия С++. либо как "мы тут щас все на смартпоинтерах делаем и прочими регионами, вручную с памятью не работаем, буст не используем итд) либо "мы выбрали С++ потому что нам нужен на самом деле более нормальный С с классами, давайте в таком ключе его и использовать".
источник