Как стать автором
Обновить
195
0
Михаил Бахтерев @mikhanoid

ИММ УрО РАН

Отправить сообщение

Вы слишком быстро жонглируете метафорами. Предлагаю опираться на факты.

  1. Можно ли писать стабильный софт не на Rust? Очевидно, можно, примеров уйма.

  2. Можно ли писать стабильный софт на Си? Можно, примеров множество. Многие примеры летают в космосе. Код на Си можно верифицировать, например, проверкой моделей. Это активно применяется на практике.

  3. Можно ли писать операционные системы на языках с ненулевым runtime? Можно, примеров много. И не очень понятно, как именно runtime усложняет эту работу.

  4. Можно ли писать hard realtime приложения на языках с ненулевым runtime? Можно. Примеров не так много, но они есть, и некоторые подходы выработаны. Есть специальные сборщики мусора, есть техники управления потоками и памятью. Они специфичные, и влияние runtime тут, конечно, нужно учитывать, но я бы не сказал, что это прям вот сильно сложнее, чем программировать realtime-системы на Си.

Итак. Дальше у нас идёт основной вопрос: является ли нулевой runtime значимым свойством языка? Вы же малозначительность этого свойства подвергаете сомнению? Вроде, пункты 1-3 никак не зависят от наличия runtime. Пункт 4... Ну, как бы, с одной стороны, да. Если языку нужен runtime, то при разработке hard realtime приложений возникают тонкости. Но, с другой стороны, runtime может быть заточен под hard realtime задачи, как, например, RTSJ (rt spec for java), и запрограммировать необходимое поведение системы можно.

Соответственно, вопрос: если можно и так и этак, то так ли принципиально важен нулевой runtime? Понятно, что можно постулировать важность чего угодно, хоть макаронного летающего монстра, но есть ли для этого какие-то материальные основания?

Компиляторы Си постоянно тестируют на регрессию огромным количеством тестов, среди которых есть и fast inverse square root. Сомневаюсь, что поломка 20-летнего кода пройдёт незамеченной и окажется для пользователей внезапной.

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

В комментарии, на который я отвечал было утверждение, что UB неожиданы. Этому возражал. Вот и вы перечислили места, где проблемы можно ожидать.

Эмс... Я, в основном, высказался о том, что программировать операционные системы можно не только на языках с нулевым runtime... Следовательно, нулевой runtime не является важным свойством для этого.

Из контекста не до конца понятно, мы говорим о принципиальной возможности написать стабильный софт до появления в природе Rust или о цене такой работы?

Вроде как, люди писали вполне стабильный софт даже на ассемблере. То есть, принципиально это возможно.

Вопрос о цене, вроде как, не очевидный. Можно писать эффективные и безопасные программы на языках с ненулевым runtime, и эти языки существовали до появления Rust. И писать на них проще, то есть, дешевле чем на Rust.

Собственно, в итоге и возникает мой вопрос: насколько значимо это свойство нулевого runtime? Оно нужно, чтобы что? Чтобы в ядре можно было программировать? Но в NetBSD можно в ядре программировать на Lua 🤷🏼‍♂️

Rust интересный язык, конечно. Я просто пишу о том, что существуют и другие подходы.

Почему в неожиданных, вроде, известно, как программировать, чтобы UB не было? И почему предполагается, что программировать можно было только на C или C++?

А что, раньше не было такой возможности?

А что такое "малопроизводительные"? Мне вот возможностей RK3288@400MHz (потому что плата от Pine64 кривая) хватает для моих нужд: переписка, веб, TeX и программирование. Обсуждаемый Khadas раза а 4 быстрее. Если бы он мог ещё под Linux нормально видео кодировать, чтобы stream-ы с лекциями можно было бы записывать, я бы взял, не глядя.

А сейчас вот смотрю на RK3588

Именно это свойство — zero runtime — делает Си единственным и безальтернативным кандидатом на роль языка для реализации ядер операционных систем и прошивок для микроконтроллеров. Тем удивительнее, насколько мало людей в мире этот момент осознают; и стократ удивительнее то, что людей, понимающих это, судя по всему, вообще нет среди членов комитетов по стандартизации (языка Си)…

— А. В. Столяров

Нет взаимосвязи между наличием у языка runtime и возможностью реализации на этом языке ядер операционных систем и прошивок для микроконтроллеров. Я знаю о проектах на диалектах Lisp, но, наверняка, есть проекты и на других языках. На Lisp написаны: Mezzano, Loko Scheme, Maker Lisp, LisPi, PilOS, PICOBIT и т.д.

Хотелось бы выразить робкую надежду на то, что пока сообщество Rust самозабвенно борется против C за право занять место царя горы традиционного софта на основании малозначимых свойств языка, где-нибудь в стороне от этой эпической схватки вырастут более изящные системы с более простыми, эффективными, легковесными и разумными API и IPC...

S905Y4 - это процессор для ТВ-стиков, вроде, греться не должен... Для этого A35 и нужен, чтобы не дорого, и не грелось.

Не могли бы Вы уточнить, что такое "прямое преобразование"? И ещё с нейтронами очень не понятно... Нейтроны будут бомбардировать оборудование реактора, прежде чем будут попадать в бланкет? Или же бланкет как-то можно устроить между плазмой и магнитами?

Выпекание процессоров останется ультратехнологичным производством, даже если технологии перестанут совершенствоваться. Даже текущий уровень воспроизвести - это крайне тяжёлая технологическая задача. Хотя, вроде как, всем известно, как это всё нужно делать, но требования к точности и к чистоте техпроцессов именно, что ультра.

Intel собирается сделать сигнальные и питающие слои проводки по разные стороны от слоя транзисторов. Думается, это будет любопытно.

Почему не понятно, за что "Слуги" получили свои премии? Вот же

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

Да ладно, все так делают. Какой-нибудь Pine64, например, то же самое продаёт. Если эти репкоделы обеспечат стабильность поставок и поддержку дистрибутивов, то уже будет некоторое достижение. Маловероятно, конечно, ибо «резидент Сколково»™, но а вдруг?

Я могу писать сами алгоритмы и структуры данных полностью сам, без использования сторонних классов, то есть, без подкапотных Unsafe. Библиотечные классы мне понадобятся для ввода/вывода, и в них может быть Unsafe. Но это работа на уровне OS, в которой Unsafe вполне приемлем.

Так, вроде, речь о двух клавиатурах для одной машины...

Огласите весь список возможных решений, чтобы понять, которое из них худшее :)

В Linux можно подключить две клавиатуры и настроить для них разные раскладки.

А в научной нотации тоже от латиницы откажемся? Не ощущается это хорошей идеей.

Английский упрощался и переформатировался под международным давлением. Мы же не на языке Шекспира пишем, а используем некий наиболее общий pidgin - примитивный язык: "я ехать в 3 час сегодня сверху трамвай". Да, он сформирован на основе английского, потому что Британия была великой морской торговой империей. Но, может, она и была великой морской торговой империей, потому что всем легко было освоить базовые структуры языка?..

Смогут ли господа/товарищи патриоты вменить русский всем потенциальным своим партнёрам, чтобы расширять свою it-индустрию на них? И не боятся ли они, что великий и могучий таким образом превратится в "твоя моя понимай"? Ведь, необходимо будет резко упростить систему сопряжений и склонений. Иначе прямо сейчас легко разглядеть многокилометровые флеймы о допустимых падежах и формах глаголов в именованиях функций, классов, процедур и т.д. И, ведь, это будет настоящая производственная необходимость, а не просто ВерблюдСтиль против _подчёркивание (споры о которых носят характер религиозных войн). Программистам, всё равно, придётся жить с двумя языками: русским и pidgin-русским. И второй будет проникать в сферу обращения первого.

Оно нам точно надо?

Если так уж не хочется английского, то может быть, лучше взять или разработать простой искусственный язык такой, как toki pona?

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

Информация

В рейтинге
Не участвует
Откуда
Екатеринбург, Свердловская обл., Россия
Зарегистрирован
Активность

Специализация

Backend Developer, Научный сотрудник
Applied math
System Programming
Machine learning
Compilers
Scheme
C
Assembler
Linux
Clojure
Haskell