Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.144.45.153] |
|
Страницы: (32) « Первая ... 25 26 [27] 28 29 ... 31 32 ( Перейти к последнему сообщению ) |
Сообщ.
#392
,
|
|
|
Цитата Qraizer @ За обучение программированию в ВУЗах следует топить в первую очередь как раз в направлении обучения технологиям, и только во вторую очередь их применениям на практике в рамках какого-либо языка. Какого именно, не так важно, но безусловно, чем больше потенциал у языка, тем лучше. Это позволит сосредотачиваться на важном в обоих сферах, и в теории, и на практике, вместо того, чтобы расслаивать теорию по разным направлениям её реализации в разных языках. В этом смысле Паскаль давно себя, конечно, изжил. Технологий там кот наплакал, и дальше азов, которые и школьнику не составит труда понять и освоить, он практики не предоставит. Можно согласиться. Цитата Я не знаю ещё одного языка, на грамматике которого можно легко реализовать такое огромное множество теоретических паттернов (я сейчас не за GoF или что-либо подобное), особенно вкупе с поддержкой со стороны Стандартной библиотеки. Может быть разберем пару примеров для более предметного разговора? Цитата Даже о Java сказать того же нельзя, там сразу уже надо знать гораздо больше, чтоб хоть что-то работающее написать. Почему ты так думаешь? По-моему у Java порог вхождения как раз ниже. |
Сообщ.
#393
,
|
|
|
Цитата Qraizer @ Знаешь. Это D. Причем в D есть паттерны, которые пока в плюсах не реализуешь, например миксины. Плюсы, на самом деле, довольно бедный язык. Я не знаю ещё одного языка, на грамматике которого можно легко реализовать такое огромное множество теоретических паттернов (я сейчас не за GoF или что-либо подобное), особенно вкупе с поддержкой со стороны Стандартной библиотеки. |
Сообщ.
#394
,
|
|
|
Цитата swf @ Хотела отсортировать список по убыванию: a[:] = sorted(a[::-1]) Нет, всё равно по возрастанию Так это очевидно же. Ты берёшь перевёрнутый список и его сортируешь Надо одним из этих способов: a[::-1] = sorted(a) a = reversed(sorted(a)) a = sorted(a, reverse=True) |
Сообщ.
#395
,
|
|
|
Чётъ слабенько, видать, Wound изрядно навёл шороху.
Цитата D_KEY @ Потому что так и есть. Не ниже. В простейшем Джавном хелоуворде тебе придётся объяснить как минимум на две концепции больше, чем в простейшем Плюсовом. Чуть более сложный хеллоугай, чтоб запрашивал имя и приветствовал, если написать правильно (сиречь с обработкой ошибок), будет если не длиннее, то значительно менее понятным без витиевато упрощённого объяснения. Ещё чуть более сложный с запросом возраста, опять длиннее. И так постоянно.Почему ты так думаешь? По-моему у Java порог вхождения как раз ниже. Цитата applegame @ Знаю, что не D. Ты регулярно приводишь примеры из D якобы нереализуемого на C++, но всё что до сих пор приводилось, оказывалось лукавством. Моё отношение к примесям я как-то уже приводил. Мне непонятен сам профит от этой концепции в Плюсах. В D, вероятно, он есть, спорить не буду, с Шарпах да Джаве она весьма симпатична, у них нет множественного наследования реализаций, в Плюсах оно есть, и если вдруг приспичит, симулируются они влёгкую. Аргумент с примесями выглядит так же, как "у вас в языке нет сборщика мусора", так что самый разумный ответ на примеси такой же, как и на сборщик: "а нахрена он нам?". Знаешь. Это D. Причем в D есть паттерны, которые пока в плюсах не реализуешь, например миксины. Добавлено В целом я могу согласиться лишь с тем, что Плюсы более многословны по сравнению с D. Но считать ли это недостатком, вопрос субъективный, причём зависящий от контекста. В неком контексте оно недостаток, то же самое в чуть другом – уже нет. В общем случае чем точнее ты выражаешь свои мысли компилятору, тем лучше, т.к. тем меньше вероятность, что он поймёт тебя неверно и сделает то, что ты сказал, а не то, что хотел получить. Пример с C legacy cast уже классика. В этом смысле "многословность" Плюсов можно сравнить с практикой по вождению, когда экзаменуемый вслух комментирует все свои действия экзаменатору. На обучении это только благо. В дальнейшем никто так не делает, ...но иногда лучше б делал, если поглядеть записи с регистраторов на ютубчике. С этой точки зрения, если уж отвергать Плюсы, я скорее за Джаву как язык для обучения программирования, чем за Котлин. |
Сообщ.
#396
,
|
|
|
Qraizer, а если бы ты знал толком только C++, в следствии чего все концепции из других языков переводил бы в голове на плюсы и интерпретировал исключительно сквозь призму C++ и его подходов, то что помогло бы тебе это понять?
Добавлено Цитата Qraizer @ В простейшем Джавном хелоуворде тебе придётся объяснить как минимум на две концепции больше, чем в простейшем Плюсовом. Давай поэкспериментируем? |
Сообщ.
#397
,
|
|
|
Цитата Qraizer @ В плюсы уже завезли статическую рефлексию? И я имел в виду не примеси, а строковые миксины, в D - это замена макросам, хоть и неуклюжая.Ты регулярно приводишь примеры из D якобы нереализуемого на C++ Вот тебе задача: получить список всех функций-членов произвольного класса. Или, например, сделать аналог opDispatch. Добавлено Цитата applegame @ Вот тебе задача: получить список всех функций-членов произвольного класса. Решение на D, оно несколько неполное, но поверь, раздербанить можно любой тип на мельчайшие составляюшие: https://glot.io/snippets/fq6iq48un9 Народ в плюсах жесточайшими путями умудряется кое-как итерировать поля PODов, и сильно гордится этим - https://habr.com/ru/post/344206/ |
Сообщ.
#398
,
|
|
|
Цитата applegame @ Народ в плюсах жесточайшими путями умудряется кое-как итерировать поля PODов, и сильно гордится этим - https://habr.com/ru/post/344206/ А мне вот такая итерация по enum-ам нравится. Да, костыль, но клёвый |
Сообщ.
#399
,
|
|
|
Цитата OpenGL @ Цитата applegame @ Народ в плюсах жесточайшими путями умудряется кое-как итерировать поля PODов, и сильно гордится этим - https://habr.com/ru/post/344206/ А мне вот такая итерация по enum-ам нравится. Да, костыль, но клёвый А что в нем клёвого? Список идентификаторов в enum-е получить можно? |
Сообщ.
#400
,
|
|
|
Цитата applegame @ Список идентификаторов в enum-е получить можно? Ты про это: constexpr auto color_names = magic_enum::enum_names<Color>(); // color_names -> {"RED", "BLUE", "GREEN"} // color_names[0] -> "RED" ? |
Сообщ.
#401
,
|
|
|
Цитата applegame @ А что в нем клёвого? Довольно изящное решение на мой взгляд. Цитата applegame @ Список идентификаторов в enum-е получить можно? И список enum_ов, и их строковые представления, и каст в строку и обратно с проверками, и всё это constexpr. |
Сообщ.
#402
,
|
|
|
Цитата D_KEY @ Да, про это.Ты про это: Цитата OpenGL @ Покопался в коде и нашел, как там вытаскиваются имена из энума. Это решается не при помощи языковых конструкций, а довольно грубым хаком, а именно расковыриванием значения макроса __PRETTY_FUNCTION__ (__FUNCSIG__ в Visual Studio), который мало того, что является не частью языка, а расширением некторых компиляторов, так еще и никак не стандартизирован.Довольно изящное решение на мой взгляд. В итоге в коде появляются магические константы, меняющиеся в зависимости от компилятора: template <typename E> constexpr auto n() noexcept { static_assert(is_enum_v<E>, "magic_enum::detail::n requires enum type."); #if defined(MAGIC_ENUM_SUPPORTED) && MAGIC_ENUM_SUPPORTED # if defined(__clang__) constexpr std::string_view name{__PRETTY_FUNCTION__ + 34, sizeof(__PRETTY_FUNCTION__) - 36}; # elif defined(__GNUC__) constexpr std::string_view name{__PRETTY_FUNCTION__ + 49, sizeof(__PRETTY_FUNCTION__) - 51}; # elif defined(_MSC_VER) constexpr std::string_view name{__FUNCSIG__ + 40, sizeof(__FUNCSIG__) - 57}; # endif return static_string<name.size()>{name}; #else return std::string_view{}; // Unsupported compiler. #endif } То бишь, если слегка поменяется формат этого макроса, все поломается. И ты это называешь изящным решением? Плюсы становятся всё хуже и хуже, нагромождение новых синтаксических конструкций, вот что это такое? constexpr std::string_view name{..., ...}; почему не так? constexpr std::string_view name(..., ...); |
Сообщ.
#403
,
|
|
|
Цитата applegame @ Покопался в коде и нашел, как там вытаскиваются имена из энума. Это решается не при помощи языковых конструкций, а... Так это невозможно сделать при помощи языковых конструкций. На данный момент. А тебе сразу сказали, что это костыль Но в плане интерфейса довольно неплохо сделано. Добавлено Что-то мы ушли от темы обучения... |
Сообщ.
#404
,
|
|
|
Цитата D_KEY @ Костыль костылю рознь. Это не только костыль, но еще и небезопасный хак. Так это невозможно сделать при помощи языковых конструкций. На данный момент. А тебе сразу сказали, что это костыль Добавлено Цитата D_KEY @ Ну можно сделать вывод, что C++ крайне плох, как первый язык. А лично я бы сказал, что он просто плох и учить его нужно только из-за того, что он пока востребован на рынке.Что-то мы ушли от темы обучения... Кстати тот же D прост в обучении, можно с него начинать. Но маргинальность языка - серьезный аргумент против. |
Сообщ.
#405
,
|
|
|
Цитата applegame @ Ну можно сделать вывод, что C++ крайне плох, как первый язык. Ну я то с этим согласен Цитата А лично я бы сказал, что он просто плох и учить его нужно только из-за того, что он пока востребован на рынке. Нуу... Есть люди, которым он заходит. Почему бы им его не учить? Имеют право. Цитата Кстати тот же D прост в обучении, можно с него начинать. Но маргинальность языка - серьезный аргумент против. Именно. |