Ну, с одной стороны легче находить функции и переменные без честного учёта типов и деклараций. А с другой стороны он всё равно нужен, если не городить динамические типы.
Я чуть чаем не подавился, когда это увидел впервые. Уже ж был синтаксис, хоть и кривоватый, но к которому привыкли. К нему добавили ещё одну кривизну без необходимости.
Заимствования fn и типов из rust – это молодёжно, fn как и var часто избыточен, аббревиатурные же ключевые слова менее читабельны. Далее, помимо вкусов, тип не является атрибутом элемента (hello, typescript), это с ног на голову. Тем более что fn – тоже тип. Ну, и немного java, конечно. Интересный букет.
И если смотреть на него как наследника с++, то как раз получится по части винегретизации. Вообще, интересный и традиционный вопрос, какие языки служат материалом для размышлений авторов.
Остальное не выглядит сильно компактнее. Дьявол кроется в библиотеках, посмотрим, насколько менее (или более) ужасными будут конструкции с использованием vectors, lists, maps и т д.
Условную компиляцию? В рамках одного набора исходников - нет. Даже с темплейтами и абстрактными интерфейсами (все методы pure virtual) где-то должен быть главный агрегатор, инстанциирующий конкретные классы. Но можно условно включать/не включать в список исходников схожие по API модули, заточенные под разные варианты таргетов. Разные варианты агрегаторов, например.
for (auto & c : circles), или даже без & - нечего референсы на пустом месте без надобности разводить. И когда С++ написан по-современному, а не как 10 лет назад, становится видно, что этот их карбон - тоже жалкий позор.
auto main(...) -> int - вообще за пределами добра и зла.
Кажется, что проблемы некоторых олдовых языков больше связаны с бардаком в библиотеках и сборочных инструментах, было бы хорошо если бы перетащили практики из go или rust (пакеты, линтеры, форматеры и сборщики) и управление версионнностью зависимостей.
А можно спросить, Вы использовали Rust серьёзно на работе? И если так, то по прошествии так сказать "honey moon" что теперь думаете про Rust? И какие основные pain points?
Я только игрался с ним в мелких проектиках и думал может работу подыскать где 100% Rust, но ещё не настолько крут с ним чтобы профессионально только его юзать для работы :(
Да, я использовал Rust серьёзно для работы. Для одного изолированного проекта, как ни странно, с GUI. Проект имел успех: за полгода команда из трёх малоопытных человек написала исходный код с нуля и выпустила релиз. Теперь продукт используется внутри компании.
Проблемы две. Во-первых, язык надо учить. Даже если у вас тридцать лет опыта в других языках, вы не сможете просто так взять и начать писать на Rust. Фокус проходит с Golang, D, Swift, Dart, но не здесь. Придётся проштудировать как минимум одну-две книжки. Привыкнуть к странным концепциям, типа Box вместо указателей и т.п.
Во-вторых, имеется масса tribal knowledge. В том смысле, что некоторые фичи языка не постигаются интуитивно или через чтение мануалов. Приходится выискивать примеры в исходном коде разных проектов и выяснять тонкости оттуда. Гуглить и читать блоги экспертов. Всё это замечательно развивает мозги и поднимает собственную квалификацию, но трудоёмко до чёртиков.
Но кто пробовал Rust - после cargo возвращаться к cmake нет никакого желания.
Меня удручает сочетание размера современного C++ с неоднородностью. Если бы фичи прямо вытекали друг из дружки, стройно без исключений по соображениям обратной совместимости и тупой незаконченности, было бы лучшее. А так ты не можешь даже быстро определить что в данном контексте сделает какое-нибудь foo(), и даже какое именно из них, если их несколько, будет вызвано. Получается помойка для любителей dumpster diving.
Можно более развёрнуто. Исходный текст для транслятора языка и для препроцессоров – это один и тот же текст?
Есть тест на языке, в который можно добавлять вкрапления для одного, второго, третьего препроцессора. Такое встречается, скажем, помимо стандартного препроцессора в с можно использовать doxygen, да что угодно.
По определению, исходный текст для транслятора языка - это выход препроцессора, и он обычно не совпадает с входом препроцессора (иначе зачем вообще препроцессор?).
Не обязательно. С препроцессором или без, текст может быть корректным высказыванием на языке, и так же не обязательно, что препроцессор меняет текст. Но это сторонние замечания, не связанные с идеей.
А идея в том, что если в языке нет препроцессора, то a) его скорее всего и не будет или b) их будет несколько: два, три, пять. И из всех из них, весьма часто, будет мешанина (спагетти). И на каком именно языке, в итоге, будет код – сказать затруднительно.
Кто программирует на Си/Си++, жизни не может представить без препроцессора. Однако в том же Rust препроцессор гораздо более мощный и удобный. Просто надо мыслить ширшее.
Постоянно пользуюсь #if 0. Но код, вычеркнутый подобным способом, быстро устаревает при интенсивной разработке. Меняются переменные, окружение, методы - уже легко не раскомментируешь. Иногда лучше ставить if (false) { ... }.
зря всё это. языков всяких уже море. даже и не важно как он (синтаксис) выглядит, важно как оно внутри работает. можно хоть на js писать, лишь бы выполнялось, как задумано вон и питон уже какой взрослый - перл обошел и го допилили до чего-то вменяемого, всякие скалы...
и наконец языки "сочиняют" умники, а используют простые смертные, которым плевать на узоры, им зарплату получать надо
no subject
Date: 2022-07-28 18:07 (UTC)no subject
Date: 2022-07-28 18:21 (UTC)no subject
Date: 2022-07-29 04:42 (UTC)no subject
Date: 2022-07-29 05:59 (UTC)А с другой стороны он всё равно нужен, если не городить динамические типы.
no subject
Date: 2022-07-29 05:52 (UTC)no subject
Date: 2022-07-29 07:10 (UTC)no subject
Date: 2022-07-29 16:02 (UTC)no subject
Date: 2022-07-29 07:20 (UTC)no subject
Date: 2022-07-28 18:22 (UTC)no subject
Date: 2022-07-28 18:26 (UTC)как по мне так то же самое, ну да синтаксис почище, да и все
no subject
Date: 2022-07-28 18:35 (UTC)no subject
Date: 2022-07-28 18:48 (UTC)И если смотреть на него как наследника с++, то как раз получится по части винегретизации. Вообще, интересный и традиционный вопрос, какие языки служат материалом для размышлений авторов.
no subject
Date: 2022-07-28 19:29 (UTC)Друзья Сергея и Ларри продолжают развлекаться (имхо).
no subject
Date: 2022-07-28 19:43 (UTC)no subject
Date: 2022-07-28 22:12 (UTC)no subject
Date: 2022-07-28 19:50 (UTC)Импорты вместо инклюдов.
Остальное не выглядит сильно компактнее.
Дьявол кроется в библиотеках,
посмотрим, насколько менее (или более) ужасными будут конструкции с использованием vectors, lists, maps и т д.
Slice, няп, встроен в язык. Уже неплохо.
no subject
Date: 2022-07-29 02:54 (UTC)no subject
Date: 2022-07-29 04:08 (UTC)no subject
Date: 2022-07-29 05:10 (UTC)no subject
Date: 2022-07-29 11:34 (UTC)no subject
Date: 2022-07-29 11:39 (UTC)no subject
Date: 2022-07-29 13:25 (UTC)no subject
Date: 2022-07-29 15:53 (UTC)Даже с темплейтами и абстрактными интерфейсами (все методы pure virtual) где-то должен быть главный агрегатор, инстанциирующий конкретные классы.
Но можно условно включать/не включать в список исходников схожие по API модули, заточенные под разные варианты таргетов.
Разные варианты агрегаторов, например.
no subject
Date: 2022-07-28 19:59 (UTC)for (auto & c : circles), или даже без & - нечего референсы на пустом месте без надобности разводить. И когда С++ написан по-современному, а не как 10 лет назад, становится видно, что этот их карбон - тоже жалкий позор.
auto main(...) -> int - вообще за пределами добра и зла.
no subject
Date: 2022-07-28 22:24 (UTC)Но в целом я не против, если товарищи осилят соорудить "улучшенный Си++", да добавят к нему пакетный менеджер типа cargo. От Rust я подустал чего-то.
no subject
Date: 2022-07-28 23:10 (UTC)no subject
Date: 2022-07-29 00:39 (UTC)no subject
Date: 2022-07-29 04:04 (UTC)no subject
Date: 2022-07-29 04:39 (UTC)no subject
Date: 2022-07-29 10:28 (UTC)Вы использовали Rust серьёзно на работе? И если так, то по прошествии так сказать "honey moon" что теперь думаете про Rust? И какие основные pain points?
Я только игрался с ним в мелких проектиках и думал может работу подыскать где 100% Rust, но ещё не настолько крут с ним чтобы профессионально только его юзать для работы :(
no subject
Date: 2022-07-29 19:42 (UTC)Проблемы две. Во-первых, язык надо учить. Даже если у вас тридцать лет опыта в других языках, вы не сможете просто так взять и начать писать на Rust. Фокус проходит с Golang, D, Swift, Dart, но не здесь. Придётся проштудировать как минимум одну-две книжки. Привыкнуть к странным концепциям, типа Box вместо указателей и т.п.
Во-вторых, имеется масса tribal knowledge. В том смысле, что некоторые фичи языка не постигаются интуитивно или через чтение мануалов. Приходится выискивать примеры в исходном коде разных проектов и выяснять тонкости оттуда. Гуглить и читать блоги экспертов. Всё это замечательно развивает мозги и поднимает собственную квалификацию, но трудоёмко до чёртиков.
Но кто пробовал Rust - после cargo возвращаться к cmake нет никакого желания.
no subject
Date: 2022-07-30 08:44 (UTC)no subject
Date: 2022-07-28 22:02 (UTC)из крестов надо выкидывать отложения легаси и рефакторить, а вместо этого туда пихают всего побольше и помоднее
no subject
Date: 2022-07-29 06:06 (UTC)no subject
Date: 2022-07-28 23:07 (UTC)no subject
Date: 2022-07-29 13:45 (UTC)no subject
Date: 2022-07-29 16:00 (UTC)Бывает, что два хороших стандарта хуже одного посредственного.
no subject
Date: 2022-07-29 19:00 (UTC)no subject
Date: 2022-07-29 22:03 (UTC)Есть тест на языке, в который можно добавлять вкрапления для одного, второго, третьего препроцессора. Такое встречается, скажем, помимо стандартного препроцессора в с можно использовать doxygen, да что угодно.
no subject
Date: 2022-07-29 22:54 (UTC)no subject
Date: 2022-07-29 23:28 (UTC)А идея в том, что если в языке нет препроцессора, то a) его скорее всего и не будет или b) их будет несколько: два, три, пять. И из всех из них, весьма часто, будет мешанина (спагетти). И на каком именно языке, в итоге, будет код – сказать затруднительно.
no subject
Date: 2022-07-29 19:50 (UTC)no subject
Date: 2022-08-29 20:16 (UTC)no subject
Date: 2022-08-29 22:52 (UTC)no subject
Date: 2022-07-31 03:28 (UTC)вон и питон уже какой взрослый - перл обошел и го допилили до чего-то вменяемого, всякие скалы...
и наконец языки "сочиняют" умники, а используют простые смертные, которым плевать на узоры, им зарплату получать надо