Здравствуйте, AVC, Вы писали:
AVC>Очень трогательно и оригинально. Сравним с Виртом: AVC>
...Большинство идей пришло от использования и изучения
AVC>существующих языков, таких как Modula-2, Ada, Smalltalk и Cedar, которые часто предостерегали
AVC>нас от того, как не надо делать.
AVC>(Выделение тоже мое.)
Все! До меня дошло! Вот она главная черта которую Ява точно позаимствовала у Оберона! Она позаимствовала подход — усматривать в других языках как не надо делать!!! Вот именно по этому на Оберон посмотрели и поняли как не надо делать. Именно по этому Оберон так же Похож на Яву как на Эйфелеву башню!
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Зверёк Харьковский, Вы писали:
ЗХ>...ну а вообще, доказывать что от чего произошло и что на что похоже — мне не кажется темой для продуктивной дискуссии.
И в первую очередь потому что каждый автор языка в первую очередь личность. И его задача создать тот единственный язык который ему будет мил и удобен. По этому переть что-то просто бессмысленно. Плагиат он и есть плагиат.
Гениальные идеи вроде ЖЦ, типобезопасности, интерфейсов, ООП, КОП и т.п. рождаются редко. Порой даже нельзя понять у кого впервые появилась та или иная идея. Так что приходится их использовать независимо от их просхождения.
Ну, и собственно ЯП в большинстве случаев сомещают чужие гениальные идеи изредка добавляя свои мелкие идейки, которые в последствии иногда признаются массами как гениальные.
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[17]: Мои впечатления о лекции Н. Вирта в ННГУ 26.09.2005
Здравствуйте, AVC, Вы писали:
AVC>Хорошо, вернусь на минуту к теме синтаксического минимализма и скажу пару слов по поводу break. AVC>Предположим, я вижу некий цикл на Обероне. AVC>Что-то вроде AVC>
AVC>WHILE cond DO
AVC> ...тут тело цикла
AVC>END;
AVC>(* точка A, следующая за циклом *)
AVC>Читая этот текст, я уверен, что если я попаду в точку A, то там будет верным утверждение ~cond. AVC>Это очень помогает быстро разобраться в программе. AVC>А вот если я читаю текст на Си/Си++, то такой уверенности нет, т.к. из цикла можно выйти и другим путем — с помощью break или даже goto. AVC>Значит, я должен лезть в тело цикла и выискивать там возможные break и goto. AVC>Такое вот синтаксическое удобство.
Батенька вам с этим идеологически бр... эээ... багажОм нужно к функциональщикам податься. Они вообще циклы считают злом. При разговоре они вам упомянут, что в вашем недоделаном Обероне можно случайно изменить переменную, а от этого вторая половина бед в программировании (первая от циклов). В общем код должен быть таким:
(define (f (cond _cond f ...тут тело цикла)))
В общем, кончай агитацию. Слезай с бронивека.
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[19]: Мои впечатления о лекции Н. Вирта в ННГУ 26.09.2005
Здравствуйте, AVC, Вы писали:
AVC>Статистика показывает, что число циклов LOOP...EXIT...END не превышает 10% (9,1%). Для чего портить остальные 90% циклов?
Статистика прграмм написанных на Хаскель показывает, что в них количество процентов вообще циклов не привышает 0%. ТАк зачем порить остальные 100% программы циклами?
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[20]: Мои впечатления о лекции Н. Вирта в ННГУ 26.09.2005
Здравствуйте, AVC, Вы писали:
AVC>Собственно, "мой ответ Cyberax-у" имел простую цель: указать на то, что в большинстве случаев break (EXIT) не нужен. AVC>Вместо популярного на Си решения вроде (схематично) AVC>
AVC>for (i = 0; i < n; ++i)
AVC> if (a[i] == x)
AVC> break;
AVC>
AVC>вполне хорошо AVC>
AVC>i := 0;
AVC>WHILE (i < n) & (a[i] # x) DO INC(i) END;
AVC>
Ага если шивровки пишешь. А так я бы предпочел что-нить из испорченного:
foreach (var y in a)
if (y == x)
break;
или нежизнеспособного:
a.Find(y => y == x);
хотя как только перепишешь этот пример соль извращенными способами, то сразу понимашь его полную бессмысленность. Зачем искать то что и так известно?
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, eao197, Вы писали:
E>Здравствуйте, AndreyFedotov, Вы писали:
AF>> Ну а Линукс Торвальдс делает тоже на C++ E>
E>Мне казалось, что ядро Линукса на чистом C делается.
Вообще то да... В пылу полемики упустил это из виду, как и позицию Линукса Торвальдса по сему поводу
Здравствуйте, Зверёк Харьковский, Вы писали:
AVC>>В книге Project Oberon (Вирт и Гуткнехт) как раз и рассматривается конкретный пример операционной системы, созданной с нуля. С объяснением архитектурных решений. С исходными текстами. AVC>>А Вы говорите — не учат.
ЗХ>О! А вы не подскажете, где ее скрасть можно?
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, AVC, Вы писали:
AVC>>Собственно, "мой ответ Cyberax-у" имел простую цель: указать на то, что в большинстве случаев break (EXIT) не нужен. AVC>>Вместо популярного на Си решения вроде (схематично) AVC>>
AVC>>for (i = 0; i < n; ++i)
AVC>> if (a[i] == x)
AVC>> break;
AVC>>
AVC>>вполне хорошо AVC>>
AVC>>i := 0;
AVC>>WHILE (i < n) & (a[i] # x) DO INC(i) END;
AVC>>
VD>Ага если шивровки пишешь. А так я бы предпочел что-нить из испорченного: VD>
VD>foreach (var y in a)
VD> if (y == x)
VD> break;
VD>
VD>или нежизнеспособного: VD>
VD>a.Find(y => y == x);
VD>
VD>хотя как только перепишешь этот пример соль извращенными способами, то сразу понимашь его полную бессмысленность. Зачем искать то что и так известно?
Искали индекс i элемента в массиве равного x, если он есть.
В Ваших же примерах, действительно, не ясно что искали и зачем это делали.
Здравствуйте, Cyberax, Вы писали:
C>Нормальные компиляторы делают return value optimization для таких C>случаев (то есть неявно переписывают функция в виде c out-параметром).
C>Невозможность создания удобных типов с эстафетным владением — это вообще минус Оберона.
А уж с эстафетной концевой рекурсией... Ах мечты мечты.
На самом деле, эстафетное владение в Обероне (равно как в любом языке со сборкой мусора) — это раз плюнуть.
POINTER TO ARRAY OF ARRAY OF REAL — и всё.
(Оставим в стороне вопрос — лепо ли в качестве матрицы использовать jagged array).
Здравствуйте, VladD2, Вы писали:
VD>Все! До меня дошло! Вот она главная черта которую Ява точно позаимствовала у Оберона! Она позаимствовала подход — усматривать в других языках как не надо делать!!! Вот именно по этому на Оберон посмотрели и поняли как не надо делать. Именно по этому Оберон так же Похож на Яву как на Эйфелеву башню!
Кстати про Эйфелеву башню. Почему-то никто здесь не спорит с пеной у рта, что Eiffel это (круто/отстой)... А ведь очень симпатичный язык, и весьма строгий.
Здравствуйте, Кодт, Вы писали:
C>>Невозможность создания удобных типов с эстафетным владением — это вообще минус Оберона.
К>А уж с эстафетной концевой рекурсией... Ах мечты мечты.
А что такое "тип с эстафетным владением" и "эстафетная концевая рекурсия"?
Что такое просто концевая рекурсия это я понимаю, а эстафетная?
К>На самом деле, эстафетное владение в Обероне (равно как в любом языке со сборкой мусора) — это раз плюнуть. К>POINTER TO ARRAY OF ARRAY OF REAL — и всё. К>(Оставим в стороне вопрос — лепо ли в качестве матрицы использовать jagged array).
Это не jagged array. Это указатель на настоящий обычный думерный value-type массив.
PROCEDURE f(VAR valueTypeMatrix: ARRAY OF ARRAY OF REAL);
PROCEDURE g(VAR valueTypeJaggedMatrix: ARRAY OF POINTER TO ARRAY OF REAL);
PROCEDURE h(ptrToValueTypeMatrix: POINTER TO ARRAY OF ARRAY OF REAL);
PROCEDURE s(ptrToValueTypeJaggedMatrix: POINTER TO ARRAY OF POINTER TO ARRAY OF REAL);
Re[22]: Мои впечатления о лекции Н. Вирта в ННГУ 26.09.2005
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Искали индекс i элемента в массиве равного x, если он есть. СГ>В Ваших же примерах, действительно, не ясно что искали и зачем это делали.
А... Ну, тогда может воспользоваться Array.IndexOf:
Здравствуйте, Кодт, Вы писали:
К>Кстати про Эйфелеву башню. Почему-то никто здесь не спорит с пеной у рта, что Eiffel это (круто/отстой)... А ведь очень симпатичный язык, и весьма строгий.
Думаю, его просто никто не знает. Тут на ЮГ про него рассказывал сам автор, но народ просто хлопал глазками. Видимо не понимал на фиг оно упало и что это такое. Я честно говоря из рассказа помню, только что в языке есть МН и программирование по контракту.
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[15]: Мои впечатления о лекции Н. Вирта в ННГУ 26.09.2005