The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Компания Mozilla передала движок Servo организации Linux Foundation, opennews (??), 17-Ноя-20, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


70. "Компания Mozilla передала движок Servo организации Linux Fou..."  +/
Сообщение от Ordu (ok), 18-Ноя-20, 00:55 
> Ну отлично. Теперь проблемы проектирования и проблемы архитектуры поклонники карго-культа
> сваливают на язык. Мол, сишечка такая плохая и ужасная, а мы
> такие хорошие и идеальные. Вот перепишем-то, безопасности будет - жопой жуй!

Напомнили тут, про замечательный горящий пердак:

All in all, I believe this proves that software developers as a whole
and as a culture produce worse results than drug addicted butt fucked
monkeys randomly hacking on typewriters while inhaling the fumes of a
radioactive dumpster fire fueled by chinese platsic toys for children
and Elton John/Justin Bieber crossover CDs for all eternity.[1]

Это самая смешная часть того tl;dr, в остальных частях концентрация йумора существенно ниже, одни ругательства. Но я всё же рекомендую почитать тот пост целиком, чтобы лучше понять откуда берётся идея "сишечка такая плохая и ужасная". Да, наверное, врождённые уродства, пропитывающие libc сверху-донизу, -- это не вина C, но как-то так выходит, что избавить себя от взаимодействия с этими уродствами, не избавившись от C не удаётся. Может потому что C официально включает libc в стандарты на язык?

[1] https://github.com/mpv-player/mpv/commit/1e70e82baa9193f6f02...

Ответить | Правка | К родителю #23 | Наверх | Cообщить модератору

73. "Компания Mozilla передала движок Servo организации Linux Fou..."  +/
Сообщение от Ivan_83 (ok), 18-Ноя-20, 01:04 
Есть нюанс.
Кода и библиотек на С написаны тонны, а вот таких проблем не много и в целом их можно избежать.
А ржавчина всё ещё бесполезна и фактически занимается тем что тормозит развитие софта и разрушает сообщество.
Ответить | Правка | Наверх | Cообщить модератору

90. "Компания Mozilla передала движок Servo организации Linux Fou..."  –2 +/
Сообщение от Ordu (ok), 18-Ноя-20, 03:30 
> Кода и библиотек на С написаны тонны, а вот таких проблем не
> много и в целом их можно избежать.

В том-то и дело, что их настолько много, что избежать их в целом можно только отказавшись от использования библиотек, писанных на C.

> разрушает сообщество.

Да и хрен с ним, не сообщество и было.

Ответить | Правка | Наверх | Cообщить модератору

179. "Компания Mozilla передала движок Servo организации Linux Fou..."  +/
Сообщение от Ivan_83 (ok), 19-Ноя-20, 02:01 
Знаете, я вот не ни разу на какие либо проблемы не натыкался, подобные той что в ссылке. За, ну пусть будет 15 лет или 10.

При этом я согласен с тем, что есть куча старых либ, лежащих в фундаменте индустрии, которые неплохо бы причесать.
Но, поскольку они очень много где используются там уже не получится сделать радикальных изменений за пол года, это может обрушить слишком много.

Подход растоманов заключается в том, чтобы всё переписать на расте, ну или писать новое.
Но смысла в этом нет, через 10-20 лет ситуация будет ровно той же самой, ознако за счёт того что языков станет два и они не сильно похожи, всё будет ещё хуже.

Честно, я не вижу никаких принципиальных проблем в С.
Есть проблемы с отдельными либами, иногда с какими то частями стандарта посикс.
Точно так же я не вижу приемуществ раста:
- тяжёлая зависимость
- другой синтаксис
- он не способен заменить С полностью
Итого я получаю ещё как минимум одну проблему которую нужно будет решать.

Ответить | Правка | Наверх | Cообщить модератору

182. "Компания Mozilla передала движок Servo организации Linux Fou..."  +/
Сообщение от Ordu (ok), 19-Ноя-20, 10:46 
> Знаете, я вот не ни разу на какие либо проблемы не натыкался,
> подобные той что в ссылке. За, ну пусть будет 15 лет
> или 10.

Я постоянно натыкаюсь. То блин кому-то пришла гениальная идея принять указатель на функцию, а в качестве данных прокидываемых ей, предложить мне положить int -- ну как я через int прокину указатель? То кто-то решил напилить макросов обёрток, и всё, что я думал функциями, оказывается макросами -- указатель на них не взять, только выкидывать и писать свои обёртки: static inline функции на что вообще даны?

> При этом я согласен с тем, что есть куча старых либ, лежащих
> в фундаменте индустрии, которые неплохо бы причесать.
> Но, поскольку они очень много где используются там уже не получится сделать
> радикальных изменений за пол года, это может обрушить слишком много.

Да, поэтому не надо менять ничего. Я потерял надежду на "причесать", это никогда не случится.

> Подход растоманов заключается в том, чтобы всё переписать на расте, ну или
> писать новое.
> Но смысла в этом нет, через 10-20 лет ситуация будет ровно той
> же самой, ознако за счёт того что языков станет два и
> они не сильно похожи, всё будет ещё хуже.

Эмм... То что языки не похожи -- это смотря как сказать. rust достаточно похож на C, чтобы дёргать C'шные функции и использовать C'шные типы без каких-либо проблем. А проблемы C с использованием rust'овых функций и типов -- это проблемы C. Мне на них стало фиолетово после появления rust'а.

> Точно так же я не вижу приемуществ раста:
> - тяжёлая зависимость

Что значит тяжёлая зависимость? В рантайме раст не тяжелее C. А для компиляции, знаешь, C тоже не пёрышко. Попробуй собрать gcc или clang.

> - другой синтаксис

Отлично превосходно.

> - он не способен заменить С полностью

Это миф распространяемый C-программистами, которые не удосужились посмотреть на rust повнимательнее.

> Итого я получаю ещё как минимум одну проблему которую нужно будет решать.

Я тоже вижу одну проблему -- надо дождаться когда все старпёры умрут от старости.

Ответить | Правка | Наверх | Cообщить модератору

192. "Компания Mozilla передала движок Servo организации Linux Fou..."  +/
Сообщение от Ivan_83 (ok), 19-Ноя-20, 20:17 
> Я постоянно натыкаюсь. То блин кому-то пришла гениальная идея принять указатель на функцию, а в
> качестве данных прокидываемых ей, предложить мне положить int -- ну как я через int прокину
> указатель? То кто-то решил напилить макросов обёрток, и всё, что я думал функциями, оказывается
> макросами -- указатель на них не взять, только выкидывать и писать свои обёртки: static inline
> функции на что вообще даны?

Это какие то очень частные проблемы.
Наиболее близко я припоминаю как я страдал от того что в epoll к событию можно приатачить только один int/uint64_t, те одновременно и дескриптор и указатель на ассоцированные данные не пропихнуть.
В итоге пришёл к выводу что проще аллоцировать глобальный массив указателей, а дескриптор сокета юзать как индекс в этом массиве.
Может вам пригодится.

> Что значит тяжёлая зависимость? В рантайме раст не тяжелее C. А для компиляции, знаешь, C тоже
> не пёрышко. Попробуй собрать gcc или clang.

Дело в том, что rust собирается очень долго, сам компилятор.
И компилирует он тоже очень медленно.
И ccache его не понимает и аналогов...впрочем я не искал.
Компилятор С у меня и так в системе есть.
Впрочем, было бы сильно легче, если бы раст встроили в шланг и он собирался где то с С компилятором сразу.

> А проблемы C с использованием rust'овых функций и типов -- это проблемы C. Мне на них стало
> фиолетово после появления rust'а.

Вот придурки с гнома втащили раст в svg либу, теперь сами её и поддерживайте.
Оставь свою почту и телефон, когда она сломается - я тебя дёрну чтобы ты починил по быстрому. )

> Я тоже вижу одну проблему -- надо дождаться когда все старпёры умрут от старости.

Это никогда не помогает.

Ответить | Правка | Наверх | Cообщить модератору

193. "Компания Mozilla передала движок Servo организации Linux Fou..."  +/
Сообщение от Ordu (ok), 19-Ноя-20, 20:55 
> Это какие то очень частные проблемы.

Но они _везде_.

> Может вам пригодится.

Надеюсь что не пригодится. В расте для этих целей есть замыкания, то есть приаттачить к функции произвольные данные и получить callable объект -- это раз плюнуть.

>> Что значит тяжёлая зависимость? В рантайме раст не тяжелее C. А для компиляции, знаешь, C тоже
>> не пёрышко. Попробуй собрать gcc или clang.
> Дело в том, что rust собирается очень долго, сам компилятор.

Попробуй собрать gcc или clang.

> И компилирует он тоже очень медленно.

Это да. Но ведь именно благодаря этому можно получать бонусы rust'а. Скажем, как ещё получить инференцию типов, кроме как заставить компилятор её обсчитывать? Зато можно положить к чертям компилятор рекурсивными типами. :D Чувак по ссылке[1] описывает что такое комбинаторы парсеров, и как они позволяют выстраивать очень быстрые парсеры, которые при этом имеют описание грамматики вменяемой читаемости. Чтобы объяснить, он комбинирует парсеры, комбинирует, комбинирует... И в один прекрасный момент его система ложится при компиляции, потому как типы оказываются вообще ппц. Он там выкручивается путём принесения рантайм производительности в жертву возможности скомпилировать код, и переходит к использованию impl, то есть к использованию vtable.

Но, я к чему, время компиляции действительно большое, но если понимать зачем оно такое, то особо из-за этого не переживаешь.

> И ccache его не понимает и аналогов...впрочем я не искал.

В режиме debug cargo пересобирает быстро. Если им ставить софт, то конечно бесит то, что он собирает все пакеты на каждую утилиту, и пересобирает их для каждой. Но это, я думаю, временное явление. Сейчас rust'овый софт не включают в дистры, и пока это не является проблемой, никто не будет её решать.

> Впрочем, было бы сильно легче, если бы раст встроили в шланг и
> он собирался где то с С компилятором сразу.

Это ещё зачем? Было бы сильно легче, если бы они научились пользоваться системно-установленным llvm, чтобы не надо было бы его пересобирать. Если бы они пользовались бы системно установленным rust'ом, тоже было бы круто. Впрочем, мне кажется, что это проблемы не столько rust'а, сколько гентушных ебилдов. Сложно сказать что там сейчас -- я прекратил ставить раст системно, проще rustup'ом тулчейны втягивать, и управлять ими через rustup и cargo, чем пилить ебилды.

А собирать rust вместе с clang -- зачем? Может ещё заодно собрать c++, fortran и все остальные языки, к которым есть фронтенд для llvm?

> Вот придурки с гнома втащили раст в svg либу, теперь сами её
> и поддерживайте.
> Оставь свою почту и телефон, когда она сломается - я тебя дёрну
> чтобы ты починил по быстрому. )

Я-то здесь при чём? Та либа скорее всего на github'е хостится, сходи туда и отпиши в issues.

>> Я тоже вижу одну проблему -- надо дождаться когда все старпёры умрут от старости.
> Это никогда не помогает.

Ты к тому, что когда умирают одни старпёры, другие уже пропитались их старпёрством настолько, что опять хрен, что изменишь? Может быть, но если это так, то это ультимативная причина забить на C, и мигрировать на rust: вокруг rust сейчас сообщество без старпёров.

upd. Ссылку забыл

[1] https://bodil.lol/parser-combinators/

Ответить | Правка | Наверх | Cообщить модератору

199. "Компания Mozilla передала движок Servo организации Linux Fou..."  +/
Сообщение от Ivan_83 (ok), 20-Ноя-20, 07:36 
> Но они _везде_.

Я как то не встречался.

> Попробуй собрать gcc или clang.

Регулярно собюираю.
Только вот шланг - это часть системы либо зависимость меса, те мастхэв.
А раст кажется даже дольше собирается, и нужен только для фаирфокса и svg от гнома.

> Скажем, как ещё получить инференцию типов, кроме как заставить компилятор её обсчитывать?

Не знаю что это такое.
А история про компиляторы/парсеры - это из области извращений, ибо чувак не практическую задачу решает а страдаёт фигнёй.

> Это ещё зачем? Было бы сильно легче, если бы они научились пользоваться системно-установленным llvm, чтобы не надо было бы его пересобирать.

Да, как то так.
Я бы пожалуй перестал ворчать и замечать раст вообще после этого, типа пофиг на фриков - не мешаются.
А пока этого нет - дико бесят своими поделками.

> Ты к тому, что когда умирают одни старпёры, другие уже пропитались их старпёрством настолько,
> что опять хрен, что изменишь? Может быть, но если это так, то это ультимативная причина забить
> на C, и мигрировать на rust: вокруг rust сейчас сообщество без старпёров.

Предлагаю посмотреть на вейланд и то насколько трудно оно заходит.
Инерция очень большая, потому что очень много всего на хорг завязано.

Кроме того, когда растоманы обрастут нужным софтом, у них тоже начнутся проблемы.
Это пока всё мизерное, легко переписать а кой чего и ваще не вылезает.

Ну и я тоже люблю старое выкинуть, новое сделать. Но часто вылезает что в старом были какие то костыли, которые работали и про которые забыли, и без которых никак низя.
И вот приходится опять проходить по граблям.
А если взглянуть со стороны то получается хождение кругами.

Ответить | Правка | Наверх | Cообщить модератору

194. "Компания Mozilla передала движок Servo организации Linux Fou..."  +/
Сообщение от Аноним84701 (ok), 19-Ноя-20, 21:01 
> Вот придурки с гнома втащили раст в svg либу, теперь сами её и поддерживайте.

Вообще-то, емнип, librsvg была _несколько лет_ без ментейнера.
Потом нашелся  тот, кто решил поддерживать и развивать  (ну да, на удобном ему ЯП) и сразу началось -- "караул, беда! Пропал калабуховский дом!", как будто критикующим кто-то мешает взять и поддерживать/развивать старый проект на Ъ-сишке 🙄

Ответить | Правка | К родителю #192 | Наверх | Cообщить модератору

198. "Компания Mozilla передала движок Servo организации Linux Fou..."  +/
Сообщение от uis (ok), 20-Ноя-20, 03:01 
> Я постоянно натыкаюсь. То блин кому-то пришла гениальная идея принять указатель на
> функцию, а в качестве данных прокидываемых ей, предложить мне положить int

Охх. Я и не такой говнокод видел. Индусы, они такие.
Обычно на такое статический анализатор в компиляторе сразу ругается.

> -- указатель на них не взять, только выкидывать и писать свои
> обёртки: static inline функции на что вообще даны?

Я кстати не уверен в определённости поведения static inline.

>> Точно так же я не вижу приемуществ раста:
>> - тяжёлая зависимость
> Что значит тяжёлая зависимость? В рантайме раст не тяжелее C. А для
> компиляции, знаешь, C тоже не пёрышко. Попробуй собрать gcc или clang.

Собирал. Раст отжирает гигов диска при сборке 10, а gcc целиком только 3-4(без lto и pgo). А ведь раст - только фронтэнд для llvm. Его уместно сравнивать даже не с gcc, а с clang(именно шланг, а не llvm).
Ну и шлангу надо вроде пол гига. Точно не помню, но меньше двух гигов.

> Я тоже вижу одну проблему -- надо дождаться когда все старпёры умрут
> от старости.

Когда умрут старые, на их место придут новые.

Ответить | Правка | К родителю #182 | Наверх | Cообщить модератору

124. "Компания Mozilla передала движок Servo организации Linux Fou..."  +/
Сообщение от Аноним (123), 18-Ноя-20, 11:13 
> А ржавчина всё ещё бесполезна и фактически занимается тем что тормозит развитие софта и разрушает сообщество

Што? C на фоне Раста какое-то непотребство без возможностей.
На нем пишут до сих пор только из-за тотального вендорлока, увы.

Ответить | Правка | К родителю #73 | Наверх | Cообщить модератору

146. "Компания Mozilla передала движок Servo организации Linux Fou..."  +1 +/
Сообщение от Аноним (118), 18-Ноя-20, 14:04 
Интересно, продолжайте, это какой же вендор залочил всех на C?
Ответить | Правка | Наверх | Cообщить модератору

167. "Компания Mozilla передала движок Servo организации Linux Fou..."  +2 +/
Сообщение от Аноним (123), 18-Ноя-20, 17:09 
Многие железки идут с определенными тулзами от производителя. Сам Линукс в конце концов)
Ответить | Правка | Наверх | Cообщить модератору

161. "Компания Mozilla передала движок Servo организации Linux Fou..."  +2 +/
Сообщение от n00by (ok), 18-Ноя-20, 16:22 
> Может
> потому что C официально включает libc в стандарты на язык?

Официально не совсем включает:

The two forms of conforming implementation are hosted and freestanding. A conforming
hosted implementation shall accept any strictly conforming program. A conforming
freestanding implementation shall accept any strictly conforming program in which the
use of the features specified in the library clause (clause 7) is confined to the contents of
the standard headers <float.h>, <iso646.h>, <limits.h>, <stdalign.h>, <stdarg.h>, <stdbool.h>,
<stddef.h>, <stdint.h>, and <stdnoreturn.h>.

Ответить | Правка | К родителю #70 | Наверх | Cообщить модератору

197. "Компания Mozilla передала движок Servo организации Linux Fou..."  +/
Сообщение от uis (ok), 20-Ноя-20, 02:46 
> ужасная". Да, наверное, врождённые уродства, пропитывающие libc сверху-донизу, -- это
> не вина C, но как-то так выходит, что избавить себя от
> взаимодействия с этими уродствами, не избавившись от C не удаётся.
> [1] https://github.com/mpv-player/mpv/commit/1e70e82baa9193f6f02...

Я прочитал. Это не проблема языка. Это та-же проблема, что и постигла жабу и c++. И rust она постигнет. Это любители legacy кода в комитете и прочего "ынтырпрайза". Вон, в c++ такие люди не дают сломать ABI. В языке, который позиционирует себя "безопасным" это наступит ещё раньше.

Ответить | Правка | К родителю #70 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру