СГ>2) Для того чтобы написать свою программу нужно создать новый документ.
Предположим. В этом случае мне не видно Log, ошибки все равни выводятся в тексте программы. А это неочевидно и неинтуитивно Если текст программы не вмещается в экран? А из-за идиотского расположения окон он не будет никогда, то мне что, весь текст программы сканировать на предмет наличия ошибок? А что мне с ошибками потом делать? Стирать их, или они не влияют на компиляцию? То, что они не влияют на компиляцию неочевидно, так как они торчат прямо посреди текста и нарушают восприятие программы
СГ>3) Контролы, вообще-то, принято помещать на формы.
Контролы, вообще-то, не принято вставлять внутрь исходного кода программы.
И еще раз (раз мы уж скатились в повторение той ветки), скажите мне, что неправильно в высказанных здесь
И еще раз, почему ваши оппоненты приводят один факт за другим, в то время как единственные факты, что вы приводите это:
- вы неправильно написали программу на обероне
— это не оберон, это модула-2
— это не модула, это зоннон
— вы пишите код не туда, куда надо
— компонентность- это круто
— gc — это круто
— паскальный синтаксис — это круто
Все. Ни в одной из многотысячестраничных веток, посвященных Оберону, вы так и не смогли доазать ни одно из следующих утверждений:
- Синтаксис Оберона является превосходящим по отношению к С-подобному синтаксису
— Модульный подход Оберона к написанию програм являтся единственно верным подходом
— Оберон является языком, превосхожящим С/С++ по гибкости стройности и проч.
— Среда BlackBox является превосходной системой для написания кода и для изучения в школах
Объясняю, почему вы не смогли этого доказать:
1. Синтаксис
На протяжении всей этой ветки вам неоднократно было показано/доказано/рассказано, что паскальный синтаксис не является оптимальным по одной единственной причине. Программисту налевать на компилятор, тот и сам справится. Программисту надо писать код, читать его и сопровождать. Все это делается намного легче с синтаксисом С, чем с синтаксисом Паскаля
2. Модульность
Вы так и не дали определений ни компонентного ни модульного программирования. Не буду сейчас искать тот ответ, где в двух словах было показано, что С# является не менее модульным языком.
По-моему, так и не было дано ни одного ответа на вопросы связанные с проблемами конфликта имен, исключений, неопределенных состояний системы. На все такие вопросы были даны ответы, достойные фанатика:
- В обероне такого нет.
— Сборщик мусора с этим справится
— Система сама разберется
— Идите учите мат. часть
3. Язык
Единственным преимуществом Оберона называлась его модульность и компонентный пожход. См. пункт 2
4. BlackBox
Ставятся рядом BlackBox и Visual Studio, можно Express Edition, а также Eclipse и KDevelop, до кучи. У вас могут возникнуть еще какие-нибудь вопросы об убогости BlackBox'а?
Единственным человеком, что решил отречься от фанатизма, был AVC. В одной из веток он верно отметил, что Оберон предназначен для работы в системе, построенной на нем же. И так же отметил, что BlackBox — это и есть эмлятор такой вот системы. Единственные доступные для изучения системы такого рода, что можно пощупать, — это BlueBottle и BlackBox.
Что остановило сообщество RSDN от детального изучения этих систем? Отсуствие явного смысла в их изучении. Они не предлагают ничего нового ни в программировании ни в операционных системах, имхо. Если я захочу экстрима, я загружу Smalltalk и мне от этого будет намного больше пользы.
И вот, наконец-то вопрос.
Что дает Оберон в плане программирования? Чем он настолько лучше других языков, что его необходимо защищать с, буквально, фанатической преданностью?
Синтаксис? Доказано уже, что он не лучше, а во многом и хуже других синтаксисов
Какие-нибудь новые парадигмы в программировании? Опять же нет.
Легкость в обучении? Вряд ли
Легкость в разработке? Опять же нет?
Сергей. Вы, как самый ярый сторонник Оберона, можете внятно и с фактами на руках показать преимущество Оберона? Не впадая в ребячество вроде подсчета лексем?
C>К пробелам, пожалуйста, такое же отношение проявляйте...
А к пробелам нету такого же отношения. Они служат для натурального разделения слов друг от друга. А то что при этом одновременно еще и пользовательские идентификаторы от служебных слов отделяют, так спасибо им большое.
Сергей Губанов wrote:
> C>К пробелам, пожалуйста, такое же отношение проявляйте... > А к пробелам нету такого же отношения. Они служат для натурального > разделения слов друг от друга. А то что при этом одновременно еще и > пользовательские идентификаторы от служебных слов отделяют, так > спасибо им большое.
В С можно вообще не писать пробелов, а в Обероне — они обязательны. Так
что считайте и их.
S>Он же сказал: доказано, что там должен быть 0. А если факты не соответствуют теории, то тем хуже для фактов. В фильме Jacket (цитата не совсем точная, но все же):
Everything is alright with me. It's reality that' playing tricks
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, Cyberax, Вы писали:
C>>К пробелам, пожалуйста, такое же отношение проявляйте...
СГ>А к пробелам нету такого же отношения. Они служат для натурального разделения слов друг от друга. А то что при этом одновременно еще и пользовательские идентификаторы от служебных слов отделяют, так спасибо им большое.
А скобки, надо полагать, не служат для *натурального* разделения слов?
Здравствуйте, CrystaX, Вы писали:
CX>Здравствуйте, Сергей Губанов, Вы писали:
СГ>>Здравствуйте, CrystaX, Вы писали:
CX>>>Безотносительно не бывает.
СГ>>Бывает.
CX>Ну и я так тоже могу. Вот: "Не бывает.". CX>Вы аргументы приведите, а не постулируйте.
Вся эта относительность "в промышленных количествах" появилась, надо полагать, из широкой рекламной компании СТО Эйнштена. Однако даже в СТО не все относительно, более того практически всё является абсолютным. Летит ракета со скоростью близкой к скорости света мимо линейки и измеряет ее длину. О! Ура! Длина линейки относительна! А количество отсчетов нарисованных на линейке, количество атомов из которых она сделана и т.д. и т.п. — всё абсолютно.
Здравствуйте, Пацак, Вы писали:
П>Здравствуйте, Сергей Губанов, Вы писали:
П>То есть если я напишу
П>
П>WHILE a DO
П> IF a THEN ...; EXIT END;
П>END
П>
П>... то я получу syntax error?
Ну да. Вы получите ошибку времени компиляции. Такая программа не будет скомпилирована. EXIT бывает только внутри LOOP ... END, а внутри WHILE или REPEAT его быть не может.
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, CrystaX, Вы писали:
CX>>Здравствуйте, Сергей Губанов, Вы писали:
СГ>>>Здравствуйте, CrystaX, Вы писали:
CX>>>>Безотносительно не бывает.
СГ>>>Бывает.
CX>>Ну и я так тоже могу. Вот: "Не бывает.". CX>>Вы аргументы приведите, а не постулируйте.
СГ>Вся эта относительность "в промышленных количествах" появилась, надо полагать, из широкой рекламной компании СТО Эйнштена. Однако даже в СТО не все относительно, более того практически всё является абсолютным. Летит ракета со скоростью близкой к скорости света мимо линейки и измеряет ее длину. О! Ура! Длина линейки относительна! А количество отсчетов нарисованных на линейке, количество атомов из которых она сделана и т.д. и т.п. — всё абсолютно
Вообще, я читал где-то небольшие рассуждения о том, что в ОТО куда меньше отностиельного, нежели в СТО. Найду если за реальное время — дам линку... А вообще это офтоп от нашего флейма. Щас флейм-модер заплюсует.
AVC>>>он абсолютно уверен, что перед следующим оператором после выхода из цикла выполняется условие ~p (NOT p).
P>>EXIT что, отменили? СГ>Учите "матчасть", а то языка не знаете, а суетесь.
P>>В среде Windows программа запускается на выполнение двойным щелчком. СГ>Не удержусь от замечания: а в оберонах одинарным! Опять идите учить "матчасть".
Предлагаю показательно забанить Сергея Губанова о следующим пунктам:
Пункт 5. Не допускается проявление грубого или неуважительного отношения к другим участникам форума. Оскорблять и обзывать собеседника, ставить под сомнение его профессиональную квалификацию, придираться к его нику, указывать на орфографические и синтаксические ошибки и т. д. запрещается
...
Мы, без сомнения, неприязненно относимся к людям, предположительно не желающим подумать или поучиться прежде, чем задавать вопросы. Такие люди убивают время — они берут, ничего не давая взамен, они отнимают время, которое мы могли бы посвятить другому вопросу, более интересному, и другому человеку, более достойному ответа.
...
Мы (в основном) — добровольцы. Мы посвящаем время своей нелегкой жизни ответам на вопросы, и временами мы не справляемся со шквалом вопросов. Поэтому приходится безжалостно "фильтровать базар". В частности, отбрасывать вопросы потенциальных неудачников, чтобы потратить отведенное на ответы время более эффективно, посвящая его победителям.
... Нам нравится отвечать людям, продемонстрировавшим свою способность воспринимать ответы.
...
Подготовьте вопрос. Продумайте его. На поверхностные вопросы вы получите поверхностные ответы, или вообще ответов не получите.
... неплохо сразу ясно дать понять, что вы можете и хотите помочь в процессе выработки решения.
... Вежливость никогда не повредит, и иногда помогает
...
Не реагируйте как неудачник
Вполне вероятно, что вы уже облажались несколько раз в хакерских форумах — так, как описано в этой статье, или аналогично. И вам уже объяснили, как именно вы облажались, возможно, в красках. При всем честном народе.
Когда такое происходит, самая неудачная реакция — жаловаться на случившееся, считать себя оскорбленным словесно, требовать извинений, вопить, задыхаться от гнева, подавать иски в суд, жаловаться работодателям обидчиков, не опускать за собой сидения унитаза и т.п. Вместо всего этого надо сделать следующее:
Смириться. Это — нормально. На самом деле, это хорошо и целесообразно.
...
Здравствуйте, moudrick, Вы писали:
M>Я написал Вам, как в данном случае понимается выражения "для кого она правильна". Вы же это поскипали. Потрудитесь отвечать по существу.
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Вся эта относительность "в промышленных количествах" появилась, надо полагать, из широкой рекламной компании СТО Эйнштена. Однако даже в СТО не все относительно, более того практически всё является абсолютным. Летит ракета со скоростью близкой к скорости света мимо линейки и измеряет ее длину. О! Ура! Длина линейки относительна! А количество отсчетов нарисованных на линейке, количество атомов из которых она сделана и т.д. и т.п. — всё абсолютно.
Сергей, я в Вас разочаровываюсь как в собеседнике. Ваш последний ответ — сплошная демагогия. Есть очень четко поставленный вопрос, на который Вы не дали ответа. Повторю его еще раз.
Определите понятие правильности синтаксиса языка. Каким критериям он должен соответствовать и самое главное, почему он должен соответствовать этим критериям?
Здравствуйте, CrystaX, Вы писали:
CX>Здравствуйте, Сергей Губанов, Вы писали:
СГ>>Здравствуйте, CrystaX, Вы писали:
CX>>>Безотносительно не бывает.
СГ>>Бывает.
CX>Ну и я так тоже могу. Вот: "Не бывает.". CX>Вы аргументы приведите, а не постулируйте.
П>>WHILE a DO
П>> IF a THEN ...; EXIT END;
П>>END
П>>
П>>... то я получу syntax error?
СГ>Ну да. Вы получите ошибку времени компиляции. Такая программа не будет скомпилирована. EXIT бывает только внутри LOOP ... END, а внутри WHILE или REPEAT его быть не может.
Ну и где здесь удобство?
Яркий пример — читаем данные с сокета. Некая информация.
while not end of stream
read socket
calculate checksum
if checksum fails
raise hacker alert
exit
else
calculate number of bytes read
if number of bytes greater than MAX_DATA_ALLOWED
exit
end if
process data
end if
end while
Что делать будем-то? Ставить флаги в глобальных переменных?
Здравствуйте, Сергей Губанов, Вы писали:
СГ>А к пробелам нету такого же отношения. Они служат для натурального разделения слов друг от друга. А то что при этом одновременно еще и пользовательские идентификаторы от служебных слов отделяют, так спасибо им большое.
Ой, вот тока не нада! В C++ я могу написать:
if(a){b=c;}
Это будет плохо читаемо, но это скомпилируется. Попробуй написать на Обероне что-то типа
IFaTHENb=c;END
— если это скомпилится (о читаемости я вообще молчу) — вот тогда и будем говорить о "другом" отношении к пробелам. Если не скомпилится — будь любезен включить их в количество подсчитываемых тобой лексем.
Сергей Губанов wrote:
> C>Что????? _Совсем_ нет?? > C>В морг тогда такой язык, без _всяких_ дальнейших вопросов. > Циклы бывают всего трех типов, понимаете? В чем проблема-то?
Плевать мне на теорию про три цикла. На _ПРАКТИКЕ_ (подчеркиваю
специально) нужен break для нормального кода.
А необходимости в зависимости от инвариантов цикла у меня не возникало
ни разу.
Да... теперь понятно почему Обероны давно сдохли. Абсолютно непрактичная
вещь.
СГ>Может. Таково одно из положений структурного программирования. СГ>
СГ>WHILE p DO
СГ> ...
СГ>END;
СГ>ASSERT(~p)
СГ>
СГ>Этот ассерт ни когда не остановит выполнение программы, условие ~p всегда истинно.
Много раз уже звучал вопрос, а что EXIT убрали из языка?
СГ>
СГ>while (p)
СГ>{
СГ> ...
СГ>}
СГ>assert(!p)
СГ>
СГ>А вот этот ассерт иногда может остановить работу программы. Например, если внутри цикла сделать break не присвоив p ложное значение.
От программы зависит. Простейший пример: найти в массиве первый отрицательный элемент.
Можно так:
for (i=0; i < N; i++)
if (a[i] < 0)
break;
Можно так:
for (i=0; a[i]>=0 && i < N; i++);
В 1-м примере p=(i<N)
Во 2-м — p=(a[i]>=0 && i < N);
Если вставить assert(!p), он сработает в обоих случаях?
Надо полагать, в Обероне точно так же. Или нет? Тогда просветите.