1.1, JL2001 (ok), 14:02, 24/05/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +29 +/– |
chromium на rust перепишут или выкинут в пользу движка firefox ?
| |
|
|
3.301, Аноним (301), 23:51, 24/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Хороший движок, но вроде параллелится так себе, да и не хотят законно открывать. Разработка нелегальными энтуазистами идёт плохо.
| |
|
|
3.108, Gemorroj (ok), 17:02, 24/05/2020 [^] [^^] [^^^] [ответить]
| +8 +/– |
вы что-то имеете против аджалйла и девопс?
до свидания, собеседование закончено, мы вам перезвоним.
| |
|
4.209, Оно им (?), 20:58, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Видимо грядки у всех разные. У меня и на Хроме всё путём. Меньше, чем в фф.
| |
|
5.273, Аноним (273), 22:59, 24/05/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
На компе с 4гиг оперативы вкладка почему-то жрет на 15% больше чем на компе с 16гиг. Показания одного проц.манагера (Process Hacker) на двух системах - 1: Win7x64, 2: Win10x64
| |
|
|
3.355, лютый жабби__ (?), 09:53, 25/05/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
>одна вкладка -3GB оперативы
Бред ) у меня РАМы 4ГБ, я бы заметил.
Таб Опеннет ест мегабайт 150.
| |
|
4.359, Аноним (359), 10:11, 25/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Я и 10 видел. Открываешь какой-нибудь 9гаг или реддит с тумблером, вот и нет твоих 4гб. А это только 1 таб.
| |
|
3.361, Аноним (361), 10:16, 25/05/2020 [^] [^^] [^^^] [ответить]
| +3 +/– |
Типичный профан. Причем тут программисты? Ты видел нонешниее количество свойств для одного узла DOM? А дизайнеров видел современных генерящих какое-то бесконечное количество классов? Вот к ним и отправляй зуд. Программисты самое плохое что сделали, так это пул памяти и то это не точно.
| |
|
2.253, Аноним (253), 22:09, 24/05/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
> chromium на rust перепишут или выкинут в пользу движка firefox ?
Ну что только не сделают, чтобы не нанимать на хорошую зарплату грамотных программистов, а нанимать макакокодеров криворучек, и по результатом которых потом грешить на Си и плакаться, что на xRust долго и дорого переписывать!
Но они таки что-нибудь придумают в эту сторону, раз появляются такие статьи - "это ЖЖЖ неспроста!"
| |
|
3.275, JL2001 (ok), 23:01, 24/05/2020 [^] [^^] [^^^] [ответить]
| –3 +/– |
>> chromium на rust перепишут или выкинут в пользу движка firefox ?
> Ну что только не сделают, чтобы не нанимать на хорошую зарплату грамотных
> программистов, а нанимать макакокодеров криворучек, и по результатом которых потом грешить
> на Си и плакаться, что на xRust долго и дорого переписывать!
> Но они таки что-нибудь придумают в эту сторону, раз появляются такие статьи
> - "это ЖЖЖ неспроста!"
на C/C++ писать грамотно нельзя, запрещено законами физики: или C/C++, или грамотно
https://www.opennet.ru/openforum/vsluhforumID3/120718.html#24
| |
3.307, виндотролль (ok), 00:07, 25/05/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
> на хорошую зарплату грамотных программистов
> на Си
> макакокодеров криворучек
Не люблю огорчать людей, но, к сожалению (искренне говорю), грамотные сишники получают сильно меньше чем макакокодеры, выучившие ангуляр, но понятние не имеющие даже как работает браузер.
| |
|
4.350, Lex (??), 08:55, 25/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Самое забавное, что т.н «грамотному сишнику» для его «грамотности в Сях» нередко требуется меньший поток знаний, чем т.к макакакодеру... да и знания у первых устаревают гораздо медленней( да и получают действительно годные сишники, а не симакаки, ооочень неплохо )
Выучил, что такое указатель - оно и через 20 лет указателем и будет.
Выучил, что такое контекст выполнения и bind - и через несколько лет за их упоминания уже с собеседования сс.ными тряпками гонят, т.к с приходом подобиях классов и стрелочных функций bind-оцирк практически полностью потерял актуальность, а то и стал плохой практикой.
| |
|
5.364, Аноним (364), 10:46, 25/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
bind еще не потерял актуальность, потому что кое-что из ф-ций браузера через function и реализацию "псевдо классов через function" сделано. И чтобы поведение этого поменять для нестандартных случаев надо знать что такое bind. Еще много проектов с кодом 3 летней давности с bind и никто не будт переписывать тысячи строк кода в проекте который приносит деньги, по крайней мере не на проекте в проде и всегда нужны будут люди которые фиксят баги и делают мелкие доработки пока параллельно пишется прототип на новых технологиях.
| |
5.410, виндотролль (ok), 19:01, 25/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Выучил, что такое указатель - оно и через 20 лет указателем и
> будет.
> Выучил, что такое контекст выполнения и bind - и через несколько
> лет за их упоминания уже с собеседования сс.ными тряпками гонят, т.к
> с приходом подобиях классов и стрелочных функций bind-оцирк практически полностью потерял
> актуальность, а то и стал плохой практикой.
Хорошая точка зрения, справедливая.
Пожалуй, правильно будет сказать, что всякие простые закономерности (X получает больше Y) возможны только при фиксированном значении других парамтеров, типа, количество лет опыта.
| |
|
4.363, Аноним (364), 10:42, 25/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Если сишник получает меньше, то он плохой сишник. Потому что хорошие сишники пишут движки браузеров, ядро Linux/Windows и прочее. Ты знаком с такими хорошими сишниками?
| |
|
5.409, виндотролль (ok), 18:52, 25/05/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
> пишут движки браузеров, ядро Linux/Windows и прочее.
Движки браузеров и ядра плохо продаются. И как хорошо ты их ни пиши, деньги идут от продажи продуктов, которые делаются людьми с более высокоуровневыми скиллами.
Продали продукт → нарезали бюджет между непосредственными авторами продукта и сишниками, работа которых вот так сразу не видна.
Вот консультанты с бекграундом в си получают хорошо, да. И то не за написание си кода, а за отладку и оптимизации. Но это касается любых консультантов.
| |
|
4.471, Аноним (469), 08:08, 27/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
> грамотные сишники получают сильно меньше чем макакокодеры
Значит не такие уж и грамотные, как минимум в управлении проектом и собой. Иначе им было бы западло работать за нигерскую зарплату, для начала. ЧСХ хороших зарплат для них есть. Но да, это надо зад отлепить и пойти поискать, а не просто жрать первое что дали.
| |
|
3.331, Анончик (?), 07:03, 25/05/2020 [^] [^^] [^^^] [ответить]
| +4 +/– |
Ты размер кодовой базы хромиума видел? В таком огромном проекте, да без использования умных указателей, иметь уязвимости будет любой проект с трижды топовыми цпп разработчиками.
| |
|
|
5.472, Аноним (469), 08:09, 27/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Ну вот посмотришь на тебя и поверишь в то что технобоги бывают. Во всяком случае технопланктон точно бывает.
| |
|
|
3.335, Аноним (335), 07:52, 25/05/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Ну что только не сделают, чтобы не нанимать на хорошую зарплату грамотных программистов
Ну так наняли кучу вебмакак, которым вообще лучше бы рассаду выращивать, зато дешево. Казалось бы. Правда потом оказалось что клетку чистить за этими господами надо много, регулярно и это почему-то не дешево.
| |
|
4.388, Аноним (388), 14:22, 25/05/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
>> Ну что только не сделают, чтобы не нанимать на хорошую зарплату грамотных программистов
> Ну так наняли кучу вебмакак, которым вообще лучше бы рассаду выращивать, зато
> дешево. Казалось бы. Правда потом оказалось что клетку чистить за этими
> господами надо много, регулярно и это почему-то не дешево.
Я вот, агроном по образованию, для себя выращиваю рассаду дома, гляда на работу современных вэбмакак, я бы даже поливать сорняки их не подпустил!
| |
|
5.473, Аноним (469), 08:11, 27/05/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Ну вот с этим они как раз справляются. Поэтому помидоров нет, зато вот вам 2 самосвала полыни. Бесплатно. С доставкой на дом.
| |
|
4.454, burjui (ok), 19:45, 26/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
По-вашему, это вебмакаки пишут движок браузера на C++? Это что-то новое, никогда о таком не слыхал. Таки как вы себе это представляете?
| |
|
3.357, Отражение луны (ok), 10:05, 25/05/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
Всегда забавно видеть как джуны (в лучшем случае) рассуждают на тему грамнотности програамистов)
| |
|
|
1.6, JL2001 (ok), 14:12, 24/05/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +7 +/– |
> Разработчики проекта Chromium
> Применение языков, рассчитанных на выполнение проверок безопасности работы с памятью во время компиляции (позволит исключить негативное влияние на производительность за счёт избавления от осуществления подобных проверок во время выполнения кода
ну хоть какие-то разрабы, пишущие на C, адекватные, и признают проблему
а то сплошное "да у вас руки кривые, опыта мало, рука не набита, молокосос!"
| |
|
2.13, Аноним (359), 14:24, 24/05/2020 [^] [^^] [^^^] [ответить]
| +8 +/– |
Они пишут на си? Я не знал, всю жизнь думал, что там плюсы. Неужели си можно превратить в такого монстра? Да не, вряд ли.
| |
|
|
|
|
6.336, Аноним (335), 07:53, 25/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Он внезапно не си. Некоторые сишные конструкции в C++ вообще низя.
| |
|
|
6.109, Аноним (359), 17:03, 24/05/2020 [^] [^^] [^^^] [ответить]
| +3 +/– |
Ммм файл 2 мегабайта являющийся полноценной современной системой с поддержкой всего железа и кучей фреймворков и апи для всего что только можно. Ну ладно в несжатом виде это файл 20мб, но там сплошные нули и выравнивания.
| |
|
|
8.117, Аноним (359), 17:16, 24/05/2020 [^] [^^] [^^^] [ответить] | +3 +/– | Я его каждую неделю вижу, а что 90 кода там амдшные дрова Я просто привёл при... текст свёрнут, показать | |
8.338, Аноним (335), 07:56, 25/05/2020 [^] [^^] [^^^] [ответить] | +/– | Не мешает опенвртшникам делать из него 900 кило бинарь, при том что там куча фич... текст свёрнут, показать | |
|
7.134, Аноним (-), 17:54, 24/05/2020 [^] [^^] [^^^] [ответить]
| –5 +/– |
> Ммм файл 2 мегабайта являющийся полноценной современной системой с поддержкой всего железа
> Ну ладно в несжатом виде это файл 20мб, но там сплошные нули
> и выравнивания.
https://packages.debian.org/ru/sid/linux-image-5.6.0-1-amd64
> Архитектура Размер пакета В установленном виде Файлы
> amd64 49 083,5 Кб 277 116,0 Кб [список файлов]
... то ли в дебиане лохи, то ли очередные фантазии почти-трехсотого^W очередного анонима опеннета.
| |
|
8.137, Аноним (359), 18:06, 24/05/2020 [^] [^^] [^^^] [ответить] | +1 +/– | Я уже упоминал за амдшные дрова Чё ты споришь, я по фактажу говорю Всё вкомпил... текст свёрнут, показать | |
|
|
|
11.180, Аноним (180), 20:35, 24/05/2020 [^] [^^] [^^^] [ответить] | –4 +/– | По сравнению с KolibriOS - абсолютно не впечатляет И нахваливать С могут разве... большой текст свёрнут, показать | |
|
|
13.240, Аноним (240), 21:51, 24/05/2020 [^] [^^] [^^^] [ответить] | +1 +/– | Не в два, а где-то в 1 8531 Но ладно, чертяка, уговорил -- пусть будет xz -6 ... большой текст свёрнут, показать | |
|
12.475, Аноним (474), 08:22, 27/05/2020 [^] [^^] [^^^] [ответить] | +1 +/– | Я бы сказал что KolibriOS абсолютно не впечатляет Кроме разве что тем что до ни... большой текст свёрнут, показать | |
|
|
|
|
|
|
|
|
|
3.31, oopssss (?), 15:04, 24/05/2020 [^] [^^] [^^^] [ответить]
| +4 +/– |
Не обращай внимания, большинство смузихлёбов не тв курсе чем це от це-крест-крест отличается
| |
|
4.41, JL2001 (ok), 15:33, 24/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Не обращай внимания, большинство смузихлёбов не тв курсе чем це от це-крест-крест
> отличается
а что, в свете данной новости C от C++ чем-то отличается?
| |
|
|
6.53, Аноним (359), 15:51, 24/05/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Ничем не отличается, а наоборот C++ в себя включает Cи
Это не совсем так с некоторых пор, в си добавили сахар которого нет в плючах. Но я думаю, если писать на плючах исключительно как на "си с классами", то многих потенциальных проблем можно избежать. Только зачем тогда брать плючи?
| |
|
7.69, Аноним (222), 16:10, 24/05/2020 [^] [^^] [^^^] [ответить]
| –5 +/– |
Это так, C++ обратно совместим с Cи, то есть C++ включает C99
| |
7.243, Аноним (243), 21:55, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Но если не брать плюсы, то как тогда быть в "Си с классами"? В C классов нет. Разве что вспомнить про Objective-C.
| |
7.288, Аноним (222), 23:16, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
"Си с классами" это не про ООП и присущие ему фичи типа наследования, полиформизма, а про тупую группировку функций в классы, ака структуры
| |
|
8.360, Аноним (359), 10:14, 25/05/2020 [^] [^^] [^^^] [ответить] | –1 +/– | Это лучше, чем строить ООП поверх struct А почему нельзя сделать наследование и... текст свёрнут, показать | |
|
|
|
|
|
|
|
1.9, Fracta1L (ok), 14:16, 24/05/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –19 +/– |
Надеюсь, это уже начало конца убогих древних языков, генерящих дыры на ровном месте
| |
|
2.12, Аноним (359), 14:21, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Куда лучше будет научить программистов прогонять свой код в анализаторе и не совершать уб. Для ошибок в асме не поможет правда, но это надо асм начать хомячкам прививать и они больше не будут косячить так.
| |
|
3.38, red75prim (?), 15:27, 24/05/2020 [^] [^^] [^^^] [ответить]
| +10 +/– |
Правильно, нафига ставить всякие чехлы на болгарки. Пусть каждый юзер проходит курс техники безопасности и не делает ошибок.
| |
|
4.43, Аноним (359), 15:37, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Правильно, нафига ставить всякие чехлы на болгарки. Пусть каждый юзер проходит курс
> техники безопасности и не делает ошибок.
Все отрезанные пальцы как раз из-за пользовательских нарушений. Но от выбитых глаз наверно и чехлы никакие не помогут. У каждого инструмента своя область применения и нельзя об этом забывать. Если не use after free, то жит пробьют при желании (это едва ли не 99,999% успешных атак). Вот контроль за песочницей должен быть очень жёстким, чтобы ничто не смогло просочиться.
| |
|
5.66, red75prim (?), 16:07, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Ну в статье-же прямо написано: "В настоящее время возможности применения [sandboxing] достигли предела своих возможностей [...]".
| |
|
6.84, Аноним (359), 16:22, 24/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Ну в статье-же прямо написано: "В настоящее время возможности применения [sandboxing] достигли
> предела своих возможностей [...]".
Они внезапно осознали, что от дыр в вебгл песочница не спасает. Не иначе.
| |
|
5.70, red75prim (?), 16:11, 24/05/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Если не use after free, то жит пробьют при желании (это едва ли не 99,999% успешных атак)
Где эта статистика опубликована?
| |
|
6.77, Аноним (359), 16:17, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Статистика получена на основании анализа всяких соревнований по взлому, результатов обхода drm, и путей распространения малвари. В парсере dom я припомню всего пару уязвимостей. Там ещё что-то в css и html5/media было недавно, но это не серьёзно. Всё остальное это жит. Все эти уязвимости во флэше тоже, это всё жит и только он. Это наиболее удобный и очевидный вектор атаки, песочницы хоть как-то спасают, но только если они сами не уязвимы.
| |
6.99, Аноним (99), 16:40, 24/05/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
любой разумный программист это и так знает без всякой статистики
| |
|
5.194, Michael Shigorin (ok), 20:46, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Ммм... полагаете, у фрактала эти комментарии -- плод невыразимой ненависти, выражаемый полуслепым восьмипальцевым?..
| |
|
6.231, kusb (?), 21:32, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Привет, ты же у нас по эльбрусам? Помогла бы их хвалёная технология защищённого режима? Или не это?
| |
|
|
|
3.42, JL2001 (ok), 15:36, 24/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Куда лучше будет научить программистов прогонять свой код в анализаторе и не
> совершать уб. Для ошибок в асме не поможет правда, но это
> надо асм начать хомячкам прививать и они больше не будут косячить
> так.
парни из новости, которую ты комментишь, признали, что это не помогает
| |
|
4.65, Аноним (222), 16:06, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Программисты гугла, это те которые не могут за 10 лет свою недоос привести в юзабельный вид без микро и макролагов? ммм, да не смешите меня
| |
|
|
6.86, Аноним (222), 16:26, 24/05/2020 [^] [^^] [^^^] [ответить]
| –4 +/– |
Разработчики хрома жалкие воры неспособные довести до ума то что стырили, да и я про WebKit/KHTML который хвала богам не стал тормозящее жруще многопроцессорным, в отличии от Blink... господи какой это кал
| |
|
5.153, Аноним (99), 19:18, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Действительно, микролаги это ужастно. Никогда не буду пользоваться гуглоос
| |
|
|
3.125, Аноним (99), 17:26, 24/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
std::vector<T,Allocator>::operator[]
Returns a reference to the element at specified location pos. No bounds checking is performed.
| |
|
2.32, user90 (?), 15:06, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Толстоват ты) Может дело таки не в языках, а в условных индусах?
| |
|
3.45, JL2001 (ok), 15:38, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Толстоват ты) Может дело таки не в языках, а в условных индусах?
тебя в гугл не взяли и теперь ты говоришь, что в гугле все индусы?
| |
|
4.75, Аноним (222), 16:17, 24/05/2020 [^] [^^] [^^^] [ответить]
| –3 +/– |
Лучше идти в дизайнеры, чем в программисты... фэ прогеры даже звучит зашкварно
| |
|
|
6.376, Аноним (373), 11:38, 25/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Квалифицированные прогеры не могли такое сказать, потому что понимают что C и C++ это разные языки. Похоже кто-то врёт.
| |
|
|
|
|
|
3.226, JL2001 (ok), 21:24, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
> А я всегда думал что не язык, а люди генерят дыры...
это совместно
но любой человек в решете воды не наносит
| |
|
4.229, Michael Shigorin (ok), 21:29, 24/05/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
> но любой человек в решете воды не наносит
Как будем с поверхностным натяжением, со следующего года отменим или немедленно?
| |
|
5.263, JL2001 (ok), 22:30, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
>> но любой человек в решете воды не наносит
> Как будем с поверхностным натяжением, со следующего года отменим или немедленно?
никак
раскалим решет0 до 4к кельвинов (там на днях как раз новый материал на 4к сделали) и вручим разработчику как инструмент для переноса воды
| |
|
4.258, proninyaroslav (ok), 22:18, 24/05/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
> но любой человек в решете воды не наносит
Разве C/C++ имеет какие то архитектурные дыры или дыры безопасности? Да, есть UB, есть ручное управление памятью, нет проверки границ массива, есть возможность выстрелить в ногу другими способами, но это регламентировано языком. И если язык разрешает такие вольности, а разработчик всё равно использует его, то вся ответственность лежит на разработчике и винить надо только его самого. Иначе не используйте этот язык (хотя чисто технически и экономически не всегда возможно, поэтому C/C++ будет ещё долго использоваться, а разработчики продолжать винить сам язык)
| |
|
5.268, JL2001 (ok), 22:37, 24/05/2020 [^] [^^] [^^^] [ответить] | +/– | не имеет дыр C C замечательный мультиархитектурный ассемблер и поверх ассембле... большой текст свёрнут, показать | |
|
6.302, proninyaroslav (ok), 23:55, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Язык с GC для этих целей не подойдёт (по крайней мере для движка браузера), а жизнеспособных альтернатив C/C++ на тот момент не было. Ну а теперь переписывать полностью на другой язык дорого, так как время - деньги и найти спецов которые знают какой нибудь Rust сложно и дорого (ну или в мозиллу обратится)
| |
|
|
|
|
2.156, Корец (?), 19:31, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Надеюсь, что нет, а то как ты потом будешь писать забавные комменты в интернетах?
| |
2.164, vitalif (ok), 19:53, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Ты б сделал сам сначала волшебный язык, который и удобный, и безопасный, и быстрый. А потом рассказывал
| |
|
3.277, JL2001 (ok), 23:03, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
> С++, конечно, знатный уродец, но ничего другого пока нет.
D, rust, и остальные, с кем я мало знаком, но готовые жить на микроконтроллерах
| |
|
4.298, Аноним (222), 23:40, 24/05/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
смысл брать C++ для микроконтроллеров? Это как бы сфера си, как и дела ядерные, драйвера и прочая близость к железу
| |
|
|
|
1.16, mumu (ok), 14:35, 24/05/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +8 +/– |
Кастую в тред аналитиков из всех предыдущих топиков, которые любят повторять "Нужно всего лишь программировать правильно, C++ тут вовсе не при чем".
Может соберетесь и поможете гуглу? А то гугл не способен найти нормальных программеров. Одни олимпиадники и специалисты по крышкам люков работают.
| |
|
2.24, Аноним (24), 14:50, 24/05/2020 [^] [^^] [^^^] [ответить]
| +9 +/– |
http://robert.ocallahan.org/2017/07/confession-of-cc-programmer.html
Один из крутых C++ программеров (Роберт О'Каллахан когда работал с Мозилле, то писал ядро движка Gecko, подсистему "layout") - говорит о том, что он *не может* постоянно писать безопасный код на плюсах. И ревью коллег не помогают.
Иными словами, если чел пишет на плюсах, ты он вынужден большую часть своего времени тратить на отслеживание и проверки безопасности кода. А на остатках писать функционал. На rust черновую работу берёт на себя компилятор, хотя и ценой времени компиляции.
| |
|
3.44, Аноним (44), 15:37, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Ну плюсам не хватает safe mode какого-то.
Вопрос знатокам можно ли в STL выстрелить себе в ногу ? Обратившись за границы массива, например ?
| |
|
4.49, Аноним (222), 15:46, 24/05/2020 [^] [^^] [^^^] [ответить]
| +4 +/– |
Нет нельзя, просто берешь контейнер типа вектор, суешь в него что хочешь и итерируешь и итерируешь)
| |
|
5.126, Аноним (99), 17:28, 24/05/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
std::vector<T,Allocator>::operator[]
Returns a reference to the element at specified location pos. No bounds checking is performed.
| |
|
|
5.136, Аноним (136), 17:58, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Допустим, она бы там была. Запросили элемент вне границ, дальше то что делать? Работать дальше, будто ничего и не было, или всё же исключение кинуть и ткнуть рожей того, кто это написал?
| |
|
6.310, Аноним (311), 00:38, 25/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
С заморозкой. В исключении что будешь делать? Прерывать работу программы, или пытаться дальше криво работать?
| |
|
|
4.438, Аноним (99), 16:28, 26/05/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
STL не позволяет выстрелить себе в ногу, просто программисты не умеют им пользоваться.
| |
|
3.308, Аноним (308), 00:13, 25/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Да, но. В свое время java(безопасный, переносимый) должна былы исправить недостатки и заместить c/c++. Но "не шмогла". Не смогли и последователи и предшественники всегда оказывается за "безопасность" нужно чем-то платить.
| |
|
4.387, X5asd5 (?), 13:13, 25/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Да, но. В свое время java(безопасный, переносимый) должна былы исправить недостатки и заместить c/c++. Но "не шмогла".
ну потому что не в ту сторону начали "исправлять недостатки" :-) ..
это с таким же успехом как и Java -- можно было бы и сказать что и "Microsoft Visual Basic" должен был заменить C/C++ .
| |
|
|
2.26, Anonymoustus (ok), 14:56, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Не для того великие Томпсон и Пайк изобрели Игогошечку, чтоб жадный Гугл нанимал дорогих погромиздов, мечтающих всё переписать на Хрусте.
| |
2.64, Dzen Python (ok), 16:05, 24/05/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
Не вопрос.
- Сколько платишь за фулдей?
- Куда мне можно будет посылать разного рода манагеров/комитеты [вплоть до генеральных] с их ВИДЕНИЕМ, невменяемым дедлайнами и кранчами?
Остальные вопросы вытекают из этих двух.
| |
2.101, Аноним (99), 16:42, 24/05/2020 [^] [^^] [^^^] [ответить]
| –6 +/– |
Нужно всего лишь программировать правильно, C++ тут вовсе не при чем.
Просто нужно нанимать правильных программистов которые не делают глупых ошибок, недопускают ub и прогоняют код через анализатор.
| |
|
3.114, Аноним (24), 17:09, 24/05/2020 [^] [^^] [^^^] [ответить]
| +5 +/– |
Знаешь что, правильный ты наш, когда твоя кодовая база перевалит за 10 млн. строк, в которые постоянного коммитят хотя бы 50 разработчиков - то ты зае…мучаешься программировать "правильно". Это если ты реально спец. Нуб там вообще без шансов написать нормальный код за вменяемое время.
| |
|
|
5.353, Lex (??), 09:04, 25/05/2020 [^] [^^] [^^^] [ответить]
| +3 +/– |
Невольно один из заказчиков вспомнился..
«Тестирование !? А зачем нам тестирование - вы сразу без ошибок делайте! У нас и так сроки поджимают, на тестирование времени нет»
| |
|
4.184, Аноним (222), 20:39, 24/05/2020 [^] [^^] [^^^] [ответить]
| +4 +/– |
Если кодовая база 10 млн строк написанных только при помощи if и while, без классов или хотя бы функций для разделения кода на модули, то это бида конечно
| |
|
5.468, mail (?), 22:56, 26/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
>> без классов
С классами 10.000.000 строк кодa вообще никогда не раскуришь.
| |
|
|
|
|
|
2.40, iLex (ok), 15:28, 24/05/2020 [^] [^^] [^^^] [ответить]
| –5 +/– |
Ну вот Firefox на Rust переписали. И как, меньше там уязвимостей находят, чем в Chrome? Так, может, не в языке дело?
| |
|
3.50, Аноним (222), 15:48, 24/05/2020 [^] [^^] [^^^] [ответить]
| –5 +/– |
Именно, память лиса жрать стала только больше, вот и весь Rust
| |
|
4.62, JL2001 (ok), 16:03, 24/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Именно, память лиса жрать стала только больше, вот и весь Rust
на днях обновился таки в одном месте с firefox 56 на текущий (уж очень там нужна была группировка вкладок, а в глобальный инет не ходил им)
потребление памяти упало в 1.5-2 раза (цифры на глаз по процмонитору)
что я сделал не так?
| |
|
5.107, Аноним (136), 17:02, 24/05/2020 [^] [^^] [^^^] [ответить]
| –3 +/– |
Отвалились расширения, которые и жрали. Это как уменьшение веса путём ампутации конечностей.
| |
|
6.141, Аноним (140), 18:35, 24/05/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Это как уменьшение веса путём ампутации конечностей.
Рудиментов может быть?
| |
6.206, JL2001 (ok), 20:57, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Отвалились расширения, которые и жрали. Это как уменьшение веса путём ампутации конечностей.
эдоны я перед этим те, которые не смогли бы работать отключил и ставил эдоны-аналоги из современных (так-как я это дело давно начинал тыкать - они уже стояли в выключенном виде и даж смогли обновится до неких версий работая в 56 (не до последних), так что по факту у меня отвалились тока груп менеджер и класик тем ресторер
| |
|
5.188, Аноним (222), 20:43, 24/05/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
Вот не надо гнать, если лиса в быту монолитности жрала на старте с одной вкладкой 350-380мб, то сейчас с модной многопроцессорностью сходу 500мб и в районе сотни мегов на каждую вкладку, помимо этого около сотни мегов на вспомогательные процессы лисы, так зачем врать?
| |
|
6.204, JL2001 (ok), 20:56, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Вот не надо гнать, если лиса в быту монолитности жрала на старте
> с одной вкладкой 350-380мб, то сейчас с модной многопроцессорностью сходу 500мб
> и в районе сотни мегов на каждую вкладку, помимо этого около
> сотни мегов на вспомогательные процессы лисы, так зачем врать?
не знаю про с одной, у меня около 250-300 вкладок на 4 окна
было примерно 750+500+300+300 по процессам
сейчас стало примерно 500+200+150+150 по процессам
| |
|
7.211, Аноним (222), 21:00, 24/05/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
Зачем ты загоняешь дичь, если сами мозилловцы сказали шо из за многопроцессорности лисичка будет кушать больше памяти на порядок? В чем смысл? Новость эта кстати здесь же
| |
|
6.225, Shevchuk (ok), 21:24, 24/05/2020 [^] [^^] [^^^] [ответить] | +4 +/– | Вот не поленился, создал чистый профиль и открыл в нём вкладку https opennet r... большой текст свёрнут, показать | |
6.322, cool29 (?), 01:42, 25/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Ну в любом случае лисой можно пользоваться хотя бы на 8 гигах памяти. Но chromium это просто чудовище ненасытное: как-то на 8 вкладках сожрал у меня около 5 гб. После этого основной браузер у меня лиса.
| |
6.493, J.L. (?), 18:17, 31/05/2020 [^] [^^] [^^^] [ответить] | +/– | 3 вкладки, прогружена одна мелкий простой сайт ублок, уматрикс, хттпсэвревере... большой текст свёрнут, показать | |
|
7.494, J.L. (?), 18:40, 31/05/2020 [^] [^^] [^^^] [ответить] | +/– | gt оверквотинг удален понятия не имею что происходит и как это работает, фаерф... большой текст свёрнут, показать | |
|
8.495, J.L. (?), 10:20, 01/06/2020 [^] [^^] [^^^] [ответить] | +/– | gt оверквотинг удален оставил на ночь sudo smem -tc pid name command pss -P ... большой текст свёрнут, показать | |
|
|
|
|
|
3.55, JL2001 (ok), 15:55, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Ну вот Firefox на Rust переписали. И как, меньше там уязвимостей находят,
> чем в Chrome? Так, может, не в языке дело?
те на русском вот прям в этой новости написали - 70% ошибок будет убрано если переписать на rust
| |
|
4.60, Аноним (222), 16:00, 24/05/2020 [^] [^^] [^^^] [ответить]
| –3 +/– |
Капец ты тугой, а знаешь почему большой и сложный софт пишут не на няшном C# или богоизбранной Java, а на таком обьектно-ориентированном полуассеблере как C++? Во первых скорость, во вторых память, ручное управление которой и дает эту скорость по сравнению с безопасными языками
| |
|
5.67, JL2001 (ok), 16:07, 24/05/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Капец ты тугой, а знаешь почему большой и сложный софт пишут не
> на няшном C# или богоизбранной Java, а на таком обьектно-ориентированном полуассеблере
> как C++? Во первых скорость, во вторых память, ручное управление которой
> и дает эту скорость по сравнению с безопасными языками
капец ты тугой, а знаешь, что бенчмарки rust vs C показывают 90-110% скорости C?
https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/rust.html
| |
|
6.71, Аноним (222), 16:12, 24/05/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
В синтетике и жаба при определенных условиях быстрее C++ в полтора раза и шо?
| |
|
7.80, Аноним (222), 16:19, 24/05/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Ох уж эти тесты Java vs C++, а сколько споров было шо жаба могет в 1 случае из миллиона
| |
|
8.89, Аноним (359), 16:30, 24/05/2020 [^] [^^] [^^^] [ответить] | +/– | Джаба быстрее ассемблера , это каждый знает Интересно, а если в том кейсе где... текст свёрнут, показать | |
|
9.95, Аноним (222), 16:34, 24/05/2020 [^] [^^] [^^^] [ответить] | +1 +/– | Можно пойти дальше и заявить что жаба быстрее самого процессора, просто цп слишк... текст свёрнут, показать | |
|
|
7.118, коржик (?), 17:16, 24/05/2020 [^] [^^] [^^^] [ответить]
| +6 +/– |
Вообще и на дотнете можно писать очень быстрый, не требовательный к памяти код. Но на проектах немного приоритеты другие, всегда стремишься к покрытию тестами и чистому коду, а так же к удобствам языка.
Как следствие, в рантайме получаешь оверхед по динамическому диспачу и упаковке, иногда огребаешь от рефлексии (привет, автофак) и компилирующихся на лету экспрешенов (mvvm биндинги к примеру).
Вот и получается, что дотнет медленный потому что код безотказный, поддерживаемый и не-тесно-связанный.
А у раста с динамикой не очень, наследования там вообще нет, vtable работает через толстые ссылки и только там где надо. Весь полиморфный код можно писать через дженерики (100% статика). Гц нет. Вот этого "всё есть объект" там тоже нет. Всё что можно работает на стеке.
И в каком месте ему тормозить? В дополнительных проверках на выход за пределы границ массива? В дополнительных проверках умных ссылок? Или в том, что проще просто взять и скопировать какое-то значение чем передавать его по ссылке чтобы заткнуть компилятор, который подозревает в каждой вашей строчке UB?
Я склонен полагать, что продвинутый c++ разработчик сам все эти проверки вставляет, чтобы яйца себе не отстрелить. И что "правильный" код на c++ работает примерно с такой же скоростью что и раст.
| |
7.159, JL2001 (ok), 19:37, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
> В синтетике и жаба при определенных условиях быстрее C++ в полтора раза
> и шо?
по ссылке вроде не прям чисто синтетика и не определённые условия
да там почти все тесты быстрее C/C++ вышли - может реально потому, что на этих языках в правильном коде надо позаботится о проверках в рантайме, а в rust за тебя посчитает в момент компиляции и не будет вставлять эти проверки в код?
зы: над исходниками не зависал, возможно я не прав
| |
|
|
9.241, JL2001 (ok), 21:53, 24/05/2020 [^] [^^] [^^^] [ответить] | +2 +/– | вы как-то нездорово циклитесь на Java, она вас покусала или в детстве обидела р... текст свёрнут, показать | |
|
|
|
|
5.165, коржик (?), 19:53, 24/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Капец ты тугой, а знаешь почему большой и сложный софт пишут не на няшном C# или богоизбранной Java,
И да, большой и сложный софт пишут на C# и Java
| |
|
6.193, Аноним (222), 20:45, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Пишут, но я про прикладной софт, а на шарпе и жабе как правило сервер сайд, но по сложности кода такие вещи как правило не уступают самому MSOffice, дело в другом, понимаешь железо на серверах помощнее и памяти побольше чем у среднестатистического юзера
| |
|
5.319, Аноним (319), 01:25, 25/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
> память, ручное управление которой и дает эту скорость по сравнению с безопасными языками
Не даёт, его никто толком не умеет делать кроме хелловорлодов. Там везде умные указатели использовать должны, по идее
| |
|
|
3.61, Лолкек (?), 16:00, 24/05/2020 [^] [^^] [^^^] [ответить]
| +7 +/– |
Там несколько подсистем переписали - css движок, вроде рендерер и ещё что то.
| |
|
|
1.21, Аноним (21), 14:44, 24/05/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –4 +/– |
Ну пусть перепишут С/С++ код на расте, альтернатива есть и попутного ветра им в горбатую спину.
| |
|
2.51, Аноним (222), 15:49, 24/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Просто из стандарта C++ уже давно пора выпилить указатели, вроде в 23-ей версии собираются
| |
|
3.54, Аноним (222), 15:53, 24/05/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
И Сишный препроцессор убрать к чертям, иначе не код, а не отлаживаемый и не читаемый кусок Г получается
| |
|
|
5.270, Аноним (222), 22:52, 24/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
видимо мусье не знаком с макросами и не понимает, что их в си используют не как функции или другие способы группировки кода, а как способ метапрограммирования вместо шаблонов которых в си нет, а в C++ есть и спрашивается а нахрена в C++ макросы? инлайн функции которыми хоть как то можно оправдать макросы давно есть и в С/C++, разве что для ассемблерных вставок оставить в урезанном виде без макрофункций и дифайнов
| |
|
|
3.91, Аноним (91), 16:31, 24/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Удаление классических указателей из C++23 - двухлетняя первоапрельская шутка
| |
3.237, topin89 (ok), 21:44, 24/05/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Ты хоть писал на плюсах? Пользовался сишными библиотеками?
Они и в расте есть, в небезопасных участках, ибо иначе никак порой.
| |
|
2.488, paulus (ok), 03:42, 29/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
>пусть перепишут С/С++ код на расте
им больше Java нравица... Ото жесть будет ;)
| |
|
1.27, Андрей (??), 14:56, 24/05/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –4 +/– |
36,1% use after free
Казалось бы, что может быть проще: free(p); p = NULL;
А потом один раз if (p == NULL) goto out;
| |
|
2.39, Аноним (39), 15:27, 24/05/2020 [^] [^^] [^^^] [ответить]
| +3 +/– |
Это должен делать компилятор на худой конец интерпретатор. Кодогенерация опять же.
| |
|
|
|
|
6.168, Аноним (273), 20:07, 24/05/2020 [^] [^^] [^^^] [ответить]
| +4 +/– |
Для неосиляторов (и писателей низкоуровневых библиотек) всегда есть unsafe.
| |
6.170, Аноним (273), 20:11, 24/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Уместно ли тут сравнение с работой в Линуксе из-под рута по-умолчанию?
| |
|
7.320, Аноним (319), 01:27, 25/05/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
Нет, ибо в С++ вообще один ансейф. А в расте только где надо - т.е. как sudo
| |
|
|
|
|
3.78, Аноним (76), 16:19, 24/05/2020 [^] [^^] [^^^] [ответить]
| –3 +/– |
Это должен делать программист - освободить память после использования.
| |
|
4.127, коржик (?), 17:28, 24/05/2020 [^] [^^] [^^^] [ответить]
| +4 +/– |
Вот открываете вы тикет на работе, а там написано:
"Написать программу которая хорошо освобождает память".
| |
4.163, JL2001 (ok), 19:47, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Это должен делать программист - освободить память после использования.
а вы, видимо, дизайнер или менеджер? ну или строитель там...
в общем не указывайте программисту, что он должен делать, вы не понимаете его работы
| |
|
5.330, Аноним (330), 06:45, 25/05/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
Т.е. Вы специально закладываете в программный проект критические и трудно локализуемые ошибки при работе с памятью, а именно - выделяете ее, но явно не освобождаете, либо освобождаете, но затем используете, забыв об этом, либо используете больше, чем выделяете?
Именно поэтому пишу свой код сам.
| |
|
6.372, JL2001 (ok), 11:15, 25/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Именно поэтому пишу свой код сам.
простите, но всёж линукс/виндовс/другую прокладку между вами и железом тоже написали сами?
остальной бред не комментирую
| |
|
5.334, Аноним (330), 07:49, 25/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
> в общем не указывайте программисту, что он должен делать
Если я плачу деньги программисту, я именно указываю ему, что он должен делать, оформляя юридически платформу, функциональность, результаты, принадлежность исходников и прочее. В ином случае я его не нанимаю, поэтому данный вариант не рассматривается.
| |
|
|
3.174, заминированный тапок (ok), 20:31, 24/05/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
>Это должен делать компилятор на худой конец интерпретатор. Кодогенерация опять же.
ну и какой тогда нахрен zero-cost abstraction?
| |
|
4.250, JL2001 (ok), 22:03, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
>>Это должен делать компилятор на худой конец интерпретатор. Кодогенерация опять же.
> ну и какой тогда нахрен zero-cost abstraction?
так в рантайме ж получается zero-cost?
| |
|
|
2.90, Ordu (ok), 16:31, 24/05/2020 [^] [^^] [^^^] [ответить]
| +3 +/– |
Это в простейшем случае. Но прикинь теперь, что, допустим, у тебя есть гуй, который представляется в памяти в виде дерева виджетов. Каждый виджет представлен кусоком памяти, на который в этом дереве есть ровно один указатель. Теперь представь, что среди этих виджетов есть кнопка, и ты вешаешь обработчик на эту кнопку, например, это может быть замыкание, которое захватило указатель на кусок памяти представляющий эту кнопку. Или, если нефункционально зато в стиле ООП, то это будет объект, который имеет метод onclick, и поле button, хранящее указатель на эту кнопку. Этот объект-замыкание мы засовываем в наш менеджер ивентов. И вот ты решил удалить кнопку, сделал на неё free, а тут прилетел onclick event, и объект-замыкание сделало use-after-free.
| |
|
|
4.103, Ordu (ok), 16:54, 24/05/2020 [^] [^^] [^^^] [ответить] | +3 +/– | Какие именно проблемы из перечисленных были решены Я спросил у гугла про qt u... большой текст свёрнут, показать | |
|
5.419, Андрей (??), 03:20, 26/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Где надо вызывать free -- это очень сложный вопрос, на который не всегда можно ответить статически, иногда ответ надо искать динамически.
К счастью, в автоматизации этого направления делаются успехи. Две недели назад была новость:
https://www.opennet.ru/opennews/art.shtml?num=52903
> Релиз набора компиляторов GCC 10
> Основные изменения:
> Добавлен экспериментальный режим статического анализа "-fanalyzer", который выполняет ресурсоёмкий межпроцедурный анализ путей выполнения кода и потоков данных в программе. Режим способен на этапе компиляции выявлять такие проблемы, как ... обращение к освобождённым блокам памяти, ... Применение нового режима для кода OpenSSL уже позволило выявить опасную уязвимость. https://www.opennet.ru/opennews/art.shtml?num=52782 | |
|
6.420, Совершенно другой аноним (?), 08:44, 26/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
И до этого были такие программы, как cppcheck, Pvs-studio и куча других. И в clang есть встроенный статический анализатор, некоторым даже нравится, но как сказал предыдущий оратор - всё не так просто. Опять-же до C11 основным императивом языка С было - программист знает, что делает. Т.е. если хочет стрельнуть в ногу - пусть стреляет, может ему так надо. Сейчас это немного поменялось. Хотя по-мне - подход был правильный, просто при этом действительно наращивать разные анализаторы и прочее. Т.е. хотите скорость, для критичных именно по скорости вещей - вам нужен Assembler, C, C++. Нужна безопасность - берите другой язык, ту-же Java.
| |
6.433, Ordu (ok), 14:43, 26/05/2020 [^] [^^] [^^^] [ответить] | +1 +/– | Да, успехи делаются Но если ты попробуешь раст, ты увидишь где эти успехи закан... большой текст свёрнут, показать | |
|
|
8.446, Ordu (ok), 18:24, 26/05/2020 [^] [^^] [^^^] [ответить] | +1 +/– | Потому что в этом случае борроу-чекер справляется Он в состоянии проанализирова... большой текст свёрнут, показать | |
|
9.448, Аноним (442), 18:40, 26/05/2020 [^] [^^] [^^^] [ответить] | +1 +/– | Конечно можно щас это всё на глупый borrow checker списать, но как до вызова нек... большой текст свёрнут, показать | |
|
10.451, Ordu (ok), 19:07, 26/05/2020 [^] [^^] [^^^] [ответить] | +1 +/– | Это не всегда невозможное Бывают случаи, когда я могу доказать, что создание ... большой текст свёрнут, показать | |
|
11.453, Аноним (442), 19:42, 26/05/2020 [^] [^^] [^^^] [ответить] | +/– | Ты конкретного примера пока не привел Ладно, давай я попробую что-то очевидное ... большой текст свёрнут, показать | |
|
12.456, Ordu (ok), 19:56, 26/05/2020 [^] [^^] [^^^] [ответить] | +1 +/– | Я привёл выше пример, про который я легко докажу, что две ссылки ссылаются на не... текст свёрнут, показать | |
|
|
|
|
|
|
8.450, Ordu (ok), 18:59, 26/05/2020 [^] [^^] [^^^] [ответить] | +1 +/– | Я понимаю в чём проблема, и я не говорю, что нельзя выкрутится в этой ситуации ... большой текст свёрнут, показать | |
|
|
10.455, Ordu (ok), 19:51, 26/05/2020 [^] [^^] [^^^] [ответить] | +1 +/– | Именно что тупым Мне не требуется более сложной системы типов в расте, для того... большой текст свёрнут, показать | |
|
|
|
|
|
|
|
|
4.383, Ordu (ok), 12:40, 25/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Раст не позволит хранить ссылку в двух разных местах просто так. Там без явного или неявного использования unsafe не удастся выкрутится. Например, в std есть Rc, который может приделать к объекту счётчик ссылок, и при помощи unsafe он может клонировать и удалять ссылки таким образом, чтобы после удаления последней, вызвать free на объект. Если использовать Rc, то тебе самому не надо прибегать к помощи unsafe (всё это спрятано в Rc, наружу Rc выставляет safe интерфейс).
В C++ есть shared_ptr, который делает то же самое. Разница лишь в том, что C++ с радостью позволит тебе сделать всё то же самое без shared_ptr, и получить use-after-free, в то время как rust заставит тебя обратить внимание на сложившуюся ситуацию и совершить какие-то телодвижения.
| |
|
3.341, Аноним (340), 08:11, 25/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Объект замыкание должно отвалиться с исключением или игнорированием события, в зависимости от контекста.
| |
3.358, Аноним (358), 10:07, 25/05/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Там должен быть не указатель, а shared_ptr. И тогда в описанной ситуации обработчик обратится к объекту отключенному от дерева и у которого parent == null. Правда тут мы получим классическую утечку памяти. В идеале менеджер сообщений должен отработать только после изменения и пересчёта DOM.
| |
3.368, Lex (??), 10:53, 25/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
В подобных случаях( правда, на уровне того же веба и жс ) обычно на удаление вешают функцию, которая вначале очищает все обработчики событий( всм, относящиеся к конкретному объекту ) и, уже только после этого, выпиливается сам объект( мб, даже по какому-нибудь колбэку аля onDone / onSuccess, притом, с проверкой актуальности самой ссылки на удаляемый объект, т.к в вебе может и несколько запросов на удаление прилететь.. что-то где заглючило или браузер лаганул и в этот момент юзер кучу раз нажал на соотв кнопку итп )
| |
3.418, Андрей (??), 03:14, 26/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
> например, это может быть замыкание, которое захватило указатель на кусок памяти представляющий эту кнопку.
Похоже, если нужно захватывать указатель, то нужно захватывать указатель на этот указатель. Если уж добвалять синтаксический сахар, так не оставлять при этом дыр.
| |
|
4.429, Ordu (ok), 13:39, 26/05/2020 [^] [^^] [^^^] [ответить] | +/– | Это усложнение, причём не только для программиста, но и для процессора чтобы ра... большой текст свёрнут, показать | |
|
|
2.256, Аноним (243), 22:13, 24/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
>Казалось бы, что может быть проще: free(p); p = NULL;
>А потом один раз if (p == NULL) goto out;
А не лучше ли было бы объявить в LibC эту free(p) deprecated и предлагать вместо неё free(&p), которая сама перед выходом делает *p = NULL; ?
| |
|
|
4.390, Аноним (243), 14:35, 25/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Ну прям, добавили/удалили фунций в библиотеку, заметьте, без внесения изменений в синтаксис языка, и вот уже новый язык.
| |
|
3.344, Аноним (344), 08:21, 25/05/2020 [^] [^^] [^^^] [ответить]
| +3 +/– |
а смысл, если у тебя один и тот же адрес может храниться в нескольких p?
| |
3.408, Аноним (442), 18:37, 25/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Ну да, был у тебя:
void free(void *ptr);
А теперь будет:
void free(void *ptr);
| |
|
2.354, Аноним (358), 09:50, 25/05/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
В C++ есть std::vector, std::make_shared, std::make_unique. Вот и попробуй с ними добиться use after free. malloc и free в C++ не нужны, так как даже если нужен указатель, он может быть получен из управляемых классов.
В Си уже не всё так просто, нужно ещё следить за копированием указателей. Ведь p = nullptr очевидно не обнулит копии указателя.
| |
|
3.365, Аноним (330), 10:47, 25/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Чем Вас не устраивает что-то типа
...
long *x;
...
x = new long [n];
...
delete [] x;
Нужен массив - выделили память (в примере не производится проверка результата - реально это нужно делать), использовали, освободили память (до выхода из функции).
| |
|
4.380, Аноним (358), 11:54, 25/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
if(error) throw MyException();
И Ваш массив навсегда остаётся в памяти. Причём эта строчка необязательно должна быть в той же функции, достаточно, чтобы программист не стал обрабатывать это исключение по незнанию или из уверенности, что его никогда не будет. finally в C++ нет! Именно по этому среди локальных переменных не должно быть ни одной, требующей ручного освобождения.
| |
|
5.421, Аноним (340), 08:45, 26/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
finally можно иммитировать перехватом всех исключений и повторной генерацией.
типа
try{
...
}catch(Exception ex)
{
free_arroy();
throw ex;
}
| |
|
6.423, Аноним (358), 09:19, 26/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Только вот С++ не C# и преобразование std::out_of_range в std::exception необратимо. Невозможно отправить дальше тоже исключение, что было обработано общим обработчиком. Пример http://cpp.sh/4dx7q
| |
|
|
|
|
|
1.30, user90 (?), 15:03, 24/05/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
> организацию взаимодействия кода на новом языке с кодом на С++
This! Ну и прочие подобные перлы создают какую-то странную картину. Зоопарк? ;)
| |
|
2.337, Аноним (330), 07:55, 25/05/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
Это когда вместо изучения и грамотного использования одного инструмента начинаются обвинения в низком его качестве и скачки в сторону. Если потенциальный кандидат заявляет, что "это нельзя сделать на С, в Linux etc" (подставить нужное), но можно на Delphi, Visual Basic etc (подставить нужное), на этом профессиональное общение заканчивается.
| |
|
1.33, poige (ok), 15:09, 24/05/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> В настоящее время
> возможности применения данной технологии достигли предела своих
> возможностей
и пусть потом не говорят, что возможностей мало. Вон их тут сколько. Сплошные!
| |
1.36, Eric Hartman (?), 15:22, 24/05/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +17 +/– |
Гугл сегодня одна из самых позорных шараг во всех отношениях. Они всегда делали галимый треш. Даже свой поисковик превратили в аналог зомбоящика с тотальной цензурой и рекламой.
| |
|
2.93, Аноним (222), 16:31, 24/05/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
Тут плюсую, ибо я не отчего не испытывал столько боли как от использования подделий гугла
| |
|
3.110, Аноним (136), 17:04, 24/05/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
А куда ты денешься с подводной лодки? Стандартны вэба давно диктует гугол, и бабки платят тем, кто десятками мегабайт в скрипты загоняет.
| |
|
4.213, Аноним (222), 21:05, 24/05/2020 [^] [^^] [^^^] [ответить]
| –4 +/– |
Современные веб-стандарты которыми ты так кичишься, чуть менее чем совсем состоят из отсебятины MS еще в бытность IE6/7
| |
|
|
2.148, Аноним (148), 19:01, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Хромиум тоже относится к подделкам гугла? Он вроде как его не пилит, но все же мы понимаем, что руководит Хромиумом гугл.
| |
|
3.198, Аноним (222), 20:49, 24/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Многопроцессорность говорили они, безопасность говорили они, а что мы видим в итоге тормоза, отжор памяти и все те же дыры
| |
3.367, Аноним (330), 10:52, 25/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Совершенно верно. Когда мы говорим о Linux, то понимаем, что делают его не кучка гиков, а IBM.
| |
|
2.175, Аноним (175), 20:32, 24/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Да и поисковик у них какой-то странный. Лет 5 назад ещё я его предпочитал, а теперь Яша ищет лучше. Делал сайт со 100% уникальным и специфичным контентом, так яндекс на первой странице выдаёт, а гугл не до листался, всё какую-то коммерческую и ненужную дичь выводит не в тему.
| |
|
|
|
5.386, Аноним (-), 13:12, 25/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Посмотрите где хостится DDG. Посмотрите кто у него Главный Партнер По Рекламе. DDG - это ручная собачка одной из самых влиятельных IT корпораций планеты.
| |
|
|
|
|
1.52, d (??), 15:49, 24/05/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
Имхо проблема не в языках, а в x86, arm и им подобным.
| |
|
|
3.276, Аноним (243), 23:02, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Даёшь систему команд без косвенной адресации! Это избавит от необходимости низкоуровневой работы с памятью. :)
| |
|
|
1.58, Dzen Python (ok), 15:57, 24/05/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
"Сделаем хром жирнее и медленнее again"?
А чтобы юзвери не рыдали - нарисуем им красивую инфографику, что ай-яй-яй, дыры-память-указатели! И не программисты же виноваты, что не могут сделать пару malloc()-free() или new()-delete(), в творческом порыве насирания кода, это все неправильные языки [которые принудительно не отслеживают время жизни указателей в куче и не могут предугадать любой сценарийй мемаллока] и плохие компиляторы [которые понимают адресную арифметику и позволяют собирать красивый и быстрый код, вместо подтирания мочи за "погромистами"-быдлокодерами].
| |
1.72, Да ну вас нахрен (?), 16:13, 24/05/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> Использование библиотек для безопасной работы с памятью является наиболее простым, но и менее эффективным способом. Переписывание же кода на Rust оценивается как наиболее эффективный, но и очень дорогой путь.
Так и какое заключение то? Что выберет Google?
| |
|
2.190, FixingGunsInAir (ok), 20:44, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Пока это всё разговорчики. Признание проблемы. Теперь они ещё несколько месяцев будут решать, куда двигаться.
| |
|
1.112, Онаним (?), 17:07, 24/05/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +5 +/– |
[sarcasm mode on]
Слабо хромиум на электроне переписать?
[sarcasm mode off]
Ну или на хрусте хотя бы.
| |
1.121, Райзер (?), 17:22, 24/05/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
MS тужится родить свой форк Rust, возможно его будут использовать для переписывания библиотек
| |
|
2.205, Аноним (222), 20:56, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Наверное патентных претензий мозиллы боится MS? Не смешите меня пожалуйста... Очередной экспериментальный язык по типу зайдет не зайдет, как F# и КВАНТОВЫЙ Q#, ну такое
| |
|
|
|
3.404, Нолекс (?), 17:45, 25/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Его в попытках сделать Firefox OS тоже уже давно сломали. А что-то путное сделать так и не шмогли...
| |
|
2.316, Аноним (243), 01:12, 25/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
>Короче, копите деньги на память. В ближайшем будущем она вам понадобиться.
Понадобится гораздо раньше из-за мартышколюбви к Electron.
| |
|
|
|
3.284, Аноним (222), 23:08, 24/05/2020 [^] [^^] [^^^] [ответить]
| +4 +/– |
C++ вообще вещь в себе, создавался как костыль к Си, таким и остается до сих пор, правда с оговоркой что стал костылем всего и вся
| |
3.294, JL2001 (ok), 23:33, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
> С++ придумали не они.
ах если бы из-за этого все, кто не придумал C++, перешли на rust - было бы чудно
| |
|
|
5.327, Аноним (327), 04:07, 25/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Я пока не добрался до Haskell, да и о функциональщине пока имею только общее представление, но насколько знаю, он совсем не zero-cost, имеет GC и непредсказуем по производительности. А так да, будет круто, если мы однажды доживем до времени, когда компиляторы функциональных языков будут собирать оптимальный машинный код и можно будет писать кроссплатформенные программы на функциональных языках, агностичных к архитектуре компьютера. Но пока, мне кажется, это все еще исследовательское направление, а Rust как промежуточный шаг: он уже впитал в себя горы функциональных концепций в сравнении с другими императивными языками.
| |
5.384, user (??), 12:59, 25/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Слишкам радикальное изменение, лучше начать с Ocaml. Он точно подходит для 90% браузера.
| |
|
6.393, Аноним (393), 15:23, 25/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Ну как бы Rust изначально и был диалектом ML, а его первый компилятор был написан на OCaml. Но понятно, что опеннетовскому илитарию на все это пофиг, потому что Rust - модный и молодежный, а значит автоматически не тру, OCaml - нишевый и малоизвестный, а значит автоматически тру. Ясно-понятно. И кто тут еще хипстер?
| |
|
|
|
|
2.281, Аноним (222), 23:07, 24/05/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
От крестов не уйти, не спрятаться, они найдут тебя и накажут за все...
| |
|
1.176, FixingGunsInAir (ok), 20:32, 24/05/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
4 слова: С++ in a nutshell
или опасности ручного управления памятью человеками.
Даже в CLR, если бы на нём написали движок, было бы меньше дыр.
| |
|
|
3.221, FixingGunsInAir (ok), 21:17, 24/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
> шарпик в unsafe позволяет долбится в указатели не хуже крестов
Вот только в unsafe лезть никто не заставляет, кроме случаев, когда используешь с нативные библиотеки, где ручное выделение памяти.
Реализовав банальный IDispose нормально, можно большинство таких проблем избежать.
А если пердолишься с указателями без причины, сам вешаешь на себя ярлык.
| |
|
4.227, Аноним (222), 21:26, 24/05/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Так и я про это же, что не нужно превращать шапр в кресты, если есть кресты, у шарпа своя огромная ниша
| |
|
5.407, коржик (?), 18:32, 25/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
n лет пишу под дотнет, ни разу в unsafe не вляпался. Ни разу не напоролся на UB, разве что только численное переполнение и многопоточка. Но это другая история.
Вот сейчас сижу и думаю, как люди вообще живут с UB. Какие нервы нужно иметь чтобы бороться с ним.
| |
5.413, FixingGunsInAir (ok), 20:15, 25/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Вы так говорите, словно, если представить сферическую реализацию движка в вакууме на C#, без unsafe в более чем половине классов, этого сделать нельзя.
| |
|
|
|
4.283, JL2001 (ok), 23:08, 24/05/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Как будто в Rust нет unsafe.
в Java тоже есть и в C# - только все прикладники и весь энтерпрайз его в жизни не встречал, и в rust так же будет
| |
|
5.287, Аноним (222), 23:12, 24/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
ну так товарищ выше не шарит шо есть низкоуровневые либы которые пишутся на сях и крестах, а есть высокоуровневые ЯП которые их юзают через стандартные обвязки, иначе говоря прикладник практически никогда не будет копаться в кишках либ, а только их юзать
| |
|
|
|
2.282, Аноним (282), 23:07, 24/05/2020 [^] [^^] [^^^] [ответить] | –1 +/– | А че хаять ручное управление памятью При нем хотя бы высвобождение аллоцированн... большой текст свёрнут, показать | |
|
3.293, Аноним (222), 23:33, 24/05/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Просто растоманы не понимают, что для каждой сферы свой инструмент... Нужно тебе постоянно общаться с си-кодом напрямую без магических unsafe бери C++, хочешь писать быстро и выдавать производительный код бери Java/C#, хочешь писать еще быстрее, но более медленный код, бери пистон или пых(МИНЗДРАВ НЕ РЕКОМЕНДУЕТ), хочешь писать скрипты для линух бери bash, но ни как не C++, а если тебе нужно таблички почекать бери awk
| |
|
4.422, Аноним (340), 08:51, 26/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
и получается 100500 зависимостей по библиотекам, которые, по сути, детают одно и тоже.
| |
|
3.299, JL2001 (ok), 23:43, 24/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Уж точно лучше,
> чем ситуация на работе, когда Teamcity CI после суток аптайма мог
> уйти в denial of service на 15-20 минут в разгар рабочего
> дня. Спрашиваем у дево псов, че такое, отвечают что у JVM
> GC случится stop-the-world, чет-то там собирает, ждите.
чёт мне подсказывает, что ваши девопсы вам напиз^w обманули
у нас тоже как-то время обработки запросов постгресом упало в разы, смотрим - отзывчивость диска глубоко в темноте, а в виртуалке активность стандартная
мы к админам виртуалок, а те "не, у нас ничего, это в ваших программах проблемы"
мы письмо руководству и - опа - всё, диск в норме, постгрес шустрит, наша программа так же
| |
|
|
|
|
|
|
5.247, th3m3 (ok), 22:01, 24/05/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
Они любят пилить свои стандарты, а общепринятые - плохо поддерживают. В итоге, все браузеры умеют, а Сафари не торопится поддерживать, что умеют другие, пилит что-то своё. Поэтому, он сейчас занимает трон IE.
| |
|
6.252, Аноним (222), 22:04, 24/05/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
HTML5 и CSS3 поддерживают, ECMAScript в последних редакция поддерживают, HTTP всех версий заверенных нотариальным скриншотом IETF поддерживают... Чего тебе еще надо?
| |
|
|
|
|
|
|
|
|
|
9.314, Аноним (243), 01:02, 25/05/2020 [^] [^^] [^^^] [ответить] | +1 +/– | Какое мне дело до вашего Яббла А по поводу движков Открываю в браузере на QtWe... текст свёрнут, показать | |
|
|
|
|
|
|
|
|
1.259, Аноним (243), 22:25, 24/05/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Гугелю бы присмотреться к D. Границы массивов в нём проверяются, тоже есть @safe. В последнюю версию 2.092 эталоннго компилятора добавили владение/заимствование. Зато, в отличие от Rust, у него с синтаксисом и объектностью всё красиво.
| |
|
2.458, burjui (ok), 20:16, 26/05/2020 [^] [^^] [^^^] [ответить] | +/– | С синтаксисом всё нормально, ага Положим, мы хотим написать код с теми же свойс... большой текст свёрнут, показать | |
|
1.261, Вы забыли заполнить поле Name (?), 22:29, 24/05/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Новость от гугла попахивет желтизной. Не хватает конкретной информации о том, где именно были проблемы. Просто кодовая база довольно большая с большим кол-вом сторонних библиотек и от перехода на прикладного код на rust тот же openssl не станет безопаснее.
| |
|
2.318, Аноним (321), 01:18, 25/05/2020 [^] [^^] [^^^] [ответить]
| –3 +/– |
Ага, новость шикарная. Все проблемы хрома - other, other-memory-related и use after free. Очень содержательная классификация!
Пускай хоть на питоне переписывают, раз такие смелые... запасаемся попкорном.
| |
|
1.300, dmitriygessus (ok), 23:43, 24/05/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
> Разработчики проекта Chromium проанализировали 912 опасных и критических уязвимостей,
> выявленных в стабильных выпусках Chrome с 2015 года, и пришли
> к выводу, что 70% из них были вызваны небезопасной работой с
> памятью (ошибками, при работе с указателями в коде на C/C++).
> Половина из данных проблем (36.1%) вызвана обращениями к буферу, после освобождения
> связанной с ним памяти (use-after-free)...
> Подробнее: https://www.opennet.ru/opennews/art.shtml?num=53019
Чем больше компания, тем больше проблем, гуглом крайне редко пользуюсь, больше яндексом и мазилой, дело не в безопасности, просто поиск оставляет желать лучшего
| |
1.315, Ilya Indigo (ok), 01:03, 25/05/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
> 70% проблем с безопасностью в Chromium вызваны ошибками при работе с памятью
%{Подавляющее большинство} проблем с безопасностью в %{любое ПО} вызваны ошибками при работе с памятью.
И что сказать-то этой новостью хотел Гугл?
| |
|
2.369, JL2001 (ok), 10:56, 25/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
>> 70% проблем с безопасностью в Chromium вызваны ошибками при работе с памятью
> %{Подавляющее большинство} проблем с безопасностью в %{любое ПО} вызваны ошибками при работе
> с памятью.
> И что сказать-то этой новостью хотел Гугл?
что C/C++ так себе и надо брать что-то другое
зы: *любое ПО на C/C++
| |
|
3.381, Аноним (373), 11:57, 25/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
На C++ и даже на C — можно писать безопасно, проблема google в старой кодовой базе в которой код написан как не попадя и переписывать они видимо не хотят.
| |
|
4.445, red75prim (?), 18:15, 26/05/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
Да что там, даже на ассемблере можно писать безопасно. Главное найти эталонных программистов. А с этим сложности. Если их достать из фирменной вакуумной упаковки с надписью "УМВР", то они быстро портятся.
| |
|
|
|
1.328, Аноним (328), 05:59, 25/05/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Rust не бывает без unsafe, так что будут те же 70% ошибок с памятью, но в unsafe-коде. И да, в стандартной библиотеке он тоже есть, так что всякие #![forbid_unsafe] для основного крейта не считаются.
| |
|
2.371, JL2001 (ok), 11:12, 25/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Rust не бывает без unsafe
бывает без
> так что будут те же 70% ошибок
> с памятью, но в unsafe-коде.
искать ошибки гораздо проще в 10 строках чем в 100500 строках в 105 файлах
> И да, в стандартной библиотеке он
> тоже есть, так что всякие #![forbid_unsafe] для основного крейта не считаются.
у вас жаваскриптеры пишут на C, так как интерпретатор JS использует libc
| |
2.382, Аноним (373), 11:59, 25/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Именно так, первое что сделают гуглопрограмисты — это понатыкают везде unsafe и через 5 лет будет такая же статья уже про rust.
| |
|
1.348, Сишник (?), 08:44, 25/05/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Можно ж для любого языка с указателями сделать borrow cheker как в расте и рефакторить по кусочкам, дёшево и надёжно.
| |
|
2.392, JL2001 (ok), 14:49, 25/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Можно ж для любого языка с указателями сделать borrow cheker как в
> расте и рефакторить по кусочкам, дёшево и надёжно.
в rust это в момент компиляции считается почти во всех случаях
так можно сделать для любого языка с указателями?
| |
|
3.394, Аноним (394), 15:28, 25/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
> почти во всех случаях
Если «почти во всех случаях», то очевидно что да, разница будет только в количестве этих случаев.
| |
|
2.459, burjui (ok), 20:23, 26/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Так что же тогда его не сделают для C++? Не потому ли, что это потребует тотальной переработки языка с выбрасыванием legacy и сломает почти все приплюснутые проекты так, что придётся переписывать больше половины кода?
| |
|
3.467, Сишник (?), 22:43, 26/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Естественно, код придётся переписывать, но не на другой язык и не весь сразу. Отдельный от компилятора чекер может выборочно исходники проверять, соответственно будет safe и unsafe часть проекта, прямо как известно где.
| |
|
|
1.362, Аноним (358), 10:41, 25/05/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
> 70% из них были вызваны небезопасной работой с
> памятью (ошибками, при работе с указателями в коде на C/C++).
Однако забыли упомянуть, что абсолютное большинство этих дыр появились из за новомодных фич, которым в обозревателе интернета не место. FileAPI,WebRTC,Video,Audio кодеки,Sqlite и т.д.
| |
1.385, bOOster (ok), 13:12, 25/05/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Блин, пока корпорации не вернут профессиональных программистов в разработку, хотя-бы на контроль кода можно будет цитировать только басню Крылова с оконцовкой
«Чтоб музыкантом быть, так надобно уменье
И уши ваших понежней, —
Им отвечает Соловей, —
А вы, друзья, как ни садитесь,
Всё в музыканты не годитесь».
И все эти дрязги с рустом и т.п. как раз напоминают пересаживание с места на место. Прям как в басне.
| |
|
2.395, Аноним (395), 15:47, 25/05/2020 [^] [^^] [^^^] [ответить]
| +3 +/– |
Каких "профессиональных"?
Более профессиональных чем написали дыру Heartbleed в OpenSSL?
Или в memcpy для Glibc (ARM)?
Или в FreeBSD (недавно целая пачка была, большая часть из-за памяти)?
Или... или... да ведь тысячи их!
Потому что каждый раз когда такая лажа случается, сразу начинается "это не настоящий C++ программист, вот настоящий бы сделал все правильно!"
| |
|
3.460, burjui (ok), 20:38, 26/05/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
Некоторые особо приплюснутые мне напоминают драчунов-теоретиков, которые верят в эффективность айкидо в уличной драке и изучают ножевой бой. В голове у них - сплошь влажные фантазии об идеальных героях из художественной литературы, которые всё всегда делают правильно. Вот придёт настоящий программист - и всё-всё напишет так правильно, что не будет ни одного бага, а код будет легко читаем, быстр и легко расширяем. Осталось только его найти. А лучше десятка два, чтобы проект дошёл до альфы чуть ранее, чем через 30 лет.
| |
|
|
1.396, Аноним (398), 16:04, 25/05/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
потому что обезьянки не умеют с памятью. а не c\C++ они толко свой *script могут.
| |
1.400, Аноним (400), 16:37, 25/05/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
не перепишут на rust, нет ни виджетов ни инфраструктуры, толко на вставки rust и годится
| |
|
2.428, Аноним (-), 13:28, 26/05/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Главное, что раст, как показала уже многолетняя практика, подходит для больших проектов не лучше, чем Си.
| |
|
|
4.466, Аноним (-), 22:30, 26/05/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Посмотри на флагманский растопроект - вечнонедоделанный падучий бажный servo. Остальные не лучше. Всё, что больше небольшой библиотечки - такое.
| |
|
|
|
1.405, Нолекс (?), 18:12, 25/05/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Давно бы свалил на Midori или NetSurf (вчера, кстати вышла 3.10), если бы не нужда по работе в некоторых дополнениях...
Что FF, что Chrome раздуют браузер до неполноценной ОС, а потом жалуются...
Дональд наш Кнут про что говорил? Не можешь за раз воспринять файл с исходным кодом - разбей на несколько более мелких кусков, внимательно прочитай и изучи. Причём тут язык программирования?
А этих макак, пишущих в режиме онлайн по десятку одновременно в одном текстовом редакторе я вообще не понимаю... Если равнозначны и ответственны все, значит не ответственен никто. И нафиг нужна такая разработка?
Спору нет, языки с чистильщиками памяти найдут своё применение. Но почему бы тогда сразу не использовать интерпретаторы? Тот же мышезмей (Python) имеет привязки чуть ли не к каждому пакету GNU. Bash вообще родной для *nix. Нет, нам надо выпендриться и использовать что-то инородное...
На дотнет пусть переходят. Приспичит, форкану нужные мне плагины под один из вышеупомянутых и пересяду. Задолбали эти сопли. Шёл 2 десяток 21 века...
| |
|
2.412, Оно им (?), 20:09, 25/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Ну, Мидори до нормального браузера ещё как до Луны. Бажное нестабильное поделие.
Есть еще подобное - Выдра и Орёл. Нерасширяемые кривые поделки. Которые даже работать адекватно не могут в современном вэбе.
| |
|
1.427, Аноним (-), 13:24, 26/05/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Такое впечатление, что уволенные из Мозиллы по причине финансовых проблем разработчики, которые так и не смогли переписать больше пары процентов кода лисы на расте, просто хотят устроиться в Гугл.
| |
1.432, Anonim (??), 14:37, 26/05/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Сейчас вообще перестали мочь писать код грамотно, минимальным по весу, по размеру, по жручести, никто за собой не подчищает, не оптимизирует. Раздуют программу, как дирижабль. И хрен с ним, и так схавают.
Тока давай обновления строчить каждый день. Не до оптимизации тут.
| |
|
2.462, burjui (ok), 21:04, 26/05/2020 [^] [^^] [^^^] [ответить] | +1 +/– | Вам не приходило в голову, что современное ПО намного функциональнее и сложнее, ... большой текст свёрнут, показать | |
|
3.482, Anonim (??), 20:42, 28/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Вот поэтому и имеем то что имеем. И с каждым годом все хуже и хуже. С точки зрения качества и изготовления. Такие "блага цивилизации" с суперпуперфункционалом, который не нужен и половине пользователей. Но зато хорошее оправдание постоянных дыр, заплаток, патчей, багов и т.д. Ну как же, всё же усложняется. Только ответственность и качество работы не улучшаются. И нормального классического вэба давно нет. Там где появляются "продвинутый функционал и блага" всё почему-то превращается в помойку. :)
| |
|
4.483, burjui (ok), 21:05, 28/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Главная причина превращения софта в помойку - капитализм. В условиях рынка заниматься полировкой кода невыгодно, ведь на это нужно время, которое можно потратить на прикручивание очередной фичи. Если улучшения не видны невооружённым глазом, дядя с деньгами будет недоволен производительностью разраба и предпочтёт нанять вместо него двух говнокодеров за те же деньги, которые будут молча пилить столько фич, сколько требуется для завлечения новых лохов, то есть, я хотел сказать, пользователей.
Пока к программированию не будет применяться исключительно научно-инженерный подход, текущая ситуация неизбежна. Просто раньше был пруд, на поверхности которого плавала небольшая какуля, а теперь это океан с тысячами тонн говен.
| |
|
5.484, Michael Shigorin (ok), 21:37, 28/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Главная причина превращения софта в помойку - капитализм.
А железа -- социализм? Напомнить, как у нас практически железа-то не осталось своего?..
Ох уж мне эти политиканы мамкины.
| |
|
|
|
|
1.434, Аноним (99), 16:07, 26/05/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
пусть перепишут хром на единственном нормальном языке программирования, на C#
| |
|
2.476, Аноним (476), 12:59, 27/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Ага, и ОС тоже. А потом пусть сами на нее свалят и там этим всем пользуются.
| |
|
1.440, Аноним (441), 17:14, 26/05/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
Все говорят что раст безопаснее, но никто не говорит почему. Борроу чеккер не допилили, больше причин почему он безопаснее С++ я не знаю.
| |
|
2.443, Аноним (439), 17:56, 26/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
А чего там в борроу чекере не доделано? Там другая проблема: этот борроу чекер настолько замусорил синтаксис и усложнил язык, что он может претендовать на звание самого ужасного и неудобного. При том, что там даже нет ни исключений, ни наследования поведения (читай ООП).
| |
|
3.463, burjui (ok), 21:30, 26/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Да не особо усложнил, честно говоря. Использовать ссылки везде и всюду никто не заставляет, и часто с точки зрения логики алгоритма или производительности это даже не имеет смысла. В подавляющем большинстве случаев никаких затруднений borrow checker не вызывает, просто у него довольно крутая кривая обучения, но это лечится практикой. Я уже давно пишу правильный с его точки зрения код на автомате, а если он иногда и грозит пальцем, то это стопроцентно мой косяк, который в том же C++ просто молча выстрелит в ногу, и не обязательно сразу. Короче, обычный навык, который нужно тренировать.
| |
|
2.464, burjui (ok), 21:50, 26/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Кто "все"? В официальной документации предельно понятно разжёвано, как и почему. Просто вам лень читать, и у вас предвзятое мнение о языке, не в последнюю очередь сформированное местными консерваторами и мифическими гуру C++, для которых всё новое - говно для вебмакак. Другой синтаксис - глаза вытекают, другая идеология - вытекают мозги. Лучше ведь сидеть на жопе ровно и следующие 10 лет бодро шагать по граблям привычным маршрутом. Зато можно хвастаться, как ты ловко умеешь от них уворачиваться, вдыхая аромат очередной свеженапечатанной книги "55 секретов профессионального граблехода".
| |
|
3.465, Аноним (-), 22:22, 26/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
Чувак, ты в курсе сколько между C++98 и С++20 было редакций стандарта C++ и в чем они заключались? Когда твой раст наберет хотя-бы десятую часть кодовой базы плюсов, при этом не потеряв способность меняться и приобретать новые свойства, сохраняя преемственность, тогда и поговорим.
| |
|
4.502, Аноним (502), 23:08, 20/08/2020 [^] [^^] [^^^] [ответить]
| +/– |
В Расте для этого есть редакции (Editions). Подобное хотят притащить к себе плюсовики, в виде эпох (Epochs).
| |
|
|
|
1.477, Аноним (-), 15:04, 27/05/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
Если бы Раст имел лицензию GPL v3+, то Гугл бы и не посмотрел в его сторону. Раст пермиссивен поэтому нравится копирастам.
| |
|
|
3.479, burjui (ok), 01:45, 28/05/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Во-первых, это лицензия этого конкретного фронтенда, а не rustc и иже с ними.
Во-вторых:
"This is currently at a very early stage. At the time of writing, it can compile trivial functions, like:
fn my_function(x: i32) -> i32 { x }
But most language features don't work yet."
То есть, практически неюзабельно.
В-третьих, лицензия Rust потому и называется пермиссивной, что снимает обязательства по открытию кода производных работ, так что взять пермиссивные сорцы и сделать из них GPL-продукт можно, но наоборот нельзя. На это и указывает комментатор выше. Впрочем, я с ним несогласен, т.к. тот же Linux используется Google'ом, при этом имея лицензию GPL. Просто у них уже трещины в черепе от плюсовых граблей.
| |
|
|
|