"Поэтому по возможности не используйте Go. Забудьте, что есть Go, если вы хотите выжать максимум." Такая формулировка на фоне статьи выглядит более правильной :)
Программирование это хобби же. Я ни дня в жизни не работал, только делал что нравится и где нравится. Объездил кучу стран, получил степень MBA, два диплома к основному высшему, дети, машины, квартиры. Куча знакомых благодаря онлайн-играм и дополнительному образованию. Сегодня вернулся из СПб с комик-кона. Осваиваю 3D-печать на фотополимерной смоле, изучаю 3D-моделирование, помогаю своей женщине с косплеем, недавно вот топор вырезал из фанеры :) Так что считаю - стоило. И всё это не работая, а только занимаясь тем, чем я бы и бесплатно занимался :)
Собеседовался, звали и в Яндекс и везде куда ходил ради интереса. ЗП от 500k сейчас мне лично найти не проблема. Синдрома препода никакого нет, ведь ушёл потому что свой бизнес отнимает всё время, а зарабатываю я сейчас в десять раз больше :) Я в IT гораздо дольше :) Начал в 9 лет, первый заработок в 16 лет, в 18 лет уже имел ЗП 100k, что на текущие деньги около 300k. Создал один из первых частных Lineage 2 серверов в РФ, код был основан на l2j и переписан на 90% мной лично :)
А смысл писать что-то на хабре? Я в университете преподавал несколько лет пока времени не перестало хватать вместо этого... Публичных разработок мало, пишу на всём что можно, сейчас в основном C++, TypeScript, PHP. Сервера для онлайн-игр, расширения для PHP (из них публичное только одно), аналитика, BigData. Опыт уже больше 25 лет в разработке, а начинал с C++ и asm.
Ещё добавлю, что вы написали "сложный проект". Сложный по какой метрике? Если по тому, насколько сложно читать код, то получается что так и есть. Но это не проблема и вина C++, а вина архитектора проекта. А вот проекты сложные по количеству сущностей, например, или количеству связей между ними прекрасно можно сделать так, что читать код будет легко, просто и даже приятно. Просто нужен архитектор с опытом и мозгами :)
То, что вы описали - дело 5 минут переключения. Достаточно посмотреть на пару файлов из проекта и уже можно писать так как нужно. Главное чтобы принципы были непротиворечивыми.
Так и пусть творят. Иначе даже молоток никому нельзя давать в руки, им же таааакого можно натворить случайно или намеренно... Ножи тоже не трогайте, они ещё опаснее, а право на управление авто подтверждает только знание правил и базовые навыки вождения, а вот адекватность или случайность - нет.
Я тоже за разумные ограничения, например const в С++ из этой темы, но только за разумные ограничения, которые облегчают разработку, а не усложняют её и Rust тут ушёл вообще не туда
Вы явно не писали давно на современном C++. Сейчас код практически неотличим от того же TypeScript / JS / PHP. Единый стиль форматирования - выбор человека, отформатировать можно всё как угодно, да и есть ClangFormat например, а у CLion великолепный форматтер и без clang.
Шаблоны в последних стандартах упрощают как раз стилистически, те же концепты, но много шаблонов - удел библиотек, в коде ответственным за бизнес-логику при правильной проектировке шаблонов почти нет или они тривиальные.
А что вам мешает надевать штаны через голову? Но надеваете то вы их через ноги... Если использовать unsafe, то Rust лишается своего единственного плюса... И зачем он тогда вообще нужен? Не бывает безопасного/надёжного на 99% кода, код либо надежный и безопасный, либо нет, так же как вы либо живы либо мертвы, но не живы на 90% :) Поэтому unsafe блоки в коде делают его весь ненадёжным и проще уж тогда на C++ писать :)
Тут нет противоречий. Код должен быть ПОНЯТЕН даже идиоту, а Rust из-за своих тупых ограничения понять в разы сложнее, чем тот же C++. Rust для программистов-идиотов, к тем, кто код читает и понимает это не относится. Программисты-идиоты с идиотскими ограничениями языка физически не могут сделать код понятным. Куча семантического сахара, решения специфичные только для Rust, из-за которых приходится адаптировать алгоритмы... Даже в статье приводили примеры библиотек, что нарушают принципы Rust но от этого более понятные, удобные и приятные в работе... Если принципы языка вредят принципу "понятен даже для идиотов", то язык плохой.
Да, например в наших довольно больших проектах - сервера для онлайн-игр нет new/delete вообще, работы с буферами тоже нет, соответственно и ссылок почти нет, только локальные.
А проблема есть так же как и можно обжечься кипятком, но никто в здравом уме не запрещает находиться в одной комнате с кипящим чайником.
Страшно то, что это ограничение для тупых... И Rust развивается как раз в сторону отупления программистов. Из-за этого сильно страдают алгоритмы. В этой же статье сказано про двойную вложенную итерацию по одному контейнеру для поиска пересечений, которая уже просто так работать не будет и придётся извращаться.
И дело даже не в изменении, а в хранении двух ссылок на объект в разных местах.
Ну да, это как выкинуть из дома все ножи и вилки чтобы нечайно не воткнуть их себе в глаз :) Для тупых это сделано, нормальные умные программисты и так никогда такого не сделают, плюс sanitizer-ы сразу покажут проблему, или тесты на худой конец... За 29 лет опыта программирования я такой глупости не совершал ни разу, поэтому для меня Rust - язык для идиотов :)
Я для подобного класса задач написал расширение для PHP, которое ускорило больше чем в 1000 раз обработку…
А еще оно хранит в бинарном виде кэш для предрасчитанных сегментов пользователей, позволяет строить аналитику по AB-тестам и много еще чего.
Быстрее вашего решения примерно в 100 раз на одного пользователя
"Поэтому по возможности не используйте Go. Забудьте, что есть Go, если вы хотите выжать максимум."
Такая формулировка на фоне статьи выглядит более правильной :)
Итераторы в C++ читаются и создаются легко и приятно, а все то, что вы выложили тут способно вызвать дьявола если где-то случайно сделать ошибку :)
Легкость чтения, понятность, удобство, очевидность - 1/10
Могу всё доказать, я врать не люблю
Ответ вообще-то очевидный - потому что нравится. Писать не нравится, комментировать нравится.
Программирование это хобби же. Я ни дня в жизни не работал, только делал что нравится и где нравится. Объездил кучу стран, получил степень MBA, два диплома к основному высшему, дети, машины, квартиры. Куча знакомых благодаря онлайн-играм и дополнительному образованию. Сегодня вернулся из СПб с комик-кона. Осваиваю 3D-печать на фотополимерной смоле, изучаю 3D-моделирование, помогаю своей женщине с косплеем, недавно вот топор вырезал из фанеры :) Так что считаю - стоило. И всё это не работая, а только занимаясь тем, чем я бы и бесплатно занимался :)
Собеседовался, звали и в Яндекс и везде куда ходил ради интереса. ЗП от 500k сейчас мне лично найти не проблема. Синдрома препода никакого нет, ведь ушёл потому что свой бизнес отнимает всё время, а зарабатываю я сейчас в десять раз больше :)
Я в IT гораздо дольше :) Начал в 9 лет, первый заработок в 16 лет, в 18 лет уже имел ЗП 100k, что на текущие деньги около 300k. Создал один из первых частных Lineage 2 серверов в РФ, код был основан на l2j и переписан на 90% мной лично :)
А смысл писать что-то на хабре? Я в университете преподавал несколько лет пока времени не перестало хватать вместо этого... Публичных разработок мало, пишу на всём что можно, сейчас в основном C++, TypeScript, PHP. Сервера для онлайн-игр, расширения для PHP (из них публичное только одно), аналитика, BigData. Опыт уже больше 25 лет в разработке, а начинал с C++ и asm.
https://github.com/kolya7k
А самомнение не завышенное, постоянно собеседую программистов и всё это наблюдаю
Всё круто, но я это всё в 14 лет на C++ делал :)
Заняло у меня тогда это около пары дней, но я сразу начал с BigInt
Я сразу понял, что 4 писал человек. Единственный полезный и адекватный. Остальные - вода.
Ещё добавлю, что вы написали "сложный проект". Сложный по какой метрике? Если по тому, насколько сложно читать код, то получается что так и есть. Но это не проблема и вина C++, а вина архитектора проекта.
А вот проекты сложные по количеству сущностей, например, или количеству связей между ними прекрасно можно сделать так, что читать код будет легко, просто и даже приятно. Просто нужен архитектор с опытом и мозгами :)
То, что вы описали - дело 5 минут переключения. Достаточно посмотреть на пару файлов из проекта и уже можно писать так как нужно.
Главное чтобы принципы были непротиворечивыми.
Так и пусть творят. Иначе даже молоток никому нельзя давать в руки, им же таааакого можно натворить случайно или намеренно... Ножи тоже не трогайте, они ещё опаснее, а право на управление авто подтверждает только знание правил и базовые навыки вождения, а вот адекватность или случайность - нет.
Я тоже за разумные ограничения, например const в С++ из этой темы, но только за разумные ограничения, которые облегчают разработку, а не усложняют её и Rust тут ушёл вообще не туда
Вы явно не писали давно на современном C++. Сейчас код практически неотличим от того же TypeScript / JS / PHP.
Единый стиль форматирования - выбор человека, отформатировать можно всё как угодно, да и есть ClangFormat например, а у CLion великолепный форматтер и без clang.
Шаблоны в последних стандартах упрощают как раз стилистически, те же концепты, но много шаблонов - удел библиотек, в коде ответственным за бизнес-логику при правильной проектировке шаблонов почти нет или они тривиальные.
А что вам мешает надевать штаны через голову? Но надеваете то вы их через ноги... Если использовать unsafe, то Rust лишается своего единственного плюса... И зачем он тогда вообще нужен?
Не бывает безопасного/надёжного на 99% кода, код либо надежный и безопасный, либо нет, так же как вы либо живы либо мертвы, но не живы на 90% :)
Поэтому unsafe блоки в коде делают его весь ненадёжным и проще уж тогда на C++ писать :)
Тут нет противоречий. Код должен быть ПОНЯТЕН даже идиоту, а Rust из-за своих тупых ограничения понять в разы сложнее, чем тот же C++.
Rust для программистов-идиотов, к тем, кто код читает и понимает это не относится.
Программисты-идиоты с идиотскими ограничениями языка физически не могут сделать код понятным. Куча семантического сахара, решения специфичные только для Rust, из-за которых приходится адаптировать алгоритмы... Даже в статье приводили примеры библиотек, что нарушают принципы Rust но от этого более понятные, удобные и приятные в работе... Если принципы языка вредят принципу "понятен даже для идиотов", то язык плохой.
Ну да, поэтому посмотрите на популярность Haskell... :)
Вы ещё brainfuck приведите как пример :)
Да, например в наших довольно больших проектах - сервера для онлайн-игр нет new/delete вообще, работы с буферами тоже нет, соответственно и ссылок почти нет, только локальные.
А проблема есть так же как и можно обжечься кипятком, но никто в здравом уме не запрещает находиться в одной комнате с кипящим чайником.
Я вам больше скажу, сейчас нет ни одной задачи, которую можно быстрее, красивее и эффективнее решить с помощью Rust нежели с помощью C++26.
Единственный плюс Rust в унификации и каталогизации библиотек.
Страшно то, что это ограничение для тупых... И Rust развивается как раз в сторону отупления программистов. Из-за этого сильно страдают алгоритмы.
В этой же статье сказано про двойную вложенную итерацию по одному контейнеру для поиска пересечений, которая уже просто так работать не будет и придётся извращаться.
И дело даже не в изменении, а в хранении двух ссылок на объект в разных местах.
Ну да, это как выкинуть из дома все ножи и вилки чтобы нечайно не воткнуть их себе в глаз :) Для тупых это сделано, нормальные умные программисты и так никогда такого не сделают, плюс sanitizer-ы сразу покажут проблему, или тесты на худой конец...
За 29 лет опыта программирования я такой глупости не совершал ни разу, поэтому для меня Rust - язык для идиотов :)