Разработчики экспериментального браузера Ladybird объявили о намерении использовать язык программирования Swift в качестве основного для своего проекта. Включение в состав кода на Swift планируется начать осенью, после выхода релиза Swift 6 (использовать ветку Swift 5 мешает привязка к старой версии Clang, несовместимой с текущей кодовой базой Ladybird на С++). Благодаря возможности совмещения кода на С++ и Swift, внедрение Swift будет производиться постепенно без переписывания имеющегося кода...Подробнее: https://www.opennet.me/opennews/art.shtml?num=61685
Ясен красен автор работал в эпл над сафари. Вот товарищи со старой работы ему и нашептали правильный язык. А вот то что он говорит про раст чистейшая неприкрытая правда в первой инстанции.
Интересно, много ли он проектов на расте поддерживал, чтобы утверждать, что их поддерживать сложно.
Расскажи мне как там переписывание фаерфокса на раст идёт. Только в мельчайших подробностях. И автору расскажи на каком языке писать браузер.
А чо, вот кто-то обещал переписать фаерфокс на Раст? Может даже ссылка есть? (хинт: нет)
Ещё один методичку включил. Давай тогда с простого как там серво поживает?
Я ничего не включал. Ссылку на планы переписывания фокс на Раст в студию быстро и решительно)
Погугли обучен такому?Фанатики такие смешные сначала создают язык для переписывания фаерфокса, а потом ничего не обещали. Нужно пособие как перестать с них орать.
Я хоть и не фанат, но всё же отмечу, что критики ещё более смешные, потому что с логическим мышлением у них часто туго. Разжую. Создание языка для переписывания Фаерфоса НЕ ОЗНАЧАЕТ ОБЕЩАНИЕ его переписать на этот язык. Вроде, простая мысль, а поди ж ты.
Нет, не фанатик. Я просто здравомыслящий человек, который предпочитает более совершенное (пусть и более сложное в освоении) более древнему и морально устаревшему.> Во вторых это означает что язык ни на что не годен.
Расскажешь это ребятам из Гугл, Амазон, Клаудфлэр, Дропбокс, Дискорд?
> Гугл, Амазон, Клаудфлэр, Дропбокс, Дискорд
> имплаинг они юзают хрустимеешь ввиду, там фронтендеры морды пишут в вскоде, который юзает ripgrep? победа!
Серво поживает хорошо. Недавно грант выделили и разработка продолжилась. Проблема у Серво была в недостатке финансирования от Мозиллы, но сейчас это решили.
Сам выдумал причину сам поверил. У Мозиллы если что денег было сильно больше чем этот грантик. Дело не в деньгах дело в расте.
То, что у кого-то есть деньги совершенно не означает, что они будут потрачены, и уж тем более не значит, что они будут потрачены на вот это, а не вон то. Но проблема, конечно же в Расте.
- Мы сделали крутейший язык программирования для замены всех языков в мире.
- Покажи хоть программу, на нем написанную.
- А писать программы никто не обещал.
Да их уже полно, все расписывать банально лень, тебя ведь в гугле не забанили? Даже RedoxOS, о смерти которого, пишут под каждой новостью связанной с Rust. Пилится мало-помалу (по сути силами одного человека), что-то там на него портируется (например, тот же софт из Cosmic'а).MS сообщала о планах часть ядра на Rust переписать. В Linux (помню из местных новостей) пилили на Rust сетевой драйвер и драйвер FS. Для новых карточек nVidia, тоже драйвер пилят (Nova если правильно помню). Тор со своим Arti тоже на месте не стоят. А у местного Анона все ̶и̶г̶о̶р̶ь̶т̶о̶н̶е̶т̶ программ то нет...
Софт который я сам активно использую (и всем доволен):
Amberol - Музыкальный плеер
Zed - Редактор кода
Bevy - игровой движок
paru - AUR helper
(может еще какой, но я просто не знаю что он на Rust написан)Софт на который планирую перекатиться в ближайшем будущем:
Cosmic Epoch - DE + пачка сопутствующих программ
Зачем этому все к безопасность? Где системы управления АЭС, бортовые системы, браузеры, ос написанные на расте. Там где безопасность лишней бы не была. Редокс это просто поделка написанная по туториалу как написать ос. Да и ни одной полезной софтины ты даже привести так и не смог.
Наверное чтобы не было уязвимостей вида, я открыл скачанную картиночку/видео/документ, и мои банковские данные уплыли в пакистан. Опять же из местных новостей (старых, но все же), из-за ошибки толи в софтине толи в обработчике, открытие специально подготовленной картинки позволяло запустить программу или выполнить команду в терминале. В новости даже картинка была, запускающая калькулятор (вроде) в Ubuntu. Может у кого ссылка осталась, репостнет, мне лень искать.
Безопасность на Desktop'ах не нужна, Анон сказал!Уязвимость в Ghostscript, приводящая к выполнению кода злоумышленника
https://www.opennet.me/opennews/art.shtml?num=58965Уязвимость в libcue, приводящая к выполнению кода при загрузке файлов в GNOME
https://www.opennet.me/opennews/art.shtml?num=59896Уязвимость в GNOME Evince, позволяющая выполнить код при построении миниатюр
https://www.opennet.me/opennews/art.shtml?num=46854Уязвимость в gnome-exe-thumbnailer, позволяющая выполнить код при просмотре каталога с MSI-файлом
https://www.opennet.me/opennews/art.shtml?num=46885Уязвимость, позволяющая запустить код при копировании файла на рабочий стол
https://www.opennet.me/opennews/art.shtml?num=45700Приложения, использующие libpng, подвержены уязвимости
https://www.opennet.me/opennews/art.shtml?num=43330
> Безопасность на Desktop'ах не нужна, Анон сказал!
> Уязвимость в Ghostscript, приводящая к выполнению кода злоумышленника
> https://www.opennet.me/opennews/art.shtml?num=58965Ну попробуй его переписать на хрусте. Это ж тебе не какой-то редактор пля очередной. Посмотрим на сколько тебя хватит.
> Уязвимость, позволяющая запустить код при копировании файла на рабочий стол
> https://www.opennet.me/opennews/art.shtml?num=45700И как от этого вообще хруст поможет? :)
> Приложения, использующие libpng, подвержены уязвимости
> https://www.opennet.me/opennews/art.shtml?num=43330Ну откажись от libpng в программах попробуй. Хочу на это посмотреть.
> Ну попробуй его переписать на хрусте. Это ж тебе не какой-то редактор пля очередной. Посмотрим на сколько тебя хватит.Конечно это не текстовый редактор. Это убогие си-строки с \0 :)
"когда буфер записи недозаполнен на один байт и следом выполняется запись экранированного символа, занимающего два байта вместо одного."> И как от этого вообще хруст поможет? :)
Попробуй вначале читать, а потом строчить комменты.
"В предложенных эксплоитах задействованы две ранее неизвестные уязвимости в эмуляторе, приводящие к переполнению буфера и позволяющие добиться выполнения кода процессором основной системы."
Вот если бы буфера не переполнялись, то уязвимости не было.> Ну откажись от libpng в программах попробуй. Хочу на это посмотреть.
"можно использовать для чтения данных за пределами границы буфера и потенциально для записи вне буфера"
Просто писать нужно на нормальных языках, а не отрыжке конца прошлого тысячелетия.
Отказаться от png не получится, а вот выкинуть libpng на помойку истории - самое то.
Напр. переписав на другой нормальный язык.
> Конечно это не текстовый редактор. Это убогие си-строки с \0 :)Сишные строки по своему гениальны в своей простоте. Это просто некий массив байтов в памяти завершенный нулем. Такой подход накладывает минимум ограничений и допущений что с этим можно делать и как оно будет. Да, как и все tradeoff это решение имеет и свои недостатки, являющиеся продолжением достоинств.
Да, можно нагородить более крутые абстракции. И получить ужастики как в хрусте. Где не только не могут шагу ступить без невъ...й стдлибы - но и постоянно перекраивают и ее и тулчейн. Вон уже третий год, чтоли, под линукскернел пытаются что-то изобразить. Представляю себе где был бы сейчас Linux, если б с си было столько гимора. Торвальдс бы наверное забил ничего не написав вообще.
> "когда буфер записи недозаполнен на один байт и следом выполняется запись экранированного
> символа, занимающего два байта вместо одного."Экранирование - это уже не про сишные строки. А какие-то местечковые загоны этой штуки.
>> И как от этого вообще хруст поможет? :)
> Вот если бы буфера не переполнялись, то уязвимости не было.А, понятно, очередное гарцевание на одну и ту же тему. В топике где выбрали не хруст. Я конечно понимаю что вон то фича, но когда это вообще единственное что яп может предложить, ну, знаете, наверное, это не айс. А тот горбатый синтаксис с закорючками дающими мастеркласс даже плюсерам - ну такое себе. Я плохо себе предсталяю как эти руны будут майнтайнить вдолгую.
>> Ну откажись от libpng в программах попробуй. Хочу на это посмотреть.
> "можно использовать для чтения данных за пределами границы буфера и потенциально для
> записи вне буфера"Ну, дык, говорю ж - откажись от бяки, и посмотрим сколько и чего ты после этого юзать сможешь. И вообще, ты реально надеешься дожить до момента когда в твоей жизни сишного и плюсатого кода не будет? ORLY? :)
> Просто писать нужно на нормальных языках, а не отрыжке конца прошлого тысячелетия.
У тех видите ли был хоть какой-то намек на гениальность, ибо просто, кратко, лаконично, гибко. Хруст - это парад корпоративной бездарности и многочисленных костылей. Все сложно, криво, нет ни малейшего намека на архитектуру, поэтому на каждый пук переделывается и тулчейн, и стдлиба, стандартов вообще нет, инструкция по сборке зачастую начинается к "скачаете последнюю ночнушку". Конечно высокобезопасным curl | bash прям с веба, как же без такого фрикшоу безопасности?
> Отказаться от png не получится, а вот выкинуть libpng на помойку
> истории - самое то.
> Напр. переписав на другой нормальный язык.Ну так перепиши - и посмотрим сколько и кого твое нечто будет юзать, например? А то вон redox OS и прочие консервы - почему-то вообще совсем не в фаворе у народа. Да и времени на этой убили даже побольше сишников, пожалуй, уже. Так что нормальность, круть и современность этой драши проявляется - а вот хз его в чем. В ненужности этой байды окружающим чтоли?
А так то да, всякие эплы, майкрософты, гуглы и порчие амазоны топящие за это все - известные благодетели человечества. Вон там в совете директоров "некоммерческого" фаундейшна втерлись.
>Где системы управления АЭС, бортовые системы.Это и на сях не пишут.
>Редокс это просто поделка написанная по туториалу как написать ос.
Так если верить местным Анонам "На Rust ничего нельзя написать". Получается можно? И не просто утилиту переписать, а запилить целую ОС, в одно лицо. Servo тоже активно пилится, не померло получается? А ведь Анон говорил...
>Да и ни одной полезной софтины ты даже привести так и не смог.
А в чем измеряется полезность? Перечисленными программами я ежедневно пользуюсь, мне они полезны. Да и приводить я ничего особо не пытался. Перечислил только то что в памяти из недавних новостей. И то чем сам пользуюсь. Еще я каждому троллю гугл не шерстил...
> Так если верить местным Анонам "На Rust ничего нельзя написать". Получается можно?
> И не просто утилиту переписать, а запилить целую ОС, в одно
> лицо. Servo тоже активно пилится, не померло получается? А ведь Анон говорил...Ну, блин, если Redox и Servo - живые проекты, тогда Ленин наверное вообще скоро выйдет из мавзолея и толкнет речь на трибуне, не иначе.
>>Где системы управления АЭС, бортовые системы.
> Это и на сях не пишут.Вот те раз, неужто линукс в бортовых компах элонмаска уже не на сях?!
Mozilla занялась лишь еределкой UI и пиханием в браузер api для рекламщиков (Firefox 128).
Safari на 2х платформах (по сути - она одна от Apple). Там Swift, оно и понятно.А почему не глянуть на хромиум, одним хромом захвативший От 65% интернета? Или проще - на хромиуме будет пахать интернет с минимумом правок. Сейчас не все даже под сафари оптимизируют. Куда там лисе и ноутейм браузеру на Свифте.
В конечном итоге - автор нормально обосновать решение не хочет? Или достаточно лаве пилить с инвесторов и на результат - плевать? Тогда вопросов и нет, собственно)
> А почему не глянуть на хромиум, одним хромом захвативший От 65% интернета?Разумеется нужно ориентироваться на лидеров.
Поэтому нужно было посмотреть на хромиум и выбрать раст!
chromium.googlesource.com/chromium/src/+/refs/heads/main/docs/rust.md
readme.md есть, кода нет, канон соблюден )
> Интересно, много ли он проектов на расте поддерживал, чтобы утверждать,
> что их поддерживать сложно.А много ли проектов на хрусте где вообще это все актуально было - чтобы опыт поддержки посмотреть? А, погодите, те кто на нем сейчас переписывает - как раз на примере своих задниц и узнают в чем проблема с постоянным кореженьем тулчейна и добавке новых закорючек на каждую фичу? В режиме ну вот прям лабораторного кролика? Впрочем судя по "ждем swift 6" это не только прерогатива Rust :))
Но да - майнтенанс проектов на хрусте, вероятно, апокалиптец. Ибо найти желающих ковырять те закорючки - в таком количестве - с постоянно добавляемыми новыми - это звучит как заявка на залет.
Внезапно, в Плюсах не меньше закорючек, и спецификация такая, что ни один человек в мире её, скорей всего, не освоил. Но почему-то того же автора это не остановило написать часть кода на них. Интересно, почему? Или дело, всё же, не в закорючках?
> Внезапно, в Плюсах не меньше закорючек, и спецификация такая, что ни один
> человек в мире её, скорей всего, не освоил. Но почему-то того
> же автора это не остановило написать часть кода на них. Интересно,
> почему? Или дело, всё же, не в закорючках?Может, еще в экосистеме? В C++ это все же махровые стандартизаторы делают из ISO. В хрусте единственный "стандарт" - что нагамнякали хипстеры в тулчейне сегодня. До вон тех, в линухе, даже стало доходить что ТАК эти вещи с прицелом на какое-то реальное применение все же не делаются. Но простите, это едва доползло, месяцы назад. Что делать тем кто влопался в это раньше - ну а вот кто б его знает. Вот и побудут лабораторными кроликами.
Расскажите мне, пожалуйста, где можно посмотреть на стандартно описанное хранилище кода в Плюсах и соответствующий инструментарий (тулчейн, по-вашему). Ой, а его нет, как бы стандартизаторы из ISO не пытались гамнякать (выражаясь вашими словами) вот уже который десяток лет.И ещё. Стандарт с предопределённым UB - это классный стандарт, по-вашему? По-моему, такое гамняканье (снова ваш лексикон) и даром не нужно.
> Что делать тем кто влопался в это раньше - ну а вот кто б его знает. Вот и побудут лабораторными кроликами.
Разработчики Андроида из Гугла написали, что количество ошибок в коде существенно сократилось, производительность труда выросла (по сравнению со "стандтарными" Плюсами). Я бы все такого "влопывания" пожелал в таком случае.
Я бы все -> Я бы всем
> Расскажите мне, пожалуйста, где можно посмотреть на стандартно описанное хранилище кода в ПлюсахЭто о чем? Почему стандарт на ЯЗЫК ПРОГРАММИРОВАНИЯ должен описывать какие-то "хранилища кода"? Это вообще про что было? Я только 1 такую популярную штуку знаю - git. Но при чем тут стандарты на C++ или иной яп я хз.
> и соответствующий инструментарий (тулчейн, по-вашему). Ой, а его нет,
Ибо подразумевается - экосистема. С более чем 1 участником. А не еin vоlk, еin rеich, ...
> как бы стандартизаторы из ISO не пытались гамнякать (выражаясь вашими словами)
> вот уже который десяток лет.Так они ЯП стандартизируют. А не что-нибудь еще.
> И ещё. Стандарт с предопределённым UB - это классный стандарт, по-вашему? По-моему,
> такое гамняканье (снова ваш лексикон) и даром не нужно.Судя по тому что вон те не смогли даже и так - зато навертели вендорлоков на "некоммерческие" амазона, гугла и майкрософта - ну не им быковать на эту тему. Да и сабж делаемый аж целым эплом мастеркласс, таки, не даст.
> Разработчики Андроида из Гугла написали, что количество ошибок в коде существенно сократилось,
> производительность труда выросла (по сравнению со "стандтарными" Плюсами). Я бы все
> такого "влопывания" пожелал в таком случае.Ах, какой отличный пример галеры с кнутователями.
Вы сейчас рассказываете европейцу какой удобный китайский язык. Занятие мягко говоря бесполезное
Гораздо более бесполезное занятие - строить неадекватные аналогии. Но вы ведь не перестанете.
Я уже пожалел, что отправил авторам сего браузера 50$ доната. Юзать это пoдeлиe на свифте я конечно же не буду. А жаль, думал будет хороший независимый от корпоpacтов браузер. Видимо, придется создать нормальный самому.
Господи когда он работал в apple никакого swift в сафари не было в помине. Swift для вашего сведения один из самых не производительных языков и оптимизации на уровне компилятора там так себе по сравнению с Си, С++ да хоть Rust.
Они все LLVM юзают в конечном счёте ж, не?
С одной стороны это определённо даёт преимущество в оптимизации (так как любые языки в LLVM проходят через одинаковую промежуточную форму), а с другой стороны высокоуровневая логика языков может быть весьма отлична. Есть ли, в Swift, например, аналоги consteval и шаблонов из C++? Это сильно бы повлияло на производительность конечного результата.
Swift разве не доступен только в Apple?
Уже восьмой год поддержки пошел, но орлиный глаз... https://www.opennet.me/opennews/art.shtml?num=44091
> улучшающуюся поддержку Swift для не-Apple платформШёл восьмой год поддержки, но её уровень продолжал оставлять широкий простор для улучшений.
Таков путь. Кстати ты в курсе что Свифт безопасно работает с памятью? А если уж совсем включать тролля то Свифт гораздо безопаснее работает с памятью чем раст.
Жс ещё безопаснее работает с памятью, только какой ценой? Свифт та ещё тормозня, если писать что-то серьёзнее приложения для мобильника.
У свифт такой же llvm как и у раст.
Сборщик мусора на счётчиках ссылок, это самый тормозной сборщик мусора, который только возможно придумать. Единственный его плюс, предсказуемость тех моментов, когда он свои тормоза будет вставлять.
У раста тоже умные указатели со счетчиком, и в с++
> У свифт такой же llvm как и реализации совсем-почти не тормозных реализаций питончиковПофиксил, не благодари ...
Ну, к слову, питон значительнее медленнее
> Ну, к слову, питон значительнее медленнееНу, это потому что наверняка неправильно llvm используют - ведь все знают, что правильный бэкэнд гарантируемо дает ускорение до сишко-фортраново уровня любому ЯПу ...
Потому что Пейтон интерпретатор. А не конь он же пилятор.
Таки компилятор, но в свою виртуальную машину. А вот она сложная и медленная
https://www.opennet.me/opennews/art.shtml?num=51475
Както уж совсем грустно.
> У свифт такой же llvm как и у раст.Ну если так рассуждать - в процессор по любому так то поток команд отправляется. Он ничего другого выполнять чисто технчиески не умеет. Странно как при этом всякие питоннетормозит случаются, ведь поток инструкций же - вот - в проц улетает! Заметьте, тут даже нет требования чтобы он именно LLVMом генерился, обобщено еще дальше :)
> А если уж совсем включать тролля то Свифт гораздо безопаснее работает с памятью чем раст.Ну почему сразу тролля? Свифт действительно работает с памятью безопаснее чем раст.
Просто у этого есть своя цена - ARC стоит и памяти, и тактов процессора.
Поэтому раст и свифт сравнивать конечно можно... но так и си с го можно сравнивать пытаться
Жаль. Ожидал большего от этого проекта. "Сообщество", видите-ли, у Раста "токсичное". А то, что разрабов на свисте раз-два и обчелся -- это как бы ничего, это нормально. Совсем с башкой не дружат пацаны. Конкурента мегакорпорации можно писать лишь на сверх-популярном языке, который из рейтинга в рейтинг занимает топы в рубрике "Любимый язык для души".
Так он один проект и пишет.
> Конкурента мегакорпорацииУ него нет задачи конкурировать с мегакорпорациями.
Он делает личный проект в развлекательных целях.
Именно эта цель Клингом и заявляется.Развлекательным проектом он был два-три месяца назад. С тех пор позиционирование поменялось, и он стал хоть и pro bono, но вполне профессиональным.
Крутой развлекательный проект с грантами на лямы баксов. Ты хоть немного в реальность то возвращайся.
> Крутой развлекательный проект с грантами на лямы баксов. Ты хоть немного в реальность то возвращайся.В рамках этого самого реализма я скорее поверю, что кто-то оказался готов заплатить очень большие деньги, чтобы этот браузер так и остался чисто развлектальным.
А может эпл готовит что-то новенькое.
Это скорее верно с сектой игрового недодвижка Godot.
> разрабов на свисте раз-два и обчелсяАга, каждый первый яблочник на нём пишет. Уж на свифте разрабов побольше, чем на расте будет, к сожалению.
Программистов для десктопа и для Линукса примерно один. И тот в новости.
Он скорее даже под Винду.
>"Сообщество", видите-ли, у Раста "токсичное".Но оно натурально токсичное. Это то же сообщество, которое развалило экосистему Scala. Выдало все возможные woke-драмы, развалило, и убежало в Rust.
судя по последним новостям, таки не в раст а в питон
Неужели наконец то закопаем питон
> Конкурента мегакорпорации можно писать лишь на сверх-популярном языке, который из рейтинга в рейтинг занимает топы в рубрике "Любимый язык для души".На асме/лиспе/хацкеле/прологе штоль?
Ну у меня - фортран и кобол, и что ты мне сделаешь?
> Ну у меня - фортран и кобол, и что ты мне сделаешь?Я-то тут причем? Душа твоя - и губишь ты её самостоятельно.
> Ну у меня - фортран и кобол, и что ты мне сделаешь?Народ! Тащи осиновые колья и серебряные пули! А вы правда хотите узнать что с этим реквизитом будет делаться? :)
Ну да, логично, у Свифта очень высокий антирейтинг.
Ну да, у основного языка для повседневной разработки, и вдруг антирейтинг. :)
Другой вопрос что вне экосистемы Эппл использование Свифт не то что не популярно, про него вообще не слышно.
А какое ему дело до величины сообщества программистов?
>"Любимый язык для души"Но не более.
коментарии на опеннет тоже токсичные..
Разрабов на свифте очень много, их намного больше чем разрабов на том же котлине, и свифт вне экосистемы эпл практически не отличается, по сравнению с тем же котлином, который вне андроида совсем другой язык.
Ну а что. Котлин. Комопзз. Структура проекта на десктопе чутка другая, но всё-таки
Тем не менее, нормально интегрированных кроссплатформенных свифтовых графических библиотек для мобилы и десктопа( включая винду и линь ) не так чтобы очень многоДаже яблоко долго бегало со своим свифтом и в итоге решило не париться и подать его как язык для написания серверной части
Тогда как на котлин, раньше или позже, но перебираются проггеры с жабы
Уже не перебираются на котлин, не надо иллюзий
> Уже не перебираются на котлин, не надо иллюзийНу кто изначально не перебирался - те и сидят. То же с жс и коффе-скриптом было
Но котлин с композом, прямо сказать, на удивление большие возможности даёт в т.ч в плане кросплатформенных интерфейсов для десктопа на разных ОСях, что ранее полноценно предлагали лишь кути и то, чем дальше - тем дороже
Что с тобой донаты сделали, Андреас.
Сначала от SerenityOS отмежевался, теперь Swift выбрал, хотя сам свой Jakt пилил.
Возможно, Ванстрат просто передал денежку от своих знакомых из Apple, чтобы не затягивать Клинга в антимонопольные разборки (которые вполне могли возникнуть, если бы корпорация выдала грант от своего имени).
> Что с тобой донаты сделали, Андреас.
> Сначала от SerenityOS отмежевался, теперь Swift выбрал, хотя сам свой Jakt пилил.Ты еще не видел что деньги сделали с Charles Bloom, энтузиастом сжатия. Активно боровшийся с патентами и проч - раньше, после работы в RadGamesTools он нарвался на нехилый скандал когда RadGamesTools потребовали удалить репу с открыттой реализацией одного из их алго. Правда не по патентым причинам, а якобы-нарушения якобы-копирайта. После макания носом что это реимплементация с ноля, вынос ессно откатили - но репутация RAD'ов на ресурсе ессно попортилась и CB вообще перестал публично писать почти везде.
Так борец с драконами стал одним из драконов...
С парнем из амд тоже самое было. Но он пока держится.
> С парнем из амд тоже самое было. Но он пока держится.Которым из? Нельзя ли уточнить? АМД в целом неплохо выступили - они перетянули эвон какой кус driver team на открытый формат и это как раз было движение в обратную сторону. А вот Charles Bloom и работает в убер-проприетарной фирме и закончилось все - наездами на тех кто мешает бизнес делать. По линии чела который на патенты эн лет назда вонял. А сам в результате эвона как зaшквapился...
Все тот же Андрюшка Яник https://www.opennet.me/opennews/art.shtml?num=61667
> Все тот же Андрюшка Яник https://www.opennet.me/opennews/art.shtml?num=61667Я никогда с этим гражданином не пересекался и как какой-то видный опенсорсник он нигде в контексте амд никогда не светился вроде.
А так у амдей - есть некий бардак по линии юридического отдела. Он живет какой-то своей отдельной жизнью. И периодически откалывает лулзы в ту или иную сторону. Почему так? А вот АМД его знает, что у них там за нахрен с этими юристами.
Через пару лет потраченных на впиливание свифта в кодовую базу браузера он заявит что он устал и берет отпуск, фотографируйте эти слова на свои тостеры и утюги.
Продаст браузер в апле и уедет жить на Гаваи.
> уедет жить на ГаваиДля этого не нужно ничего продавать. До Калифорнии зацепом-автостопом, а там уж на авиабилеты до Мауи нааскать за пару дней можно. Пять часов лёту и ты в раю. Обратно сложно, на самолёт так просто не нааскаешь: местные такие же нищие как и ты, а богатые заборами отгородились и копы не дадут ошиваться просто так. Но белому цисгендерному мужику подработку найти легко. Ну или подцепить богатую скучающую милфу на пляже, если собой хорош и язык подвешен ;) Так или иначе, это был незабываемый год в компании молодых да бесшабашных. Work and travel USA — лучший способ найти жену и весело провести время.
> Клинг охарактеризовал сообщество Rust как "токсичное"Не только Клинг: https://youtu.be/7ySVWcFHz98?t=1139
Да это и по фанатичности удаления комментариев про Rust на opennet видно.
Токсичнее сообщества Rust — только критики Rust.
> только критики RustПричем львиная доля из них даже хеллоуврот на расте не осилили.
А зачем!?
Есть много вещей которые можно критиковать не попробовав, есть всякое что лучше вообще не пробовать.
Лично вы критиковать можете что угодно.
Но если речь идёт о технологиях, то без знания матчасти ваша критика говорит только о вашем интеллектуальном уровне, не более.
Может раст просто покажет результат. Ой, его же нет.
А почему вы сами не поищите результат? Вроде полно примеров
небольших проектов.
Зачем в небольших проектах раст объясни? Чтобы вот что?
1. Ради лучшей возможности потенциального роста кодовой базы.
2. Ради производительности конечного продукта.
3. Ради меньшего количества ошибок по сравнению с аналогичными языками из той же ниши.
4. Ради фана.
>1. Ради лучшей возможности потенциального роста кодовой базы.О, вот это точно!
>2. Ради производительности конечного продукта.Ну тоже можно согласиться, если считать производительность величиной со знаком.
>3. Ради меньшего количества ошибок по сравнению с аналогичными языками из той же ниши.Это все знают, безопасТнее.
>4. Ради фана.Ну как же без этго.
Хорошая попытка, но нет. Любой смысл в использовании раста здесь полностью и безоговорочно отсутствует.
1. Да, вон там ну хубре был цикл статей как жутко не удобно кодить игры на русте, потому что оно переодически требует болезненного рефактора.
2. Сомнительно.
3. Хз про какую нишу речь, наверное мазохистов. В остальном пишу на С и ошибки у меня редко случаются, и в основном они такие что хруст бы с ними не помог никак.
4. Ну точно про мазахистов. У меня фан начинается тогда когда прога оживает, а у растоманов когда их компелятор кроет матом.
> Да, вон там ну хубре был цикл статей как жутко не удобно кодить игры на русте, потому что оно переодически требует болезненного рефактора.Только там причина была совсем не в расте.
А в том, что пока чел нормально писал код на расте, приходил манагер и говорил "концепция изменилась, ̶м̶ы̶ ̶о̶б̶о̶с̶р̶а̶л̶и̶с̶ь̶" и челу приходилось переписывать.
Зато на плюсах он мог омнякать как хочет, а "баги и крешы пофиксим потом".> Сомнительно
Неа, это вполне уже доказано.
> про какую нишу речь
Про нишу где не выходят за пределы буфера и дарят рут.
> У меня фан начинается тогда когда прога оживает
А какой уж фан начинается когда будешь сигабтр ловить или искать кто запорол память! Ну точно про мазахистов.
> а у растоманов когда их компелятор кроет матом.
Растоманы обучаемые, в отличие от, они быстро перестают писать так, чтобы компилятор ругался.
Так проблема в том, что есть много мест где нужно проводить "поисковое исследование" а не ляпать хэллоуворлд где заранее на 100% всё известно.И искать рабочую концепцию на какомнить питоне а потом переписывать на расте так же дорого как изначально искать рабочее решение на расте.
Я вот пишу штуку, у меня дней 5 ушло на понимание того как всё устроено и должно работать, в итоге я взял куски С кода из работающего прототипа и нарезал на модули попутно причесав.
Какой воркфлоу у меня должен быть с растом когда я хочу но не знаю как работаю те куски которые мне надо склеить?
> Так проблема в том, что есть много мест где нужно проводить "поисковое
> исследование" а не ляпать хэллоуворлд где заранее на 100% всё известно.Да, и для исследования есть специальные инструменты.
Никто не будет для прототипирования брать целый завод, а потом куски оснастки тащить на производство.
Это делается в специальных НИИ или мастерских.
> И искать рабочую концепцию на какомнить питоне а потом переписывать на расте
> так же дорого как изначально искать рабочее решение на расте.Нет. Это так кажется.
Я знаю довольно много проектов, которые сначала делались в виде экспериментов и прототипов.
А потом полностью переписывались. Чтобы избавиться от наслоения костылей, архитектурных ошибок и прочего.> Я вот пишу штуку, у меня дней 5 ушло на понимание того как всё устроено и должно работать, в итоге я взял куски
> С кода из работающего прототипа и нарезал на модули попутно причесав.Вот-вот. Ты просто взял куски, слепил и смотал изолентой.
Под "причесал" я правильно понимаю "сделал чтобы не сильно стыдно выглядело"?
Именно так пишутся многие проекты. Без продумывания структур, архитектуры и, иногда, даже с кусками кода из других проектов.> Какой воркфлоу у меня должен быть с растом когда я хочу но
> не знаю как работаю те куски которые мне надо склеить?Я не понимаю вопрос. Что значит "не знаю как работаю те куски которые мне надо склеить"
Если ты их уже написал на питоне, то ты должен понимать что делает каждая строка.
Если это какая-то библиотека - то возможно ее просто нужно вызвать из Раста.
> Если это какая-то библиотека - то возможно ее просто нужно вызвать из Раста.RUST лишняя сущность :)
> Под "причесал" я правильно понимаю "сделал чтобы не сильно стыдно выглядело"?После экспериментов и получения работающего прототипа стало понятно как примерно оно должно выглядеть, как минимум некоторые модули стали понятны.
Соотвественно существующий код растаскался кусками с небольшими переделками по модулям.
А кое что я решил что проще скопипастить с изменениями в разные модули чем делать функции-монстры или возится с инкапсуляциями-наследованиями.
>> Под "причесал" я правильно понимаю "сделал чтобы не сильно стыдно выглядело"?
> После экспериментов и получения работающего прототипа стало понятно как примерно оно должно выглядеть, как минимум некоторые модули стали понятны.
> Соотвественно существующий код растаскался кусками с небольшими переделками по модулям.Дай угадаю, тесты ты даже не писал?
Ведь Настоящий Программист на СИ не ошибается?
> А кое что я решил что проще скопипастить с изменениями в разные модули чем делать функции-монстры или возится с инкапсуляциями-наследованиями.О, чую запах лапши. Весело такой "код" будет разбирать где-то через годик.
Но для васяноподелия для домашнего применения - сойдет.А что делать если такое качество предлагают для ядра, glibс, SSL или SSH?
Для драйверов и библиотек которые получаю непроверенные данные из интернета.
Ответ один - поливать бракоделов помоями + переписывать с использованием более хороших инструментов.
> А что делать если такое качество предлагают для ядра, glibсПосмотреть наконец код glibс, что бы не задавать подобных вопросов.
>> А что делать если такое качество предлагают для ядра, glibс
> Посмотреть наконец код glibс, что бы не задавать подобных вопросов.А чего я там не видел? Омно-омном, как диды завещали.
Да еще и дырявое с классическими дыряшечными CVEУязвимость в glibc, позволяющая получить root-доступ в системе
Уязвимость вызвана переполнением буфера в функций __vsyslog_internal(), используемой при вызове функций syslog() и vsyslog().
opennet.ru/opennews/art.shtml?num=60528Уязвимость в Glibc, эксплуатируемая через скрипты на PHP
Уязвимость вызвана некорректной проверкой границ внутренних буферов функцией iconv(), что может привести к переполнению буфера максимум на 4 байта. При переполнении за границу буфера могут быть записаны определённые фиксированные значения, такие как '$+I', '$+J', '$+K', '$+L', '$+M' и '$*H'.
opennet.ru/opennews/art.shtml?num=61033Уязвимость в Glibc, позволяющая вызвать крах чужого процесса
Проблема вызвана некорректной обработкой данных NOTIFY_REMOVED в коде mq_notify.c, приводящей к разыменованию указателя NULL и краху процесса.
opennet.ru/opennews/art.shtml?num=55646CVE-2021-27645: крах процесса nscd (nameserver caching daemon) из-за двойного вызова функции free
CVE-2021-33574: обращение к уже освобождённой области памяти (use-after-free) в функции mq_notify
opennet.ru/opennews/art.shtml?num=55575CVE-2023-4911 - уязвимость в Glibc ld.so, позволяющая получить права root в системе. Уязвимость вызвана ошибкой в коде разбора строки, указанной в переменной окружения GLIBC_TUNABLES, и может привести к записи разобранного значения за пределы выделенного буфера. Имеются рабочие эксптоиты.
CVE-2023-4806 - уязвимость в функции getaddrinfo, вызванная обращением к памяти после её освобождения (use-after-free).
CVE-2023-4527 - уязвимость в функции getaddrinfo, позволяющая прочитать данные из области вне границы буфера при обработке DNS-ответа
opennet.ru/opennews/art.shtml?num=60534Дальше мне лень, тут еще можно целый день дыры в этом бракоделии перечислять.
Это не код. В общем понятно, почему всё подряд было свалено в кучу.
Нет, там тестов будет больше чем кода.
Да и тесты бы подошли чужие (всё таки это типа устройство миди протестировать), если бы были :)
> О, чую запах лапши. Весело такой "код" будет разбирать где-то через годик.Не будет это никто разбирать, ни через год ни через 10, оно просто работает и не так чтобы много кому было нужно.
> А что делать если такое качество предлагают для ядра, glibс, SSL или SSH?А ничего, есть другие в жизни заботы.
Вы вообще этот SSH видели внутри?)
Особенно утилиты, демона с клиентом кажется хоть немного причесали.
> Не будет это никто разбирать, ни через год ни через 10, оно просто работает и не так чтобы много кому было нужно.Да я не против если оно только для личного пользования.
У самого есть пара утилит написанные левой ногой 10 лет назад.
Но если оно идет в прод, к куче людей...
А потом "оно просто работает" установлено на миллионы компов и ломается через "нажал бекспейс 30 раз"
(opennet.ru/opennews/art.shtml?num=43536)>> А что делать если такое качество предлагают для ядра, glibс, SSL или SSH?
> А ничего, есть другие в жизни заботы.
> Вы вообще этот SSH видели внутри?) Особенно утилиты, демона с клиентом кажется хоть немного причесали.Вот в том то и проблемы что видел.
И пытаюсь донести для людей, что они используют кривое нагромождение кода считая "раз опенсорс - то не только бесплатно, но качественно и безопасно! тысячи глаз бдят" и прочая ложь от евангелистов.Думаю что подобные призывы не бракоделить уйдут для большинства в dev/null, но может кто-то задумается.
Вы как то наивно рассуждаете :)Если я пишу бесплатно (на самофинансировании) и выкладываю, то что оно там где то у 100 миллиардов потом сломается, покалечит их и уничтожит планету - не моя проблема.
Я никому не должен, и не обещал что будет всё хорошо.
И даже если вы мне баг зарепортили со 100500 CVE+RCE, то спасибо я потом когданибудь посмотрю, как будет настроение.Пока вы не осознаете эту простую истинну так и будете фигнё донимать окружающих.
Да, сделали 10001 язык пограмирования, который нужен полутора фонатикам и не даёт мне ничего интересного.
Но я зачем то должен его целиком освоить чтобы повторить очевидное: мне декларируемые преимущества языка не интересны.
Критики - на то они и критики, чтоб критически смотреть на предмет. Литературные и театральные критики тоже бывают токсичными.
Посмотрел ролик немного. Человек там путается в собственном мнении буквально на ходу. То язык для него слишком сложный, то, внезапно, код выглядит прекрасным. Посмотрел далее. Похоже, автор ролика, не освоив основные концепции языка толком, сел писать код (после JavaScript, кстати). А потом уже по ходу ломал голову, чего ж у него не работает ничего.В общем, КГ/АМ. Хотя, безусловно, автор имеет полное право на своё мнение. Но приводить подобных людей, как доказательство того, что язык плох - очень сомнительное мероприятие. ИМХО, само собой.
Если язык так хорошо почему на нём не написано ни одной программы в области где нужна безопасность. Причем настоящая. Сколько систем управления АЭС на расте или бортовых систем самолёта? Или сколько ОС? Так их же нуль! Зато Рипгреп нафиг там раст никому не известно но будут бить себя пяткой в грудь как же это здорово.Этих людей не исправить интеллектуальной деятельности у них не обнаружено.
Ну вот посмотрели на рипгреп, который рандомно крашится на файлах, которые ему чем-то не нравятся, и передумали. Гну греп, кстати, ни разу проблем не демонстрировал на моей памяти.
> Ну вот посмотрели на рипгреп, который рандомно крашится на файлах, которые ему чем-то не нравятся, и передумали.У тебя и доказательства есть?
> Если язык так хорошо почему на нём не написано ни одной программы в области где нужна безопасность."Дядя Петя, ты дурак?" (с)
Языку 9 лет! Релиз 1.0 был в 2015 году. Язык всё еще активно развивается.
Это ж каким нapкoманом нужно быть, чтобы предлагать на нем написать "систему управления АЭС"! Слава богу ты не принимаешь таких решений...
Это раз.Сколько "систем управления АЭС" написаны на дыряшке? И пишут ли вообще (вопрос риторический)?
Вон марсоходы пишут на MISRA C, но это по факту ДРУГОЙ язык. Там от оригинальной сишки остался только базовый синтаксис.
К бортовым системам самолета дыряшку не подпускали на пушечный выстрел. Для них есть ADA/Spark.
По крайней мере до последнего времени... Хотя, судя по ситуации последних лет с Боингом, возможно они таки наняли сишников. И самолеты начали падать.
Это два.> Или сколько ОС
Как минимум одну. Redox OS. Которая даже запускается на реальном железе.
И работает на уровне других васяно-ос вроде ReactOS или Колибри, которых пилят полтора землекопа и в которых корпы не вложили сотни тысяч человекочасов и тонны нефти.
Тем не менее это показывает, что на расте можно написать ось начиная от загрузчика, со своей либс, ядром и тд.
Были бы ресурсы.
Го не многим старше и имеет огромное количество реализованных на нем проектов
>Сколько систем управления АЭС на растеА вот тут-то и я бы задался вопросом. Предполагаю, что ни одной. Пусть рассудят представители Росатома.
или бортовых систем самолёта?
Ну, соответсвенно, что скажут, например, НПО им. Лавочкина, Туполев?
правильнее конечно сказать не что у раст токсичное сообщество а то что сообщество вокруг раст токсичное. потому что 90% токсиков летающих вокруг раста растом даже не пользуются и в сообщество раста их включать неправильно.. но когда ты что-то делаешь на расте избежать контакта с ними невозможно и это главный минус раста.
не спорю с утверждением, но чел на видео - какой-то... мягко говоря, сдвг в терминальной стадии
> современный синтаксисА это как? Нет, серьезно, без гонева.
Хм, с эмодзями и поняшками? Без этих фигурных скобок, как у дедов из 70-х. Хотя погодите...
Оформление блоков кода эмодзями?
Если есть var для объявления переменных, не нужно указывать тип переменной и в целом чем больше сходства с JavaScript тем современней.
Почему нельзя взять проверенный временем С++ если не нравится Си... Непонятно, почему всех так тянет на разного рода экзотику.
Так там кодовая база на крестах, но язык гораздо хуже чем что-либо созданное после него
Я раст видел только на картинках (но хотя бы на картинках видел). На C++ писал много, но как на "C с классами", на уровне стандарта 1998 года. Недавно решил поглядеть на примеры кода на стандарте C++ 2017 года и... по числу закорючек и понятности кода существенного отличия от картинок с растом как-то не заметил. Так что имхо для знающего C переход на современный C++ (на актуальный и полноценный, а не просто "C с ключевым словом class") и переход на раст - задачи одного уровня сложности.
> переход на раст - задачи одного уровня сложностиНу, если не использовать готовые библиотеки и всё писать с нуля, то может быть. А вообще похоже вы тот и другой язык видели только у ютубных гуру.
Важнее не сложность языка, а удовольствие от программировпния. А у Rust'а с этим проблемы.
Поскольку вы в теме, позвольте спросить. Что вам больше приносит удовольствие - когда вам суют в RCE или трогают за CVE?
Мне приносит удовольствие когда программа работает и делает то что я задумал.
CVE, RCE меня не волнуют от слова вообще в этом процессе.И на работе где оно должно волновать к этому подход сугубо коммерческий: "дешевле писать дальше на С и извинится в случае чего или найти новых людей и переписывать всё с нуля за пару лет?" - ответ очевиден.
"CVE, RCE меня не волнуют"
А потом с мыльной жопой чистит от вирусни какого нибудь албанца чей-то сервак
Не, все правильно - "не волнует" одних, а "чистят" ну вот совершенно другие. Кто ж в здравом уме программиста хоть к какому-нибудь (ну хорошо, кроме подкроватного) серваку подпустит?
Те, которых можно было - естественным образом лет 20 назад кончились, а этих-современных - все вроде уже накушалась, знают, что получается.
Раст не защищает от вирусов.
> Раст не защищает от вирусов.Раст защищает от "шел сишник по буферу, вышел за границы и подарил рута"
Посмотри на список последних дырений в ядре:
use-after-free - opennet.ru/opennews/art.shtml?num=60980
use-after-free - opennet.ru/opennews/art.shtml?num=60891
вообще все что можно: use-after-free, buffer-overflow, переполнение - opennet.ru/opennews/art.shtml?num=60668
use-after-free - opennet.ru/opennews/art.shtml?num=60516И это только за этот год и не все))
Причем все они - характерные дыряшечные дыры.
И ещё раз раст не защищает от вирусов.
Снижает вероятность заражении ими. Если это не часть защиты, то что тогда?
И что?!
Вам явно нечем в жизни занятся раз вы таким заморачиваетесь.
Попробуйте зарабатывать деньги, много.В деньгах те штуки которые вы нашли ничего не стоят ни мне ни вам.
Я по пальцам могу пересчитать случаи когда находили нечто из за чего мне приходилось что то предпринимать. (речь про сервера и мои системы, а то когда я админил парк 98 венды в универе было каждую неделю весело: то i_love_you, то вместо .wav в письме .exe и оно запускается само то ещё куча макросов на VBA разной гадливости).
Из реальных факапов я помню на фре было что то не так с openssh+pam и можно было залогинится без пароля, до того в 2003 году в самбе была дырка которая запускала exe сама удалённо а фаеров в ХР тогда не было. (вернее было, но IPSec фильр это для мазахистов).
Ну и та дырка в OpenSSL которая позволяла удалённо получить закрытый ключ.Всё остальное проходит по статье: "мелкие деффекты ПО не проявляющиеся в реальной жизни", когда будет время и желание можно будет обновится/исправить.
Вы со своим рустом совсем голову потеряли.
Уже давно существует куча методик по использованию заведомо дырявого софта, когда ему и доступ извне ограничивают и в песочницы пихают и сисколы отрезают и тп.
> CVE, RCE меня не волнуют от слова вообще в этом процессе.Это и понятно. Ты же типапогромист-самоучка.
Как-то научился писать поделия, нужные только себе, а что будет дальше с теми кто ими будет пользоваться тебе без разницы.> "дешевле писать дальше на С и извинится в случае чего или найти новых людей и переписывать всё с нуля за пару лет?" - ответ очевиден.
Конечно очевиден. Си давно уже нужно закопать и использовать только для хеллоувротов.
Именно поэтому глупый гугл переписывает кода андроида с дыряшки на раст и с++. И пишет новые тоже на раст и с++.
Потому что это сейчас дешевле наомнякать на си. А в перспективе 3-5 лет - становится дороже. Потому что баги нужно будет фиксить, уязвимости исправлять (это же не васян-поделия, где на это забить можно), а это все время и большие деньги. Так что сугубо коммерческий подход :)
> Как-то научился писать поделия, нужные только себе, а что будет дальше с теми кто ими будет пользоваться тебе без разницы.Сампротиворечивая фраза.
Да, мне всё равно, потому что это можно применить к тому что я писал для себя лично и потом выложил под BSD лицензией.
Пользователь взял это бесплатно и использует на свой страх и риск.
Если бы у нас были товарно-денежные отношения то это другой разговор.
> Конечно очевиден. Си давно уже нужно закопать и использовать только для хеллоувротов.А вы мне скажите:
1. Какие другие языки научились делать либы которые можно динамически подгружать и использовать в своих программах?
2. Какие языки легко переносятся на другие платформы и позволяют собирать там работающий софт?
> Именно поэтому глупый гугл переписывает кода андроида с дыряшки на раст и с++. И пишет новые тоже на раст и с++.Да, и он же там за диверсити и прочее, когда нанимают по квотам а не по таллантам.
> Потому что это сейчас дешевле наомнякать на си. А в перспективе 3-5 лет - становится дороже.У С до сих пор можно взять код которому 20+ лет, собрать его и он заработает.
Если не верите - откройте старый RFC с MD5 или SHA1, там есть эталонные реализации которые до сих пор собираются и работают.
> Потому что баги нужно будет фиксить, уязвимости исправлять (это же не васян-поделия, где на это забить можно), а это все время и большие деньги.Ага, баги сами заводятся в коде со временем, даже если его не трогать.
Вы с пищевыми продуктами не путаете?
> Пользователь взял это бесплатно и использует на свой страх и риск.Полностью согласен. Но тогда вам нужно быть честным (хотя бы с собой) до конца.
Вы берете ядро линукса, бсд или другой опенсорс на свой страх и риск.
И у вас нет абсолютно никаких "товарно-денежных отношений". Поэтому нет никакого морального права критиковать их решения, как напр. добавления раста в ядро.
Но вместо этого вы ходите и ноете "дабавляют свою гниль... плак-плак..."> А вы мне скажите:
> 1. Какие другие языки научились делать либы которые можно динамически подгружать и
> использовать в своих программах?Любые, которые позволяют сишный FFI. Это единственная полезная вещь си.
> 2. Какие языки легко переносятся на другие платформы и позволяют собирать там работающий софт?
Любой язык на базе llvm. В llvm новые платформы добавляются легче чем в gcc.
Вот люди на свифте пишут по ардуину swiftforarduino.com. Под мк пишут на расте.> Да, и он же там за диверсити и прочее, когда нанимают по квотам а не по таллантам.
В гугле диверсити идет по квотам. А все остальные по талантам. И удачи туда попасть)))
Тем не менее, "сообщество" не смогло родить ничего лучше хурда.
А гугл родил андроид, хром, хромось и сотни других проектов.> У С до сих пор можно взять код которому 20+ лет, собрать его и он заработает.
А потом найти с десяток дыр на входных данных.
> Если не верите - откройте старый RFC с MD5 или SHA1, там есть эталонные реализации которые до сих пор собираются и работают. Угу, только нужно собирать старым компилятором. А если включить wall werror, то вообще большая часть не соберется.
Вообще аргумент странный. Зачем не собирать древнее легаси?
>> Потому что баги нужно будет фиксить, уязвимости исправлять (это же не васян-поделия, где на это забить можно), а это все время и большие деньги.
> Ага, баги сами заводятся в коде со временем, даже если его не
> трогать.
> Вы с пищевыми продуктами не путаете?
Google купил Android. И сотни дургих продуктов тоже купил.
> Google купил Android.Угу. А напомнить каким убожеством был андроид на момент покупки? Они даже еще не релизнулись тогда!
Разработку начали в 2003, гугл их купил в 2005, а Android 1.0 был только в конце 2008.
И если бы не гугл, мы вообще бы про андроид не услышали.> И сотни дургих продуктов тоже купил.
Хром тоже?))
Я критикую подход с внедрением руста как заведомо ошибочный шаг который навредит проекту.
А если говорить за деньги - я бы на вашем месте посмотрел кто платит за порчу линукса растом, ибо это смахивает на то что отдельные корпы занесли деньги растоманам чтобы те рвалили линукс.
> Любые, которые позволяют сишный FFI. Это единственная полезная вещь си.Сплошные ненужные прослойки.
> Вот люди на свифте пишут по ардуину swiftforarduino.com. Под мк пишут на расте.И на LUA пишут под всякий IoT, и это куда продуктивнее хруста и свифта.
> А потом найти с десяток дыр на входных данных.Вперёд, покажите класс на старых исходниках MD5/SHA1!
> Я критикую подход с внедрением руста как заведомо ошибочный шаг который навредит проекту.По мнению одного разраба(?). Ок, так и запишем.
> А если говорить за деньги - я бы на вашем месте посмотрел кто платит за порчу линукса растомАхаха, ой не могу. Линукс им портят)) Спасибо хоть не пишешь "НАШ линукс")
Линукс это и есть корпы на 80+ процентов. Они его меняют так, как считают нужно.
В том числе чтобы сэкономить себе же деньги для дальнейшей поддержки ядра.> ибо это смахивает на то что отдельные корпы занесли деньги растоманам чтобы те рвалили линукс.
Подъехали теории заговоров))
> Сплошные ненужные прослойки.
Ну так пиши все на расте и прослоек не будет! Это же только подтверждает необходимость все переписать на раст)
> И на LUA пишут под всякий IoT, и это куда продуктивнее хруста и свифта.
Свежо предание, но верится с трудом. А так IoT и на микропитоне пишут.
> Вперёд, покажите класс на старых исходниках MD5/SHA1!
В двух сотнях строк, где половина это константы?
Не, ну если бы сишники не могли бы в 200 строках не сделать CVE, то это был бы вообще ахтунг.Поэтому держи классические узявимости 1988 года. Только представь, им почти столько же лет сколько тебе!
opennet.ru/opennews/art.shtml?num=59906
И не известно сколько лет оно эксплуатировалось. Вот как диды писали. Вот также нынешние сишники пишут.
Почему-то подавляющее число людей на Стековерфлоу обожают Rust уже который год подряд. Нагло врут, наверное. Да?
По той же логике подавляющее большинство исповедует одновременно и определённую религию и состоит в конкретных прайдах.Основная масса просто занимается своим делом и не выражает своего мнения публично, а вы слушаете крикунов и пытаетесь делать выводы.
Если бы вы удосужилист взглянуть на последний опрос, то обнаружили бы, что Rust уже активно используется, а не только исповедуется. Но вы не удосужились.
Да да, "так и вы говорите что можете за ночь с женой по 3 раза".
Потому что это модно. Я вот тоже заочно обожаю Smalltalk, но ни строчки на нём не написал.
Одной моды мало для такой стабильности, а любовь к Расту стабильна уже несколько лет подряд. Просто нормальные, здравомыслящие люди прекрасно понимают, какие преимущества даёт этот язык перед своими близкими (и не только) конкурентами.
Ну да, ну да. У нас уже случился Node.js и мы все получили кучку тормознутых програмулек с говноUI жрущие ресурсы. Сильно подозреваю что и в случае с Rust произойдёт что–то подобно.
Язык преимуществ не даёт, это лишь средство донесения своих мыслей до цели.
Раст как язык и компелятор принудительно заставляют формализовать свои мысли до узкого подмножества и сковывают рамки изложения.То что многие заявляют что оно им нравится - я думаю может коллерировать с утверждением что многие пограмисты мамкины подкаблучники, и им без вот этого всего жить трудно :)
Что же до потенциально замены С - так на С надо учится кодить, надо пройтись по граблям и набить шишек чтобы понять какой код "пахнет" и как избегать написания такого кода.
Я много видел как люди чересчур увлекаются аллокаторами и выделяют кучу памяти на каждый чих и естессно у них не хватает внимания уследить за тем чтобы это всё потом осводить и только один раз.
Некоторые злоупотребляют магией указателей или тем что можно писать/читать куда/откуда угодно.
Кто то чересчур полагается на стандартную библиотеку в том смысле что использует всякие legacy функции без контроля размера буфера.Если грабли не интересны - велкам в языки со сборкой мусора.
> Язык преимуществ не даёт, это лишь средство донесения своих мыслей до цели.Это не так, иначе все бы до сих пор писали на асме или коболе.
Или еще лучше - на APL. Только клаву придется купить.> Раст как язык и компелятор принудительно заставляют формализовать свои мысли до узкого подмножества и сковывают рамки изложения.
Раст не позволяет бездумно делать неправильные вещи. Что очень мешает любителям "фигак-фигак и в прод" и "мой код скомпилировался, значит все работает"
При этом позволяет делать их осознанно - достаточно написать unsafe. Но тут же задуматься нужно, а некоторым это больно.
> я думаю может коллерировать с утверждением что многие пограмисты мамкины подкаблучники, и им без вот этого всего жить трудно :)
Может всё-таки коррелировать, а не "коллерировать"?)) Ну и классическое "корреляция не равно ковариация".
Нет, иначе как объяснить что сишники из кернела, которые по 20-30 лет пишут код допускают такие же ошибки как и новички.> так на С надо учится кодить, надо пройтись по граблям и набить шишек
> чтобы понять какой код "пахнет" и как избегать написания такого кода.Классная идея. Вот только никто этого сделать не смог. Даже те, кто пишут всю сознательную жизнь.
Как выходили за границы массивов 40 лет назад, так и выходят, как делали даблфри, так и продолжают, как плодили CVE и RCE - так и плодят.
Просто феноменально необучаемые.
> Раст не позволяет бездумно делать неправильные вещи. Что очень мешает любителям "фигак-фигак и в прод" и "мой код скомпилировался, значит все работает"Я вот пишу на досуге прогу которая делает устройство через CUSE и дальше через fluidsynth выводит получившийся звук.
Я раньше не работал с CUSE, fluidsynth, и вообще MIDI.
Мне как раз надо очень много собралось-запустилось-попробовал, а на остальное мне плевать, потому что готовой архитектуры у меня, у меня есть куча догадок которые надо попробовать.
Если сесть писать такое на хрусте - я буду тратить время на возню с компилятором.
> При этом позволяет делать их осознанно - достаточно написать unsafe. Но тут же задуматься нужно, а некоторым это больно.Смешно, просто смешно.
Поставил этот unsafe в самом начале кода и фигачишь.
Или распихал его где компелятор ругается на автомате и всё.
Думать приходится когда у тебя прога вылетает и добавлением unsafe и других магических слов такое не лечится.
> Нет, иначе как объяснить что сишники из кернела, которые по 20-30 лет пишут код допускают такие же ошибки как и новички.Традиционная ошибка выжившего: о миллионах строк кода без ошибок вы никогда не слышали.
Посмотрите на кодовую базу и сколько там таких ошибок.
> Как выходили за границы массивов 40 лет назад, так и выходят, как делали даблфриИ много ошибок выхода за грницу?
А двойное освобождение - это архитектурное, мне удаётся такого избежать используя три простых приёма:
1. В одном месте выделять всю память, а в другом освобождать всю память. (конструкттор и декструктор так сказать) и не выделять и тем более не освобождать память по ходу.
2. Если память выделять/освобождать всё же надо по ходу выполнения то всегда после освобождения занулять указатель.
3. Не передавать бесконтрольно указатель на выделенную память или прослеживать время его жизни / чётко определять кто владеет и отвечает за его свобождение.
> Я раньше не работал с CUSE, fluidsynth, и вообще MIDI.
> Мне как раз надо очень много собралось-запустилось-попробовал, а на остальное мне плевать, потому что готовой архитектуры у меня, у меня есть куча догадок которые надо попробовать.
> Если сесть писать такое на хрусте - я буду тратить время на возню с компилятором.Это значит ты просто не правильно используешь инструмент.
Пиши на луа, питоне, JS... на чем угодно.
Для прототипирования раст не сильно подходит.Знаменитый драйвер Asahi, который прошел сертификацию Khronosʼа (opennet.ru/opennews/art.shtml?num=59648) изначально писался на питоне.
И после всех прототипов был переписан на надежный язык.
asahilinux.org/2022/11/tales-of-the-m1-gpu/Это кстати уберегает от типичной ошибки "наофнячил на СИшечке, а теперь что-то лениво переписывать на нормальный язык"
Вот делать больше нечего кроме как переписывать работающее решение на фриковый язык ради самого переписывания.
> Вот делать больше нечего кроме как переписывать работающее решение на фриковый язык ради самого переписывания.Не ради переписывания, а ради преимуществ которые дает язык.
Например меньше ошибок памяти, в сравнении с С/С++.Не может один инструмент быть настолько универсальным чтобы подходить для всех задач.
Ты не поедешь за картохой на суперкаре, и не повезешь диван в матизе или логане.
Но и просто на почту на газельке тоже не эффективно.Пока хороших языков было мало (ну не хватало мозгов у сишников в 70-80 осилить фортран или АДА) приходилось все писать на том языке что был.
Теперь такой проблемы нет.А насчет фриковости языка - согласен, вон его в ядро линукса добавили, что может быть более фриково, чем 4%?
Ну только солярка и бздя, но это вообще дно. (Хотя вторые, даже задумались о поддержке)))
Чувак, прога работает = проблема решена, пора заниматся чем то другим.Чтобы бы там не думали, С является стандартом де факто во всей отрасли.
Ты пишешь либу на С и с ней любой может слинковатся, срям сразу из коробки, без костылей, без ручной работы по переписыванию хэдера на свой язык и тп.
Точно так же из проги на С ты можешь и линковать что угодно и творить что угодно.
> Чувак, прога работает = проблема решена, пора заниматся чем то другим.Это актуально только для простейших наколенных поделий и утилиток.
Для любого живого софта есть стадия развития, где в софт расширяется, добавляются функции, исправляется баги, оптимизируется и продолжает разрабатываться дальше согласно новым потребностям пользователей.> Чтобы бы там не думали, С является стандартом де факто во всей отрасли.
Какой отрасли)) Давно уже нет.
В прикладном и системном стандарт с++. На си сейчас осталось только древнее, которое начинали писать еще до плюсов. Сейчас начинать писать новый софт на си может только ненормальных, потому что плюсы лучше сишки во всем.
В вебе JS и Пыха. На мобилах зоопарк чуть больше, но по факту платформ там две - ios где swift и андроид где java/kotlin/c++. Ну и немного реактивщины разной, но их пока реально мало.
Что там осталось. Бекенд - go и js.
Сишка осталась только в древностях и в мк. Хотя МК тоже подпирает с++.> Ты пишешь либу на С и с ней любой может слинковатся, срям сразу из коробки, без костылей, без ручной работы по переписыванию хэдера на свой язык и тп.
Хаха. Это при условии что ты додумался писать основную прогу на си.
> без костылей, без ручной работы по переписыванию хэдера на свой язык
Боже, как все запущено... Никто уже давно не делает это ручками.
Открой для себя генераторы, которые создают биндинги к сишным хедерам практически для любого языка в пару команд. И еще и поддерживают их актуальность.> Точно так же из проги на С ты можешь
Я не хочу писать на си. Я уже этого наелся за 10 лет, спасибо, хватит.
Я хочу писать на нормальных языках, с нормальной системой типов, с нормальными макросами, с ООП не через касты к войду или union на функции, с нормальными енумами, с нормальными инструментами безопасности.
И стараюсь избегать сишку везде, где можно. А ты предлагаешь на ней писать)))> и линковать что угодно
Ну да)) Покажи как ты прилинкуешь OpenCV в свою сишную прогу. Только чур без сишных хедеров.
Или CGAL, или Eigen. Или любую другую либу, аналога который на си просто не существует.
Удачки со своей сишечкой.> и творить что угодно
Вот про это согласен. Такого натворили, что за 20 лет фиг разгребешь...
> Для любого живого софта есть стадия развитияЧтоб тебе Nero burning rom приснился :))))
> В прикладном и системном стандарт с++.Ага, кресты в играх да некоторые гуёвые проги.
В системном они изредка встречаются, если мы не про венду.
> Я хочу писать на нормальных языках, с нормальной системой типов, с нормальными макросами, с ООП не через касты к войду или union на функции, с нормальными енумами, с нормальными инструментами безопасности.В этом и проблема :)
Мне приходится писать чтобы решать проблемы, а ты это делаешь ради процесса, отсюда и все эти плюшки с сахаром в хотелках.
> Ну да)) Покажи как ты прилинкуешь OpenCV в свою сишную прогу.Так я линковал (3.5х), у меня есть проекты где оно в С проге слинкованно и работает.
Только уже не помню точно, везде или только в одной проге пришлось cpp файл добавлять для какой то фигни.
> И много ошибок выхода за грницу?Достаточно)
opennet.ru/opennews/art.shtml?num=61636 - связаны с чтением из области памяти вне буфераУязвимость в эталонных реализациях кодеков AV1 и VP8/VP9 - записи в область вне границ буфера
opennet.ru/opennews/art.shtml?num=61323
"уязвимости могли быть эксплуатированы через открытие в браузере специально оформленной страницы, вызывающей JavaScript-функции для кодирования видео, или через манипуляции с WebRTC"
Открыл сайт - подарил рут.
Вот она сила дыряшки!> А двойное освобождение - это архитектурное, мне удаётся такого избежать используя три простых приёма:
...
давай тебя просто клоннируем!
Ты же идеальный СИшник, не то что писаки в ядре.
"Уязвимости в ядре Linux, позволяющие поднять свои привилегии через nf_tables и ksmbd opennet.ru/opennews/art.shtml?num=60860 - вызвана двойным освобождением памяти"
"Уязвимость в glibc, позволяющая получить root-доступ в системе opennet.ru/opennews/art.shtml?num=60528 "
Вызвана переполнением буфера. Рабочий эксплоит, позволяющий получить права rootИ одна из моих любимых
"Уязвимость в утилите GNU split, приводящая к переполнению буфера opennet.ru/opennews/art.shtml?num=60490 "
Просто не осилили сплит строки!А ведь еще есть use-afterf-free
"0-day уязвимость в драйвере n_gsm opennet.ru/opennews/art.shtml?num=60980"
"Уязвимость в подсистеме io_uring, позволяющая получить привилегии root opennet.ru/opennews/art.shtml?num=60891"Еще ksmbd но на этот раз куча use-after-free наopennet.ru/opennews/art.shtml?num=60668
B вдогонку еще пара штукopennet.ru/opennews/art.shtml?num=59746
критическая уязвимость вызвана переполнением буфера в обработчике формата изображений WebP. Уязвимость позволяет выполнить свой код при обработке специально оформленных WebP-изображений. Опасность уязвимости усугубляет то, что в сети выявлен рабочий эксплоит, который уже применяется злоумышленниками для совершения атак (0-day).opennet.ru/opennews/art.shtml?num=59664 Уязвимость в Linux-драйвере exFAT, позволяющая поднять привилегии в системе
В драйвере! "Отсутствие проверки размера при копировании имени файла в буфер"opennet.ru/opennews/art.shtml?num=59867
"Уязвимость в Glibc ld.so, позволяющая получить права root в большинстве дистрибутивов Linux "
некорректная комбинация параметров в данной переменной приводит к записи разобранного значения за пределы выделенного буфераИ это все до октября 2023 года.
А ты еще спрашиваешь
> И много ошибок выхода за грницу?Да, их ошибок просто море.
А какой от них ущерб лично вам или вашим знакомым?
Вот краудстрайк своей ошибкой положил кучу машин, ещё какие то ошибки приводили к реальным массовым взломам требующих вмешательства.А то что вы перечислили - это мелкие деффекты в ПО, да их можно для чего то там в теории использовать, ну вот когда будут использовать - тогда и будем жаловатся :)
> А какой от них ущерб лично вам или вашим знакомым?Ты вообще читал что я написал?
Повторюсь "критическая уязвимость вызвана переполнением буфера в обработчике формата изображений WebP. Уязвимость позволяет выполнить свой код при обработке специально оформленных WebP-изображений. Опасность уязвимости усугубляет то, что в сети выявлен рабочий эксплоит, который уже применяется злоумышленниками для совершения атак (0-day)."Т.е людей уже ломали через интернет.
И ты не знаешь ломали твой комп или нет.Это как узнать, что от твоей входной двери ключ подходит почти любой, главное его немного подпились.
Вот какой ущерб тебе нанесли, если просто зашли и на диване полежали. Или поели кашу.
Или почитали твой дневник времен универа. Или посмотрели твою историю браузера и фотографии которые найти смогли.> А то что вы перечислили - это мелкие деффекты в ПО, да их можно для чего то там в теории использовать, ну вот когда будут использовать - тогда и будем жаловатся :)
Ага, ну раз у вас эта уязвимость мелкая, то что будет крупным?
Комп сгорает в синем пламени? Бьет юзверя током?
Или может пишет в ближайшее РУВД о том что его хозяин преступник и его можно сажать на стеклянное изделие?У меня впечатление, надеюсь ошибочное, что я то ли с кем-то накуренным общаюсь - ну типа "не парься, дело то житейское", то ли с умственно отсталым.
А ты читал?
Сколько ты денег потерял на этой ошибке? А твои знакомые?А ты представляешь себе что надо чтобы взломать комп через такое и насколько оно универсально?
Обычный человек WebP увидит через браузер, а он обычно обмазан взякими защитами.
А конкретно я на фре, со всем самосборным, так что для меня надо отдельные эксплоиты.Насчёт физической безопасности ты зря начал.
Практически все механические замки, особенно распространённые вскрываются отмычками за пару минут. И у тебя никаких гарантий нет что тебе домой не занесли аппаратных троянов и вебкамер или не подкинули веществ.
> У меня впечатление, надеюсь ошибочное, что я то ли с кем-то накуренным общаюсь - ну типа "не парься, дело то житейское", то ли с умственно отсталым.Чувак, нет ущерба - нет проблем.
Зачем ты паришься когда проблем нет?
Ты же как в том анегдоте, где кастрировали верблюдов а заяц заранее кипишевал.Я вот беспокоюсь когда:
- прога вылетает и мне это не даёт то что я хочу
- прога тормозит без объективных причин
- реальная дыра которую легко проэксплуатировать (это вот когда прям 100% по сети само или очень сильно вероятно что я такое могу встретить) - и не надо сюда WebP приплетать
Откуда версия, что Краудстрайк именно ошибка? Ошибка PAGE_FAULT_IN_NANPAGED_AREA случается (в первом приближении) с вероятностью 0,001. В том случае произошёл массовый отказ и потому похоже на намеренные действия в обход QA и прочего контроля.
Да мне пофиг, я как пример привёл когда ошибка стоила денег.
А не вот эти теоритические баги из хорга которым 50 лет уже и которые никто никогда в реале не ловил.
Я к тому, что это не ошибка, то есть пример мимо кассы. Такое и возможно и на "безопасном" языке, намеренно с unsafe и в обход контроля.
> Если сесть писать такое на хрусте - я буду тратить время на возню с компилятором.Ты - да. При этом твое доказательство правильности кода будут на уровне "мамай клянусь, так не будет null!" А те кто его знаю и понимают что делают, воевать не будут.
> Поставил этот unsafe в самом начале кода и фигачишь.
Вот видишь - даже так можно)) Хотя так даже проще на сишке лабать.
Но в расте так не принято, и каждый unsafe нужно обосновывать и с тебе спросят на первом же кодревью.> Или распихал его где компелятор ругается на автомате и всё.
Ты же осознаешь что это просто затыкание дыр?
> Думать приходится когда у тебя прога вылетает и добавлением unsafe и других
> магических слов такое не лечится.Если для тебя unsafe магическое слово, то все с тобой понятно.
> Традиционная ошибка выжившего: о миллионах строк кода без ошибок вы никогда не слышали.
> Посмотрите на кодовую базу и сколько там таких ошибок.Я слышал про миллионы тысяч глаз, которые смотрят в код))
Вот распределение CVE из ядра линукса по Vulnerabilities by types/categories.
Vulnerabilities (4966) cvedetails.com/product/47/Linux-Linux-Kernel.html?vendor_id=33
Не для всех проставлен однозначный тип/категория, но
Memory Corruption 1242
обгоняет в три раза (!) еще одну типикал сишную бажину в виде Overflow 304.А вот Vulnerabilities By Types/Categories только по всем зарегистрированным CVE во всех продуктах
cvedetails.com/vulnerabilities-by-types.php
Memory Corruption и Overflow занимают почетные второе место и третье места после xss со счетом 20k и 16k.
Вот насколько велика проблема порчи памяти.
И если ее решить хотя бы частично, то это уже будет огромный прогресс.
> При этом твое доказательство правильности кода будут на уровне "мамай клянусь, так не будет null!"Зачем мне какие то доказательства правильности!?
Мне нужно чтобы прога работала, музыку играла.
> Ты же осознаешь что это просто затыкание дыр?Я написал что unsafe никакая не гарантия что его будут применять выборочно и вдумчиво.
Можно поставить unsafe в начало файла, нафигакать туда, опубликовать и хвастатся что у тебя спурбезопасный проект на гниле.> Но в расте так не принято, и каждый unsafe нужно обосновывать и с тебе спросят на первом же кодревью.
Кто будет ревьвить мой личный проект?
Догадываешься куда я его могу послать с его домыслами? )> Я слышал про миллионы тысяч глаз, которые смотрят в код))
Ну да :(
Смотреть мало, надо вдумыватся.
Я тут всякой фигни накопал в ядерной части MIDI, да и в софте не сильно лучше.
> Вот распределение CVE из ядра линукса по Vulnerabilities by types/categories.Vulnerabilities (4966)
> Memory Corruption и Overflow занимают почетные второе место и третье места после xss со счетом 20k и 16k.Это очень мало с учётом объёма кодовой базы.
Более того, большая часть подобных ошибок находят только потому что они приводят к падению или с помощью специальных инструментов и техник.
Есть ещё огромный класс логических ошибок, которые не приводят к падениям и их никто не находит.
> Зачем мне какие то доказательства правильности!?
> Мне нужно чтобы прога работала, музыку играла.Да я понял уже. А мне нужно чтобы запущенная "специально оформленная" музыка не мне потыритла куки из браузера, криптокошелек, базу паролей (она конечно зашифрованная, но все равно неприятно) или просто не удалила всё до чего дотянется.
> Кто будет ревьвить мой личный проект?
Пока он личный - никто (хотя мог бы и попросить кого-то). И послать можешь куда угодно.
Но речь идет о ПУБЛИЧНЫХ проектах - ядро, браузеры, либы шифрования - то, на чем держится пол инета и IT.> Более того, большая часть подобных ошибок находят только потому что они приводят к падению
> или с помощью специальных инструментов и техник.Это не имеет значения. Их находят и используют.
На том же сайте есть список Known exploited и Public exploit.
cvedetails.com/cisa-known-exploited-vulnerabilities/kev-1.html
Каждый публичный эксплойт значит что его использовали на реальных людях - подключали к ботнетам, воровали банковские карты, шифровали диск и вымогали выкуп и тд.> Есть ещё огромный класс логических ошибок, которые не приводят к падениям и их никто не находит.
Их тоже находят, тем же фаззингом. Просто это на порядок сложнее.
В борьбе с логическими помогает нормальная система типов, но я не знаю ни одного способа от них избавиться полностью, кроме формальной верификации. Но это слишком дорого.Поэтому решили закрыть более простую, но все равно огромную часть уязвимостей, связанных с памятью.
Ты смешной как низнаю кто :)У меня есть своя собственная наколенная реализация ECDSA+DH, вот прям полностью своя, начиная от математики длинных чисел, продолжая математикой элиптики, и кончая самой криптой поверх этого всего.
Так её в начали студенты растаскивали себе на дипломы, а потом одни россеянские линукс дистро строители себе упёрли, и как я понял даже сертифицировали.Никто и никогда это не ревьювил, ну кроме может дистростроителей с сертификаторами, но там такой объём кода и плюс нужно быть в теме чтобы понимать что происходит, так что прогнали поди это через анализаторы кода и успокоились.
> Поэтому решили закрыть более простую, но все равно огромную часть уязвимостей, связанных с памятью.Чувак, вы себе для начала купите ECC память и убедитесь что она у вас в ECC режиме работает, а то вам никакая гниль не поможет :)
Кто эти героические дистростроители? :) Не на букву "р" случаем?
>Нагло врут, наверное. Да?На что только не пойдут мегакорпорации ради наживы
Как вообще умудряешься с таким уровнем понимания кода вообще что-то разрабатывать?
Да легко.
Можно писать на чистом С или шелл скрипт и не парится.
Есть такие люди — чем меньше они пишут, тем лучше.Вы как раз к ним относитесь.
И все фанатики раста. Они кстати ни на каком языке никакого кода не написали.
А это уже неважно. Кто больше натрындел, тот и прав.
> А это уже неважно.Для анонимных экспертов на Опеннет - вполне возможно. Благо, ответственные решения в крупных фирмах, мировых лидерах по разработке ПО, принимают не такие люди.
Да я бы с удовольствием вообще ничего не писал, пил бы вино на своей яхте возле своего острова или занимался какой благотворительностью.
Но с одной стороны проблемы сами себя не решают современем или делают это очень медленно, а с другой у меня нет денег на ту жизнь какую я бы хотел.Можете начать мне платить за то чтобы я ничего не писал, хотя бы по 10к евро/месяц, оба получим что хотели :)
И поэтому вместо крестов и гнили лучше изучить LUA или что то ещё годное и просто в использовании.
Или вот на паскале (лазарусе)
;)))
Да тоже экзотика.
Пишите на Modula-2, если так паскалев синтаксис нравится. Он хоть и экзотика, зато в наборе GCC есть.
И в космосе есть.
Gnu modula-2 нормально работает только в gcc14,
Постмодерн сейчас в моде, но смешение стилей - разве это прогресс?
Если человек не умеет правильно пользоваться классикой - никакой постмодерн не поможет.
Раст и ко впихивают не потому что классика устарела, а потому что диды уже не хотят, а новое поколение не может.
Как это соонтосится с созданием целого языка программирования и всяческих нужных библиотечек для него? Ведь это не сайтики клепать на Node.js. Если диды уже не хотят, а новое поколение не может, то кто делает Rust и всё остально? Ящерики?
Диды из гугля и амазона? То-то они до этого активно продвигали Go.
В маркетинге это называется "формирование потребности". Деньги делают на услугах вокруг Rust'a, вот и продвигают.
Деды и могут и хотят.
Новое поколение хочет по быстрее сделать и не нести отественности, и злой компелятор который по слухам гарантирует что всё правильно тут как раз к стати пришёлся.
Ага, то-то у дедов Therac-25 пациентов поджаривал и ракеты падали. Всегда надо было побыстрее, всегда никто не хотел нести ответственность (всякие EULA с указанием ответственности в пределах 5$ как раз деды придумали).
Ты живёшь в мире, где всё самое важное написано на С, а если не оно само написано на С, то язык или фреймворк написан или собирается с помощью С.
То что отдельные случаи багов ПО были - не так страшно, потому что альтернативы не было и нет.
> Ты живёшь в мире, где всё самое важное написано на С, а если не оно само написано на С, то язык или фреймворк написан или собирается с помощью С.Пощади меня человек анекдот!
Даже GCC сейчас пишется на С++, потому что дыряшка это унылое Г.
Винда написана на плюсах.
Самые популярные приложения типа Хрома написаны не на СИшке.> То что отдельные случаи багов ПО были - не так страшно, потому что альтернативы не было и нет.
Да, получения рута это не страшно, ну не убивает же оно людей, чего вы нервничаете!
А альтернатив с тех пор, слава богу-машине, есть куча:
для бизнеса - джава, для игр - с++, для серверов - Го, для надежной замены дыряшки - Раст
Даже на микроконтроллерах сишка заменяется.
Я не считаю, что "новое поколение не может", учитывая что очень даже может, если научится, а учиться сейчас гораздо проще, чем 15 лет назад хотя бы из-за стабильности компиляторов и сильного железа.
Другое дело, что молодое поколение часто падко в отношении псевдоновизны и "инноваций" (даже если реальных инноваций там нет), но этим активно пользуются корпораты чтобы подсадить на свои недотехнологии.
> учиться сейчас гораздо прощеВ этом и проблема, порог слишком низкий. Вместо 1 сурового ботана-интроверта теперь 100 смузикодеров с КоКом и прочими диверсиями.
Был уже похожий деятель, выбрал Objective-C для разработки СУБД Tarantool ровно из таких же соображений. После нескольких лет сношений c Obj-C и принятия неизбежного, перевёл проект на Си
Вы истории не знаете, а говорите.Objective-C был использован «голый», без фреймворков для двух задач, которые в C решаются костылями: полиморфизм и исключения. Конечно, можно было костыли на C нагородить, но Objective-C в целом оказался удобнее. В остальном же Tarantul (тогда ещё через tul) был написан на C.
На C++ Tarantool (уже через tool) переводил уже другой деятель/деятели, а вовсе не оригинальный автор. Оригинальный автор так и остался верен Objective-C, и на нём до сих пор написан вполне себе живой внутренний форк.
И C++ выбран по тем же причинам: полиморфизм и исключения. Внутренними правилами требуется, чтобы код был как можно ближе к C без плюсов.
>И C++ выбран по тем же причинам: полиморфизм и исключения.
>Внутренними правилами требуется, чтобы код был как можно ближе к C без плюсов.Вам не кажется, что вы написали противоречащие друг другу утверждения?
Просто ты не умеешь в конкатинацию. Как можно ближе к С без плюсов, но с полиморфизмом и исключениями. Ключевое слово "как можно ближе".
Полиморфизм связан с классами, но в C их нет. Т.е., как это с классами, но близко к C?
просто берёшь си и два плюса из плюсов и пишешь не трогая ни единого другого плюса из плюсов. получается си с двумя плюсами.
class это struct где все члены по умолчанию private. Так что "классы" в Си вполне есть, как и полиморфизм, просто требуют немножко больше писанины и внимательности.
Серьёзно, насчёт полиморфизма в C? Просветишь?
Посмотри заголовочный файлы DirectX в вариантах для Си, если сам ничего по ключевым "полиморфизм в C" найти не смог.
Нет, я сказал, что сказал: из C++ используются исключения, виртуальные функции, и щепоточка шаблонов с перегрузкой функций (но аккуратно, так сказать, для аромата). В остальном код пишется в стиле C.
> которые в C решаются костылями: полиморфизм и исключения.В постгресе на си сделаны исключения и ничо как-бы.
Ну так не отменяет того, что сделаны костылями.
> Ну так не отменяет того, что сделаны костылями.Для начала надо услышать твое определение костыля.
Вспомнил о JavaScript с его прототипами и функциями которыми прелагали заменить отсутсвующие классы. Критиками отвечали что вы ничего не понимаете, это такая особенность и что так даже лучше. Так тут не костыли. Это такая особенность. Программисты на C вольны сделать что угодно и их ничто не ограничивает.
Да, сделаны. Через setjmp+longjmp. Без поддержки со стороны языка, без возможности перехватить конкретное исключение... хотя, да, можно же выставить код...В общем, конечно можно сделать самому то, что за тебя сделали другие, если хочется сделать самому как можно больше. Более того, автор Tarantul действительно сперва использовал setjmp+longjmp. Он умеет и это, и ещё многое другое. Просто ему надоело ковыряться в этом. Он хотел делать удобную вещь, и потому взял уже готовую реализацию требуемого ему функционала.
Чекнул код Ladybird. Там C++ на уровне C++03. Тогда понятно, что по сравнению с C++03, Swift будет улучшением. А если бы афтар Андеас Клинг немного потратил времени, чтобы обновить свои знания С++? Но зачем, когда есть другой язык, "который точно лучше".
Плохо чекал, балабол. Как ты мог std::shared_ptr<> назвать C++03?
А вариант, что он его так назвал, поскольку сам написал или выдёргивал из Буста, почему не рассматривается?
Ох блин, за что мне это все... Потому что std::
> Ох блин, за что мне это все... Потому что std::Если ты решил придраться к буквам, то "на уровне" не тождественно "соответствует стандарту".
То, что кто-то впихнул в код shared_ptr, еще автоматически не означает, что код ушел от C++03.
Маловато языков, надо добавить. Ядро браузера надо писать на чистом bat, оно глубоко с системой связано, самые серьёзные вещи надо писать на самом высокоуровневом языке, чтобы исключить любые логические ошибки в принципе. Отображение страницы надо на си, ну а графическую оболочку, конечно, на бэйсике. Для наиболее критичных и узких мест ассемблер можно использовать,
Да в принципе пофиг, хуже этому браузеру всё равно уже не будет
Если у Андреаса браузер будет собиратся легче чем фокс и хромиум, он - победил.
Ты можешь легко и непринужденно собрать браузер dillo.
хороший, кстати, браузер
Почему Firefox, не хотят или не могут на Rust переписать?
Потому что поще перерисовать UI раз в N лет, впилить API для рекламщиков и сосать у гугла бабло за поисковик по дефолту. ТОП менеджмент может поднимать себе зарплату в некоммерческой организации, а разработчиков на расте - на мороз.
Потому что "он менее удобен для разработки долгоживущих программ с большими сложными графами объектов. Кроме того, Клинг охарактеризовал сообщество Rust как "токсичное".
растишка вышла из мозиллы, в фаерфоксе применяется, и вроде, на примере использование раста в фаерфоксе можно рассмотреть как пример "разработки долгоживущих программ с большими сложными графами объектов".но вот там косяк - как свежий фаерфокс на не свежем расте не собрать, так и наоборот, не свежий фаерфокс на свежем расте не собрать...
> включая безопасные методы работы с памятью, защиту от состояний гонкиО, круто! Теперь можно троллить фанатиков другого языка с "безопасной работой с памятью" вопросом "а защиту от состояний гонки он у вас обеспечивает?".
Зря swift, кроме ios он ещё слаб и все библиотеки в основном под ios
Автора это не пугает, т.к. и для C++ он большинство библиотек сам написал. В том числе, свою стандартную библиотеку.
Как будто это что-то хорошее. Вместо браузера писал свои стандартные библиотеки. Не, многие игроделы тоже пишут, но у них и игори выходят, а некоторые ещё и двиглы в опенсурс выкладывали типа айди софтваре.
> Есть мысли, зачем ЭТО в принципе надо?Все готовые библиотеки браузероспецифичны.
Ид софтваре. Не "айди".
> Ид софтваре. Не "айди".ок
Ну вот, донат в миллион зелёных не заставил себя ждать. Кто платит, тот и заказывает ЯП.
выглядит как тот школьный проект по книжке чего-то там «по две недели на язык программирования» :)
чел осваивает грант на лям бачей. не более
И много ты знаешь школьных проектов, где писались бы полноценные браузеры? Всегда умиляют подобного рода "эксперты".
т.е. он исключительно сам предполагает тянуть дальше этот свой браузер. Тогда можно смело про него забывать. Хотя кто про него знал ?
Ждём форк, продолжающий развитие браузера на C++ и Qt, с возможностью сборки посредством g++.
Почему именно Свифт?
Видимо, задонатившие имеют отношение... Догадайтесь к кому.
Выбор языка конечно странный, но этого всеже не достаточно чтобы строить подобные теории...
Ну все святой дух спустил ему послание во сне. Попробуй оспорь.
Очень просто - чтобы закрыть весь проект. Троянский донат.
Чтобы просто закрыть, тогда логичней "решить" перевести проект на Dart ;)
Гугель не проплатил денег не хватило.
Почему Свифт?
Очевидно же, потому что автор его знает, и он ему нравится.
Какие достоинства? Язык прост, с низким порогом входения, и популярен на Маках/iOS.
Минусы? Вне экосистемы Эппл долго перечислять..
А в рамках экосистемы упомянули про сборку мусора, и это типа негативно может повлиять на быстродействие.Примерно пол-года назад здесь была тема про тестов быстродействия браузеров, и там обменивались результатами тестов. Итог: быстродействие и отзывчивость браузера очень мало связана, с тем сколько попугаев он набрал в тестах. В том числе один и тот же браузер, в рамках одной архитектуры, но с разной производительностю.
Далее, сейчас от браузера не требуется работать на дохлом железе, и не не жрать память, во всяком случае это уже нельзя преподнести как главное достоинство.
Нужно удобство именно для пользователя, и безопасность, опять же не бутафорская, как сейчас, а именно для пользователя, чтоб ни один злоумышленник не совал нос в траыик, и не мешал работе пользователя в браузере.
Почему бы не выбрать Java? Ведь там безопасная работа с памьятью, Java есть под кучу ОС и т.д.
И кому нужен браузер-тормоз?
Некоторые говорят что Java не тормозит. И кому нужны программы на JavaScript, HTML, CSS и с сильно неродным GUI напоминающее что–то среднее между HTML страницами и GUI с умнофонов которые к тому же ещё и тормозят и занимают кучу места?
Тогда лучше .NET. А джава протухла и попахивает.
Тебе нюхать? Те же яйца только сбоку и я почти уверен что под Linux оно прям очень плохо. Лучше бы Microsoft не делали его под Linux. Mono лучше. По крайней мере Beagle, Tomboy, Banshee, Tasque, F-Spot, Monodevelop были приятными программками.
О да! Тот самый дотнет, который контролирует Microsoft и ломает совместимость в обновлениях! А поддержка под Linux - вообще "🔥"!
Да не нужон он под Linux. Очередная жрущая ресурсы фигня. Java мало?
Нетскейп уже пытались у них не получилось.
На самом деле это был бы отличный выбор.
Так ведь web-браузер на Java сама Sun и написала, он назывался HotJava
https://ru.m.wikipedia.org/wiki/HotJava
Там сказано, что имел и ограниченную функциональность, и страдал от ограничений производительности.
Java наихудший выбор вообще для чего-либо, особенно для UI/CLI, где важны задержки. Даже питон с выносом некоторого кода в нативные модули будет многократно лучше
Ну, если раработчик отказался от ЯП потому что какое то сообщество показалось ему "токсичным", значит это всё, финишь.
Так он далеко не первый, кто на невменямость раторазрабов обращает внимание. Все не могут клеветать на них.
А как вежливо сказать что разраб ... без мата? По другому лучше и не получится.
А не надо вежливо, можно прямо а можно с метафорами.
А у меня вот вопрос - какая доставка пакетов у этого языка программирования SWIFT?
А где скачать бинарь можно под винду? Чтобы без вот этих всяких конпиляций и прочего пepдoлинга.
> А где скачать бинарь можно под винду? Чтобы без вот этих всяких
> конпиляций и прочего пepдoлинга.Какая винда, але! Черным по белому написано "переходи на свифт". Усе, шеф, пора откладывать деньги на мак со школьных завтраков.
А разве ссылок нет?
Swift как язык имеет весьма приятный синтаксис, лучше чем Rust и С++, за исключением некоторых странностей типа отсутствия операторов ++ и --.
А не все ли равно тебе на весь это синтакис? Язык вендор лоченый на одну контору + завязка на llvm, а это значит что бутсрапинг сразу мимо.
Знаете ли вы много языков, в которых не используется LLVM?
> Знаете ли вы много языков, в которых не используется LLVM?Любой, который собирается gcc. Python (если не учитывать их экспериментальный jit), guile, например.
Java, Kotlin, Clojure, Common Lisp, FreePascal, Oberon, Modula, Haskell, D, C#. Да полно их!
Refal, КуМир и Логомиры
У D тоже приятный синтаксис, например.
С разморозкой
Завязку на llvm порицаю. Собственно проблемы современных браузеров над уровнем самого движка стоят.
Ждём открытие исходного кода браузера Vox на языке V!
> We have 1 new full-time engineer starting soon. Going forward, we would like to grow the team at a reasonable pace. Building the right team is more important than building it quickly.We will strive to maintain 18 months of runway at all times.
Мертворожденное
>использовать язык программирования Swift в качестве основного для своего проекта.Ужасно! Они б еще на прибитый к микрософту C# перементнулись! Неужели продались проприетарщикам до такой степени? Теперь можно не тратить время на новости об их браузере, так как гарантированно ничего хорошего не выйдет.