Re[12]: Оберон круче всех!
От: vdimas Россия  
Дата: 24.07.12 04:48
Оценка:
Здравствуйте, Klapaucius, Вы писали:

V>>Фактически одно и то же когда продолжения делаются не в языке-интерпретаторе, а в компиллируемом в нейтивный код. В этом случае продолжения делаются именно через полное дублирование контекста исполнения (и "родного" стека машины в т.ч.).


K>Либо "родной" стек вообще не используется. В SML/NJ и GHC — именно так.


Вопросы:
1. Какой стек используется в GHC?
2. Даже если используется некий эмулируемый стек (или 2 стека, как в классике), то разве это отменяет необходимость копирования хотя бы части стека для продолжений?

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


V>>Разница лишь в том, какой вид многозадачности доступен в такой системе — кооперативный, или полноценный с вытеснениями. ИМХО, для обсуждаемой задачи, когда агенты должны постоянно сидеть в ожидании сигналов ввода-вывода каналов (прямо по условию) разница м/у видами многозадачности не столь принципиальна.


K>На практике "легкие потоки" для программиста это обычные потоки, вся асинхронная машинерия от него абстракцией отгорожена. А эмуляция легких потоков на продолжениях — это или (в лучшем случае) развесистые монады как в lwt или вообще колбек-лапша.


Я понятия не имею, что ты там себе нарисовал. Ты работал с фиберами? Делал прокси на ввод-вывод для целей шедуллинга фиберов? Покажи мне, какая проблема запустить продолжение в отдельном фибере и организовать "всю асинхронную машинерию" (С) на кооперативной многозадачности? Мне преставляется простая модель: куча "однопоточных" продложений сидят на ожидании ввода-вывода и получают кванты на исполнение ровно тогда, когда для них этот ввод-вывод готов. В разработанной мною когда-то на C# агентской среде происходило аналогичное, только ручками и местами "код наоборот", то бишь реакция на события в автоматном стиле (событийный подход). Только на относительно несложных задачах я мог "выпрямлять" алгоритмы на yield-return, где источников событий мало, а лучше вообще один. Мне продолжения кажутся хорошей механикой для аналогичного "выпрямления" автоматных алгоритмов.
Re[33]: Оберон круче всех!
От: vdimas Россия  
Дата: 24.07.12 05:04
Оценка:
Здравствуйте, samius, Вы писали:

S>>>Я почитал прежде чем кинуть ссылку.

V>>Ну дык другие не любят ходить на ссылки без аннотаций. А сходить стоит, там изысканный фан в каждой строчке.
S>Это ты для других написал?

Нет, я в форуме для себя пишу. Эдакая онлайновая записная книжка.
====================
Моя аннотация тебя задевает?

S>Так это я писал про захват мобильного рынка обероном, а не о захвате андройдом спутников.


Вот. Вопрос: а зачем ты пытался перевести тему исходного обсуждения?


S>А теперь посмотри на (*) (**) и пойми что ты уже споришь сам с собой.


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

1.

Твой аргумент всё-равно нерелевантен в ключе обзора технологий.

Не согласен — обоснуй.

Ну ок, даже считаем что выдали твоему аргументу некий кредит доверия даже до обоснования его релевантности в этом топике. Далее возражаем по твоему аргументу:
2.

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

Опять не согласен — опять обоснуй.
Re[27]: Оберон круче всех!
От: Sinclair Россия https://github.com/evilguest/
Дата: 24.07.12 05:19
Оценка: +2
Здравствуйте, vdimas, Вы писали:

V>Ну и по собственным ощущениям, хоть и не слишком много пришлось на Паскале когда-то пошпилить, но этому языку, в отличие от, например, C/C# подсветка синтаксиса и даром не сдалась. Как раз выделения ключевых слов было достаточно, что под TP, что под Дельфи. Ну и еще, там же не текстовый документ, а гипертекстовый. Ты можешь раскрашивать исходник вообще как хочешь, превращая исходник в некий полноценный справочник-документ по коду.

Ценность ручного раскрашивания кода близка к нулю. Причем с отрицательной стороны. То, что современная IDE обязана делать сама, предлагается делать вручную.
Раскраска кода должна быть семантической, чтобы улучшить восприятие. Семантика кода — штука объективная, заставлять человека вручную вводить информацию, которая в коде уже есть — каменный век. К тому же эту семантику нужно ещё и поддерживать в актуальном состоянии.

Выбор цветовой схемы — ровно наоборот, штука абсолютно субъективная. Она должна быть строго ортогональна семантике. Кому-то комфортнее с фиолетовым текстом на чёрном фоне, кому-то — с синим на белом. Авторы Оберона этого не понимают — их представления о usability безнадёжно застряли в 80х годах.

Кроме всего — раскраска в современных IDE — динамическая. То есть, я встал курсором на идентификатор — все его вхождения подсветились. Встал на другой — подсветились другие. Встал на скобку — подсветилась парная. Как это реализовать на убогом "гипертексте" Оберона?
Правильно — никак. Это ровно потому, что его проектировали люди, не понимающие что такое код, что с ним делают люди, зачем они это делают. Он весь — сплошное сборище ошибок.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[34]: Оберон круче всех!
От: samius Япония http://sams-tricks.blogspot.com
Дата: 24.07.12 05:19
Оценка: +1
Здравствуйте, vdimas, Вы писали:

V>Здравствуйте, samius, Вы писали:


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

S>>Это ты для других написал?

V>Нет, я в форуме для себя пишу. Эдакая онлайновая записная книжка.

V>====================
V>Моя аннотация тебя задевает?
Мне не ясно, кому она адресована

S>>Так это я писал про захват мобильного рынка обероном, а не о захвате андройдом спутников.


V>Вот. Вопрос: а зачем ты пытался перевести тему исходного обсуждения?

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

S>>А теперь посмотри на (*) (**) и пойми что ты уже споришь сам с собой.


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

Ты не повторяешь. Ты высказываешь противоположный своему тезису.

V>1.

V>

V>Твой аргумент всё-равно нерелевантен в ключе обзора технологий.

V>Не согласен — обоснуй.
Знаешь что, я не собирался технологии обозревать. Я критикую твои сомнения относительно смысла обсуждения.

V>Ну ок, даже считаем что выдали твоему аргументу некий кредит доверия даже до обоснования его релевантности в этом топике. Далее возражаем по твоему аргументу:

V>2.
V>

V>Чем популярнее некая среда, тем больше подробностей о ней надо обсуждать. И уж глюки, тормознутость и самую плохую на сегодня энергоэффективность — в первую очередь.


V>Опять не согласен — опять обоснуй.

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

Дык, а некоторые еще на Дотнет и Андроид молятся и что? Смысл обсуждать все эти тормозные среды исполнения?

Чем популярнее некая среда, тем больше подробностей о ней надо обсуждать.

Или ты считаешь оберон популярнее андройда?
Re[30]: Оберон круче всех!
От: vdimas Россия  
Дата: 24.07.12 05:21
Оценка:
Здравствуйте, VladD2, Вы писали:

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

VD>Кабздец. Это уже все пределы перешло. Тема полшла во флэйм.

Увы, ты первый решил попытаться называть вещи своими именами. А оно всегда нелицеприятно.
Re[7]: Оберон круче всех!
От: Sinclair Россия https://github.com/evilguest/
Дата: 24.07.12 05:25
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Слушай кончай троллить. Я тебя кормить не намерен. Ты уже договорился до полнешего бреда. Виндвос, видите ли, мешает вам. Яве и дотнету не мешает, а Оберону мешает.

Не, он — всем мешает. Конкретно мешает аппаратная изоляция. В принципе, можно запустить всю среду внутри одного вин-процесса, и внутри неё "лёгкие процессы" смогут очень эффективно коммуницировать. Но это годится только для диссертаций, т.к. в реальных приложениях всё упрётся во ввод-вывод. Его влияние, в принципе, можно минимизировать для некоторых узкоспецифических классов приложений, вроде баз данных, но в общем случае получить наблюдаемые преимущества перед нативом не выйдет.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[28]: Оберон круче всех!
От: vdimas Россия  
Дата: 24.07.12 05:43
Оценка: +1 :)
Здравствуйте, Sinclair, Вы писали:

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


V>>Ну и по собственным ощущениям, хоть и не слишком много пришлось на Паскале когда-то пошпилить, но этому языку, в отличие от, например, C/C# подсветка синтаксиса и даром не сдалась. Как раз выделения ключевых слов было достаточно, что под TP, что под Дельфи. Ну и еще, там же не текстовый документ, а гипертекстовый. Ты можешь раскрашивать исходник вообще как хочешь, превращая исходник в некий полноценный справочник-документ по коду.

S>Ценность ручного раскрашивания кода близка к нулю. Причем с отрицательной стороны.

Ценность такого замечания близка к 0-лю до возражения на неоднократно в теме высказанное:

для Паскалевкого синтаксиса подсветка помимо ключевых слов не принципиальна.



S>То, что современная IDE обязана делать сама, предлагается делать вручную.


Интерактивную методичку для студентов IDE не может делать сама.

S>Раскраска кода должна быть семантической, чтобы улучшить восприятие.


Коллега, меньше слов, больше дела.

Ок, берешь код на Обероне, предлагаешь помимо ключевых слов выделить еще что-то, выражаешь свои намерения хотя бы в RTF или HTML. Смотрим, сравниваем.


S>Семантика кода — штука объективная, заставлять человека вручную вводить информацию, которая в коде уже есть — каменный век.


Коллега, тебе же тоже врде Паскаль должен быть знаком, хотя бы из-за времени, в котором ты получал образование. Покажи мне, как поделить синтаксис Оберона на семантики, требующие раскраски?

Сдается мне, прямо здесь и сейчас ты пытаешься натягивать опыт одних языков на другие. Смысла выделять идентификаторы от типов в паскалевском синтаксисе нет вообще, они и так отделены синтаксисом, не спутаешь... В отличие от синтаксиса неоднозначных языков:
C#/Java:
some_type.static_method()
some_variable.exemplar_method()

Вот здесь без цветового выделения жопа, согласен.


S>К тому же эту семантику нужно ещё и поддерживать в актуальном состоянии.


Документацию так и так надо поддерживать в актуальном состоянии.

S>Выбор цветовой схемы — ровно наоборот, штука абсолютно субъективная. Она должна быть строго ортогональна семантике.


Я уже сказал своё ИМХО — достаточно выделения только ключевых слов.

S>Авторы Оберона этого не понимают — их представления о usability безнадёжно застряли в 80х годах.


Влад, ты?
Какое отношение имеет, например, проект Bartok/Сингулярити, к подсветке синтаксиса в какой-то IDE? Да еще если сам Вирт к этой IDE никакого отношения не имеет? И кто тут решил пофлеймить?


S>Кроме всего — раскраска в современных IDE — динамическая. То есть, я встал курсором на идентификатор — все его вхождения подсветились. Встал на другой — подсветились другие. Встал на скобку — подсветилась парная. Как это реализовать на убогом "гипертексте" Оберона?


Предположу, что так же, как и везде. А у тебя были другие предположения?


S>Правильно — никак.


Это домохозяйке починить кухонный комбайн никак... были бы руки. Подсветка синтаксиса не rocket science, а скорее ровно наоборот. Надо — сделай, исходники BlackBox открыты.

Почему подсветка синтксиса стала такая динамичная буквально не так давно? Правильно — не понимаешь. Не понимаешь, что для этого нужен парсинг исходников в фоне и достаточные вычислительные ресурсы, которые появились повсеместно уже после 2000-го.


S>Это ровно потому, что его проектировали люди, не понимающие что такое код, что с ним делают люди, зачем они это делают. Он весь — сплошное сборище ошибок.


Нет, это просто от того, что комменты пишут люди, не имеющие представления о процессах разработки ПО. Не умеющие банально приложить требования (в т.ч. нефункциональные) к реализации и сравнить одно с другим на релевантность. Ты минимум дважды в одном посте нимало не смущаясь запряг карету впереди лошади. Не стыдно?
Re[37]: Оберон круче всех!
От: novitk США  
Дата: 24.07.12 05:54
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Я не могу прислушиваться к нубству, сорри. Для танкистов повторяю, MVar — это простая мутабельная переменная, обложенная локом. А что такое await — курить Conditional variables. Затем, когда подкрепишься знаниями, обрати внимание, что никакие конкурентные банковские транзакции из примера не проверяют никаких условий, они тупо получают синхронизированный доступ к мутабельной переменной.


"Смотрю в книгу, вижу фигу."
Там ведь всего три предложения. У тебя с английским тоже проблемы? Я подчеркну, возьми словарь и переведи три раза.

An MVar t is mutable location that is either empty or contains a value of type t. It has two fundamental operations: putMVar which fills an MVar if it is empty and blocks otherwise, and takeMVar which empties an MVar if it is full and blocks otherwise. They can be used in multiple different ways:
1. As synchronized mutable variables, 2. As channels, with takeMVar and putMVar as receive and send, and 3. As a binary semaphore MVar (), with takeMVar and putMVar as wait and signal.

Вот например AWAIT из твоего любимого Оберона:
await :: MVar a->(a->Bool)->IO a
await mv f = do v <- takeMVar mv
                if f v then return v else await mv f


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


Только в твоей фантазии, клоун. Я всего лишь весьма вежливо указал на твою неосведомленность о наличие в Хаскелле активных обьекты в 95-м году. Ты, вместо того чтобы признать свое незнание, ни к селу ни к городу закричал "MVar — это мутабельное говно". После этого я сделал две попытки выяснить, чем это отличается от реализации AWAIT в обероне, но ты накрылся демагогией и я понял бессмысленность продолжения.
Re[59]: Оберон круче всех!
От: WolfHound  
Дата: 24.07.12 06:48
Оценка: +1
Здравствуйте, Sinclair, Вы писали:

S>Ваше воображение работает не в ту сторону. Модулю не нужно узнавать о том, как его вызывают. Почитайте что-нибудь про CAS.

CAS та еще бяка. CBS намного лучше.
При этом в сингулярити капабилитями являются сами каналы.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[8]: Оберон круче всех!
От: WolfHound  
Дата: 24.07.12 07:13
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Не, он — всем мешает. Конкретно мешает аппаратная изоляция. В принципе, можно запустить всю среду внутри одного вин-процесса, и внутри неё "лёгкие процессы" смогут очень эффективно коммуницировать. Но это годится только для диссертаций, т.к. в реальных приложениях всё упрётся во ввод-вывод. Его влияние, в принципе, можно минимизировать для некоторых узкоспецифических классов приложений, вроде баз данных, но в общем случае получить наблюдаемые преимущества перед нативом не выйдет.

Разговор идет про сборку мусора, а не про IO.
И тут аппаратная защита вообще не релевантна.
Ибо, например в той же сингулярити сборщики мусора живут каждый в своем процессе.

А так согласен. Аппаратная защита должна умереть.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[29]: Оберон круче всех!
От: Sinclair Россия https://github.com/evilguest/
Дата: 24.07.12 07:19
Оценка: +1
Здравствуйте, vdimas, Вы писали:


V>Ценность такого замечания близка к 0-лю до возражения на неоднократно в теме высказанное:

V>

V>для Паскалевкого синтаксиса подсветка помимо ключевых слов не принципиальна.

Утверждения без аргументов идут в канализационный прибор.

V>Интерактивную методичку для студентов IDE не может делать сама.

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

V>Коллега, меньше слов, больше дела.

V>

V>Ок, берешь код на Обероне, предлагаешь помимо ключевых слов выделить еще что-то, выражаешь свои намерения хотя бы в RTF или HTML. Смотрим, сравниваем.

Не понимаю пассаж.

S>>Семантика кода — штука объективная, заставлять человека вручную вводить информацию, которая в коде уже есть — каменный век.


V>Коллега, тебе же тоже врде Паскаль должен быть знаком, хотя бы из-за времени, в котором ты получал образование. Покажи мне, как поделить синтаксис Оберона на семантики, требующие раскраски?

Начнём с простого — будем подсвечивать комментарии и литералы. Чтобы лучше отличать a = l0 от а = 10.
Перейдём к сложному — покажем разницу между локальными переменными и мемберами, чтобы видеть, где тут кто:
PROCEDURE Fail(obj: MyObject; var Title: String)
BEGIN
 WITH obj DO 
   Title := 'Hello 1';
 Title := 'Hello 2';
END;


Двинемся к тому, чтобы подсвечивать по-разному идентификаторы из текущего модуля и импортированные из других. Подсвечиваем красным то, что пришло из System.

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

Я, коллега, опираюсь на опыт разных языков. Я на Delphi написал больше кода, чем вы читали.

V>Документацию так и так надо поддерживать в актуальном состоянии.

Ага. При
S>>Выбор цветовой схемы — ровно наоборот, штука абсолютно субъективная. Она должна быть строго ортогональна семантике.

V>Я уже сказал своё ИМХО — достаточно выделения только ключевых слов.

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

V>Это домохозяйке починить кухонный комбайн никак... были бы руки. Подсветка синтаксиса не rocket science, а скорее ровно наоборот. Надо — сделай, исходники BlackBox открыты.

Мне? Нет, не надо. У меня уже есть IDE и язык, которые умеют это из коробки.

V>Почему подсветка синтксиса стала такая динамичная буквально не так давно? Правильно — не понимаешь.

Забавно, как вы собственную некомпетентность приписываете собеседникам.
V>Не понимаешь, что для этого нужен парсинг исходников в фоне и достаточные вычислительные ресурсы, которые появились повсеместно уже после 2000-го.
Детский лепет. Всё упирается в скорость компиляции. Парсить исходники в паскалевском синтаксисе всегда было очень легко — язык специально заточен на это. А вся динамика — исключительно заслуга редактора и команды, которая ставит перед собой такую задачу.


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

Мне — нет. Я просто разбираюсь в том, о чём пишу. И о процессах разработки ПО, и о его внутреннем устройстве.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[12]: Оберон круче всех!
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 24.07.12 08:55
Оценка:
Здравствуйте, vdimas, Вы писали:

V>А техника интерпретации какая была: p-код или работающее AST?


Второе.
... << RSDN@Home 1.2.0 alpha 5 rev. 52 on Windows 7 6.1.7601.65536>>
AVK Blog
Re[30]: Оберон круче всех!
От: vdimas Россия  
Дата: 24.07.12 09:18
Оценка: +2 -1 :))
Здравствуйте, Sinclair, Вы писали:

V>>Коллега, меньше слов, больше дела.

V>>

V>>Ок, берешь код на Обероне, предлагаешь помимо ключевых слов выделить еще что-то, выражаешь свои намерения хотя бы в RTF или HTML. Смотрим, сравниваем.

S>Не понимаю пассаж.

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


S>Перейдём к сложному — покажем разницу между локальными переменными и мемберами, чтобы видеть, где тут кто:

S>
S>PROCEDURE Fail(obj: MyObject; var Title: String)
S>BEGIN
S> WITH obj DO 
S>   Title := 'Hello 1';
S> Title := 'Hello 2';
S>END;
S>


Неудачный пример, не поможет, если оба Title являются чьими-то мемберами. Например, второй Title — мембер объекта, с процедурой Fail.

S>Двинемся к тому, чтобы подсвечивать по-разному идентификаторы из текущего модуля и импортированные из других. Подсвечиваем красным то, что пришло из System.


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


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

S>Я, коллега, опираюсь на опыт разных языков. Я на Delphi написал больше кода, чем вы читали.

В первых Дельфи, на которых я тоже успел пописать, пока нормальные компиляторы плюсов под винды не появились, раскраска была не сильно круче. Вот как раз только ключевые слова, литералы/числа и комментарии. Не помню там разный цвет под мемберы и локальные переменные.

V>>Я уже сказал своё ИМХО — достаточно выделения только ключевых слов.

S>Смешно.

Да ради бога.

V>>Предположу, что так же, как и везде. А у тебя были другие предположения?

S>У меня были предположения, что предлагаемое решение — красить текст вручную.

Не надо ля-ля, ты утверждал, что сделать это принципиально невозможно, потому что

его проектировали люди, не понимающие что такое код, что с ним делают люди, зачем они это делают. Он весь — сплошное сборище ошибок.

Вот такие вот рефлексии. )))

V>>Это домохозяйке починить кухонный комбайн никак... были бы руки. Подсветка синтаксиса не rocket science, а скорее ровно наоборот. Надо — сделай, исходники BlackBox открыты.

S>Мне? Нет, не надо. У меня уже есть IDE и язык, которые умеют это из коробки.

Гы, язык не умеет себя раскрашивать. Спасибо за фан.

V>>Почему подсветка синтксиса стала такая динамичная буквально не так давно? Правильно — не понимаешь.

S> Забавно, как вы собственную некомпетентность приписываете собеседникам.
V>>Не понимаешь, что для этого нужен парсинг исходников в фоне и достаточные вычислительные ресурсы, которые появились повсеместно уже после 2000-го.
S>Детский лепет. Всё упирается в скорость компиляции. Парсить исходники в паскалевском синтаксисе всегда было очень легко — язык специально заточен на это. А вся динамика — исключительно заслуга редактора и команды, которая ставит перед собой такую задачу.

Легко не легко — это спекуляции. Действительно нормальную раскраску кода в IDE я увидел уже в конце 90-х начала 2000-х, когда Оберон уже перестали разрабатывать. А до это все были тупые или как? Или просто графические IDE на тех процессорах тормозили сами по себе даже без сложной раскраски?

S>Мне — нет. Я просто разбираюсь в том, о чём пишу. И о процессах разработки ПО, и о его внутреннем устройстве.


Я привел твой отрывок. Вот твоё разбирательство. Это низкопробные рефлексии, а не разбирательства.

===========================
Собственно, вся эта ветка была порождена аналогичной рефлексией, см. первый пост после выделения ветки в отдельную тему. Я-то отношусь к Оберону абсолютно нейтрально, по-другому никак, ибо конкретно на Обероне не писал ничего серьезного, только пару раз в разное время играл с различными его реализациями. Конечно, всё понятно и так: нет стольких вложенных людских (то бишь денежных) ресурсов, нет стольких халявных либ, как привыкли на примере джавы и дотнета и т.д. Но с минимальными ресурсами был достигнут отличный результат и его использование в критических областях говорит само за себя.

Но самый фан здесь в том, что моя абсолютно нейтральная позиция на фоне всех этих низкопробных рефлексий выглядит как позиция защиты Оберона. Это само по себе уже забавно. Тут как раз глашатаи из всех сект подтянулись, и мне общение с ними доставляет определенный фан... Слышится недовольство и уже не знают что придумать... А то как же... Это же все догмы идут лесом... Все уже привыкли к установленному порядку, все уже договорились, разметили территорию: что вот мол, безопасный язык у нас либо декларативный (функциональный), а если императивный, то непременно через байткод, и лучше всего через байткод джавы или дотнета. А тут выскочка Оберон, да еще старше их всех, утверждлает тоже самое насчет чистого нейтивного языка. Вот уж неплохая красная тряпочка получилась... Что 8 лет назад, что сейчас... Ну, побегайте за красной тряпочкой, мне помахать несложно. ))) Видители, язык в IDE не покрасили, поэтому типобезопасная операционка полное г-но... Какая прелесть! Можно подумать, что целью разарботки операционки является раскрашенное IDE для Синклера. А товарищь Торвальдс-то и не знал... Вся жисть на свалку... В общем, сорри, но фан как он есть. Домохозяйкам комбайн не так покрашенный дали, поэтому суп они приготовить не в состоянии.

В общем, в твоей рефлексии для меня новости нет. Это ты и именно ты больше всех был глашатаем дотнета на заре этого сайта. Это именно твои определенные навыки, и, я бы даже сказал твой талант, в области бла-бла-бла языком, прямо на этом сайте создавали дотнету определенную репутацию... что даже я когда-то верил. Ведь лично ты разводил тут такую отборную Ньювасюковщину, таким соловьем заливался, что вот мол, вы сейчас можете писать на дотнете, а потом эта среда станет супер-пупер и ваши инвестиции только окрепнут. А по факту: мастшабируемость никакая, эффективность так и осталась на уровне десятилетней давности, и даже в будущих проектах ничего на этот счет не говорят. Вот это упс так упс вышел... Нехорошо получилось, правда? Ты мне должен за зря потраченное время в человекогодах. Да что тут говорить... WinForms недалеко укатился от MFC, многообещающий WPF с треском провалился из-за своей монстроидальной нерабтоспособности... В будущих Виндах таки сделали обещаный когда-то АПИ под кодовым названием "Авалон"... да только в нейтиве. Как тут говорил Кайберакс — Муахахаха.

Вообще, я сейчас вспоминаю те давние обсуждения и вижу, блин, насколько правы были те, кто говорил, что дотнет и прочие секты — это dogfood для окружающих. Что сама MS выпускает качественные рыночные продукты, ядро которых нейтив и только нейтив. А дотнет они сами пользуют чисто в утилитных целях. Ведь даже среда разработки, по сути, утилитный продукт для выпуски других продуктов. А не самоцель, за которую ты только что судорожно уцепился. Наше вам пффф с кисточкой...
Re[30]: Оберон круче всех!
От: Mamut Швеция http://dmitriid.com
Дата: 24.07.12 09:23
Оценка:
S>Начнём с простого — будем подсвечивать комментарии и литералы. Чтобы лучше отличать a = l0 от а = 10.
S>Перейдём к сложному — покажем разницу между локальными переменными и мемберами, чтобы видеть, где тут кто:
S>
S>PROCEDURE Fail(obj: MyObject; var Title: String)
S>BEGIN
S> WITH obj DO 
S>   Title := 'Hello 1';
S> Title := 'Hello 2';
S>END;
S>


S>Двинемся к тому, чтобы подсвечивать по-разному идентификаторы из текущего модуля и импортированные из других. Подсвечиваем красным то, что пришло из System.


Зачем все так сложно. Можно начать с примитивного:
Out.Ln; Out.String("str"); Out.Ln;


Нет. Out.Ln — это не переменная/тип из модуля Out. Это — функция. Но ведь в неоднозначном©™ синтаксисе Оберона это понятно с первого взгляда!


dmitriid.comGitHubLinkedIn
Re[29]: Оберон круче всех!
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 24.07.12 09:39
Оценка:
Здравствуйте, vdimas, Вы писали:

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


В следующий раз за подобные аналогии будет бан.
... << RSDN@Home 1.2.0 alpha 5 rev. 52 on Windows 7 6.1.7601.65536>>
AVK Blog
Re[31]: Оберон круче всех!
От: vdimas Россия  
Дата: 24.07.12 09:45
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Зачем все так сложно. Можно начать с примитивного:

M>
M>Out.Ln; Out.String("str"); Out.Ln;
M>


M>Нет. Out.Ln — это не переменная/тип из модуля Out. Это — функция. Но ведь в неоднозначном©™ синтаксисе Оберона это понятно с первого взгляда!


Если бы это была публичная переменная модуля, то выражение Out.Ln; было бы некомпиллируемым.

А если бы ты даже догадался как избежать очередного epic fail и написал бы чуть каверзнее, например так:
MyFunc Out.Ln;
Где Ln — переменная модуля, то я бы тебе ответил, что эти переменные экспортируются вовне как св-ва, только поэтому при экспорте у них можно указать вид доступа извне: R/W или RO. А потом бы я отправил тебя на новый круг искать разницу м/у get-свойвом и вызовом ф-ии.


================
В общем, дьявол в деталях. Я не набрался смелости утверждать, что Паскалям раскраска не нужна вовсе, просто считаю, что в ограничениях Оберона она непринципиальна. Более того, мне есть с чем сравнить, хотя бы с плюсами, где я без подержки среды буду кодить минимум вдвое медленнее при тех объемах проектов, между которыми приходится скакать по работе. Более того, я высказал сугубо своё личное мнение, а спорить в такой манере против сугубо моего личного мнения — заведомо неблагодарное занятие. Это я тебе заранее обещаю. )) С личным мнением вообще не спорят. Максимум вместо этого делятся своим мением. Если бы оно еще будет интересным.. Но пока что, увы.
Re[5]: Оберон круче всех!
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 24.07.12 09:49
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Особую остроту придает тот факт, что перечисленные пункты не новость, а старше того же Оберона многократно, но так и не взлетели. И не взлетят, бо противоречат инкапсуляции ООП/КОП.


Ужас то какой. Ну расскажи тогда, как в православном ООП 21 века следует разруливать такие ситуации: есть некое значение, которое может быть представлено следующим образом: как строка, как поток и как объектная ссылка? Будем руками везде дискриминант анализировать без какого либо контроля? Или городить над 3 вариантами визитор?
... << RSDN@Home 1.2.0 alpha 5 rev. 52 on Windows 7 6.1.7601.65536>>
AVK Blog
Re[6]: Оберон круче всех!
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 24.07.12 09:49
Оценка: +1
Здравствуйте, vdimas, Вы писали:

V>О! Смешно один и тем же лицам.


Я бы на твоем месте сильно задумался, почему столько людей, придерживающихся совершенно разных взглядов на языки программирования, тем не менее категорически с тобой не согласны.
... << RSDN@Home 1.2.0 alpha 5 rev. 52 on Windows 7 6.1.7601.65536>>
AVK Blog
Re[59]: Оберон круче всех!
От: vdimas Россия  
Дата: 24.07.12 10:44
Оценка:
Здравствуйте, Sinclair, Вы писали:

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

V>>Осталось определиться с понятием "приложение". Для того же MS SQL — это десятки запускаемых экзешников. Давай, покажи процесс раздачи прав каждому из них.
S>"Приложение" в такой системе — единица раздачи привилегий. Тот же MS SQL — это вовсе не "десятки запускаемых екзешников", но в обсуждаемой системе будет состоять из достаточно большого количества компонент. Большинству из них не нужны никакие особенные права.

С какой стати не нужны?

S>А вот тем, кто хочет работать с чем-то особенным (например, собственно backup engine, которому нужен tape access), будут получать доступ через подтверждение.


Это унылое Г. Раздача прав в "ленивой" манере, то бишь по-требованию, адекватна только для десктопного юзверя. Никакой админ с тобой не согласится.

V>>Упс... Ну и у кого тут не тени понимания?

S>Судя по ответам — у вас.
V>>1. Эксплорер — это обычное GUI приложение, а не надстройка.
V>>2. Как и обычному GUI приложению, Эксплореру НЕ нужно АПИ CreateFile() для своей работы, бо OpenFileDialog можно вызывать с мильонами флагов, в т.ч. для создания файлов.
S>Вы продолжаете не понимать. Кто, по-вашему, реализует OpenFileDialog?

Гы-гы, общедоступная либа CommonCtrl.dll, которая ничего не знает о каком-то там Explorer. Напиши свой шелл, какие проблемы?

S>Он не является частью ядра.


Дык, в обсуждаемых операционках (Сингулярити/Оберон) НИЧЕГО не является частю ядра, кроме аппаратных абстракций и шедуллера. В Сингулярити еще каналы и разделяемый хип под данные в каналах.


S>Всё прекрасно работает. Один процесс имеет доступ к кэшу DB Engine, другой — к сетке. Благодаря отсутствию аппаратной изоляции, передача данных между ними ничего не стоит.


Еще раз, вот это удаленно не работает:

я заставлю его работать с внешним приложением-конфигуратором, которое будет ему давать доступ к файлам, которые лично я ему подтвердил — хотя бы через конфиг-файл, права на доступ к которому я получаю тем же способом через OpenFileDialog на своём администраторском ноутбуке.

из-за предложенной "ленивой" манеры раздачи прав.


V>>Не можно. Ты допускаешь невнимательность, пытаясь рассматривать две крайности: система прав от пользователя vs система прав от приложения.

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

Что ты понимаешь под изоляцией процессов? И почему у удаленного пользователя должно быть много прав?

V>>Этот модуль для хаков, при том, что кольцо исполнения общее на всех. Все остальные модули не позволят перепрыгнуть встроенные механизмы защиты, какие бы они не были.

S>Откуда там возьмутся механизимы защиты, если их нет?

Механизмы защиты через типобезопасность. Модуль-то SYSTEM можно запретить импортировать. Ес-но, как и в Сингулярити потребуется создать некий "пояс доверия", т.е. небольшую часть кода, которую заведомо можно считать безопасной, а остальным будет доступно только то, что доступно через честное АПИ.


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

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

Я же говорю, ты споришь сам с собой, сравнивая исключительно два крайних сценария. Если бы я предложил тебе аналогичный сценарий для серверного "доверенного" приложения, которое пускает всех подряд юзверов (ну, забыли один if в коде, с кем не бывает), то ты бы быстро вспомнил о совместной о суперпозиции прав, так? Я ответил на твой вопрос?

S>Это же нейтивная истема. А любая безопасность с т.з. кода обеспечивается артефактами безопасности и никак иначе — некими описательными структурами. Например: некий модуль предоставляет функциональность художественного логгирования. Дык, этот модуль не должен корчить из себя операционную систему и считать, какому вызывающему модулю что можно, а что нет. Он вообще понятия не может иметь, кто именно его вызывает — нет такой возможности узнать. Зато он может получить артефакт безопасности в одном из аргументов и использовать его в операциях над файлами. И такой модуль понятия не должен иметь, локально его вызывают или удаленно — это должно быть в артефактах и прописано. А то смешно бы было, если бы при обращении к файловому АПИ такой модуль пытался показать диалог открытия файлов что для локального GUI-приложения, что для локального серверного для удаленного клиента.

S>Ваше воображение работает не в ту сторону. Модулю не нужно узнавать о том, как его вызывают. Почитайте что-нибудь про CAS.

Что именно? Я такой CAS делал. Это просто спцифический загрузчик, который вешает хуки на системные вызовы и умничает во время этих вызовов. Ну и сам CAS тоже, знаешь ли, вовсе не приложение уровня ядра. А требуется именно изкаробки.
Re[60]: Оберон круче всех!
От: vdimas Россия  
Дата: 24.07.12 10:47
Оценка:
Здравствуйте, WolfHound, Вы писали:

S>>Ваше воображение работает не в ту сторону. Модулю не нужно узнавать о том, как его вызывают. Почитайте что-нибудь про CAS.

WH>CAS та еще бяка.

Именно что. Ровно один уровень прав для всех приложений в помойке.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.