Хотя, честности ради: процедурные макросы я ещё не осилил, и да, они гораздо сложнее, и завязаны на API AST. Впрочем, я слышал, что старые лисперы ими крайне довольны.
у шаблонов такой же синтаксис как у обычного кода, у макросов - нет
Пусть бросит камень тот, кто совсем-совсем не использует препроцессор. Ни в новом коде, ни в том, который просто приходится читать.
в этом чтении нет никакой информации о том какой тип ожидается, тогда как в аналогичном конструкторе std::vector из С++ чётко написано, что это size_type или что-то такое
И да, макросы могут не давать возможности сразу прочитать типы в сигнатуре. По этому критерию, специально сконструированному так, чтобы отсечь Rust, признаю, Rust проиграет. Хотя лисперы ещё поспорят.
Правда, выиграет сразу на следующем шаге, при проверке типов при компиляции, и диагностике. Мой С++ заржавел, я ещё помню сотни строк ошибок в загадочных местах при простой опечатке в тексте - этого в современном С++ уже совсем-совсем нет?
У меня отлично получается парсить шаблоны макросы, никаких проблем. (спасибо за аргумент)
Даже со старта с этим не было проблем. Если быть немного знакомым с синтаксисом старых скриптовых языков, шелла, например, где переменные и выражения берутся в ${} и $(), то вообще читается без запинки.
Написав на Rust относительно немного кода, после лет в С++, не вижу проблем в его синтаксисе вообще, особенно по сравнению с С++.
Разве что то, что он пошёл не только от С, как в PHP или Javascript.
Другими словами, да, программист на С++ может выучить PHP за выходные, а Rust не может. Но это не проблема Rust, а следствие из более продвинутых фич, которых в С++ не существует: expression syntax, rich enums, borrow checker, и что там ещё.
Кстати, раз уж вы обвиняете Юдковски в straw man fallacy (подмене аргумента оппонента), то следовало бы указать - какой именно аргумент подменяется каким.
Я говорю - это вообще не straw man, это учебный материал.
И вся статья - «как не написать опереточного злодея».
Если я правильно понял ваше утверждение, то лучший метод обучения плавать - это бросить на глубокое место.
Но известные мне преподаватели, да и я сам, начинают учить с «hello, world». С синтетических примеров, которые иллюстрируют одну идею и один приём. Который, может быть, в чистом виде в практике вообще не встречается.
Пока что вы меня не убедили. Инструмент работает, хорошая книга с его помощью написана.
Напомнило анекдот. Грешники в аду стоят в озере фекалий, глубиной ровно чтобы на цыпочках высунуть на поверхность нос и рот. А новоприбывшим, которые брыкаются и возбухают «давайте выбираться!», говорят: «Не гони волну!»
О заведении дела написано в статье: «authorize the United States government to seek such information that is "relevant" to authorized national security investigations», внимание на слово «investigations».
О рассмотрении юристами компании: «Moreover, a recipient of the NSL may still challenge the nondisclosure provision in federal court.[4]».
Вопрос, как всегда, в цене. Где-то нужно завести дело, материалы которого рассмотрят (и могут оспорить!) юристы компании, а где-то достаточно помахать корочкой.
Оценочное суждение - это, скажем так, моральная оценка: «это плохо» или «это глупо». А ваш комментарий - это сочинительство с прогибом, «Ильюша зря бить не станет!»
В последнее время, скажем так, многих замели по смешным, слабо доказанным обвинениям. Например, за то, что стояли на площади с чистым листом бумаги. Вы многих из них слышали из всех камер?
Хотя, честности ради: процедурные макросы я ещё не осилил, и да, они гораздо сложнее, и завязаны на API AST. Впрочем, я слышал, что старые лисперы ими крайне довольны.
Пусть бросит камень тот, кто совсем-совсем не использует препроцессор. Ни в новом коде, ни в том, который просто приходится читать.
Ну, я бы не сказал, что вот это: https://doc.rust-lang.org/src/alloc/macros.rs.html#63 намного хуже, чем вот это: https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/bits/stl_vector.h#L84. Да, я помню, кастомные аллокаторы.
И да, макросы могут не давать возможности сразу прочитать типы в сигнатуре. По этому критерию, специально сконструированному так, чтобы отсечь Rust, признаю, Rust проиграет. Хотя лисперы ещё поспорят.
Правда, выиграет сразу на следующем шаге, при проверке типов при компиляции, и диагностике. Мой С++ заржавел, я ещё помню сотни строк ошибок в загадочных местах при простой опечатке в тексте - этого в современном С++ уже совсем-совсем нет?
У меня отлично получается парсить
шаблонымакросы, никаких проблем. (спасибо за аргумент)Даже со старта с этим не было проблем. Если быть немного знакомым с синтаксисом старых скриптовых языков, шелла, например, где переменные и выражения берутся в
${}
и$()
, то вообще читается без запинки.В достаточно большой кодовой базе всегда найдётся такой код. Возможно, даже для любой пары мажорных версий компилятора.
Написав на Rust относительно немного кода, после лет в С++, не вижу проблем в его синтаксисе вообще, особенно по сравнению с С++.
Разве что то, что он пошёл не только от С, как в PHP или Javascript.
Другими словами, да, программист на С++ может выучить PHP за выходные, а Rust не может. Но это не проблема Rust, а следствие из более продвинутых фич, которых в С++ не существует: expression syntax, rich enums, borrow checker, и что там ещё.
И любой, кто пропагандирует рациональное мышление, должен считаться иноагентом!
Кстати, раз уж вы обвиняете Юдковски в straw man fallacy (подмене аргумента оппонента), то следовало бы указать - какой именно аргумент подменяется каким.
Я говорю - это вообще не straw man, это учебный материал.
И вся статья - «как не написать опереточного злодея».
Если я правильно понял ваше утверждение, то лучший метод обучения плавать - это бросить на глубокое место.
Но известные мне преподаватели, да и я сам, начинают учить с «hello, world». С синтетических примеров, которые иллюстрируют одну идею и один приём. Который, может быть, в чистом виде в практике вообще не встречается.
Пока что вы меня не убедили. Инструмент работает, хорошая книга с его помощью написана.
Это, в первую очередь, не критика, а учебник, инструмент. И именно он позволил написать HPMoR.
Right tool for the job, это всё.
Он написал своего Гарри Поттера, как сказано в первой строчке конспекта. И можно поспорить, что его Гарри Поттер значительно лучше Роулинг.
Напомнило анекдот. Грешники в аду стоят в озере фекалий, глубиной ровно чтобы на цыпочках высунуть на поверхность нос и рот. А новоприбывшим, которые брыкаются и возбухают «давайте выбираться!», говорят: «Не гони волну!»
Неправда ваша.
О решении суда я не писал.
О заведении дела написано в статье: «authorize the United States government to seek such information that is "relevant" to authorized national security investigations», внимание на слово «investigations».
О рассмотрении юристами компании: «Moreover, a recipient of the NSL may still challenge the nondisclosure provision in federal court.[4]».
И там ещё много интересного. Почитайте.
9.5 правил ведения it-бизнеса давно уже сформулировали.
Сами посмотрите, сколько там ограничений: https://en.wikipedia.org/wiki/National_security_letter
Процитирую для затравки: «The nondisclosure provision must be authorized by the Director of the FBI». А не старшим следователем района, например.
Вопрос, как всегда, в цене. Где-то нужно завести дело, материалы которого рассмотрят (и могут оспорить!) юристы компании, а где-то достаточно помахать корочкой.
Очаровательно. Расистский комментарий от человека, который не факт, что имеет даже отдалённое представление о сложности описываемой системы.
Самый недооцененный комментарий.
Где-то я это уже слышал, лет эдак 30 назад.
Оценочное суждение - это, скажем так, моральная оценка: «это плохо» или «это глупо». А ваш комментарий - это сочинительство с прогибом, «Ильюша зря бить не станет!»
В последнее время, скажем так, многих замели по смешным, слабо доказанным обвинениям. Например, за то, что стояли на площади с чистым листом бумаги. Вы многих из них слышали из всех камер?
Да она форменный вредитель, выходит! Ох уж эти перегибы на местах…