The OpenNET Project / Index page

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



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

Оглавление

Линус Торвальдс о проблемах с поиском мэйнтейнеров, Rust и рабочих процессах, opennews (??), 06-Июл-20, (0) [смотреть все]

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


105. "Линус Торвальдс о проблемах с поиском мэйнтейнеров, Rust и р..."  +4 +/
Сообщение от Аноним (105), 06-Июл-20, 15:14 
Все люди разные, даже хотя бы по синтаксису, кому-то Rust нравится, кому-то C, так что при свободе выбора C будет существовать всегда, просто потому что он уже есть.

Компании конечно могут препятствовать и затруднять использование какого-либо языка на своей платформе, как google например, но тут мы уже переходим больше к гаданию будет ли вообще в 2030 году свободные платформы, будет ли возможность писать для них на языке, отличном от выбранного владельцем платформы.

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

176. "Линус Торвальдс о проблемах с поиском мэйнтейнеров, Rust и р..."  –5 +/
Сообщение от Аноним (176), 06-Июл-20, 18:48 
Лошади, паровозы, машины, электрокары... прогресс заставит двигаться и учиться всех. C# хитро делают - ты приходишь такой, пробуешь писать концептами как c/c++ и вроде даже ок. Позволяется. Но потом читая примеры, осознавая над нужности плюшками, ты и сам не замечаешь как мутируется сознание и код уже под правильную стилистику подстраивается. И ты понимаешь, что так удобнее и быстрее ... Go не умрёт, они правильно делают - они медленно и аккуратно прогрессируют, без истерик.
Ответить | Правка | Наверх | Cообщить модератору

193. "Линус Торвальдс о проблемах с поиском мэйнтейнеров, Rust и р..."  +13 +/
Сообщение от Аноним (-), 06-Июл-20, 19:41 
C# не кактит для написания дров уровня ядра. Раст еще имеет шансы потрепыхаться, но синтаксис у него мерзотный и он порой создает больше проблем чем решает. А хайповать - это круто, но вот поливать сишников - желающих сколько угодно, а сделать что-то лучше - ноль. Как максимум на расте есть какие-то редоксы, которыми даже их авторы вроде не пользуются.
Ответить | Правка | Наверх | Cообщить модератору

280. "Линус Торвальдс о проблемах с поиском мэйнтейнеров, Rust и р..."  +/
Сообщение от Я (??), 08-Июл-20, 00:16 
катит, но  пока только для винды, но он принципиально не для этого сделан и использовать его так неправильно.
Ответить | Правка | Наверх | Cообщить модератору

287. "Линус Торвальдс о проблемах с поиском мэйнтейнеров, Rust и р..."  +1 +/
Сообщение от Аноним (287), 08-Июл-20, 07:26 
> катит, но  пока только для винды

и для винды не катит

Даже UMDF юзерспейсный драйвер там пишут максимум на С++. Настоящие драйверы уровня ядра на С. Вон том огрызке, который поддерживает MSVC compiler.

> но он принципиально не для этого сделан и использовать его так неправильно.

Не "неправильно", а не возможно! Неправильно использовать С++ для таких задач.

Есть концептуальная проблема. Устройства не работают в этих красивых и прекрасных ООП-моделях. Компьютеры и устройства работают не с объектами и всяким поведением, они работают с данными и состояниями. И это не какая-та там особенность конкретного языка мешает. Это речь о том, что объектно ориентированная абстракция не может быть транслирована в машинный код, пригодный для выполнения сразу. Для того чтобы ООП работало, нужно его переделать в некое промежуточное представление (структуры, процедуры и конечные автоматы) то есть избавить его от ООП-требухи и вот полученный структурный (тоже жесткое условие на самом деле, может быть и частично неструктурный) код промежуточного языка уже можно конвертировать в машинный под нужную платформу. Естественно, некоторые языки свой промежуточный байткод не компилируют, а исполняют на лету, а некоторые компилируют, а в некоторых можно и так и сяк.

Все ООП-языки имеют промежуточное представление. Исключений нет. Так вот, если ты программируешь драйверы, тебе нужно знать точно, что делает твой код на самом деле, а не полагаться что компилятор сгенерирует правильное промежуточное представление, которое подойдет под устройство под которое ты пишешь драйвер. Другая проблема - это работа с памятью. Нужно уметь ею управлять. Все языки где присутствуют GC (сборщики мусора) работающие с промежуточными представлениями и/или компилируют на лету (JIT) не подходят для написания драйверов.

Исключением могут быть так называемые драйверы пространства пользователя. В Linux их мало, вон FUSE, например. С другой стороны это всего-лишь библиотеки, которые подключаются через специальное API и работают с теми подсистемами, которые можно размещать в юзерспейсе. Но лучше так не делать и для них. C++ тут как раз и прикидывается нормальным решением, хотя таковым не является. Его принципиальным отличием является не наличие указателей, возможности прямой работы с памятью в режиме С с классами, нет... Его отличие от нормальных ООП-языков в том, что С++ - это инвалид детства у которого нет стандарта на промежуточное представление. То есть промежуточное представление есть (компиляторы работают в 2 этапа), но стандарта нет. Именно поэтому он не просто не кросплатформенный, в нем бинарные библиотеки нормально не линкуются, если были собраны в другом компиляторе или в очень старой версии. И вот вопрос, зачем такое для драйверов, даже юзерспейсных в винде разрешают для меня вопрос... видимо один фреимворк в одном компиляторе с кучей специфичных параметров для сборки решает эту проблему. Героическое решение, для проблемы, которая была создана на пустом месте от факта разрешения писать на С++ для части драйверов. Там по-любому что-то исторически сложилось...

C# в свою очередь работает поверх CLR, как Java поверх JVM. Это вообще ортогонально любым низкоуровневым задачами.

Rust, с другой стороны, я сильно не копал. Синтаксис у него - имхо, фу. Но оно там как раз памятью управляет жестко, GC не имеет, ручное педалирование памяти умеет и не может в ООП, что, в принципе, не исключает его как возможность писать какие-то юзерспейсные дровишки сбоку, если в Linux их побольше завезут. Но, опять же, агрессивный маркетинг Rust тут сам себе противоречит.
Адепт Раста: Rust - замена C/C++ они такие-сякие и дальше по тексту...
Программист: Но ведь Rust не может... (перечень 100500 ООП-специфичных подходов)
Адепт Раста: Ты просто решаешь задачу на ООП, ООП - не задача (это правда, кстати) перерешай задачу по-другому
Программист: Но ведь есть же проект, куча народу 100500 тысяч строк зависимого кода от моей либы
Адепт Раста: Перепиши на растишку всё, весь проект, все смежные, всю экосистему, дом, квартиру, машину, дачу, контрольную, домашку, небо и Аллаха.
Программист: И в чем же тогда замена С++... Ой всё...

И они бесят со своей рекламой. "Не найдётся ли у вас минутки поговорить о великом языке программирования Расте, прогрессивно заменяющем отсталые С/С++".

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

315. "Линус Торвальдс о проблемах с поиском мэйнтейнеров, Rust и р..."  +/
Сообщение от Аноним (-), 11-Июл-20, 03:35 
> Для того чтобы ООП работало, нужно его переделать в некое промежуточное
> представление (структуры, процедуры и конечные автоматы) то есть избавить его от
> ООП-требухи и вот полученный структурный (тоже жесткое условие на самом деле,
> может быть и частично неструктурный) код промежуточного языка уже можно конвертировать
> в машинный под нужную платформу. Естественно, некоторые языки свой промежуточный байткод
> не компилируют, а исполняют на лету, а некоторые компилируют, а в
> некоторых можно и так и сяк.

Ну вот кстати прогеры на с++ показывали что даже на atmega их нечто с классами не так уж сильно и сливает лобовому си и даже асму - оптимизатор иногда может нехило скостить. Другое дело что оптимизатору подваливает здорово больше работенки сразу на старте и достичь такого результата наобум не получится совершенно, только долгим методом проб и ошибок и RTFMом понять как сделать оптимизатору удобно - c риском что в новой версии или от очередного изменения все это отвалится.

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

307. "Линус Торвальдс о проблемах с поиском мэйнтейнеров, Rust и р..."  +/
Сообщение от Java omnomnom your memory (?), 09-Июл-20, 02:46 
Синтаксис это всё же вкусовщина.
Если бы изначально существовал rust вполне вероятно, что вы бы плевались на С
Ответить | Правка | К родителю #193 | Наверх | Cообщить модератору

314. "Линус Торвальдс о проблемах с поиском мэйнтейнеров, Rust и р..."  –1 +/
Сообщение от Аноним (314), 11-Июл-20, 03:12 
> Синтаксис это всё же вкусовщина.

Кроме вкусовщины есть еще тупо "больше клаву топтать". А синтаксис крайне нестабильный и оброс костылями уже почти до уровня плюсов.

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

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

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




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

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