Re[5]: А если бы все с начала ?
От: velkin Удмуртия https://kisa.biz
Дата: 13.01.18 02:10
Оценка: +1
Здравствуйте, 0x7be, Вы писали:

V>>А какая адекватная замена C/C++?

0>Какой-то другой язык, в котором из-за эволюционного развития не было бы таких ужасов

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

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

Так-то если подумать, вот я например, лишил программистов .NET и Java. Сейчас уже признано, что нативный код быстрее. Тем не менее без наглядного примера ту же JIT-компиляцию переизобретут заново, причём ещё и будут всё это использовать. Получается идти нужно по пути создания ПО превосходящее всё имеющееся. А обычное урезание изобретённого приведёт лишь к тому, что люди так и так потратят время на переизобретение. Собственно говоря сейчас и без всяких допущений программирование движется этим путём.
Re[2]: А если бы все с начала ?
От: Pavel Dvorkin Россия  
Дата: 13.01.18 04:29
Оценка: +3
Здравствуйте, 0x7be, Вы писали:

PD>>Железо осталось. Без изменений.

0>А чего так? Я пощупал немного MC68000 — после Intel`а просто рай какой-то. Всё просто и без затей.

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

А само железо обсуждать, в особенности линейку x86/x64 — так тут и обсуждать нечего. Если бы мой демиург пересоздал этот процессор в том же виде, в каком он сложился в ходе эволюции 4004 -> 8008 -> 8080 -> 8086 -> 80286 -> 80386 -> и далее, то это был бы не демиург, а идиот.
With best regards
Pavel Dvorkin
Отредактировано 13.01.2018 5:24 Pavel Dvorkin . Предыдущая версия .
Re[4]: ISO 8601
От: Pavel Dvorkin Россия  
Дата: 13.01.18 04:30
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Ну хоть на формат представления мы можем повлиять?


Внутри — хоть храни вообще все в нсек.

На внешний (для пользователя) — нет.
With best regards
Pavel Dvorkin
Re[3]: А если бы все с начала ?
От: elmal  
Дата: 13.01.18 06:15
Оценка: :)
Здравствуйте, velkin, Вы писали:

V>Если в микроволновке примитивный микроконтроллер, тогда используется Си. А если, что покруче, тогда можно поставить линукс или что-то подобное. Обычной микроволновке нужна только машина состояний, здесь можно обойтись и без ОС.

ОС может понадобиться для того, чтобы этой микроволновкой управлять с мобилы. При этом программа микроволновки говорит внешнему окружению, что она микроволновка, умеет включаться, устанавливать мощность из определенного диапазона, умеет крутить гриль и говорить где она расположена. Соответственно я, как разработчик для умного дома могу написать софт, позволяющий на запрос "дай мне пожрать пиццы" достать пиццу из холодильника и поместить в микроволновку, разогреть и далее принести мне на стол. И это будет работать корректно если у меня есть микроволновка, холодильник и робот, который занимается перетаскиванием пищи. При этом микроволновка, холодильник, робот, друг о друге ничего не знают. Если у меня дома нет робота — система управления умным домом скажет что извини, у меня нет устройства для заполнения устройства приготовления пищи. Давай ка сам таскай, но посоветует купить робота.
Re[2]: А если бы все с начала ?
От: Pavel Dvorkin Россия  
Дата: 13.01.18 08:34
Оценка:
Здравствуйте, elmal, Вы писали:

Прочел с удовольствием.

По сети не выскажешься ?
With best regards
Pavel Dvorkin
Re[4]: А если бы все с начала ?
От: samius Япония http://sams-tricks.blogspot.com
Дата: 13.01.18 20:25
Оценка: 4 (1)
Здравствуйте, elmal, Вы писали:

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


Разве для этого микроволновке нужна ОС? И нужно ли все ломать и начинать сначала, что бы появилась такая функциональность?
В 1999 вопросы коммуникации вещей предлагалось решать радиочастотными метками и простейшими протоколами.
Re: А если бы все с начала ?
От: vdimas Россия  
Дата: 14.01.18 10:30
Оценка: +1
Здравствуйте, Pavel Dvorkin, Вы писали:

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


А зря. Потому что современное железо является таковым по большей части из-за груза совместимости с написанным ранее ПО.
Re[2]: А если бы все с начала ?
От: Pavel Dvorkin Россия  
Дата: 14.01.18 11:23
Оценка: +1
Здравствуйте, vdimas, Вы пис

V>А зря. Потому что современное железо является таковым по большей части из-за груза совместимости с написанным ранее ПО.



Тут 2 момента
Во-первых, архитектуру x86/x64 предложили бы переделать все, тут сомнения нет, нечего обсуждать.А какую именно нужно — на эту тему и без того обсуждений немало
Во-вторых, я не вполне согласен с тезисом. Линукс где только не работает, и появись новый процессор -будет и на нем работать. Windows тоже
А все, что выше ОС — так это совсем слабо от процессора зависит
With best regards
Pavel Dvorkin
Re: А если бы все с начала ?
От: Osaka  
Дата: 14.01.18 14:05
Оценка:
PD>Что из того, что заложено в существующее ПО, сделано так, как и надо было бы "по уму" сделать, и что надо было бы сделать иначе, да только , увы, невозможно — мешают проклятая compatibility и огромные наработки ?
Всякий раз чётко решать, для кого делается пользовательское ПО (начиная от операционных систем) — мультяшно-однооконно-пальцетычное для тех кому напрягать мозг больно и страшно, или "инженерное" для не имеющих такой патологии. Если очень надо, то выпускать 2 разные версии. Но не пытаться сводить эти "2 мира, 2 морали" к наиглупейшему общему знаменателю, как делают микрософт с апле и на поводу у них толпа подражателей.
Отредактировано 14.01.2018 14:06 Osaka . Предыдущая версия .
Re: А если бы все с начала ?
От: Privalov  
Дата: 14.01.18 19:49
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Что бы Вы из существующего сделали в практически том же виде, в каком оно существует сейчас и что сделали бы по-другому ?


Изобрел бы Фортран 77, наверное. Но с зарезервированными словами и без умолчаний.
И никаких GOTO. Арифметический IF — наше всё!
Re: А если бы все с начала ?
От: CoderMonkey  
Дата: 14.01.18 23:27
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Железо осталось. Без изменений.


Что ж так мелочиться то? Развитие железа зашло в жестокий тупик, а недавние (но наверняка не последние) уязвимости уже забивают крышку гроба гвоздями.
Нужно новое железо!
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re: А если бы все с начала ?
От: Sinclair Россия https://github.com/evilguest/
Дата: 15.01.18 04:29
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Что бы Вы из существующего сделали в практически том же виде, в каком оно существует сейчас и что сделали бы по-другому ?

  1. Как уже упоминали — переделал бы JavaScript.
    То есть оставил бы его очень похожим в общем, но починил бы мелочи — все эти автоприведения в сравнениях и прочий WTF, который сейчас не могут выкинуть из-за backwards compatibility. Cама по себе идея иметь HTML5+JS для мобильных приложений — здравая. Мелочи портят всю картину.
  2. Сделал бы SQL строготипизированным.
  3. Отказался бы от аппаратной изоляции в ОС, оставив только софтную с верификацией. Аппаратная защита — дорогая и небезопасная (см. Meltdown). Статическая верификация значительно надёжнее.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: А если бы все с начала ?
От: Pavel Dvorkin Россия  
Дата: 15.01.18 07:20
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Pavel Dvorkin, Вы писали:


S> Отказался бы от аппаратной изоляции в ОС, оставив только софтную с верификацией. Аппаратная защита — дорогая и небезопасная (см. Meltdown). Статическая верификация значительно надёжнее.


Не будет медленно ?

И провокационный (зная твое отношение к этому) вопрос.

HTTP не изменил бы ? Или, может, на что-то иное заменил ?
With best regards
Pavel Dvorkin
Отредактировано 15.01.2018 7:31 Pavel Dvorkin . Предыдущая версия .
Re[3]: А если бы все с начала ?
От: Sinclair Россия https://github.com/evilguest/
Дата: 15.01.18 08:11
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Не будет медленно ?
Будет быстрее. Потому что нет переключений между кольцами для syscall.
PD>И провокационный (зная твое отношение к этому) вопрос.
PD>HTTP не изменил бы ? Или, может, на что-то иное заменил ?
Вот не знаю. HTTP2 вышел после того, как я перестал читать RFC на протоколы; поэтому не знаю, какие там приняты меры. В целом, HTTP/1.1 уже весьма прекрасен. Не знаю, что такое нужно делать, чтобы упереться в его ограничения в клиент-серверных приложениях.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: А если бы все с начала ?
От: Pavel Dvorkin Россия  
Дата: 15.01.18 08:55
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Pavel Dvorkin, Вы писали:

PD>>Не будет медленно ?
S>Будет быстрее. Потому что нет переключений между кольцами для syscall.

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

char * p = чему-то
*p = 0;

И как здесь на софтверном уровне проверять, имею ли я право доступа туда ? Встраивать на каждый mov команды проверки ?

PD>>И провокационный (зная твое отношение к этому) вопрос.

PD>>HTTP не изменил бы ? Или, может, на что-то иное заменил ?
S>Вот не знаю. HTTP2 вышел после того, как я перестал читать RFC на протоколы; поэтому не знаю, какие там приняты меры. В целом, HTTP/1.1 уже весьма прекрасен. Не знаю, что такое нужно делать, чтобы упереться в его ограничения в клиент-серверных приложениях.

Вопрос не в ограничениях, а в архитектуре. Тебе не кажется, что тот же интерфейс GET с параметрами можно бы на что-то более элегантное заменить ? И заодно Header переделать.
With best regards
Pavel Dvorkin
Re[5]: А если бы все с начала ?
От: AlexRK  
Дата: 15.01.18 10:03
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>>>Не будет медленно ?

S>>Будет быстрее. Потому что нет переключений между кольцами для syscall.

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


PD>char * p = чему-то

PD>*p = 0;

PD>И как здесь на софтверном уровне проверять, имею ли я право доступа туда ? Встраивать на каждый mov команды проверки ?


Очевидно, доступ по произвольному адресу и арифметика указателей (да и вообще трактовка указателей как чисел) в прикладном коде полностью запрещается. В системном коде можно оставить ограниченные возможности манипуляции указателями, безопасность операций с которыми гарантируется статическим верификатором (но такое — "char * p = чему-то" — в любом случае запрещается).
Re[6]: А если бы все с начала ?
От: Pavel Dvorkin Россия  
Дата: 15.01.18 11:07
Оценка:
Здравствуйте, AlexRK, Вы писали:


ARK>Очевидно, доступ по произвольному адресу и арифметика указателей (да и вообще трактовка указателей как чисел) в прикладном коде полностью запрещается. В системном коде можно оставить ограниченные возможности манипуляции указателями, безопасность операций с которыми гарантируется статическим верификатором (но такое — "char * p = чему-то" — в любом случае запрещается).


Как ты себе это представляешь ?

Можно, конечно, не использовать указатели в Яве, С# или JS -коде , где их и нет. Так ведь в jvm, .net самой или браузере не запретишь же!

Если вообще запретить указатели (машинные адреса) в юзермоде — придется для каждой команды, работающей с памятью, переключаться в режим ядра. Это будет фантастическая просадка скорости.

А перенести jvm и т.д. в режим ядра — это просто будет означать перенос всей работы в ядро. После этого о безопасности ядра говорить будет сложно.
With best regards
Pavel Dvorkin
Re[2]: А если бы все с начала ?
От: Sharov Россия  
Дата: 15.01.18 11:28
Оценка:
Здравствуйте, CoderMonkey, Вы писали:


CM>Что ж так мелочиться то? Развитие железа зашло в жестокий тупик, а недавние (но наверняка не последние) уязвимости уже забивают крышку гроба гвоздями.

CM>Нужно новое железо!

Itanium.
Кодом людям нужно помогать!
Re[2]: А если бы все с начала ?
От: Sharov Россия  
Дата: 15.01.18 11:28
Оценка:
Здравствуйте, Sinclair, Вы писали:

S> Сделал бы SQL строготипизированным.


Зачем? Чем диалекты типа t-sql не устраивают?
Кодом людям нужно помогать!
Отредактировано 15.01.2018 18:40 Sharov . Предыдущая версия .
Re[7]: А если бы все с начала ?
От: AlexRK  
Дата: 15.01.18 13:38
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Можно, конечно, не использовать указатели в Яве, С# или JS -коде , где их и нет. Так ведь в jvm, .net самой или браузере не запретишь же!


Почему нет? Запретишь. Просто делать что угодно будет нельзя (например, просто прибавить к указателю единицу и обратиться по этому адресу).

PD>А перенести jvm и т.д. в режим ядра — это просто будет означать перенос всей работы в ядро. После этого о безопасности ядра говорить будет сложно.


Да, речь именно о переносе всего в режим ядра (собственно, никаких "колец" уже и не будет). Безопасность обеспечивается статической верификацией (как в Singularity или Rust).
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.