Форум программистов, компьютерный форум, киберфорум
Священные войны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.66/184: Рейтинг темы: голосов - 184, средняя оценка - 4.66
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484

Rust vs C++

26.06.2020, 16:10. Показов 49192. Ответов 660
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Кто-то писал на Rust? Стоит ли начинать учить? Насколько Rust хуже/лучше С++?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.06.2020, 16:10
Ответы с готовыми решениями:

[Rust] Обсуждение возможностей и предстоящей роли языка Rust
Psilon, чем он тебя так привлек? И почему именно "убийца плюсов"? Если напишешь развернутый ответ, обещаю вынести в отдельную тему и...

[Rust] Как привязывать WinAPI-функции к коду на Rust?
Может кто-нить дать код, КАК привязывать вин апишные функции к растовскому коду (на примере MesageBox). ...

Расскажите о своём опыте программирования на Rust
Доброе утро! Расскажите, пожалуйста, о своём опыте программирования на Rust. Можно в сравнении с C# или Delphi. Спасибо.

660
Эксперт .NET
 Аватар для Usaga
14776 / 9550 / 1366
Регистрация: 21.01.2016
Сообщений: 36,010
07.07.2020, 09:08
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Вы настолько безграмотны что не в сосотянии отличить языки программирования от форматов данных?
Код, генерирующий HTML отдаваемый браузера - это формат данных?
0
 Аватар для COKPOWEHEU
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
07.07.2020, 10:13
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
А с каких пор все это стало универсальными языками? Это даже не специализированные языки. Это просто куцые обрубки, для которых невозможно найти нишу, в которой они имели бы хоть какие то преимущества перед универсальными языками, а не только сплошные недостатки.
Ну то есть чем хуже данный конкретный язык, тем предпочтительнее он для использования по мнению Fulcrum_013. Ок, понятно.
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
То есть С++ активно применяется при разработке ОСей, драйверов, веб-страниц, баз данных, запросов к ним, автоматизации запуска программ, встраивания в другие программы в качестве модулей и т.д. - я правильно понял?
Правильно.
То есть Fulcrum_013 никогда не слышал о программирвоании. Не то чтобы это было непонятно из предыдущих 14 страниц...
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Вы настолько безграмотны
... и чтобы замаскировать свое невежество, постоянно пытается уличить в нем других.
Но тут ничего нового. Лучше ответьте на ранее заданные вопросы
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Откуда у вас объем кода XP?
Каков в нее объем скомпилированного ядра?
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
07.07.2020, 11:41
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
То есть Fulcrum_013 никогда не слышал о программирвоании.
То есть вы никогда не слышали о разработке софта от слова совсем.

Добавлено через 4 минуты
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Ну то есть чем хуже данный конкретный язык
Конкретно - имеют существенные недостатки по сравнению с любым универсальным языком, ведущте к существенному усложнению разработки, при этом возможная сфера применения ограничена одной узкой нишей для абсолютно всех этих горе-скриптов.

Добавлено через 4 минуты
COKPOWEHEU,
https://ru.wikipedia.org/wiki/... строк_кода
При этом показательны темпы роста. У винды рост объемов кода примерно линейный у линухи экспонента.

Добавлено через 3 минуты
Цитата Сообщение от Usaga Посмотреть сообщение
Код, генерирующий HTML отдаваемый браузера - это формат данных?
Ну там вообще то html и т.д. были поставлены в один ряд с языками программирования, а не о генерации речь шла.
Ну а касательно того что касается генерации HTML то тут возможности плюсов превосходят горе-скрипты как минимум на пару порядков. При этом не забывайте что html - это всего лишь формат сериализации объектов используемых браузером. Чтобы что то сериализировать нужно сначала это вычилить - т.е. принять санитизировать и обработать запрос. К этим вопросам плюсы преспособлены на порядки лучше скриптов, а особенно в свете перехода к клиентскому рендеру и дуплексным протоколам.

Добавлено через 11 минут
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Ну то есть чем хуже данный конкретный язык
Первейшие недостатки скриптов - динамическая типизация, наличие архаичного GC, полное отсутствие всякого присутсвия средств создания высокоуровневых асбтракций, исключительно низкая поизводительность, непредсказуемость времени выполнения и потребления ресурсов, что ограничивает их применение исключительно самым мелкими программулинами с нулевой степенью ответственности - т.е. не более чем хеллоуверды и разравнивание ввода-вывода, и даже в этом они существенно уступают универсальным языкам. Попытки применения их к чему то еще приводяи к экспоненциальному увеличению сложности разработки и/или катастрофическим последствиям.
0
 Аватар для COKPOWEHEU
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
07.07.2020, 12:04
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
[специализированные языки] имеют существенные недостатки по сравнению с любым универсальным языком, ведущте к существенному усложнению разработки, при этом возможная сфера применения ограничена одной узкой нишей для абсолютно всех этих горе-скриптов.
Ну то есть они имеют существенные недостатки, ограниченную нишу, неэффективны - и поэтому используются именно они, а не божественные плюсики?
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
https://ru.wikipedia.org/wiki/... строк_кода
Вы сами привели эту ссылку, ей же и буду вас в нос тыкать:
Размеры исходных кодов операционных систем семейства Microsoft Windows NT точно не известны
Год Версия Строк кода, млн.
1993 Windows NT 3.1 4-5
...
2001 Windows XP 45
Год Версия Строк кода
1991 Ядро Linux 0.1 10 239
1994 Ядро Linux 1.0.0 176 250
...
2001 Ядро Linux 2.4.0 3 377 902
...
2017 Ядро Linux 4.11.7 18 373 471
А теперь сравниваем:
1994 год: windows 3.1 занимает 4 млн. строк, Linux 1.0.0 - 0.18 млн. строк
2001 год: WindowsXP занимает 45 млн. строк, Linux 2.4 - 3.4 млн. строк
И даже в 2017 году ядро занимает всего 18.4 млн. строк - на треть меньше, чем Win2000.
Предвижу переобувание в прыжке: "большой объем кода windows - признак хорошего кода, там много комментариев, длинные имена переменных, форматирование и все такое". Так вот, нет. Само по себе количество строк кода не говорит строго говоря ни о чем. Ну кроме случая, когда программисту платят именно за строки (на всякий случай, это был не намек, а пример особого случая).
И еще раз обращаю внимание - я пользовался исключительно вашей ссылкой.
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Ну там вообще то html и т.д. были поставлены в один ряд с языками программирования.
Ну так не делайте этого больше: HTML - язык разметки, а не программирования. Он не управляет поведением чего бы то ни было.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
07.07.2020, 12:41
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Ну так не делайте этого больше:
Ну дак вы же их поставили ы один ряд а не я.
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
HTML - язык разметки, а не программирования
Он вообще язык только с точки зрения теории формальных грамматик. А там языком называется вообще все что можно распарсть, включая строки которые парсят даже самые простые регекспы.
В остальных же частях компутерных наук это обычно называют формат данных так же как JSON, XML и т.п.

Добавлено через 4 минуты
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Ну то есть они имеют существенные недостатки, ограниченную нишу, неэффективны
Где они вообще используются то? 99% обработки данных выполняется таки универсальными языками. И то что строк кода на скриптах на порядки больше чем на универсальных языках а к решению 1% задачнужно превлекать в 10 раз больше людей чем для решения 99% задач - это в первую очередь недостатки скриптов. Т.е. причина их "популярности" именно в их убогости в условии тотального дефицита квалифицированных спецов, вынуждающего привлекать ко второстепенным задачам толпы неквалифицированных разработчиков.

Добавлено через 6 минут
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
А теперь сравниваем:
Ну вот и продолжте кривую
7 января 2019: первый релиз-кандидат Linux 5.0 (более 26 млн строк кода). Продолжте кривую.
Размер растет по экспоненте.
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Само по себе количество строк кода не говорит строго говоря ни о чем.
Оно говорит оботносительной сложности разработки. На написание и отладку одной строку на любом языке программист тратит примерно одно и то же время.
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Предвижу переобувание в прыжке:
Вы так и не поняли суть? Вы сравниваете объем кода только ядра (т.е. только менеджер памяти, планировщик задач, загрузчик программ, система виртуализации устройств) и всей оси. Учитывая сколько апи и прочих искоробочных дел в винде, ядро у нее ну никак не больше 10% от общего объема кода, а скорее всего гораздо меньше.
0
 Аватар для COKPOWEHEU
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
07.07.2020, 13:18
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Первейшие недостатки скриптов - динамическая типизация, наличие архаичного GC, полное отсутствие всякого присутсвия средств создания высокоуровневых асбтракций
Мне динамическая типизация тоже не нравится, но поскольку найти достаточно распространенный скриптовый язык без нее мне не удалось, наверное зачем-то она нужна. Конечно, она добавляет накладные расходы, но и добавляет возможность модификации объектов, что в случае скриптов довольно полезная фича. Конечно, лишает возможности проведения одной проверки в компил-тайме... стоп, что? Вообще-то скрипты не предназначены для компиляции, значит проверку так и так придется проводить в рантайме.
То есть допотопный Си абстракции любого уровня обеспечивает без проблем, а скриптовые языки - нет? А какие именно абстракции вам нужны, которых невозможно добиться, скажем, в Lua?
Ах да, куда ж без пустословной нападки на GC. Наверное, это какая-то травма детства или разноцветные мечты о будущем. Кроме вас про этот механизм никто не кричит. Ну есть он в распространенных языках, ну страхует от некоторых ошибок почти не снижая производительность (а в скриптовых языках она не главное) - ну и что?
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Попытки применения их к чему то еще приводяи к экспоненциальному увеличению сложности разработки и/или катастрофическим последствиям.
Откуда берется квадратичная сложность при вашем подходе я понять могу (связи каждый-с-каждым). Откуда берется линейная или что-то вроде n*ln(m) при человеческой - тоже (древовидная структура или цепочки). Но откуда вы выкопали экспоненциальную? Здесь правда любопытно узнать какая математика за этим может стоять.
Ну а на счет ваших домыслов про экспоненциальную сложность - так это просто домыслы, основанные только на фанатизме.
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
[HTML] Он вообще язык только с точки зрения теории формальных грамматик.
Русский или английский - тоже языки. И регулярные выражения - языки.
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
к решению 1% задачнужно превлекать в 10 раз больше людей чем для решения 99% задач
Вы хоть сами поняли что написали? Даже если вместо ваших "процентов" подставить нормальные - естественно, что есть сложные задачи, требующие большого количества человеко-часов, а есть простые, на которые никто и отвлекаться специально не будет. Как это вообще связано с конкретными языками программирования?
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
в условии тотального дефицита квалифицированных спецов, вынуждающего привлекать ко второстепенным задачам толпы неквалифицированных разработчиков.
Это объективные внешние условия, которым язык должен соответствовать. Если не соответствует - отправляется в помойку, все просто.
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Ну вот и продолжте кривую
В отличие от вас я не привык брать цифры с потолка и заниматься гаданием на непонятных жидкостях.
Впрочем, раз так старательно подставляетесь, вот вам графики. В какую сторону будете выворачиваться теперь?
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Вы так и не поняли суть? Вы сравниваете объем кода только ядра
Это вы предложили такое сравнение, кто ж вам виноват что не подобрали какой-нибудь другой параметр?
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Учитывая сколько апи и прочих искоробочных дел в винде, ядро у нее ну никак не больше 10% от общего объема кода, а скорее всего гораздо меньше.
Ну если вы настаиваете, могу и в эту лужу вас потыкать: каков там, говорите, объем установленной актуальной винды, какие у нее системные требования и какой софт доступен из коробки? Я вот на почти чистой виртуалке обнаружил, что более 20 ГБ занято системой. Не менее чистая линуксовая виртуалка - 3,5 ГБ. Рабочая машина, с кучей софта и уже порядком загаженная - 30 ГБ. Про системные требования и функционал даже говорить не буду, а то виндузятникам совсем печально будет.
Миниатюры
Rust vs C++  
1
88 / 108 / 6
Регистрация: 16.04.2019
Сообщений: 451
Записей в блоге: 4
07.07.2020, 13:21
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
вот на почти чистой виртуалке обнаружил, что более 20 ГБ занято системой. Не менее чистая линуксовая виртуалка - 3,5 ГБ. Рабочая машина, с кучей софта и уже порядком загаженная - 30 ГБ.
Процетирую местного эксперта:
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Что говорит всего лишь о более агрессивной политике предвыделения пулов у винды - т.е. оптимизации по скорости за счет памяти, а не по памяти за счет скорости, как у рассчитанной на нищебродов линуху.
Это у винды такая "оптимизация" по жёсткому диску.

Не по теме:

Настолько крутая оптимизация, что на старое железо все ставят пингвина, а не новые версии божественной винды.



По поводу размера ядра линукса:
https://unix.stackexchange.com... es-of-code
According to cloc run against 3.13, Linux is about 12 million lines of code.

7 million LOC in drivers/
2 million LOC in arch/
only 139 thousand LOC in kernel/
lsmod | wc on my Debian laptop shows 158 modules loaded at runtime, so dynamically loading modules is a well-used way of supporting hardware.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
07.07.2020, 13:42
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Здесь правда любопытно узнать какая математика за этим может стоять.
Банальная возможность построения и повторного использования высокоуровневых абстракций. У всех скриптов она осталась на уровне языков 70-х точно так же как и у манаджед. При этом сложности с управлением ресурсами, в следствие роста сложности управления взаимосвязями, у языков не имеющих средств автоматики растут тоже экспоненциально. При этом GC без решения задачи управления взаимосвязями уборку произвести не способен. Ручное же решение оной задачи абсолютно аналогично ручному решению задачи управления жизненным циклом, решение которой попутно решает и задачу управления памятью гораздо более оптимальным способом чем GC.
При этом средства диагностики доступные при динамической типизации, опять же практически полностью исключают возможность использования высокоуровневых абстракций. Невозможность определить несоответсвие типов в компайлтайме требует покрывать абсолютно весь код бренч-тестами для отлова ошибок, которые в отличии от юнитов зависимы от реализации, что опять же ведет к резкому усложнению разработки.

Добавлено через 4 минуты
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
и какой софт доступен из коробки
Такой который линуксу искоропки не снился в принципе. К примеру десктоп, SQL сервер, Web-сервер, антивирус, брендмауер, и самое главное - огромная гора апи как десктопного так и более другого (к примеру MS Сrypt, DirectX и даже тот же не к ночи помянут будет NetFramework ). Это и еще много чего что входит в состав винды из коробки и это все учтено в объеме кода указанном для винды.
В линухе же это количество кода только ядра - т.е. только то что работает непосредственно в нулевом кольце, не считая драйверов. Как видим только вот эта мизерная часть давно превысила то во что можно вложить ось с кучей апи и искоробочного софта.

Добавлено через 3 минуты
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Русский или английский - тоже языки. И регулярные выражения - языки.
Еще раз - с точки зрения формальных грамматик. С их точки зрения вообще все язык.
С точки же зрения всего остального - это формат данных сериализации объектов браузера.
0
88 / 108 / 6
Регистрация: 16.04.2019
Сообщений: 451
Записей в блоге: 4
07.07.2020, 13:45
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
В линухе же это количество кода только ядра - т.е. только то что работает непосредственно в нулевом кольце, не считая драйверов.
Вы бредите? У вас шизофрения?
https://unix.stackexchange.com... es-of-code
0
 Аватар для COKPOWEHEU
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
07.07.2020, 13:47
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
у языков не имеющих средств автоматики растут тоже экспоненциально
Я просил не повторить голословное высказывание, а обосновать его. Почему именно экспоненциально, а не квадратично, логарифмически или факториально?
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
07.07.2020, 13:54
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Это вы предложили такое сравнение, кто ж вам виноват что не подобрали какой-нибудь другой параметр?
Ну как бы по размерам конкретных частей оси данные от тех кто юзает не С а что то более подходящее все равно не доступны.
Но касательно винды начиная с хрюшки рост общего объема вызван в первую очередь ростом Net Framework - т.е. расширением прикладного АПИ.

Добавлено через 7 минут
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Почему именно экспоненциально, а не квадратично, логарифмически или факториально?
Потому что чуть выше самого простого уровня появляются зависимые взаимосвязи, которые необходимо поддерживать при изменении данных. Т.е. к примеру в списке Б должны содержаться только элементы из списка A удовлетворяющие заданному набору ограничений. В результате расширении функциональности, требуется постоянно усложнять алгоритм уже существующих взаимосвязей. Средств же создания абстракций способных делать это автоматически скриптовые языки лишены напрочь, так же как и статической типизации, которая облегчает отладку работы со взаимосвязями на порядки.
0
 Аватар для COKPOWEHEU
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
07.07.2020, 14:00
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Такой который линуксу искоропки не снился в принципе. К примеру десктоп, SQL сервер, Web-сервер, антивирус, брендмауер
Да уж, антивирус линуксу точно не снился даже в кошмарах.
А на счет остального - графическое окружение в линуксе из коробки (сделаю вам поблажку, не буду пугать такими страшными словами как репозиторий, обойдемся чем-то вроде установочного диска Убунты) однозначно лучше виндового.
Про SQL и веб-сервер ничего не могу сказать - не интересовался (хотя то, что напрактике обычно используются именно линуксовые версии намекает).
БрЕндмауер - оговорочка по-виндузятному . Но iptables это разве не оно?
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
самое главное - огромная гора апи как десктопного так и более другого
Или вы про то, что в линуксе код, не относящийся к ядру, вроде графики или криптографии, в ядро и не пихают? Да, действительно, какое нарушение всех законов, куда катится мир!
Но вы от темы-то не уходите. Тут кое-кто размахивал ссылкой на количество кода в ядре и скорость его роста. Этому кому-то даже предоставили графики, в том числе темпов роста. Он продолжает утверждать что виндовый код растет линейно, а линуксовый - экспоненциально? Или у этого кого-то в его реальности прямая и экспонента именно так и выглядят?
0
88 / 108 / 6
Регистрация: 16.04.2019
Сообщений: 451
Записей в блоге: 4
07.07.2020, 14:03
Подтверждаю квалификаю Fulcrum_013

Ядро линукса с оф репозитория:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
1,1G    .
642M    ./drivers
134M    ./arch
52M     ./Documentation
46M     ./include
42M     ./fs
40M     ./tools
40M     ./sound
33M     ./net
11M     ./kernel
6,0M    ./lib
4,1M    ./mm
3,7M    ./scripts
3,6M    ./crypto
3,1M    ./security
1,8M    ./block
1,7M    ./samples
548K    ./MAINTAINERS
264K    ./ipc
228K    ./virt
216K    ./init
208K    ./LICENSES
100K    ./CREDITS
64K     ./usr
64K     ./Makefile
56K     ./certs
16K     ./.mailmap
16K     ./.clang-format
4,0K    ./README
4,0K    ./Kconfig
4,0K    ./Kbuild
4,0K    ./.gitignore
4,0K    ./.gitattributes
4,0K    ./.get_maintainer.ignore
4,0K    ./COPYING
4,0K    ./.cocciconfig
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
В линухе же это количество кода только ядра - т.е. только то что работает непосредственно в нулевом кольце, не считая драйверов.
Где только таких экспертов выращивали...
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
07.07.2020, 14:06
При всем при этом настолько тотальная декомпозиция, как ее принято делать в универсальных языках, в скриптах ведет в существенному снижению производительности в следствие невозможности инлайнить, использовать не изменяющиеся во времени взаимосвязи статически и т.д.
Усложнение взаимосвязей - обратная сторона медали декомпозиции. Потому как декомпозиция это только пол дела - на само деле то используется композиция декомпозиций. И либо язык имеет средства и для того и для другого, либо снижение сложности в одном месте приводит к ее экспоненциальному росту в другом.

Добавлено через 1 минуту
Цитата Сообщение от IamLost Посмотреть сообщение
Ядро линукса с оф репозитория:
Это не ядро. Ядро это kernel. от и посчитайте сколько там кода.
0
88 / 108 / 6
Регистрация: 16.04.2019
Сообщений: 451
Записей в блоге: 4
07.07.2020, 14:10
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Это не ядро. Ядро это kernel. от и посчитайте сколько там кода.
Дурачком прикидываться будете?
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
В линухе же это количество кода только ядра - т.е. только то что работает непосредственно в нулевом кольце, не считая драйверов.
Размер всего репозитория 25 млн строк кода, включая эту самую папку drivers, которая занимает больше половины всего репозитория.
И где же там исходный код винды, что бы посмотреть что у неё сколько занимает и найти хоть какое-то доказательство вашим потокам бреда?

"Эксперт", прекратите нести бред на форуме.
0
 Аватар для COKPOWEHEU
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
07.07.2020, 14:20
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Но касательно винды начиная с хрюшки рост общего объема вызван в первую очередь ростом Net Framework - т.е. расширением прикладного АПИ.
По вашей ссылке не википедию как раз данные ДО XP, так что попытка не засчитана.
Но даже так - майкрософты ведь активно продвигают .net как кроссплатформу, включая портирование на линукс. Естественно, в виде пакета (потому что кому оно нужно в ядре), но общий объем дистрибутива все равно слишком сильно отличается, даже если добавить этот пакет.
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Потому что чуть выше самого простого уровня появляются зависимые взаимосвязи, которые необходимо поддерживать при изменении данных.
Еще раз: даже если использовать ваш подход, каждый-с-каждым, это всего лишь квадратичный рост. Нормальные же разработчики поддерживают куда более медленный рост, просто потому что иначе никакой головы не хватит постичь все взаимосвязи. А самые грамотные разработчики понимают, что с увеличением абстракции сложность должна снижаться. И мало того что понимают, но ведь и достигают.

Добавлено через 4 минуты
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Это не ядро. Ядро это kernel. от и посчитайте сколько там кода.
Дабы не было претензий к неправильным данным - приведите свои. Хотя бы ссылку на то, что вы называете kernel.
Только смотрите чтобы как с количеством строк не получилось, а то уже почти стыдно над вами издеваться.

Добавлено через 2 минуты

Не по теме:

Цитата Сообщение от IamLost Посмотреть сообщение
"Эксперт", прекратите нести бред на форуме.
Да ладно вам! Какой замечательный случай: пациент уже столько наговорил, можно на цитаты растаскивать и в другие ветки сыпать, когда начнет своим дутым авторитетом размахивать.

1
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
07.07.2020, 14:36
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Еще раз: даже если использовать ваш подход, каждый-с-каждым, это всего лишь квадратичный рост.
Вы не поняли в чем хохма. Имеем список А элементы которого имеют свой набор взаимосвязей уже с реализованным слеженинием за жизненным циклом и т.д. Добавляется список Б который зависим от А и который надо поддерживать актуальным при изменениях А. В результате усложняется как алгоритм слежения за жизненным циклом списка A. При увеличении количества списков рост сложности алгоритма будет расти гораздо быстрее квадрата.
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
. Нормальные же разработчики поддерживают куда более медленный рост, просто потому что иначе никакой головы не хватит постичь все взаимосвязи.
Нормальные обработчики решают задачу в общем. Т.е. если нужна библиотека того или иного назначения то всю необходимую обработку взаимосвязей делает сама бибиотека, а не перекладывает задачу слежения за актуальностью данных на пользователя библиотеки, как это к примеру делает React, мотивируя это тем что это слишком сложно.

Добавлено через 2 минуты
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
А самые грамотные разработчики понимают, что с увеличением абстракции сложность должна снижаться.
Потому что абстракции эти сложности берут на себя. Аккурат средств создания подобных абстракций скриптовые и манаджед языки и лишены напрочь. При этом и все остальные универсальные языки в этом плане сильно проигрывают именно плюсам, почему собственно как универсальные и умерли.

Добавлено через 4 минуты
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Хотя бы ссылку на то, что вы называете kernel
То что и называется kernel-ом - ядро ос. Т.е. та часть которая работает в нулевом кольце - а именно диспетчер памяти, планировщик задач, система виртуализауии устройств, загрузчик прикладных программ и драйверов.
Хотя опять же на основе отрывочных данных из википедии оценить это можно тлько очень приблизительно.
Касательно продуктивности плюсов и С лучший способ оценки - транспилировать код с плюсов в С и сравнить количество строк. А это делалось в свое время постоянно - примерно до середины 90-х прототип компилятора, используемый для развития языка, работал именно как транспилятор в C. Между С и "С с классами" разница в количестве строк в десятки раз. Для современных плюсов разница с "С с классами" будет не меньше, при этом будет резко возрастать при росте объема и сложности софтины.
0
 Аватар для COKPOWEHEU
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
07.07.2020, 15:16
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Имеем список А <...> Добавляется список Б который зависим от А
Эти списки на одном слое абстракции или на разных?
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Нормальные обработчики решают задачу в общем.
Ничего подобного. Нормальные разработчики сначала решают конкретную задачу, не занимаясь оверинжинирингом. Это уже потом, когда становятся очевидны типовые модули, они выносятся в библиотеку.
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Потому что абстракции эти сложности берут на себя.
Именно так, и высокоуровневые языки являются частным случаем абстракции. Пример с bash уже приводили: язык скрывает реализацию строк, файлов, потоков и процессов от программиста, не то что мешая, а прямо запрещая вмешиваться в низкий уровень.
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
То что и называется kernel-ом - ядро ос. Т.е. та часть которая работает в нулевом кольце - а именно диспетчер памяти, планировщик задач, система виртуализауии устройств, загрузчик прикладных программ и драйверов.
Нет-нет-нет, вы ссылку приведите, чтобы можно было посчитать строки кода.
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Хотя опять же на основе отрывочных данных из википедии оценить это можно тлько очень приблизительно.
Я вам уже неоднократно предлагал проверить конечный итог - объем дистрибутива, функциональность, требования. Вы почему-то* уходите от ответа.
*) нет, я-то понимаю почему: не хочется опозориться еще сильнее.
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Касательно продуктивности плюсов и С лучший способ оценки - транспилировать код с плюсов в С и сравнить количество строк.
Как бы вам намекнуть что это некорректное сравнение. Как минимум, потому что одну и ту же задачу на С++ скорее всего будут решать в ООП стиле, а на Си - в процедурном, то есть сам подход будет разным. Если уж хотите сравнивать - сравнивайте ассемблерный код или, что то же самое, объем бинарника.
Ну а если имеется в виду, что чем более высокоуровневый язык используется, тем меньше объем кода - так это не новость, более того, можно даже ввести какой-то коэффициент пропорциональности (линейной зависимости), чтобы этот объем прикинуть. Где-то слышал, что объем кода на С++ больше кода на Питоне примерно в 10 раз, но за достоверность не ручаюсь.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
07.07.2020, 15:51
COKPOWEHEU, При этом к примеру манаджед, в следствие фундаментальных недостатков присущих GC, никогда не сможет подняться в средствах создания высокоуровневых абстракций выше чем Симула-67 - т.е. даже достичь уровня "С с классами". Учитывая же фундаментальные недостатки динамической типизации, cкрипты по продуктивности и опять же средствам создания абстракций всегда будут уступать манаджед.
Касательно же остальных универсальных языков - то преодолеть уровень "С c классами" и стать хотя бы на несколько ступенек выше смогла только Ада, в следствие того что проектировалась в тоже самое время что и плюсы. Для остальных же универсальных языков с момента появления плюсов и добавления средств ООП в Аду дальнейшее развитие стало просто неперспективно - существующие библиотеки на них можно точно так же использовать и в плюсах, а впихивание средств аналогичных плюсовым в их синтаксис приведет к полному перекраиванию языка - т.е. по факту проектированию нового, который априори не будет лучше уже существующего С++ - развитие плюсов упирается в первую очередь в потолок известных концепций построения абстракций, а не в невозможность их описания средствами синтаксиса.

Добавлено через 5 минут
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Как минимум, потому что одну и ту же задачу на С++ скорее всего будут решать в ООП стиле, а на Си - в процедурном, то есть сам подход будет разным
ООП - это методология проектирования а не стиль написания кода. При этом в плане реализации это абсолютно естественное развитие процедурного стиля. Не ООП появилось потому что в плюсы добавили классы, а классы в плюсы добавили потому что без применения ООП спроектировать софтину было бы гораздо сложнее, если вообще укладывалось бы в возможности человеков, а костыленье ООП в С и код раздувало, по сравнению со встроенной поддержкой ООП, и диагностики не имело что опять же сильно усложняло разработку.
Чисто технически в плане реализации - ООП это всего лишь способ группировки функций по их применимости к структурам данных. Так что именно это и есть самое корректное сравнение.

Добавлено через 7 минут
Все что добавил Страутсруп в "С с классами" - это средства управления словарем парсинга и автоматическую генерацию и вызов некоторых процедур.
Это уже не говоря про средства метапрограммирования, актуальных как для классов так и для свободных функций, в следствие добавления которых "С с классами" и стали С++.

Добавлено через 11 минут
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
не занимаясь оверинжинирингом
Оверинжиниринг - это плодить мульен вариантов решений для частных случаев, вместо одного универсального решения.

Добавлено через 1 минуту
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
объем дистрибутива
Каким боком объем дистрибутива соотносится с объемом кода и продуктивности языка? А тем более при настолько гигантском разрыве в плане того что именно включено в дистрибутив.

Добавлено через 2 минуты
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
язык скрывает реализацию строк, файлов, потоков и процессов от программиста, не то что мешая, а прямо запрещая вмешиваться в низкий уровень
Это задача библиотек а не языка. При этом даже в баше всем этим занимаются внешние библиотеки написанные на универсальном языке.
0
 Аватар для COKPOWEHEU
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
07.07.2020, 16:12
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
<Очередной поток бреда про фундаментальные недостатки всех языков кроме С++>
Общие соображения это, конечно, хорошо. А вот если бы они еще и практикой подтверждались...
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
ООП - это методология проектирования а не стиль написания кода. При этом в плане реализации это абсолютно естественное развитие процедурного стиля.
Конечно. ООП - одно из естественных ответвлений от процедурного стиля. Это не отменяет жизнеспособность других ответвлений, как и процедурного стиля самого по себе.
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Оверинжиниринг - это плодить мульен решений для частных случаев, вместо одного универсального решения.
А равно и пытаться с нуля написать абсолютно универсальную софтину.
Еще раз: сначала задачу решают "хоть как-нибудь", потом рефакторят, выносят общий функционал в библиотеки для последующего переиспользования. С наскоку мало-мальски сложную программу написать невозможно.
--
Так что там со скоростями роста ядер разных ОС?
Что со ссылкой на "правильное" по вашему мнению ядро?
Что с объемом дистрибутивов, функционалом и требованиями?
Что с требованиями к языкам, включающим различную квалификацию программистов (а то и не-программистов)?

Добавлено через 5 минут
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Каким боком объем дистрибутива соотносится с объемом кода и продуктивности языка? А тем более при настолько гигантском разрыве в плане того что именно включено в дистрибутив.
Мы ведь говорим о десктопном применении двух ОСей общего назначения, с приблизительно равным общим функционалом.
Вы предложили сравнивать "изкоробочные" данные - я готов, озвучьте объем, функционал и требования актуальной винды сразу после установки.
Можно сравнить "сферический в вакууме" компьютер офисного планктона, которому нужны разве что Офис, браузер, смотрелки картинок да pdf-ок.
Можно и дальше усложнять задачи специфичным софтом, но это перерастет уже в сравнение софта, а не операционок.
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Это задача библиотек а не языка. При этом даже в баше всем этим занимаются внешние библиотеки написанные на универсальном языке.
Не угадали, в bash вообще нет библиотек, ни внешних, ни внутренних. Функциональность там меняется по-другому.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.07.2020, 16:12

[Rust] Time
Подскажите как узнать время в Rust. //Rust extern crate time; fn main() { let now = time::get_time(); ...

Rust+assembler
Как связать язык rust и ассемблер не используя ассемблерные вставки(неудобно использовать их в RUSTе)?

Frontend Для RUST
Нужна помощь! Есть класс Participant, в этом классе есть функция new. impl Participant { /// Create a new `Participant`. ...

Просадки FPS в Rust
Всем привет нужна помощь! У меня ноут HP, установлен процессор i5-8300H 2,3 ггц, 6 ядерный 8 поточный, так же установлена видеокарта Nvidia...

Rust ошибка E0623
при компиляции появляется ошибка E0623 в документации этот номер пропущен. в чём может быть проблема? ошибка: error: lifetime...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
300
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера 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, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru