|
|
3.301, Аноним (301), 23:51, 24/05/2020 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +1 +/– |
Хороший движок, но вроде параллелится так себе, да и не хотят законно открывать. Разработка нелегальными энтуазистами идёт плохо.
| |
|
|
|
|
5.273, Аноним (273), 22:59, 24/05/2020 [^] [^^] [^^^] [ответить] [к модератору]
| –1 +/– |
На компе с 4гиг оперативы вкладка почему-то жрет на 15% больше чем на компе с 16гиг. Показания одного проц.манагера (Process Hacker) на двух системах - 1: Win7x64, 2: Win10x64
| |
|
|
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 +/– |
Ты размер кодовой базы хромиума видел? В таком огромном проекте, да без использования умных указателей, иметь уязвимости будет любой проект с трижды топовыми цпп разработчиками.
| |
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++? Это что-то новое, никогда о таком не слыхал. Таки как вы себе это представляете?
| |
|
|
|
1.6, JL2001 (ok), 14:12, 24/05/2020 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| +7 +/– |
> Разработчики проекта Chromium
> Применение языков, рассчитанных на выполнение проверок безопасности работы с памятью во время компиляции (позволит исключить негативное влияние на производительность за счёт избавления от осуществления подобных проверок во время выполнения кода
ну хоть какие-то разрабы, пишущие на C, адекватные, и признают проблему
а то сплошное "да у вас руки кривые, опыта мало, рука не набита, молокосос!"
| |
|
2.13, Аноним (359), 14:24, 24/05/2020 [^] [^^] [^^^] [ответить] [к модератору]
| +8 +/– |
Они пишут на си? Я не знал, всю жизнь думал, что там плюсы. Неужели си можно превратить в такого монстра? Да не, вряд ли.
| |
|
|
|
|
6.109, Аноним (359), 17:03, 24/05/2020 [^] [^^] [^^^] [ответить] [к модератору]
| +3 +/– |
Ммм файл 2 мегабайта являющийся полноценной современной системой с поддержкой всего железа и кучей фреймворков и апи для всего что только можно. Ну ладно в несжатом виде это файл 20мб, но там сплошные нули и выравнивания.
| |
|
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 очередного анонима опеннета.
| |
|
|
|
|
|
4.41, JL2001 (ok), 15:33, 24/05/2020 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
> Не обращай внимания, большинство смузихлёбов не тв курсе чем це от це-крест-крест
> отличается
а что, в свете данной новости C от C++ чем-то отличается?
| |
|
|
6.53, Аноним (359), 15:51, 24/05/2020 [^] [^^] [^^^] [ответить] [к модератору]
| –1 +/– |
> Ничем не отличается, а наоборот C++ в себя включает Cи
Это не совсем так с некоторых пор, в си добавили сахар которого нет в плючах. Но я думаю, если писать на плючах исключительно как на "си с классами", то многих потенциальных проблем можно избежать. Только зачем тогда брать плючи?
| |
|
7.243, Аноним (243), 21:55, 24/05/2020 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
Но если не брать плюсы, то как тогда быть в "Си с классами"? В C классов нет. Разве что вспомнить про Objective-C.
| |
7.288, Аноним (222), 23:16, 24/05/2020 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
"Си с классами" это не про ООП и присущие ему фичи типа наследования, полиформизма, а про тупую группировку функций в классы, ака структуры
| |
|
|
|
|
|
|
|
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 было недавно, но это не серьёзно. Всё остальное это жит. Все эти уязвимости во флэше тоже, это всё жит и только он. Это наиболее удобный и очевидный вектор атаки, песочницы хоть как-то спасают, но только если они сами не уязвимы.
| |
|
|
|
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... господи какой это кал
| |
|
|
|
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.
| |
|
|
3.45, JL2001 (ok), 15:38, 24/05/2020 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Толстоват ты) Может дело таки не в языках, а в условных индусах?
тебя в гугл не взяли и теперь ты говоришь, что в гугле все индусы?
| |
|
|
|
6.376, Аноним (373), 11:38, 25/05/2020 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Квалифицированные прогеры не могли такое сказать, потому что понимают что C и C++ это разные языки. Похоже кто-то врёт.
| |
|
|
|
|
|
|
|
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++ будет ещё долго использоваться, а разработчики продолжать винить сам язык)
| |
|
|
6.302, proninyaroslav (ok), 23:55, 24/05/2020 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Язык с GC для этих целей не подойдёт (по крайней мере для движка браузера), а жизнеспособных альтернатив C/C++ на тот момент не было. Ну а теперь переписывать полностью на другой язык дорого, так как время - деньги и найти спецов которые знают какой нибудь Rust сложно и дорого (ну или в мозиллу обратится)
| |
|
|
|
|
|
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 выстрелить себе в ногу ? Обратившись за границы массива, например ?
| |
|
|
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 +/– |
С заморозкой. В исключении что будешь делать? Прерывать работу программы, или пытаться дальше криво работать?
| |
|
|
|
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, без классов или хотя бы функций для разделения кода на модули, то это бида конечно
| |
|
|
|
|
2.40, iLex (ok), 15:28, 24/05/2020 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| –5 +/– |
Ну вот Firefox на Rust переписали. И как, меньше там уязвимостей находят, чем в Chrome? Так, может, не в языке дело?
| |
|
|
4.62, JL2001 (ok), 16:03, 24/05/2020 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
> Именно, память лиса жрать стала только больше, вот и весь Rust
на днях обновился таки в одном месте с firefox 56 на текущий (уж очень там нужна была группировка вкладок, а в глобальный инет не ходил им)
потребление памяти упало в 1.5-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.322, cool29 (?), 01:42, 25/05/2020 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +1 +/– |
Ну в любом случае лисой можно пользоваться хотя бы на 8 гигах памяти. Но chromium это просто чудовище ненасытное: как-то на 8 вкладках сожрал у меня около 5 гб. После этого основной браузер у меня лиса.
| |
|
|
|
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++? Во первых скорость, во вторых память, ручное управление которой и дает эту скорость по сравнению с безопасными языками
| |
|
|
|
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 за тебя посчитает в момент компиляции и не будет вставлять эти проверки в код?
зы: над исходниками не зависал, возможно я не прав
| |
|
|
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 +/– |
> память, ручное управление которой и дает эту скорость по сравнению с безопасными языками
Не даёт, его никто толком не умеет делать кроме хелловорлодов. Там везде умные указатели использовать должны, по идее
| |
|
|
|
|
|
|
|
|
5.270, Аноним (222), 22:52, 24/05/2020 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
видимо мусье не знаком с макросами и не понимает, что их в си используют не как функции или другие способы группировки кода, а как способ метапрограммирования вместо шаблонов которых в си нет, а в C++ есть и спрашивается а нахрена в C++ макросы? инлайн функции которыми хоть как то можно оправдать макросы давно есть и в С/C++, разве что для ассемблерных вставок оставить в урезанном виде без макрофункций и дифайнов
| |
|
|
3.237, topin89 (ok), 21:44, 24/05/2020 [^] [^^] [^^^] [ответить] [к модератору]
| –1 +/– |
Ты хоть писал на плюсах? Пользовался сишными библиотеками?
Они и в расте есть, в небезопасных участках, ибо иначе никак порой.
| |
|
|
1.27, Андрей (??), 14:56, 24/05/2020 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| –4 +/– |
36,1% use after free
Казалось бы, что может быть проще: free(p); p = NULL;
А потом один раз if (p == NULL) goto out;
| |
|
|
|
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 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
> в общем не указывайте программисту, что он должен делать
Если я плачу деньги программисту, я именно указываю ему, что он должен делать, оформляя юридически платформу, функциональность, результаты, принадлежность исходников и прочее. В ином случае я его не нанимаю, поэтому данный вариант не рассматривается.
| |
|
|
|
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.
| |
|
|
|
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.
| |
|
|
|
|
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.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 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> например, это может быть замыкание, которое захватило указатель на кусок памяти представляющий эту кнопку.
Похоже, если нужно захватывать указатель, то нужно захватывать указатель на этот указатель. Если уж добвалять синтаксический сахар, так не оставлять при этом дыр.
| |
|
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 +/– |
Ну прям, добавили/удалили фунций в библиотеку, заметьте, без внесения изменений в синтаксис языка, и вот уже новый язык.
| |
|
|
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;
}
| |
|
|
|
|
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 +/– |
Гугл сегодня одна из самых позорных шараг во всех отношениях. Они всегда делали галимый треш. Даже свой поисковик превратили в аналог зомбоящика с тотальной цензурой и рекламой.
| |
|
|
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 +/– |
Многопроцессорность говорили они, безопасность говорили они, а что мы видим в итоге тормоза, отжор памяти и все те же дыры
| |
|
2.175, Аноним (175), 20:32, 24/05/2020 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +1 +/– |
Да и поисковик у них какой-то странный. Лет 5 назад ещё я его предпочитал, а теперь Яша ищет лучше. Делал сайт со 100% уникальным и специфичным контентом, так яндекс на первой странице выдаёт, а гугл не до листался, всё какую-то коммерческую и ненужную дичь выводит не в тему.
| |
|
|
|
5.386, Аноним (-), 13:12, 25/05/2020 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
Посмотрите где хостится DDG. Посмотрите кто у него Главный Партнер По Рекламе. DDG - это ручная собачка одной из самых влиятельных IT корпораций планеты.
| |
|
|
|
|
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.205, Аноним (222), 20:56, 24/05/2020 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
Наверное патентных претензий мозиллы боится MS? Не смешите меня пожалуйста... Очередной экспериментальный язык по типу зайдет не зайдет, как F# и КВАНТОВЫЙ Q#, ну такое
| |
|
|
2.316, Аноним (243), 01:12, 25/05/2020 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
>Короче, копите деньги на память. В ближайшем будущем она вам понадобиться.
Понадобится гораздо раньше из-за мартышколюбви к Electron.
| |
|
|
|
3.284, Аноним (222), 23:08, 24/05/2020 [^] [^^] [^^^] [ответить] [к модератору]
| +4 +/– |
C++ вообще вещь в себе, создавался как костыль к Си, таким и остается до сих пор, правда с оговоркой что стал костылем всего и вся
| |
|
|
5.327, Аноним (327), 04:07, 25/05/2020 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Я пока не добрался до Haskell, да и о функциональщине пока имею только общее представление, но насколько знаю, он совсем не zero-cost, имеет GC и непредсказуем по производительности. А так да, будет круто, если мы однажды доживем до времени, когда компиляторы функциональных языков будут собирать оптимальный машинный код и можно будет писать кроссплатформенные программы на функциональных языках, агностичных к архитектуре компьютера. Но пока, мне кажется, это все еще исследовательское направление, а Rust как промежуточный шаг: он уже впитал в себя горы функциональных концепций в сравнении с другими императивными языками.
| |
|
6.393, Аноним (393), 15:23, 25/05/2020 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
Ну как бы Rust изначально и был диалектом ML, а его первый компилятор был написан на OCaml. Но понятно, что опеннетовскому илитарию на все это пофиг, потому что Rust - модный и молодежный, а значит автоматически не тру, OCaml - нишевый и малоизвестный, а значит автоматически тру. Ясно-понятно. И кто тут еще хипстер?
| |
|
|
|
|
|
|
|
3.221, FixingGunsInAir (ok), 21:17, 24/05/2020 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +1 +/– |
> шарпик в unsafe позволяет долбится в указатели не хуже крестов
Вот только в unsafe лезть никто не заставляет, кроме случаев, когда используешь с нативные библиотеки, где ручное выделение памяти.
Реализовав банальный IDispose нормально, можно большинство таких проблем избежать.
А если пердолишься с указателями без причины, сам вешаешь на себя ярлык.
| |
|
|
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 +/– |
ну так товарищ выше не шарит шо есть низкоуровневые либы которые пишутся на сях и крестах, а есть высокоуровневые ЯП которые их юзают через стандартные обвязки, иначе говоря прикладник практически никогда не будет копаться в кишках либ, а только их юзать
| |
|
|
|
|
3.293, Аноним (222), 23:33, 24/05/2020 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| –1 +/– |
Просто растоманы не понимают, что для каждой сферы свой инструмент... Нужно тебе постоянно общаться с си-кодом напрямую без магических unsafe бери C++, хочешь писать быстро и выдавать производительный код бери Java/C#, хочешь писать еще быстрее, но более медленный код, бери пистон или пых(МИНЗДРАВ НЕ РЕКОМЕНДУЕТ), хочешь писать скрипты для линух бери bash, но ни как не C++, а если тебе нужно таблички почекать бери awk
| |
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 поддерживают... Чего тебе еще надо?
| |
|
|
|
|
|
1.259, Аноним (243), 22:25, 24/05/2020 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| +1 +/– |
Гугелю бы присмотреться к D. Границы массивов в нём проверяются, тоже есть @safe. В последнюю версию 2.092 эталоннго компилятора добавили владение/заимствование. Зато, в отличие от Rust, у него с синтаксисом и объектностью всё красиво.
| |
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.
| |
|
|
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 лет.
| |
|
|
|
|
|
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 [ответить] [﹢﹢﹢] [ · · · ] [↓] [к модератору]
| +/– |
Сейчас вообще перестали мочь писать код грамотно, минимальным по весу, по размеру, по жручести, никто за собой не подчищает, не оптимизирует. Раздуют программу, как дирижабль. И хрен с ним, и так схавают.
Тока давай обновления строчить каждый день. Не до оптимизации тут.
| |
|
|
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.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++ и в чем они заключались? Когда твой раст наберет хотя-бы десятую часть кодовой базы плюсов, при этом не потеряв способность меняться и приобретать новые свойства, сохраняя преемственность, тогда и поговорим.
| |
|
|
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. Просто у них уже трещины в черепе от плюсовых граблей.
| |
|
|
|