|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
Rust vs C++26.06.2020, 16:10. Показов 48313. Ответов 660
Метки нет (Все метки)
0
|
|
| 26.06.2020, 16:10 | |
|
Ответы с готовыми решениями:
660
[Rust] Обсуждение возможностей и предстоящей роли языка Rust [Rust] Как привязывать WinAPI-функции к коду на Rust? Расскажите о своём опыте программирования на Rust |
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||
| 14.07.2020, 23:31 | |||
|
Добавлено через 1 минуту
0
|
|||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||
| 15.07.2020, 04:03 | |||
|
Добавлено через 10 минут Вообще как видим раст пытается лечить недопонимание базовых для ООП конценций, к примеру композиции и агрегации используемые для взаимосвязей между активными объектами, и сути их отличия от владения пассивными буферами (именно это и пытвется делать борровинг а не что то еще, при этом получая в результате сплошные сапоги в смятку), концепции наследования и т.д. Т.е родился в результате изнасилования моска явой, а не в результате достижения каких то границ возможностей плюсов. Ну и как результат мертворожден в принципе, ибо рубит в результате как минимум то для чего ООП предназначено - упрощение реализации моделей сущностей предметной области. Добавлено через 3 часа 5 минут Т.е. и тут уровень вашей компетентности ниже плинтуса.
0
|
|||
|
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,081
|
||||||
| 15.07.2020, 07:55 | ||||||
|
Ну и в продолжение вопроса: почему функционал "искоробочного" дистрибутива винды настолько отстает от аналогичного линукса по функционалу, но превосходит по объему?
0
|
||||||
|
Модератор
|
|||||
| 15.07.2020, 17:31 | |||||
|
Соответственно, автоматики там не меньше чем в плюсах.
0
|
|||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||
| 15.07.2020, 23:28 | ||||||
|
Есть концепция композиции - ресурс безоговорочно уничтожается при разрыве конкретной ссылки, но это далеко не единственная из возможных причин уничтожения. Есть концепция агрегации - т.е. ресурс взят в пользование и может точно так же помереть в любой момент. Все что должны в этом случае ресурсы - оповестить тех кто на них ссылается, а те кто ссылается должны быть готовы к тому что ресурсы помрут. Это растет из того что для объектов критерии их уничтожения концептуально изветсны только им самим, все остальное - оптимизации реализации этих концепций. При этом очевидно что в компайлтайме никакую из этих концепций реализовать не удастся. Какую из этих концепций моделирует борровинг? Вот в том то и дело что никакую. В результате неизбежно получаются сапоги в смятку которые ни к селу ни к городу. А обеспечить безопасность работы со указателями способно только соблюдение правил взаимосвязей.
1
|
||||||
|
Модератор
|
|||||||||
| 16.07.2020, 00:19 | |||||||||
|
А, так то там возможностей то побольше. И с учётом, как быстро он развивается, то будет ещё больше. Отдельного внимания заслуживают макросы rust-а. Типобезопасные, а не простая текстовая замена идущая из 80ых. Создатели rust, как раз учли мировой накопленный опыт программирования на плюсах и ввели заимствование. А сишный код, считай, весь в блоке unsafe.
0
|
|||||||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||||||||
| 16.07.2020, 01:39 | |||||||||||
|
Добавлено через 3 минуты Добавлено через 3 минуты Еще есть композиция и агрегация - при ней априори нужно быть готовым к тому что объект может помереть сам - т.е. работоспособность ссылающегося по определению не зависит от существования объекта на который ссылаются. А заимствование - это сапоги в смятку. Добавлено через 7 минут Т.е. все эти унсафе - точно так же самые обычные сапоги в смятку. Добавлено через 1 минуту Добавлено через 3 минуты Добавлено через 4 минуты Добавлено через 8 минут Мало того - вырвиглазий синтаксис в сочетании с костылентем ООП - это гигантский источник труднообнаруживаемых ошибок, как в алгоритмах так и в архитектуре. Для того чтобы С или процедурный паскаль оказались неюзабельными для подавляющего большинства задач еще в 80-х хватило только второго. Добавлено через 37 минут
0
|
|||||||||||
|
Модератор
|
||||||||
| 16.07.2020, 23:09 | ||||||||
|
В общем, макросы rust-а продвинутей сишных, хотя, тоже не универсальные. На плюсах ведь как: хочет начинающий что то сделать, находит статью отсканированную с книжки 80ых, привыкает к арифметики указателей. А про rust во всех статьях unsafe и предупреждения. Почему, вы думаете, распространены языки с GC? У этих языков порог входа низкий. Самый-самый начальный порог. В этом легко убедиться посмотрев в разделе "плюсы для начинающих" какие ошибки в работе с памятью совершают новички. Самый простой способ их от этого избавить - ввести GC. Новички же ещё не создают системы из связанных объектов, ресурсами кроме памяти не рулят. И им с GC проще. Видимо, первая задача обучения программирования "ан масс" состоит в том что бы не бросили учиться на первых порах. А когда научаться хоть чему то, то уже и привыкли к GC. Rust, впрочем, никак не назвать языком с низким порогом вхождения. Правда, начинающий на rust-е будет в значительно большей степени застревать на этапе компиляции и читать сообщения компилятора, а на плюсах он быстро добирается до неинформативных "программа выполнила недопустимую операцию ...". Есть разница.
0
|
||||||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||||||||||||||||||
| 17.07.2020, 04:00 | ||||||||||||||||||||||
|
Очевидно что вот такого никакими ограниченными макросами сделать не удатся, придется копипастить
Добавлено через 1 минуту Добавлено через 31 минуту Еще раз - порог вхождения выдвигают задачи а не языки. Самый простой способ избавить их от ошибок - научить понимать что они делают. Все эти беды от недопонимания задачи. И от языка это не зависит. Точно так же напортачат с арифметикой индексов массивов - это точно такие же указатели. При этом работе с памятью учатся очень быстро. Не помню чтобы видел утечки после первого курса. Да и на первом курсе они были далеко не у всех. И это при тупо ручных new/delete как это было принято в середине 90-х. Потому что банально сначала объяснили что такое память как она устроена и т.дить когда . а потом уже сказали юзать динамическое распределение в лабах. С хотя бы STL-скими контейнерами и смартами утечь память - ну это настолько тупыми и упертыми надо быть что GC не просто течь, сифонить будет. Опять же с точки зрения корректности работы модели для ООП утечки как то фиолетовы. А вот несвоевременная деинициализация объектов - это просто катастрофа в плане корректности. И определить когда рассогласование превышает допустимый предел чтобы в ручную вызвать GC.Collect практически нереально, а тем более для новичков. Так что в этом плане языки с GC не дают абсолютно никаких преимуществ, окромя сплошных недоствтков - деинициализацию объектов и разрыв взаимосвязей нужно поизводить вручную иначе потечет - критерии ненужности в ООП и в GC кардинально противоположны, без ручного обрыва взаимосвязей ненужных по правилам модели объектов GC их мусором не посчитает. Это уже неоднократно показывалось. Точно так же как и беда-беда с ресурсами которая опять же решается только ручной деинициализацикй - т.е. ничем не отличается от ручных вызовов delete. Так что про порог вхождения - это сказки. Ничего большего чем написание хеллоуверда таким вошедшим доверить нельзя все равно, да и то исключительно под присмотром 3-х квалифицированных спецов на каждого. Добавлено через 2 минуты Добавлено через 10 минут А вот если изучает - то надо таки это пощупать на практике обязательно. А то хоть мульен унсафоф придумай накосячит если не с указателями то с индексами массивов и ассоциативными ключами - это точно такие же указатели. Как кстати и итераторы, которые в купе со смартами ничто иное как средство разделения указателей на две категории - владеющие и имеющие мутабельную арифметику. Добавлено через 8 минут При этом автоматика на то и кастомизируемая дадена что она очень сильно задачезависима. Откуда у него нужные средства автоматики под его задачу возьмутся если он не понимает как их собрать, с Луны упадут? В общем адекаватные люди указатели унсафе не считают, агрегацию с совладением скрещивать не пытаются, и язык который проектируют ржавчиной не называют. Добавлено через 26 минут Добавлено через 37 минут Добавлено через 6 минут При этом похерить принудительное удаление объектов == сделать язык абсолютно непригодным для ООП - критерии ненужности объектов в ООП определяются критериями возможности/невозможности продолжения их существования по правилам конкретно взятой предметной области, которым на наличие ссылок сугубо паралельно, так же как и композиции. При этом и кастомизацию автоматики автогенерация/автовызов деструкторов дает только в сочетании с ручным управлением памятью. Добавлено через 6 минут При этом похерить принудительное удаление объектов == сделать язык абсолютно непригодным для ООП - критерии ненужности объектов в ООП определяются критериями возможности/невозможности продолжения их существования по правилам конкретно взятой предметной области, которым на наличие ссылок сугубо паралельно, так же как и композиции. При этом и кастомизацию автоматики автогенерация/автовызов деструкторов дает только в сочетании с ручным управлением памятью. А делает GC не нужным как известно не какая та супер-дупер автоматика языка, а соблюдение правил работы взаимосвязей принятых в ООП, автовызов деструкторов в сочетании с ручным управлением временем жизни объектов на куче дает только возможность ее реализовать для нее автоматику под разные схемы. Задаче же управления памятью - это вообще из другой области - а именно найти кусок памяти под буфер требуемого размера. Либо решение этой задачи подстраивается под паттерн распределения каждого конкретно взятого экземпляра структур данных, либо никакой скорости не будет в принципе. Добавлено через 2 часа 29 минут
0
|
||||||||||||||||||||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 17.07.2020, 13:02 | ||
|
0
|
||
|
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,081
|
||||||
| 18.07.2020, 12:08 | ||||||
|
Взять ту же работу с памятью - насколько проще получить утечку в С++ по сравнению с bash или lua. Не путайте предметную область, в которую свой порог входа с языком программирования, в котором свой. Физик-магнитчик может прекрасно знать как спин-орбитальное взаимодействие скажется на проводимости прибора, но сумеет ли он описать эту модель на С++? Да, кстати, для подобных задач ни динамическая память, ни вырвиглазные шаблоны не нужны.
0
|
||||||
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 18.07.2020, 13:22 [ТС] | |
|
0
|
|
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||
| 18.07.2020, 16:19 | |||||
|
Добавлено через 4 минуты А соответсвенно если софт "допиливает" не квалифицированный программист то это самый обычный быдлокодинг по определению. В подавляющем случае это вызван тем что и саму исходную софтину делали быдлокодеры которые не предусмотрели нужных утилит подготовки данных. Особенно когда это такой фигни как "подправить диалоги" и т.д. касается. Добавлено через 5 минут
0
|
|||||
|
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,081
|
||||||
| 18.07.2020, 16:46 | ||||||
|
0
|
||||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||
| 18.07.2020, 21:45 | ||||||
|
Вы как будто курс "компьютерное моделирование систем" не разу не проходили - там это все четко разжевываается при сравнении современных ООП языков с их далекими из далеких 60-х, померших именно по причине абсолютной бесполезности GC. Добавлено через 11 минут Поэтому к примеру разыменование индекса массива с типом элемента T описывается матрицей преобразования в однородном пространстве а нахождение к примеру индекса элемента по его адресу матрицей Т.е. самое обычное ковариантное и контрвариантное преобразование тензора. По тем же самым принципам все это происходит и в дискретных адресных пространствах, только правила преобразования задаются уже другим способом. Добавлено через 4 минуты
0
|
||||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||
| 18.07.2020, 22:04 | ||||
|
IamLost, То что в статистике по ним приведенной написано.
Добавлено через 11 минут Так что про какое то осиливание порога вхождения в предметные области и не осиливание порога вхождения в профессиональные ЯП - это абсолютнейший бред никак не соответствующий реальной действительности. Реальная же действительность дает другое эмперическое наблюдение - человек не способный с полного нуля осилить плюсы за пол года программистом стать не способен в принципе. При этом получения навыка вхождения в предметные области и необходимые для этого теоритические знания быстрее чем за 5 лет получить нереально, Добавлено через 3 минуты
0
|
||||
|
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,081
|
|||||||||||
| 18.07.2020, 22:07 | |||||||||||
Между прочим, наводку я дал - погуглите что такое "тензор пьезокоэффициентов". Это именно тензор - матрица 3х6.
0
|
|||||||||||
| 18.07.2020, 22:07 | |
|
[Rust] Time
Frontend Для RUST Просадки FPS в Rust Rust ошибка E0623 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|