Представлен выпуск новой стабильной ветки WebKitGTK 2.42.0, порта браузерного движка WebKit для платформы GTK. WebKitGTK позволяет использовать все возможности WebKit через GNOME-ориентированный программный интерфейс на основе GObject и может применяться для интеграции средств обработки web-контента в любые приложения, от использования в специализированных HTML/CSS-парсерах, до создания полнофункциональных web-браузеров. Из известных проектов, использующих WebKitGTK, можно отметить штатный браузер GNOME (Epiphany). Ранее WebKitGTK применялся в браузере Midori, но после перехода проекта в руки Astian Foundation старый вариант Midori на WebKitGTK был заброшен и путём создания ответвления от браузера Wexond создан принципиально другой продукт с тем же названием Midori, но на основе платформы Electron и React...Подробнее: https://www.opennet.me/opennews/art.shtml?num=59771
Epiphany все также будет отдной вкладкой жрать памяти как весь firefox?
>GNOME-ориентированный программный интерфейс на основе GObjectЖуткая абсолютно не нужная гадость, сотворённая только с одной целью - не использовать C++, как делают все адекватные люди, и возведённая после этго в карго-культ.
Да, по сути С ООП на костылях.
с++ - бракованный язык, который даже не взяли в ядро линукса - в силу его ущербности
лучше доверить разработку хорошим С программерам, чем искать с++ков
Можно подробнее, что означает
> не взялии что означает
> даже
"даже" означает, что ядро линукса это сложный проект, который на немалый процент состоит из костылей и 0внок0да
в нем используется С который порождает тонны CVE, про которые можно почитать на пеньке почти каждую неделюи если создатель ядра (который явно знает о всех проблемах и сложностях, и который сам пишет "We're getting old and gray.") пишет про С++ такое:
C++ is a horrible language. It’s made more horrible by the fact that a lot of substandard
programmers use it, to the point where it’s much much easier to generate total and utter crap
with it. Quite frankly, even if the choice of C were to do *nothing* but keep the C++
programmers out, that in itself would be a huge reason to use C.это должно навести на некоторые размышления)
> и если создатель ядраЭто просто мнение одного человека. Вон Гугл и свою ОС и браузер ( который по факту ОС) пишет на сабже.
этот как бы да, но еще есть пример андроидаhttps://security.googleblog.com/2022/12/memory-safe-language...
In Android 13, about 21% of all new native code (C/C++/Rust) is in Rust. There are approximately 1.5 million total lines of Rust code in AOSP across new functionality and componentsгугл сам признает, что с++ вызывает проблемы с памятью и что раст уменьшает их кол-во
As the amount of new memory-unsafe code entering Android has decreased, so too has the number of memory safety vulnerabilities. From 2019 to 2022 it has dropped from 76% down to 35% of Android’s total vulnerabilities
то что в андроиде еще есть с++ - это только из-за огромной кодовой базы
все переписать сразу не получится, но за несколько лет можно "исправить" большиство самых проблемных местА то что до хрома не дошли руки... тут может быть куча причин начиная от отсутствия раст разрабов, до "эксперимент делаем на одном проекте, на всякий случай"
Уже дошли... ninja поддерживает сборку Rust в Chromium. первый проект (что-то с QR) будет переписан на Rust
https://github.com/chromium/chromium/blob/main/components/qr...
ох, ну наконец-то)
Это мнение разделяет очень много человек.Если сишка просто плохой дизайн, то С++ берет эти плохие решения в качестве эталона, на основе них создаёт ещё более плохие решения, без даже наносекундной рефлексии на основании этих решений делает новые ещё более идиотские.
А затем, относясь к компилятору как к черному ящику, берет хаки которые вообще не должны компилироваться, и делает из них стандарт!С++ это маразм на маразме и бред на бреде.
Вот банально, ради всего святого, ЗАЧЕМ, для доступа к след элементу итератора используется перегрузка операции РАЗИМЕНОВАНИЯ УКАЗАТЕЛЯ?
Как вообще до этого можно было дойти?
Все очень просто. С++ создавался в конце 70х - начале 80х
А потом читаем в вики "LSD dramatically decreased in popularity in the mid-1970s [...]"
Все сходится!
> Вот банально, ради всего святого, ЗАЧЕМ, для доступа к след элементу итератора используется перегрузка операции РАЗИМЕНОВАНИЯ УКАЗАТЕЛЯ?Для начала: может ли указатель служить итератором?
> Вот банально, ради всего святого, ЗАЧЕМ, для доступа к след элементу итератора используется перегрузка операции РАЗИМЕНОВАНИЯ УКАЗАТЕЛЯ?Потому что итератор указывает на объект. Плюс указатель сам по себе является простейшим случаем итератора.
>> Вот банально, ради всего святого, ЗАЧЕМ, для доступа к след элементу итератора используется перегрузка операции РАЗИМЕНОВАНИЯ УКАЗАТЕЛЯ?
> Потому что итератор указывает на объект.Ниже пример тегов итератора.
Где тут указатель на ОБЪЕКТ?struct Iterator
{
using iterator_category = std::forward_iterator_tag;
using difference_type = std::ptrdiff_t;
using value_type = int;
using pointer = int*; // or also value_type*
using reference = int&; // or also value_type&
};
> Плюс указатель сам по себе является простейшим случаем итератора.Вы просто то что в книжке написали тут повторяете и не задумываетесь о том какая это чушь.
> Ниже пример тегов итератора.
> Где тут указатель на ОБЪЕКТ?При чем здесь вообще теги итератора?
> Вы просто то что в книжке написали тут повторяете и не задумываетесь о том какая это чушь.
Ну так может вы в конце концов объясните, что не так, и как должно быть правильно? Я пока вижу лишь поток бестолкового "чушь, бред, маразм" и т.п. бессмыслицы.
>> Ниже пример тегов итератора.
>> Где тут указатель на ОБЪЕКТ?
> При чем здесь вообще теги итератора?Показывают на что указывает этот конкретный итератор?
>> Вы просто то что в книжке написали тут повторяете и не задумываетесь о том какая это чушь.
> Ну так может вы в конце концов объясните, что не так, и
> как должно быть правильно? Я пока вижу лишь поток бестолкового "чушь,
> бред, маразм" и т.п. бессмыслицы.Ну вы бы хоть наносекунду самостоятельно попытались подумать.
Времени и сил у меня объяснять эти вещи нет...
Никаким итератором указатель конечно же не является, никогда не являлся, и не будет.
А за то что можно сделать с ним операцию ++ нужно отрезать руки тем кто это придумал.
Это может быть разрешено только для массивов (но даже в таком виде будет оставлять споры о количестве розг для авторов этой гениальной идеи). Но С++ не смогло осилить не то что строгую типизацию, а видимо типизацию вообще, кроме Классов Страуструпа конечно натянутых совой на глобус.Говоря о бреде и маразме, вот это в языке явно работающем с указателями:
void printarray (int arg[], int length) {
for (int n=0; n<length; ++n)
cout << arg[n] << ' ';
cout << '\n';
}int main ()
{
int foo[] = {5, 10, 15};
printarray (foo,33);
}Класс вообще, передаём указатель но не явно, потому что? Во имя Сатаны!
>>> Ниже пример тегов итератора.
>>> Где тут указатель на ОБЪЕКТ?
>> При чем здесь вообще теги итератора?
> Показывают на что указывает этот конкретный итератор?Ну, в этом плане value_type и есть объект, на который указывает итератор.
> Ну вы бы хоть наносекунду самостоятельно попытались подумать.
> Времени и сил у меня объяснять эти вещи нет...Ахаха! Ну так я и не сомневался... Куча дешевого пафоса и ноль конкретики. Вы так и не привели сколь-нибудь адекватного аргумента, почему C++ хуже C - только дешевые набросы на уровне цитаты Линуса.
> Никаким итератором указатель конечно же не является, никогда не являлся, и не будет.
Является, потому что удовлетворяет требованиям как концептуально (без привязки к C++) так и конкретно плюсовым LegacyRandomAccessIterator:
https://en.cppreference.com/w/cpp/named_req/RandomAccessIter...
> Класс вообще, передаём указатель но не явно, потому что? Во имя Сатаны!
Не совсем понял к чему этот сугубо сишный пример. В плюсах так никто не делает, ибо есть простые способы, чтобы не писать такую дичь: к примеру, автоматическое выведение размера массива или std::span.
> Является, потому что удовлетворяет требованиям как концептуально (без привязки к C++)О боже мой. Куда как и зачем вы собрались итерировать указатель в вакууме на байт в вакууме?
Концептуально штука указывает на конкретную область памяти, это концептуально указатель. Итерирование где в этой концепции концептуально?> Вы так и не привели сколь-нибудь адекватного аргумента, почему C++ хуже C
А, что, причём тут Си? Нужно всю нить посмотреть.
А адекватность вы как собрались измерять, адекватность в глазах сипипишнка? Мало ли каких слонов с щупальцами кальмара они видят вместо букв и цифр.
> только дешевые набросы на уровне цитаты Линуса.
Уровень Линуса, спасибо.
> так и конкретно плюсовым LegacyRandomAccessIterator:
> https://en.cppreference.com/w/cpp/named_req/RandomAccessIter...Вы реально не понимаете. Вам говорят - у вас дизайн бредовый.
Вы отвечаете - "нет же все верно, так написано в бредовой документации бредового дизайна, а ты давай адекватные аргументы".>в плюсах так никто не делает
Странно, а компилятор компилирует.
Может стоит убрать то что никто не использует?
> Концептуально штука указывает на конкретную область памяти, это концептуально указатель. Итерирование где в этой концепции концептуально?Итератор тоже указывает на конкретную область памяти - на объект, который там находиться. Дальше что?
Они оба *указывают* - это и есть ответ на вашу придирку "как к итераторам додумались прикрутить оператор разыменования". Чего вы не спрашиваете, как додумались добавить к ним арифметические операции - они же не числа?!
> А, что, причём тут Си? Нужно всю нить посмотреть.
Ну так посмотрите. Все началось с вашего заявления "Если сишка просто плохой дизайн, то С++ берет эти плохие решения в качестве эталона, на основе них создаёт ещё более плохие решения [..] маразм на маразме и бред на бреде".
> Вы реально не понимаете. Вам говорят - у вас дизайн бредовый.
Так а что конкретно я должен понять из сугубо из "дизайн бредовый"? Вы же не пишете, почему бредовый.
Я с таким же успехом заявляю, что ваши аргументы бредовы. Дальше что?
>> в плюсах так никто не делает
> Странно, а компилятор компилирует.
> Может стоит убрать то что никто не использует?Может быть, но как наследие C в C++ относится к теме обсуждения? Суть, однако, в другом: в этом контексте я привел более адекватные альтернативы, возможные C++ и не возможные в C, но при этом у вас все равно плюсы хуже С.
> Итератор тоже указывает на конкретную область памяти - на объект, который там находиться. Дальше что?Нет, никуда он не указывает вообще, итератор это объект(обычно) **возвращающий** элементы некой абстрактной последовательности.
Вы путаете то что итератором в С++ называют, и концепцию как таковую, не говоря уже о том, что напрочь игнорируете реализацию итераторов в других языках.
И даже в С++ это никакой не указатель, а объект с ФУНКЦИЕЙ КОТОРАЯ ИМЕЕТ ИМЯ "*".
И это есть маразм планетарных масштабов.Не говоря уже о том, что окончание последовательности в C++ предлагается обнаруживать !!сравнением возвращаемого значения с константой!!
Совсем тут туру что ли головушкой?Это что-то вроде null terminated string?
Смотрите как это делают люди которые в своём уме, которых не похищали инопланетяне и которые не ждут прилёта анунахов c Ниибиру:
static IEnumerable<int> getList()
{
yield return 1;
yield return 2;
yield return 3;
}Простейший блин интерфейс:
interface IEnumerator
{
bool MoveNext();
void Reset();
T Current();
}Всё.
То что в С++ - это вообще говоря "container agnostic collection access modes", и я НЕ хочу знать что вы там делаете с взадообратным итератором и случайнодоступным.
> Ну так посмотрите. Все началось с вашего заявленияТак все таки заявление, а не предъявление.
Хотя обычно люди называют это комментарием или мнением, которые не инопланетяне.То что у вас началось от моего банального комментария конечно весьма занятно. Но мне если честно ваши чувства задевать не хотелось, и вообще они мне не интересны.
> Суть, однако, в другом: в этом контексте я привел более адекватные альтернативы, возможные C++ и не возможные в C
Да нет в С++ ничего адекватного в общем то.
Сишка - абсолютно ужасна. Чем она лучше С++?Тем что С++ берет этот ужас за основу и итеративно усложняет его надстраивая хорошее решение проблемы вызванной бредовым изначальным дизайном на основе этого бредового дизайна, в результате чего получается хорошая бредовая абстракция с бредовым дизайном. А затем на её основе добавляют новые отличные возможности работающие в концепции бредового решения и так далее.
То есть, именно тем С++ хуже Си, что в С++ гораздо больше возможностей абстракций и механизмов. Которые вам кажутся логичными только потому что логика у вас С++нутая.
Сишка же в своей ужасности сказала - хватит, мир не вынесет ещё большего бреда.
> value_type и есть объект
> value_type = intУ вас int это объект? С вами всё хорошо?
> Если сишка просто плохой дизайн, то С++ берет эти плохие решения в качестве эталона, на основе них создаёт ещё более плохие решения, без даже наносекундной рефлексии на основании этих решений делает новые ещё более идиотские.Да что ты! Ссылки, RAII, обобщенный код, перегрузка функций, куча готовых контейнеров в стандартной библиотеке, более строгая типизация, ООП... Действительно, один идиотизм.
>> Если сишка просто плохой дизайн, то С++ берет эти плохие решения в качестве эталона, на основе них создаёт ещё более плохие решения, без даже наносекундной рефлексии на основании этих решений делает новые ещё более идиотские.
> Да что ты! Ссылки, RAII, обобщенный код, перегрузка функций, куча готовых контейнеров
> в стандартной библиотеке, более строгая типизация, ООП... Действительно, один идиотизм.Повторю. Ноль, рефлексии.
Это отчасти профдеформация, но явление все равно будоражит сознание в виду исключительной поршивости инструмента.Вам дали молоток для закручивания шурупов, и вы преуспели в его эксплуатации, вы гордитесь своим достижением, и являетесь профессиональналом закручивания шурупов молотком.
Но то, что это безумно а самой своей основе, вы не видите.
> Вам дали молоток для закручивания шурупов, и вы преуспели в его эксплуатации, вы гордитесь своим достижением, и являетесь профессиональналом закручивания шурупов молотком.Ну, понятно: ничего конкретного предъявить мы не можем, зато умело продолжаем сыпать абстрактным напыщенным пафосом. Как и Линус в своей бестолковой цитате.
> Ну, понятно: ничего конкретного предъявить мы не можем, зато умело продолжаем сыпать
> абстрактным напыщенным пафосом. Как и Линус в своей бестолковой цитате.Мне нужно было кому-то что-то предъявлять?
Вы принимаете предъявы?
Вы уже с пафосом предъявили, что C++ хуже C. И дешево слились, лишь только речь зашла о конкретике.
> Вы уже с пафосом предъявили, что C++ хуже C. И дешево слились,
> лишь только речь зашла о конкретике.Уверен, что ничего такого никому не предъявлял.
Цитирую:> Если сишка просто плохой дизайн, то С++ берет эти плохие решения в качестве эталона, на основе них создаёт ещё более плохие решения, без даже наносекундной рефлексии на основании этих решений делает новые ещё более идиотские.
https://www.opennet.me/openforum/vsluhforumID3/131541.html#61
И **кому** и что я тут **предъявляю**?
Создатель ядра известен своими субъективными эпатажными нерациональными выходками в тот период, когда он это написал. Он вполне мог это сделать не подумав или быв под алкоголем или веществами ради эпатажа. А потом отказаться от своих слов - это потеря лица, стыдно. Вот и приходится жрать кактус. Про Rust он фигни не нёс, поэтому принять Rust потерей лица не будет.
При всех закидонах, он не настолько туп
Разве что намекает на неосиляторство или лень финского студента и отсталость Юникса и его нескучных клонов. Сишка за пределами наследия АТ&Т мертва уже лет 25-30.
Windows написан на С++.
Ну, учитывая насколько винда и другие их продукты дырявые... так себе аргумент))
Да куда уж им до на десктопе ненужного.
Однако никто оффтопик на суперкомпьютеры не пытается ставить, как впрочем и, например, роутеры. Как же так, глупые ИТ-гиганты мучаются с ненужно, кто бы им подсказал про windows, вдруг они не знают про эту великую ось.
> Однако никто оффтопик на суперкомпьютеры не пытается ставитьВ Top500 последние n лет действительно только суперкомпьютеры под с Линуксом. Но кроме Топ500 есть ещё масса суперкомпьютеров, под управлением и Винды, и даже всякой экзотики типа AIX или HP-UX, и какое-то время назад, они были в Топ500. То, что ты не застал те времена говорит лишь о твоей молодости, но никак не о непригодности Винды или чего-то ещё для таких задач.
Да куда уж мне, правда я уже программировал, когда оффтопик еще не вырос из версии 3.11, и уж тем более на суперкомпьютеры его тогда не ставили.
О 3.11, а когда 3.1 ставили на Суперкомпьютер? Так для себя хочу уяснить. Раз в 3.11 уже отказались ставить
Свою ОС епанул наверное для всех ПК, а мы дегроданты и не слышали, а на ней пол мира сидит. Сожалею о своем незнании, ваших разработок в сфере ОС.
На суперкомпутеры линукс ставят по одной простой причине. Есть бесплатные исходники, из которых можно выкинуть всё, не относящееся к задаче. Лиеукс для суперкомпутеров, это идеологически как прошивка для вайфай роутера.
Насколько?Регулярно публикуемая статистика показывает, что продукты Майкрософт не более дырявые в сравнении со свободным ПО и продуктами других корпораций.
https://www.opennet.me/opennews/art.shtml?num=59718
Посчитай сколько в списке их продуктов.
Посчитал. Теперь ты посчитай CVE в ГНУ/Линуксе и ЛибреОфисе за прошлый год. Как посчитаешь, померяемся.
Так у них тоже их дофига. Не просто так он Patch Tuesday ввели в свое время))
У всех дофига. В умных книгах пишут, что в больших коммерческих проектах на С и С++ количество ошибок на тысячу строк примерно одинаковое, и ты хоть убейся об стену, но лучше не будет из-за множества принципиально нерешаемых проблем разработки. С учетом сотен ежегодных дыреней в Линуксе (и сотнях в других опенсорц-проектах) нападки на Майкрософт выглядят жалкой клоунадой.
Открытых исходников самых дырявых их продуктов нет, поэтому статистика так себе.
> Ну, учитывая насколько винда и другие их продукты дырявые... так себе аргумент))То ли дело Linux и другие сишные проекты... Это у вас аргумент так себе.
Хм, пользуетесь другими ос, это какими же?
Вам следует перейти на КолибриОС, тамет неприятного Вам С++. Все на чистом ассемблер!
Как пропатчить КолибриОС под Малину?
>Windows написан на С++.Не совсем чтобы. NT API, Win32 API на С.
> и если создатель ядра (который явно знает о всех проблемах и сложностях, и который сам пишет "We're getting old and gray.") пишет про С++ такое:
> C++ is a horrible language. It’s made more horrible by the fact that a lot of substandard
> programmers use it, to the point where it’s much much easier to generate total and utter crap
> with it. Quite frankly, even if the choice of C were to do *nothing* but keep the C++
> programmers out, that in itself would be a huge reason to use C.Извини, но это какие-то детские эмоции без какой-либо конкретики. Подставь вместо C++ любой другой язык - ничего не измениться. Буквально здесь на Опеннете местные эксперты на таком же критикуют Раст.
Но Раст то Линус в ядро таки принял.
Такой бракованный, что бедненьким C-программистам костылить C++ из C приходится, при этом не имея в стандартной библиотеке даже функций для нормальной работы со строками, файловой системой, потоками, множествами, даже динамических массивов у них нет, а таблицы констант приходится отдельными программами генерить. За веру пострадали, мученики.
хе, а я разве говрил что С хорош?
я знаю про убогость его стандартной либы, UB заложенные прямо в стандарт (хотя меньше чем в плюсах), хтоническую кривизну макросов, строки и буферы которые просто просят "выйди за меня" (что сулит очень много-много секса)но по теореме г-на Эскобара брать оба языка в ядро...
пусть программеры еще их путают)
> ... что бедненьким C-программистам костылить C++ из C приходится ...А вот с чего ты взял, что они С++ костылят а не какой нибудь Objective-C (прости г-ди)?
У плюсов нет монополии на OOП.
>> ... что бедненьким C-программистам костылить C++ из C приходится ...
> А вот с чего ты взял, что они С++ костылят а не
> какой нибудь Objective-C (прости г-ди)?
> У плюсов нет монополии на OOП.С++ к ООП имеет примерно такое же отношение как, а в прочем ну его, никакого в общем.
Ну не ври, конечно. В C++ имеются все три признака ООП.
> Ну не ври, конечно. В C++ имеются все три признака ООП.В С++ имеется система типов Страуструпа. Переусложненеая бредовая штука.
Писать то в ООП стиле можно на чём угодно.
И нет никаких признаков ООП.
Есть принцип, объект-молуль это черный ящик который может принимать и отсылать сообщения. При этом внешние объекты-молули должны просить его что-то сделать и не указывать как именно оно должно это делать.
Можно сказать что главные принципы это инкапсуляция и слабое связывание через механизм сообщений.А то что слеланно в С++ и подобных вроде Java, ломает инкапсуляцию, и не обеспечивает слабого связывания.
А если не ломать, то получается жуткая древовидная иерархия классов где сообщения обязательно идут через корень.
А что про наследование забыл?
> А что про наследование забыл?Кто забыл? Наследование ломает инкапсуляцию и отношения к ООП не имеет.
> При этом внешние объекты-молули должны просить его что-то сделать и не указывать как именно оно должно это делать.По-вашему, вызов метода под это определение не подходит?
> А то что слеланно в С++ и подобных вроде Java, ломает инкапсуляцию, и не обеспечивает слабого связывания.
Каки именно образом оно ломает инкапсуляцию и не обеспечивает слабого связывания?
Ну и самый главный вопрос к эксперту: в каком языке, как вы считаете, есть настоящее ООП?
>> При этом внешние объекты-молули должны просить его что-то сделать и не указывать как именно оно должно это делать.
> По-вашему, вызов метода под это определение не подходит?Вызов метода можно рассматривать как sort of message passing конечно.
И тут можно и наследование даже приспособить, но в виде наследования интерфейсов, в понятиях С++ полностью абстрактных классов?
Интерфейсы как раз обеспечивают инкапсуляцию реализации за внешним протоколом общения.
Но нужно понимать что не каждый метод одинаково полезен в ключе ООП.
> Ну и самый главный вопрос к эксперту: в каком языке, как вы считаете, есть настоящее ООП?
Использовать ООП в разработке ПО можно наверное почти на любом языке.
Тру ООП язык, наверное Smalltalk? Erlang пожалуй стоит отметить.
> С++ к ООП имеет примерно такое же отношение как, а в прочем ну его, никакого в общем.
> Использовать ООП в разработке ПО можно наверное почти на любом языке.Я смотрю, вы последовательный...
> Но нужно понимать что не каждый метод одинаково полезен в ключе ООП.
Может, хватит этих дешевых понтов?
Вы так и не привели внятного примера, в чем C++ хуже C?
>> С++ к ООП имеет примерно такое же отношение как, а в прочем ну его, никакого в общем.
>> Использовать ООП в разработке ПО можно наверное почти на любом языке.
> Я смотрю, вы последовательный...Не вижу проблем. Последовательный.
> Может, хватит этих дешевых понтов?
Вы меня со своими дружками из подворотни перепутали.
Больше метать бисер не буду. Моя ошибка.
> Больше метать бисер не буду. Моя ошибка.Ну наконец-то этот цирк закончился...
Подключаешь библиотеку и всё это есть. В плюсах, когда нужны быстрые строки, тоже сторонние либы используют.
А как ты подключишь к C ссылки и RAII, которые сами по себе решают огромный пласт проблем C?
> А как ты подключишь к C ссылки и RAII, которые сами по
> себе решают огромный пласт проблем C?RAII костыли которые требуют тонны бойлерплейт кода, использования доп памяти и времени ЦП на объекты, и работают в режиме черного ящика при использовании (а хрен его знает что там деструктор делает), решают огромный пласт проблем С в ядре Линукс?
Вы себя послушайте.
> RAII костыли которые требуют тонны бойлерплейт кодаАхаха! А дергать ручками функции освобождения ресурсов - это не тонны бойлерплейта, да?
> использования доп памяти и времени ЦП на объекты
Полная чушь: RAII сам по себе не использует ни дополнительной памяти, ни времени ЦП. Сами ресурсы, которые оборачивает RAII (напр. пара выделение-освобождение памяти) действительно могут этого требовать - но ты ведь и без RAII бы все это ручонками делал.
В общем, я и не сомневался, что в плюсах вы даже на уровне студента не шарите. Можете продолжать дальше рассказывать, что C++ хуже C: местные эксперты, мнение которых зиждется не на знании, а исключительно на том, что там ляпнул авторитетный дядя Линус - они вас поддержат.
> работают в режиме черного ящика при использовании (а хрен его знает что там деструктор делает)
Это зовется абстракция. И даже в голом C она есть в виде того же close(fd) - только ты ее ручками дернуть не забудь.
> решают огромный пласт проблем С в ядре Линукс
Если посмотришь выше, речь шла не о Линуксе. Это был ответ на заявление "все проблемы С решаются сторонними библиотеками", которые сишники вынуждены подключать к своим проектам (или писать самим), чтобы сделать хоть что-то осмысленное.
Может этого нет в стандартной библиотеке, потому оно там не нужно?
Действительно, зачем в стандартной библиотеке нужны динамические массивы со строгой типизацией и строки, если можно сношаться с malloc и вылазить за пределы буфера?
> Действительно, зачем в стандартной библиотеке нужны динамические массивы со строгой типизациейНет в С++ строгой типизации как явления.
> и строки
Раньше в С++ строки ничем от массивов не отличались, не знаю как там сейчас c utf8 дела обстоят.
Кстати, а тип данных "байт" уже появился? Смогла ли великая сипипишка признать что существуют байты, и что байт это не всегда символ?
>если можно сношаться с malloc и вылазить за пределы
> буфера?Сношаться можно и в С++, и успешно вылазить за любые пределы. Причём куда более изощрёнными способами.
Но в системном программировании, вам именно что нужно сношаться именно с malloc и не только. Поэтому к чему вы это, непонятно.
так какой язык ты порекомендуешь сейчас как альтернативу ?
Вот суки, вашим ЯП не пользуются, Вы же написали ЯП с ноля и он такой прекрасный. А эти говно свое тащут) Так это выглядит
С++ не ущебный, а плохо совместимый с Си.
С++ делали на основе древнего диалекта Си, и далее в С++ совместимость с Си поддерживалась как нибудь, и уже в 90х прошлого века стало невозможно собрать часть Си кода компилятором С++.
Далее, когда на пожелания сделать языки более совместимыми, началось словоблудие типа - С++ это другой язык, идите нах..., или перелопачивайте исходники, то
очевидно ним о каком портировании не могло быть и речи.Вообще, оба языка можно как угодно смешивать в рамках проекта, и С++ в раде случаев и код лучше даёт. Видимо остался осадочек, раз забили.
>с++ - бракованный язык, который даже не взяли в ядро линукса - в силу его ущербностиРазработчикам Haiku, однако, это не мешает. Может быть, дело не только в языке?
Очень востребованный и популярный проект, прям как Линукс который стоит на большинстве устройств нашей планеты и за ее пределами, да?
а таперь давай поясняй как линуксу помог С, и почему хурду не помог? Или я что-то не знаю про хурд?
Эх, на вашем роутере стоит не Linux, наверное WebOS?
Посмотрел бы я на тебя как ты будешь генерировать биндинги для других языков со своим с++.
> для других языковНо зачем?
А так есть extern "C"
D может в C++ные классы. А 2.100-е версии эталонного DMD вообще, как бы, не 100% в C++ ABI может.
1. Если нужно вызывать из других ЯП, то генерится сишная обёртка
2. На самом деле и она не нужна, конвенция thiscall у всех компиляторов одинакова, сишная обёртка с первым аргументом - указателем на объект - тавтология. Можно срезу плюсовые функции вызывать. Большая ошибка создателей языка - нестандартизированность схемы name mangling. Но опыть же, самая используемая - эта та, что в GCC, clang, intel и т.д. На майкрософтовскую можно вообще забить. Всё равно все clangом компилят даже под винду, если EEE-расширения компилятора не задействованы, без которых вполне можно обойтись.
> 1. Если нужно вызывать из других ЯП, то генерится сишная обёртка
> 2. На самом деле и она не нужнаЕще как нужна, и она будет вовсе не тривиальна - вы напишете примерно тот же GObject. Как минимум потому, что у классов есть виртульные методы, и из условного Питона их нужно будет переопределять - да так, чтобы это работало в обе стороны.
Условный Питон... Для конкретного CPython те же PyQt и PyKDE успешно существуют.
Да, и реализовано там все куда сложнее, чем просто через "extern C".
Через swig
> сотворённая с одной целью - не использовать C++, ... возведённая после этго в карго-культЭто ещё цветочки. У Си-фанатиков из Гонма теперь новый порок, и они взялись возводить старую кодовую базу в новый cargo-культ (см. librsvg, gstreamer), обогащая её новыми ошибками и привязкой к тулчейну от M$ и Ко - лучших друзей РыжейХаты.
>Жуткая абсолютно не нужная гадость, сотворённая только с одной целью - не использовать C++, как делают все адекватные люди, и возведённая после этго в карго-культ.Когда она быда сотворена, ещё можно было понять творителей. В то время сам C++ ещё не сильно был развит, да и его компиляторы хромали. Но тащить это по сей день, когда на дворе C++23, такое себе занятие.
>Включён по умолчанию интерфейс пользователя браузера, оснащённый адресной строкой.Великое достижение!
альтернатив всё равно нет
Ну он же сделал наверное, раз пишет или просто истерика что не его разработку приняли. Может он ВебКитDos сделал...
К чему эти глупые ёрничанья? Это просто тестовый проект. Делать из него полноценный самостоятельный браузер и не планируется. Просто пилиться серво, а готовые части переносятся постепенно в геко.
Потому изменение чисто немного для удобства девелоперов (к которым ты всё равно не относишься).
>API WebGPUВредоносное API. Ещё более вредоносное, чем WebGL.
>Код, обеспечивающий работу HTTPS, переведён с OpenSSL на пакет rustls.С бэкдорами в cargo-культовых зависимостях? Очень полезное изменение!
В rustls кстати недавно вмержили поддержку альтернативных бекендов https://github.com/rustls/rustls/pull/1405 . Теперь диды могут подключить свой любимый дырявый OpenSSL.
ну да, бекдоры в карго зависимостях бла-бла-блазачем они нужны если в самом такие дырени, что релизы дистрибутивов откладывают?
https://www.opennet.me/opennews/art.shtml?num=57996
которые заботливо написаны и положены разрабами прямо в сорцы!вот оно, знаменитое качество openSSL, то heartbleed, то еще какая-то напасть
https://www.opennet.me/opennews/art.shtml?num=58025
Так, я что-то пропустил О_о
С каких пор Servo перестал быть экспериментальным проектом движка Firefox и превратился в (консольный?) браузер...
>консольныйПросто растовые GUI-либы - они такие. Сказать, что плохо выглядит, я не могу - программы на dear imgui выглядят похоже.
Мазила давно забила на серво и передал его в "чужие" руки :)
Тут скорее вопрос "С каких пор Servo перестал быть дохлым проектом?". Там уже не один год вроде как вообще никаких движений не было...
Эта собака ж компилируется ненамного меньше хромиума...
и как часто приходится перекомпилировать?
если комп слегка мощнее унитаза, то 1-2 часа
Можно подробнее, в каких единицах и как измеряете мощность
>унитаза
о, это очень просто
находишь любую модель умного ср@льника (обычно такие любят японцы)
смотришь что там есть какой-то мелкий арм, например ARM Cortex-M4 EFM32WG или STM32F103RCT6это принимаем за одну туалетную силу и компиляем на нем хром
теперь пересчитываешь мощность компа в туалетный эквивалент
Так, учитывая, что вычислительная мощность унитазов со временем будет расти - нас ожидает инфляция туалетных сил!? :)))
Для работы унитаза брать такой мощный процессор О_о это что за пропускная способность поп там будет?
В кубометрах в час
Это сколько ядер, штук 100? А памяти? Или ты врунишка и сам никогда не компилял эти поделки (вообще их штук 10 каждую неделю компилять).
какие 100 ядер? достаточно обычного ryzen 5950x)а если серьезно
4+ ядер, 16+ гигов памяти, ссд - это минимальный комп для перекомпиляции
в сети попадаются уникалы, которые собирают на 2х ядерных селеронах 30+ часов, но тут сами себе злобные буратины
если нет нормального железа - качай уже собранные или не жалуйся
На 4 ядрах компилятся будет часов 20. Хромбейсд ещё дольше. 2 ядра наверно всю неделю.
Если процессор современный, но для эксперимента ограничиться 4мя его ядрами, то явно быстрее управится и на 4х ядрах.
А если сам проц древний или бюджетник, то это другая история.
А если там ещё SATA SSD, или совсем нет, то это уже соревнования по ретротехнике, что тоже бывает, но к скорости компиляции отношения не имеет.
Чёт у других программ таких сложностей нет, следующим шагом будете говорить что надо купить оптан и всё чтобы хром компилировать.
Выше ответили, что не надо заниматься сборкой на железе не отвечающим современным запросам.
Ну, или без острой нужды не надо.
И более того, компиляция ради компиляция - это технический онанизм, ибо если самодельная сборка не отличается от уже готовой, то время потрачено зря.
Так ебилд с блобами в очередной раз протух и окончательно сдох, его выкинули наконец. Ну и потом, если бы бинарный пакет был ок, понятно, не было бы смысла компилировать. Какие-то неадекватные рассуждения у тебя. Проблема тут в том, что эта помойка компилируется слишком часто и слишком долго. И компиляция постоянно ломается из-за компилятора и зависимостей, но это отдельная тема. А когда в системе появляется десяток хромиумов и вебкитов и каждый надо регулярно компилировать, это напрягает в любом случае.
>>И компиляция постоянно ломается из-за компилятора и зависимостей, но это отдельная тема.Не, это основная тема. Если б все точно компилировалось с одной попытки, с гарантированным положительным результатом, так на маломощных компах ставили б на ночь, и не жужжали.
> Так ебилд с блобами в очередной раз протух
И мир от этого перевернулся? Что на маломощном компе, желательно в одиночку, его надо спасать? Причем срочно!
>>Какие-то неадекватные рассуждения у тебя.
Ну если инструментарий слаб, прикидывайте, затрачиваемые личные усилия, и достигнутый эффект.
Есть мощный комп, или доступ на кластер - балуемся. Есть - слабый комп - считаем что это не моё дело, а аппаратная проблема. Прошу отнестись с юмором.
> и как часто приходится перекомпилировать?
> если комп слегка мощнее унитаза, то 1-2 часаКак обновится и в гентушные оверлеи попадает. CPU 2x5680 Xeon (1366).
>Включён по умолчанию интерфейс пользователя браузера, оснащённый адресной строкой.Еще бы телеметрию и можно в массы выпускать.
если так хочется телеметрии, скачай файрфокс. Она там по умолчанию включена.
А лучше - хром. Там она ещё более забористая :-Р
> 5000Очень важная цифра! Только ничего не значит. 5000 из скольки?
> Улучшена страница, показываемая при аварийном завершении.Вариант улучшения: Эта страница содержит не корректный HTMML/CSS/JS код который мог бы сломать ваш браузер, но безопасный движок Servo предотвратил его исполнение. Информация о неудачной работе Web-страницы уже анализируется нами.
И когда Servo-м заменит Gecko? А вообще Мозилловцы планируют замену, или они отказались от такого плана?
План у Мазилы хороший, товарищ Сталин.., но на серво они забили и скинули в другую контору.
Мозилла никогда и не думала делать альтернативу Firefox'у. Проект Servo создали для обкатки Rust'а на начальном этапе разработки (Rusta). Когда пошел отклик на Rust от других проектов, то Servo стал не нужен. Мозилла попыталась сбагрить его самсунгу, но тот вовремя опомнился. Потом servo силом заставили взять линукс-фонд. Наконец одна фирма сжалилась над чебурашкой, взяла его к себе
А куски Gecko написанные на Rust, брали из Servo? Или, с нуля специально писали для Gecko.
Servo - ужасно кривая, глючная и тормозная поделка. Над ним еще работать и работать.
Отличная новость! Назло всем хейтерам. Собака лает, а караван гниёт
Сарказм: ну наконец с этим обновлением вижу как лучше стало в виртулизации с отрисовкой сайтов и просмотром видео.
А если серьёзно всё хуже и хуже с этим в виртуализации. Всё больше и больше нужен полноценный 3D API которого нет в виртуализации по крайне мере если хост это Windows, а гость это Linux.
> нужен полноценный 3D API которого нет в виртуализации
> по крайне мере если хост это Windows, а гость это Linux.В Vmware есть 3д ускорение в таком режиме.
Но, если железо старое или ноутбук, то в последних версиях 3Д для не самыого свежего железа сделано через задницу, или вовсе не работает. Кто то говорит, что можно с настройками виртуальной машины помудрить.
Но если на подобное железо ставить не последнюю версию Vmwarе, то проблем нет, и причём из корбки.
Ну а на десктопе, с актуальным железом, именно если хост Windows, то все отлично.