Майра Канал (Maíra Canal) из компании Igalia представила проект по переписыванию драйвера VGEM (Virtual GEM Provider) на языке Rust. VGEM включает около 400 строк кода и предоставляет не привязанный к оборудованию бэкенд GEM (Graphics Execution Manager), используемый для разделяемого доступа к буферам драйверов программных 3D-устройств, таких как LLVMpipe, с целью повышения производительности программной растеризации...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=58735
>проект по переписыванию
>VGEM включает около 400 строк кодаУх...
А сколько стало? Вангую что больше.unwrap()
Зачем ванговать - на пулл реквест есть ссылка, посмотри и сам убедись
Ну, видишь, пришлось аж проект по переписыванию 400 строк кода. Надо еще пару архитектов нанять, но там чего-то увольнения везде, можно и подобломиться...
Господи, я не верю, что это происходит на самом деле. Это какая-то шиза. Это, наверное, специально делают, чтобы просто посмеяться и что-то в этом духе.
>переписать
>400 locНу это ли не п@здец? Язык уже давно production ready(по заявлению фанатов), а оригинальных проектов на нем можно по пальцам пересчитать. В основном бегают по гитхабу и ищут старые сишные проекты на пару тысяч строк, чтобы потом скопипастить и гордо заявлять "Я сделяль".
Что-то я не получал от некоего анонима оффер на стопяцот килобаксов в секунду на написание оригинального проекта, на расте.
Где деньги билли, на школьных обедах не экономишь или в доту донатишь?
А, ты бесполезный халявщик... так сразу и сказал бы.
>Где деньги билли, на школьных обедах не экономишь или в доту донатишь?
>А, ты бесполезный халявщик... так сразу и сказал быА кто платит Сишникам и плюсовикам? Почему на переписывание хватает ресурсов, а для создание чего-то полезного нет? Может быть, проблема немного в другом?
П.С. Корпоративная кормушка сейчас на стороне раста, однако...
>>Почему на переписывание хватает ресурсов, а для создание чего-то полезного нет?потому что те кто платят и определяют для себя что им полезно. видать сейчас им полезно немного (или много, как пойдет) попереписывать.
>потому что те кто платят и определяют для себя что им полезно. видать сейчас им полезно немногоДа, переписанные grep и ls - это очень полезно. Смысл только один, чтобы потом в пропаганде говорить "Посмотрите сколько программ мы написали на расте", а по факту обычный копипаст маленьких сишных проектов.
Хейтерки, как обычно, фокусируются на пальце, вместо того, чтобы смотреть на небо. Любой язык сам по себе не очень интересен, будь он хоть в сто раз безопаснее и в двести раз быстрее любого другого. Интересна и важна экосистема, выстроенная вокруг языка — библиотеки, рекомендации, коммьюнити, best practices, книги. Очевидно, что всё это не возьмётся с потолка просто потому, что кому-то так захотелось. Все эти косвенно относящиеся к языку артефакты пишут люди. Когда-то С был ровно в такой же ситуации, как сегодня Раст: много хайпа и крайне мало кода. Хейтерки тех лет точно так же блеяли, мол, сишники ничего не умеют, только готовый софт с Алгола переписывать. Повторится ли история успеха мы сможем увидеть своими собственными глазами, но хейтерки в любом случае останутся блеющим стадом, каким они были на протяжении всей истории человечества.
Вообще-то на C (чистом) уже был написан Unix, при том, что это была его фактически бета-версия, то есть взяли язык B, кое-что переделали и добавили под инженерные нужды, получили C. И используется уже несколько ДЕСЯТИЛЕТИЙ, написаны тонны кода. Rust уже существует приличное количество времени и на нём только и делают, что бесконечно что-то переписывают и агрессивно форсят. Почувствуйте разницу: язык, который сделан для Unix и который взлетел благодаря инженерам, причём C практически не менялся с момента сотворения и Rust, который УЖЕ ломал обратную совместимость (пусть и не так сильно, как утверждают совсем уж рьяные злые языки), а достижения крайне сомнительные, учитывая что годы идут, а воз и ныне там.
А до Юниксов, надо полагать, ничего не было и волки на луну выли. Шесть дней Ритчи творил С, а на седьмой день запустил Юникс. Есть одна полезная для оздоровления мышления книжка, называется «The UNIX-HATERS Handbook». Что-то вроде комментов на опеннете, только из тех вот самых лет, когда диды были молодыми. Там и про совместимость, и про инженеров, и про то, как этот Юникс взлетал, и даже про то, где именно воз припарковали. Настоятельно рекомендую ознакомиться.
> А кто платит Сишникам и плюсовикам?Корпорации вроде Apple, Google, Facebook, Microsoft, Oracle, IBM, и так далее. Точный список можешь посмотреть в логе коммитов в ядро по емейлам разработчиков.
> А кто платит Сишникам и плюсовикам?Сишников и плюсовиков - как собак нерезаных, на порядки больше, чем растовиков. Среди них проще найти коммунистов/альтруистов/гпл-щиков для написания интересных _им_ проектов бесплатно, которые (проекты) могут оказаться нужными и тебе. А вот растовиков пока еще очень мало. И чтобы так сошлись звезды, чтобы ты нашел такого растовика-альтруиста, который бы бесплатно пилил интересный тебе проект - это надо быть мегасчастливчиком.
> Почему на переписывание хватает ресурсов, а для создание чего-то полезного нет?
Полезного _тебе_? Они не только переписывают, но и пилят что-то новое - но интересное и полезное себе. Всякие васмеры, какие-то блокчейны во крипте, свои веб-серверы или какие-то рантаймы с идеологией процессов и отказоустойчивости а-ля Erlang, а корпораты - какие-то куски операционок или системы контейнерной изоляции. Они просто тебя забыли спросить, что они обязаны пилить, ты им подскажи. Тебе наверное очередной mp3-плеер нужен? Напиши им очередное письмо про то, что "надо игру, где можно грабить корованы"
так и ты и все иксперты опеннет вместе взятые и этих 400 строк в жизни не напишите
С++ в ядро они не пускают, а зато раст как миленькие.
C++ для них сложна, могут написать так, что вся память утечёт.
Так если результат такой же, чего рисковать?
Это как раз на Си так пишут по умолчанию. На C++ есть RAII и unique_ptr, и чтобы начать писать с утечками надо явно завявить "я идиот, творю что хочу, компилятор подвинся". Ну то есть как в этом вашем Расте.
Как там Страуструп свои книги начинает? C++ это улучшенный Си? Ну так Rust это улучшенный C++. Кушайте свою же лапшу.
Прошу прощения, но вы -- Васёк. Никто и никогда не заявлял, что Rust это улучшенный C++.
Естественно - в плюсах все настолько плохо, что проще новый язык сделать с нуля, чем C++ исправлять. Java, C#, Vala - это чтобы не городить C += 2
Паскаль лучше раста
COBOL лучше сишечки.
На полшишечки.
Конечно, что в школе вдолбили - то и лучше.
В шоле бейсик же был, в универе паскаль.
В школе микрософт ворд изучали. А в универе java.
В сельской школе и уездном универе? Охотно верю. В нормальных школах был Паскаль.
В каком месте Rust - улучшенный С++? Классы где?
В идеалогическом. Подходы разные, да, как инструменты немного отличаются(плюсы все больше мимикрируют под раст в новых стандартах). Но ниша общая. Задачи те же. И даже чуть шире из-за эмбедед.
А кто сказал, что C++ нет в embeddet?.
Его доля крайне мала - попробуй отпилить все ненужное типа исключений, stdlib.. си доминирует пока де факто. У раста вот некие потуги проявляются.
Ой да Б-же мой. Что там отпиливать?-fno-rtti, -fno-exceptions и полетели.
> -fno-rtti, -fno-exceptions и полетели.Смотря куда. Вот ты хорошо знаешь что там stdlib будет делать допустим и какие у него аппетиты, worst case и проч? Си все ж попроще в плане предсказуемости и отсутствия всякой фигни. А у желающих навороты там где этим увлекаться не стоит - тойота получается. Когда кто-то весь стэк сожрал, оценить объем этого не смогли, и водителя почему-то размазало немного, когда переменные в блоке ECU стали пургу гнать и авто в разгон пошло. А, вы лететь хотите? Ну тогда скажите, какого цвета стопкран в самолете, во.
>> -fno-rtti, -fno-exceptions и полетели.
> Смотря куда. Вот ты хорошо знаешь что там stdlib будет делать допустим
> и какие у него аппетиты, worst case и проч?да, я хорошо знаю stdlib, знаю какие апетиты у разных классов/функций , во что мне это выльется по коду/стеку/хипу.
> Си всеж попроще в плане предсказуемости и отсутствия всякой фигни. А у
> желающих навороты там где этим увлекаться не стоит - тойота получается.Тойота написана на С. вот и все. Все были уверены как и ты что в С нельзя ошибиться, это ж такой простой язык!
>классы гдеТам же, на месте. И множественное наследование даже.
Где в C++ нормальное ООП, где сообщенич между объектами, где аксесоры и мутаторы?
Ой сейчас любители плюсов мне расскажут что им это не нужно?
Вы хотите чтобы в языке, где таблица виртуальных методов слишком большие накладные расходы, у каждого объекта была своя очередь сообщений?Такого даже в java нет.
Посмотри на классы в Common Lisp, и потом ответь себе на вопрос: где классы в C++? Те костыли, что там вместо классов, выглядят просто смешно по сравнению с полумёртвым языком, стандарт которого не менялся с 1994 года. После этого обсудим круг задач, для эффективного решения которых необходим объектно-ориентированный подход.
В Common Lisp идиотские классы. Да, MOP -- это довольно мощная штука, но, скажем честно, никакого OOP в Common Lisp нет, потому что нет инкапсуляции.
ага а будущий Rust++ это улучшенный Rust, который является улучшенным C++ который улучшает С.
Ждем светлого будущего.
В доме, который построил Денис Ричи.
У Ричи до C был ещё B на основе BCPL.
Rust это аналог/подобие C, не улучшенный. Чтобы сравнивать его с C++, для начала пусть ООП и классы завезут. А пока это просто нискоуровневая копия C.
Не надо классы, вменяемой системы типов с трейтами и паттерн-матчингом достаточно.
Но без наследования не годится.
Без мультинаследоаания в 7-10 классов в глубину, где всё перетёрто и отладка напоминает коллбек хелл?Проходили, поэтому с++ на мороз и выбрасываем
Достаточно чтобы писать процедурный код, где полиморфизм сделан на костылях функций высших порядков. Натуральный привет из прошлого который фанатики фп выдают за будущее.
Если это улучшенный C++ покажи мне ООП на нем с наследованием и полиморфизмом.
Наследование через трейты:
- трейт "геометрическая фигурка"
-- окружность
-- треугольник
-- прямоугольник
Расчёт площади как полиморфная функция.Поздравляю, вам в ядро таки добавили C++, только вот страшненький, кривой и корпо-противный.
"Жри что дают, скотина такая!" (c)
На плюсоте еще страшней получаетсся, особенно системщина. Там все грабли сей на месте, начиная с дурацких изначальных стандартных типов и чокнутых правил работы с integer'ами - но бонусом к ним много новых. Если вот тут некто оверлоад оператору сделает - потом вон тот код может делать совсем не то о чем вы подумали.
Запишу, буду предъявлять растоманам по требованию.
"C++ is really a terrible language!"
“C++ ended up with a bunch of terrible, unmaintainable garbage”
Уже пробовали. Результат сильно огорчил.
Бред, в драйверах MacOSX С++ никого не огорчает.
Линус раньше против C++ высказывался. Если он теперь его пустит в ядро, то потеряет лицо. Нотэто к лучшему. Rust - лучше, когда используется адекватным образом с адекватной сборочньй системой, а не культом cargo.
> а не культом cargoлол, а такое бывает?
когда используется адекватным образом с адекватной сборочной системой - любой язык из топ 10 офигенен
> Линус раньше против C++ высказывался. Если он теперь его пустит в ядро,
> то потеряет лицо. Нотэто к лучшему. Rust - лучше, когда используется
> адекватным образом с адекватной сборочньй системой, а не культом cargo.Так с растом и повесточкой он еще больше лицо потерял.
Ну дал он им сменить master на main, и что с того? Наоборот, создал видимость, что они что-то решают, а по факту ничего не изменилось.
Под идеальной сборочной, конечно же, подразумевается make? Или какой-то один из чудесных его обертывателей?
Линус уже лицо потерял, когда прогнулся под корпоRust. Да и палец что-то свой спрятал, давно им не вертит.
Линукс всегда был проектом корпораций, причем там rust? Будто до этого он был написан разработчиками-одиночками.
До начала нулевых точно был проектом физлиц и групп физлиц. RH, в то время, назвать корпорацией, даже с большим натягом не получается.
> RH, в то время, назвать корпорацией, даже с большим натягом не получается.
> In 1993, Bob Young incorporated the ACC Corporation
> In 1994, Marc Ewing created his own Linux distribution, which he named Red Hat Linux
> Young bought Ewing's business in 1995, and the two merged to become Red Hat SoftwareRed Hat Software является корпорацией с первых дней своего существования безо всяких натягов. Линукс перестал быть фофаном и стал бизнес-продуктом как раз в районе тех лет, 1992-1993 годы. С середины 90х в него начали вливать бабло в форме человекочасов большие дяди типа NASA. Так уж вышло, что для их числодробилен было дешевле допилить Линукс напильниками, чем тратиться на лицензии для Юниксов. И пошло-поехало. В нулевых на Линуксе уже не только зарабатывали все, кому не лень, но и мегакорпы типа IBM накидывали туда бабло экскаваторами. А после эпичного иска SCO Group стало окончательно ясно, что Линукс — такой же продукт, как MS Windows, AIX, HP-UX и другие. Но у фофанов какая-то альтернативная история, в которой у некоего мифического сообщества гениальных подвальных программистов злые корпы отжали любимую игрушку.
Ага, назло плюсовикам угроблю всё. Было бы интересно, что Линус тех времён сказал бы про Rust. Сегодня он тупо отмалчивается изредко тролля мол для Rust будут задачи, где он точно ничего не сломает. Вам (да и многим другим) не кажется странным, почему именно Rust удостаиваится такой "чести"? Почему не D, не Vala? Vala УЖЕ давно используется в Гноме и абсолютно прозрачен в плане технологий. То есть если не C++ всегда можно было выбрать что-то ещё, но часть сообщества (не самая многочисленная) агрессивно навязывает именно Rust и у РАЗУМНЫХ людей почему-то не складывается обоснованных сомнений на этот счёт.
Чуваки просто в теме секут, в отличие от вас :)
Сипипи это для богоизбранных, которые обфусцируют код и врут, что никто кроме них не напишет лучше.Я бы, если честно, сразу таких выкидывал на помойку и нанимал за те же деньги трёх дотнетчиков или js разработчиков
Это ещё лет пять надо.
Вот когда в младших классах школы начну учить Rust, вот тогда ещё лет через пять IT («оно» в переводе) изменится к лучшему.
Не изменится ровным счетом ничего. От того, что смузихлёбы не умеют работать с памятью и думают, что память
берётся из ниоткуда и уходит в никуда, не изменится ничего. Смузихлёбы должны писать на js и т.п., а системные программисты на Си. Вас же терапевт не оперирует, хотя так же медработник?
Мы все прекрасно видим, как пишут системные погромисты на си... что потом список CVE в новости на экран не влазит.Раст прекрасно учит понимаю работы с памятью.
Компилятор будет тебя бить по рукам до тех пор, пока даже самый тупой птушник не поймет где стек, а где куча, где нужно использовать боксинг, где нужно использовать арк и т.д.
Rust - язык смузихлебов, а диды написали крутые иксы на сишечке.
Если по каждому малозначительному чиху выпускать CVE и орать, что всё пропало. А потом оказывается, что ничего не пропало и уязвимость как конь в вакууме, при определенных условиях и т.д. и т.п.
Вот например use-after-free, программа просто упадет в коредамп и всё. Что там исполниться? Где уязвимость?
Это на каком языке программа упадёт по use-after-free? На C чаще всего ничего не упадёт.
Ну если ваша ОС позволяет исполнять освобожденную память, то это проблемы ОС.
Как классно, что противники раста даже не знают как может быть проэксплуатирована use-after-free. Так победим
вот объясните, как? А то у меня одна прога падает, всё время из-за этого? А я хочу, чтобы работало, не на расте же переписать?
Даже в ARMv8 и микроконтроллерах M33 и старше можно задавать участки памяти, откуда можно исполнять, откуда нет, и чему откуда можно читать.
Не надо путать W^X и use-after-free. Это совершенно разные вещи.
Если маркетологи вбили в головы, что use-after-free ой как страшно и не безопасно.
Это не значит, что всё так страшно.
И пусть растаманы напишут сперва ОС на своём языке без unsafe блоков, потом можно говорить о чём то.
> Даже в ARMv8 и микроконтроллерах M33 и старше можно задавать участки памяти,
> откуда можно исполнять, откуда нет, и чему откуда можно читать.А в системах с MMU это можно еще аж с 80386 ископаемого. Но вот только с точностью до страницы, права еще и хранить надо. А как тебе перспективка на 20 байнтую фигню по 4 кило выделять? И через сколько у тебя память закончится? А более гранулярно - окей, а права где хранить и кто это в таком объеме лопатить будет? У кортексов M вообще MPU обычно - даже не MMU, ну и регионов там полторы штуки на все. Много ты там назащщаешь? Для фирмвари условного тетриса - сойдет, но мы ж про штуку с ядро линя размером, а там еще задачи всякие, в количестве когда PID 32-битным стал ажно...
> как?Очевидно, нет универсального способа. Но анализируя код можно найти способ заалоцировать новую память, которая наложится на старую. И последующими манипуляциями можно записать данные, которые затем считаются как корректные в месте, где у вас use-after-free.
Если программа упадёт, то это уязвимость от атак на отказ в обслуживании.
> Мы все прекрасно видим, как пишут системные погромисты на си... что потом
> список CVE в новости на экран не влазит.
> Раст прекрасно учит понимаю работы с памятью.
> Компилятор будет тебя бить по рукам до тех пор, пока даже самый
> тупой птушник не поймет где стек, а где куча, где нужно
> использовать боксинг, где нужно использовать арк и т.д.Ну да, ну да, а потом уязвимости в карго. И эти люди учат компилятор что нужно по рукам бить птушников.
>Раст прекрасно учит понимаю работы с памятью.
>Компилятор будет тебя бить по рукам до тех пор,А вот здесь компилятор почему не помог? Кто будет учить ПТУшников?
https://github.com/rust-lang/rust/issues/108453
А что паскаль?
Паскаль должен юзаться в драйверах, потому что этот язык диды писали.
Раст надо переписать на паскале, чтобы раст был ещё лучше и безопаснее
А ещё сишечку надо переписать на COBOL, потому что его писали ещё более крутые и старшие диды.
более крутые и старшие - да.
но вот начсет дидов - не все так однозначно.
Не диды, а один конкретный дид.
Никогданибудь
типичный диагноз: ожидание, что вот когда будет X, тогда будет хорошо, надо бороться с Z
Никогда в школах не начнут учить Rust. Слишком сложно для никогда до этого невидиших программление.
Вы недооцениваете "таланты" министерств образования по всему миру. Python же протащили, некоторые даже с этого кайфуют (потому что он простой, аргумент просто железный), хотя это ужаснейший язык именно для обучения программированию.
это какой-то позор.
Полноценный графический драйвер в 400 сток кода это позор? А что тогда не позор? Миллиардострочный хелловорлд на си и джаваскрипте с Meson-ом?
Хелло ворд на js пишется в одну строчку.
console.log("hello world 🌎");
Набрать это сможет даже опеннет эксперт
Вот спасибо! Это ещё же протестировать на баги надо!
Юнит-тест напиши
> Юнит-тест напишиТак, блин, а где проект и архитектура?! И документацию не написали, между прочим.
А теперь запусти это без рантайма.
а разве сейчас можно без node_modules? += 200мб и 20000 файлов.
справедливости ради, это ещё и типичное средство отладки, всё в одной строке
> Полноценный графический драйвер в 400 сток кода это позор?
>> предоставляет не привязанный к оборудованию бэкенд GEM (Graphics Execution Manager), используемый для разделяемого доступа к буферам драйверовпонятно...
> Полноценный графический драйвер в 400 сток кода это позор? А что тогда
> не позор? Миллиардострочный хелловорлд на си и джаваскрипте с Meson-ом?Позор расту что это язык переписывальщиков для переписывания.
Конечно, утилиту на 400 строк нужно срочно переписать (чем и занимаются 99% проектов на раст представляя очередной grep, htop, ls без "фатальных" недостатков)
Драйвер в 400 строк кода говорит только об одном - раньше силовикам было ух как сложно впендюривать в различные опенсоурс проекты закладки, в драйвера, в софт. А сейчас будет один rust runtime! В исходниках одно - в бинарном коде другое. И хрен там кто проверять будет соотвествие.
> было ух как сложно впендюривать закладкиЭто шутка такая? Что там сложного? Пропустил пару проверок на null.
Или не проверил длину входящих данных и вышел за пределы буфера.И готово. Никто не заметит, а если и заметят - "а чё такова, это обычная бажина, тысячи их"
Вот угадай что из этого https://www.opennet.dev/opennews/art.shtml?num=58622 сделали случайно, а что для того чтобы утекали пароли на специально подготовленных данных для специально обученных людей?
>за исключением vgem_slow
>Rust - быстрый- говорили они.
А причем тут скорость О_о
Это расширенный тест ("Extended sanity check" в оригинале), поэтому сам тест медленный.
Там две группы тестов - vgem_basic и vgem_slow. А не потому что раст медленный.
Победное шествие раста поражает. После того, как перепишут llvm на раст, нужда в архаике типа C/C++ отпадет естественным путем, как отпадает пуповина после ее перерезания.
Смотрите, смотрите, тролль такой толстый, что пуповина развязалась
LLVM собрались переписывать на Rust, серьёзно? Релиз хоть в 2043 ожидается?
>отпадает пуповиналол. пользователь раста в одном словосочетании.
Новость-предостережение? Ок, мессадж принят.
Что, будешь сам переписывать обратно на Си, или заморозишь Си версию, если это драйвер понадобится?
> Что, будешь сам переписывать обратно на Си, или заморозишь Си версию, если это драйвер понадобится?То что переписали - это не значит, что приняли в Ядро. На данный момент там есть условие, что или проект должен быть оригинальным, или предоставлять какой-либо существенный бонус. Как раз при включении в ядро есть защита от переписывальщиков.
Обязательные проверки компилятором обеспечат хоть какую-то стабильную работу. Кому от этого плохо? Кроме разве что самодовольных экспертов по Си, не написавших ничего сложнее хелло ворд
Разработчица этого драйвера:
https://github.com/mairacanal
Из ее блога ( mairacanal.github.io/about/ ):
5. My favorite program language is C++ (tied with C).6. I'm currently learning Rust.
7. I don't like to code in Python and Java.
8. I really like to program in Assembly (especially, x86, ARM, and MIPS).
Так что вменяемые плюсовики и/или сишники ничего против раста не имеют, а наоборот исследуют его.
8. Это больше из разряда мечтаний.
Сейчас единицы программируют на ассемблере. И на нем нереально написать что-то большое.
она написала, что любит, мне тоже нравилось когда-то, оно не сложно, просто ненаглядно
Реально. Все приставочные игры 90-х на ассемблере написаны - большие и сложные.
> 8. Это больше из разряда мечтаний.
> Сейчас единицы программируют на ассемблере. И на нем нереально написать что-то большое.http://www.kolibrios.org/en/screen.htm
Вот кстати я бы против Rust абсолютно ничего не имела, если бы он не лез с ядро. И причины здесь даже не в технологиях и безопасности, а чисто политические - вендорлок, от ограниченной группы компаний. Кое как эту ситуацию разруливает реализация Rust на gcc, не знаю в каком состоянии сейчас и какая версия, но важно то, что Rust по сути не внося ничего концептуально нового, создаёт странный хайп и при этом не создаётся ничего нового. Мне как-то потребовался Flash Player, я слышала что как раз на Rust была крутая свободная реализация, на деле - это недоделанная хрень, которая даже не поддерживает AS3.0 и по сути очередня академическая поделка, а не реальный проект и вот так у Rust во всём.
Очень странные претензии.> чисто политические - вендорлок
... это приколоченное ядро к gcc и gnu c extention и тысячи потраченных человекочасов, чтобы его можно было собрать еще хоть чем-то.
> по сути не внося ничего концептуально нового
Идея заимствования и владения первый раз применена на уровне языка. По крайней мере из популярных языков, а не всякой эзотерики.
> по сути очередня академическая поделка
Надо же. А мужики-то и не знают! (с)
Но через эту "недоделанную хрень" запускается большая часть (если не все) флешевые игры на Newgrounds, Armor Games, Kongregate и т.д. И у них оно работает.Сам Ruffle изначально создавался как раз для сохранения цифрового наследия. И поддержка что AS3.0, что предыдущих версий делалась именно с упором на эту цель. И реализовывается вначале то, что необходимо именно для игр/роликов.
Сейчас заявлено, что AS3 Language реализован на 60%, а AS3 API на 25%. И вполне может оказаться, что этого достаточно для поставленных целей и остальное будет реализовываться только если найдутся заинтересованные (чего скорее всего не произойдет).
Или вы думали что за пять лет они реализуют все что Macromedia и Adobe нафигачили c 96 года?
Паскаль очень хороший язык, нет не взлетел.
При разработке Java например вдохновлялись Паскалем и его наследниками.
Сильно вдохновились, аж {} применили.
Скобки это самая главная часть языка, не иначе
Но очень показательная от чего derived.
если вы не пишите ничего сложнее одной функции с hello world то да.
Пруфы будут? Особенно про всем известных наследников Паскаля (которых аж целый Дельфи).
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1155Ответ профессора Вирта
"Нет, конечно, нет. Мы всегда следовали принципу Open Source. Компания Sun, как и другие, купила исходные коды. За очень недорого, кстати. Они очень серьезно исследовали этот код, я знаю это. Через семь лет после выхода ОБЕРНА они выпустили Java. В Java заимствовано несколько идей из ОБЕРОНА, но они коррумпировали его синтаксисом языка "С". С точки зрения продавцов это был достаточно умный ход".
Внезапно куча пруфов в ссылках вики
https://en.wikipedia.org/wiki/Java_%28programming_langu...Внезапно^ modula-2, modula-3, oberon, object pascal и еще варианты паскаля это всё его наследники. А не только delphi
В тех книжках в которых я читала по турбопаскаль и делфи, всегда говорилось что у паскаля наследники modula, oberon и object pascal. Подробности не говорили, о том что Вирту не нравился object pascal и delphi но историю языка рассказывали.
Книжки эти до сих пор у родителей дома лежат, хотя 17 лет прошло.
Это не пруф, это просто озвучено другим человеком, пусть и авторитетным. И аж 2 ссылки, из которых одна со словом Oberon, а другая со словом Modula, это не куча.
На самом деле Вирт действительно опередил своё время. В допотопных книгах по Оберону есть вполне свежие идеи. Единственное с чем можно поспорить - это синтаксис, мне Сишный больше нравится, но это не принципиальный вопрос и вкусовщина.
400 строк ? ;)
И в этом смехотворном объёме кода были ошибки работы с памятью, причем не устранимые ничем, кроме как переписанием?
Извечных ошибок нет. Неизвестные, может и есть, а может и нет. Нужно сделать чтобы точно небыло.
Этого никто не утверждает, что были ошибки работы с памятью. Скорее разработчица этого драйвера делает себе резюме, выше есть ссылка на профиль.
Тем не менее, "потребовалось создание новых привязок [... с] типом XArray и абстракциями, связанными с прямым доступом к памяти, такими как DMA-барьеры (DMA fence)."
Уже польза, будет использоваться в более сложных драйверах.
> Уже пользаНе смущает, что автором сказано, что после переписания драйвер стал нерабочим, а только смог слегка запускаться?
Абсолютно не смущает.
Работа еще в процесс, оно проходит все тесты кроме двух из 12ти, причем для них указана причина (https://mairacanal.github.io/rust-for-vgem/#next-steps) и их исправление указано как следующий шаг.
Работы там еще много, сам автор пишет "So, there is a lot of work yet to be done!"Когда представили предыдущий драйвер для GPIO - было куча нытья "он же почти ничего не делает"
Когда сделали драйвер для М1 - было нытье "Эппл нинужно"
Сейчас "представили" (хотя непонятно зачем сюда притащили новость о незаконченном драйвере) - нытье про то что тут всего 400 строк и не проходят два теста. Ну и не считая стандартного "ничитабельно", "корпорасты", "автор-транс" и тд
Именно представление недописанного "hello world", как новости - и вызывает бурления.Но оно и в самом деле не читабельно.
Оригинальные исходники выглядят стройными, красивыми, лаконичными, всё просто и понятно.
А в Rust исходниках.. не сказать что чорт ногу сломит, ибо не велики они, но читаемость низкая.
> представление недописанного "hello world", как новостиА вот и нет. Такие бурления идут в каждой новости где хоть как-то упоминается раст - выход новой версии, интуль написал на нем прошивку, прогресс в добавлении в ядро - тема не важна, главное потоки хейта)
> стройными, красивыми, лаконичными, всё просто и понятно.
это просто синдром утенка - привыкли к сишечке, остально как китайская грамота
что что, а назвать из красивыми точно не получается
Если бы вы знали Rust также, как Си, то читаемость была бы высокая )
Однако там действительно есть не идеоматичные трудночитаемые места, которые нужно упростить. Например это:Лучше записать так:
match resv.add_fences(fence.deref(), 1, usage) {
Ok(_) => match file.fences.alloc(Some(Box::try_new(Some(fence))?)) {
Ok(id) => data.out_fence = id as u32,
Err(_) => {}
},
Err(_) => {
fence.signal()?;
}
}
if resv.add_fences(fence.deref(), 1, usage).is_ok() {
if let Ok(id) = match file.fences.alloc(Some(Box::try_new(Some(fence))?)) {
data.out_fence = id as u32;
}
} else {
fence.signal()?;
}
> Если бы вы знали Rust также, как Си, то читаемость была быДа. Так лучше.
Но, как доходит до практического кода, то если "в лоб" переписать, то такая гадость получается.
А если переосмысливать, то и при переписывании с Си на Си конфетка будет ;)
Приходилось переписывать с Паскаля на С и С#, знаю.
Такое clippy по идее должен фиксить
400 строк это как минимум в 400 раз больше чем написал эксперт по Си с опеннет
Да, это действительно событие. Оказалось возможным написать на Расте целых 400 строк рабочего кода для ядра.
Не работающего в варианте на Rust! Вот в чем событие. ;)
А только запускающегося и частично функционирующего, в блоге ж сказано об этом.В в этом и вопрос. Вроде бы тупо переписали, обложили unsafe блоками и обёртками. Что же могло пойти не так?
Как будто Си альфа версия этого драйвера работала идеально. Даже на 400 строках могут быть ошибки, и они наверняка были в ориг. драйвере в начале. Почему из каждого малейшего rust события пишутся новости? Это другой вопрос.
Потом что других нет, зачем вообще такое спрашивать это же самоочевидно.
> Как будто Си альфа версия этого драйвера работала идеально.Скорее всего работал сразу.
Вообще то, в оригинале более половины объёма исходника занимает стандартный шаблон драйвера. Который меняется при измении модели драйвера в ядре, или при использовании новых функций, но всё равно остаётся типовым
фрагментом кода.На собственно функционал приходится совсем мало мало кода. И вот это "мало мало" привели в нечитаемый вид (исходник то смотрели?) и в итоге оно не портировалось.
Впрочем.. справедливости ради, автор и преследовал ни улучшение кода, ни повышение надёжности, а все лишь изучает Rust.
А маразм в том, что недописанный "hello world" преподнесли как новость.
Ну посмотрели мы исходники. И где там нечитабельно?
Если вы неосилятор и не можете в раст, то это проблема раста? Нет, это ваша личная проблема.
Если раст как и брейнфак не предназначен для чтения это проблема языка или читателя? Конечно же языка. Мог бы быть и более ридфрендли.
Вам надо erlang посмотреть на котором куча народу программирует.
>>И где там нечитабельно?Своё не пахнет?
Не читаемые исходники - это не то что их невозможно прочитать или понять, а то что они именно загажены лишним и отвлекающим. И в итоге продукт для мух.
>представила проект по переписываниюСлово "переписывание" ключевое в теме про Rust.
они даже 400 строк написать не могут, нужен образец для переписывания.
Целых 400 строк кода.
Вот он - уровень мегаг'rust'и.
Зато в этих 400 строках будет безопастно.
Люблю хруст&self.timer as *const _ as *mut _
Писатели явно не читатели
Зато могут!
Это же ub?
Безопастно - это без пасти?
Можно было автоматическую переписывалку сделать - делов-то. Этим бы новость началась и закончилась. Как раньше с Фортрана на Си.
Ты ещё скажи с Си на ассемблер переписать. Ой так компилятор Си как раз этим уже и занимается.
У меня ощущение, что пик популярности раста уже прошёл. Печально, скорее всего не взлетело как раз из-за карго и статической типизации.
>статической типизации.статической линковки, конечно же
Конечно прошёл. Сейчас васянам нельзя показать что они 7 лет его не замечали, поэтому начинают дружно кукарекать.
Ну так перестань кукарекать. Это несложно.
Уже на подходе куча технологий и языков заменителей без проблем которые не решаются в расте.
В том и дело что "на подходе". Чем дальше тем сильно сложнее, конкуренция
Да, и какие?
Делаем консольное приложение на RUST с hello word, делаем окно под винды asm выводим туда строку hellowold, смотрим разницу в объеме исполняемого файла-))))
Жаль только, что за размер бинарей hello world денег не платят, тогда ассемблерщики в золоте ходили бы.
Вот так раст и выходит "крутым" у любителей - через сравнение консольного и десктоп приложения.
Может оно и к лучшему, что скоро искуственные нейросети начнут код генерить судя по обсуждению под новостью.
А по поводу раста - ну подсадят вас корпы на этот язык, дав в качестве леденца некоторое упрощение в решении части проблем программирования. А потом включат телеметрию(например) как в го. И никуда вы не денетесь с этой подводной лодки. Всё-таки не комитет стандартизации над языком работает, а клуб по-интересам конкретных компаний.
В любом случае, надо быть готовым к тому, что языки программирования будут продолжать развиваться и меняться. Хорошо, если разработчики успевают за этими изменениями и учатся новому. Но все же важно помнить, что в конечном итоге важно не язык, а то, что вы можете сделать с его помощью.Несмотря на все изменения, основные принципы программирования остаются неизменными. Важно не только знать язык программирования, но и уметь применять его для решения задач. Поэтому, хорошо знать основы программирования и уметь применять их на практике - это важно независимо от языка программирования.
Важно помнить, что язык программирования - это всего лишь инструмент для решения задач. Поэтому, важно уметь выбирать язык программирования в зависимости от поставленных задач и иметь базовые знания в нескольких языках. Также не стоит забывать, что программирование - это постоянное обучение и развитие, и важно быть готовым к изменениям и новым вызовам.
Мало написал про программирование, инструменты и языки.
Ты как обычно за слоганами и намерениями не видишь реализацию. Ты полностью наполнен маркетингом. Тебя очень легко обмануть. Почему никто нормальные люди не подметают дороги ломом или прутиком, это же гораздо безопаснее метлы или машины для очистки дорог. Хотя люди которые исповедуют чистку дорог ломами и прутиками тебе скажут любые слова, которые тебе понравятся.
Потому что есть объективные метрики удобности инструментов для конкретных задач - сколько нужно времени на разработку, отладку, ввод в эксплуатацию, стоимость поддержки. Сюда же стоимость обучения и ее кривая и ещё куча всего. На основе чего будет очевидно что подметать ломами невыгодно бизнесу. Эволюция неизбежна. В языках, инструментах с технологиями это также не остановить. Кому-то к счастью, кому-то к сожалению.
Ладно, прислушаюсь к себе, вдруг правда так делаю. Но это я ИИ скопипастил.
Если что я против подметания дорог ломом и развития власти за счёт осуждения и слов, которые мне часто приятно слышать.
Т.е. написание врапера с биндингами это теперь проект и новостной повод? Ммм-окей.
Always has been (для раста)
Девушки не пишут драйвера, вот в чём беда. Потому что это дело настоящих мужчин, как говорил Линус Торвальдс.
Товальдс говори “Talk is cheap. Show me the code.”
Абсолютно пофиг кто с той стороны монитора, если код работает.
На словах ты Лев Толстой (с)
Все, сейчас переписаный lvmpipe будет rtx 4090 рвать в 4K.
> на языке Rust. VGEM включает около 400 строкПереписать 400 строк? Это геройский поступок! За сколько лет планируют это сделать?
Думаю, что может поломаться
> по переписываниюмогли не уточнять, раст же