Здравствуйте, Разраб, Вы писали:
Р>мне кажется rust хорошо для программистов среднего уровня, не владеющих C++.
Ты делишь языки по уровням программистов.
Я делю инструменты по областям применимости.
Мне и на Basic писать не стыдно, если он оптимален для каких-то задач. Для каких задач оптимален Rust, я пока не понимаю. Серверную бизнес-логику писать без виртуальной машины (JVM, CLR) — идея не очень хорошая. Мобильные приложения делают всё больше на webview, либо на том, на чём предлагают разработчики Android и iOS. Десктопные приложения удобнее писать на том, на чём основной API написан (C++), либо, опять же, на webview или CLR.
Здравствуйте, CreatorCray, Вы писали:
CC>Что именно ты тут называешь "измененип итерируемого контейнера"?
Ну итерируешься по некой хеш-мапе, в процессе вызываешь функцию, которая где-то внутри добавляет в эту же мапу элементы.
Только полный нубас такой может наговнокодить, да?
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Здравствуйте, night beast, Вы писали:
NB>Здравствуйте, reversecode, Вы писали:
R>>сказал же — в два раза
NB>что "в два раза"? NB>я спросил, какой объем кода перевел с одного языка на другой?
чищу раст от всевозможных комментов
пока
на ~230 кил почищенного от коммента раста
вышло ~70кил плюсов без комментов(я их вообще не использую)
но это я еще не рефакторил, так, в черную набрасываю
и там еще раста на 2 мега без комментов
R>>занимаюсь переводом токио в свободное время, не спеша
NB>зачем? что мешает написать свою библиотеку?
рядовой булочкин,
нука смотреть на свет!
каково ваше звание и к каким войскам пренадлежите?
чет мне скучно от ваших вопросов
давайте я?
кто или что мешает плюсовикам написать окуенную сетевую либу ? стандрат с++ тоже кстати дерьмо продвигает, если примут это будет финишь
да я в этом овер 20 лет и знаю все эти libuv libev libfev libevent asio folly libunifex итд
у меня всего это зоопарка где то 148 папок
и все они мне не подходят от слова совсем
Здравствуйте, Разраб, Вы писали:
Р>https://youtu.be/AH4V4M7R88k?si=LKVfBKaqx9NXXiPo
Р>мне кажется rust хорошо для программистов среднего уровня, не владеющих C++. Р>Все же работа с памятью создает большую когнитивную нагрузку.
Как связаны современный C++ и работа с памятью? Там такой же RAII как в расте.
Р>Возможно после этого можно переехать проще на ziglang. Он в чем то похож.
Даже хз в чем похож
Р>и к тому же позволяет интегрироваться с си(++).
Раст или zig?
Р>но раст реально просто. не так ли?
Раст проще C++, так как гораздо меньше способов отстрелить себе ноги. Оставаясь в safe контексте это сделать крайне сложно.
С другой стороны, оставаясь в том же safe контексте можно писать очень быстрый код, на порядки быстрее python и в разы быстрее java и .net.
НО само написание программ на Rust требует гораздо больше когнитивных усилий. Иногда сложно объяснить компилятору, что твои действия на самом деле safe, при этом нельзя просто сказать "мамой клянусь, это safe". Приходится делать через unsafe, указатели и тяжелый синтаксис.
Сам язык слаб, очень многие вещи делаются через макросы, которые сложно писать и отлаживать. Макросы ломают тулинг, замедляют компиляцию, делают сложнее отладку и диагностику ошибок.
Изучать раст, как образец новых концепций и паттернов — очень полезно. Писать на нем большие программы — сомнительно. Для локальной замены микросервисов на медленных языках раст вполне подходит.
Здравствуйте, Alekzander, Вы писали:
A>Здравствуйте, flаt, Вы писали:
F>>наследования тоже нет.
A>Серьёзно? А если надо реализовать классическую иерархию векторных объектов, например?
Не знаю, что такое классическая иерархия, но можно имплементировать интерфейсы.
И можно делать вектор юников на эти самые интерфейсы. И каждый элемент может иметь разный тип, но все они должны имплементировать один интерфейс.
Объект может имплементировать много интерфейсов, и самое крутое, в самом объекте никакие указатели на твм не нужны. Вместо этого понятие "указатель на интерфейс" означает пару "указатель на твм, указатель на объект".
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
но написать свою либу — я расшифровал как, вложите 100% своего времени в вашу 10% потребность такой либы
к тому же в далеком будущем, если таки реализую(а разбираюсь я с ней последние 3 года, по несколько недель в год)
то если захочеся какого то хайпа
то хайпа к условному tokio-c++ будет больше внимания
чем к my_super_network_library которых уже +10500 в гугле можно найти
Здравствуйте, reversecode, Вы писали:
R>чищу раст от всевозможных комментов R>пока R>на ~230 кил почищенного от коммента раста R>вышло ~70кил плюсов без комментов(я их вообще не использую)
70к это ничем
R>но это я еще не рефакторил, так, в черную набрасываю R>и там еще раста на 2 мега без комментов
откуда столько?
там чистого кода без комментов, утилсов и прочего всего меньше полутора
R>>>занимаюсь переводом токио в свободное время, не спеша
NB>>зачем? что мешает написать свою библиотеку?
R>да я в этом овер 20 лет и знаю все эти libuv libev libfev libevent asio folly libunifex итд R>у меня всего это зоопарка где то 148 папок R>и все они мне не подходят от слова совсем
а, решил пополнить коллекцию
понятно
R>ответ почему свою не написать — очевиден
Здравствуйте, flаt, Вы писали:
F>Даже переписывая проект на том же языке, можно сократить код в разы. F>Аналогично, можно также и раздуть.
Однажды мне написали ТЗ на >100 страниц. Я почитал и сказал что это много и надо сократить. В итоге получил тот же самый текст, в котором куча слов заменили на их сокращения, уменьшили и размер шрифта и межстрочное расстояние
PS: не совсем в тему, но почему-то навеяло )
Здравствуйте, T4r4sB, Вы писали:
TB>Не знаю, что такое классическая иерархия, но можно имплементировать интерфейсы. TB>И можно делать вектор юников на эти самые интерфейсы. И каждый элемент может иметь разный тип, но все они должны имплементировать один интерфейс. TB>Объект может имплементировать много интерфейсов, и самое крутое, в самом объекте никакие указатели на твм не нужны. Вместо этого понятие "указатель на интерфейс" означает пару "указатель на твм, указатель на объект".
там вроде были ограничения по применению dyn интерфейсов в генериках