Здравствуйте, AVC, Вы писали:
AVC>Об этом пишет, например, Франц в старой статье "Java: критическая оценка".
AVC>
AVC>Что в Java действительно ново?
AVC>• Переносимость Java ...
AVC>• Не нова также идея строгой типизации с поддержкой динамических типов и системы "сборки
AVC>мусора", ...
AVC>• Мысль о том, что язык со строгой типизацией делает возможным построение программ,
AVC>переносимых с одной архитектуры на другую, ...
AVC>• Программы на Java могут состоять из нескольких независимо компилируемых единиц,
AVC>которые "динамически" собираются воедино только в момент загрузки ...
AVC>• Даже преподносимая сейчас в качестве главной инновации Java идея не зависящих от
AVC>платформы мобильных программ в сочетании с генерацией кода в процессе выполнения...
Ну что тут можно сказать? Вирт в Oberon допустил всего одну фатальную ошибку: придал Oberon-у паскалевский синтаксис.
А теперь не может простить Грослингу, что тот эту ошибку "тайком" исправил
Здравствуйте, AndreyFedotov, Вы писали:
AF> Я уже указавал, что вы привели лишь догадки, но не факты. Потому, Алексей, вы можете считать как угодно, но вот утверждать это публично, с моей точки зрения, не совсем разумно.
Можно подумать что AVC первый или единственный публично утверждает о том что Sun не имела права замалчивать об оберонах. Как минимум, я слышал или читал ранее про аналогичную мысль утверждаемую публично следующими людьми: Никлаус Вирт (слышал лично во время его турне), Михаэль Франц, Сергей Свердлов, Руслан Богатырёв (статьи доступны на сайте http://www.oberon2005.ru/). Плюс я сам эту мысль публично утверждаю. Уверен, что есть еще масса людей тоже готовых утверждать это публично. Не считаю разумным замалчивать данный факт воровства. Не разумным я считаю лишь спорить об этом до посинения в форумах.
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Не считаю разумным замалчивать данный факт воровства. Не разумным я считаю лишь спорить об этом до посинения в форумах.
Это не факт, это всего лишь натянутое предположение. И от того, что ты десять раз скажешь "факт", быть предположением оно не перестанет.
Так что не надо начинать всё по новой.
я уверен в том, что в Яве есть заимствования из Оберона.
Иначе я бы ни за что не делал подобных утверждений.
Вместе с тем, я теоретически допускаю, что, будучи "всего лишь человеком" , могу и заблуждаться.
В любом случае, дальнейшие споры на эту тему (по крайней мере, на форуме) мне кажутся неразумными.
Мы все только перессоримся окончательно.
Для меня тема Ява-Оберон возникла случайно.
Когда-то (давно уже) я предложил на одном из форумов рассмотреть язык Оберон в качестве языка для обучения студентов.
Потом меня стали за это критиковать (иногда, ИМХО, чрезмерно сурово ), в том числе и сторонники Java и C#.
Я тогда удивился и спросил, почему такая жестокая критика, ведь эти языки (хотя бы частично) обязаны своим происхождением Оберону.
Тут-то я и узнал, что не все думают так же, и что Sun ни слова не сказала о связи между Явой и Обероном.
Моя эмоциональная реакция Вам понятна.
Мне кажется, что многие нашу с Вами точку зрения понимают, но либо не уверены в нашей правоте, либо даже не согласны с нами.
Мне также кажется, что объяснив свою точку зрения, мы сделали все, что могли.
Можно привести убедительные (по крайней мере, на собственный взгляд ) аргументы, но нельзя заставить других оценивать их также.
Как утверждалось в одной старой поговорке, "можно привести лошадь к водопою, но нельзя заставить ее пить".
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
Здравствуйте, AVC, Вы писали:
AVC>Когда-то (давно уже) я предложил на одном из форумов рассмотреть язык Оберон в качестве языка для обучения студентов.
еще один изувер
за что вы так бедных студентов не любите?
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, AndreyFedotov, Вы писали:
AF>> Я уже указавал, что вы привели лишь догадки, но не факты. Потому, Алексей, вы можете считать как угодно, но вот утверждать это публично, с моей точки зрения, не совсем разумно.
СГ>Можно подумать что AVC первый или единственный публично утверждает о том что Sun не имела права замалчивать об оберонах. Как минимум, я слышал или читал ранее про аналогичную мысль утверждаемую публично следующими людьми: Никлаус Вирт (слышал лично во время его турне), Михаэль Франц, Сергей Свердлов, Руслан Богатырёв (статьи доступны на сайте http://www.oberon2005.ru/). Плюс я сам эту мысль публично утверждаю. Уверен, что есть еще масса людей тоже готовых утверждать это публично. Не считаю разумным замалчивать данный факт воровства. Не разумным я считаю лишь спорить об этом до посинения в форумах.
Сергей! Вы выставляете себя в смешном свете. Никаких фактов ни вы ни другие сторонники Оберона так и не сумели привести. Голословных утверждений и домыслов — предостаточно. Фактов — ни одного. Только факты не имеющие прямого отношения к сути дела, из которых и делались все умозаключения. Ни на один из банальных вопросов
ответа вы так и не дали. Вместо этого вы сослались на то, что мол Алексей не один, кто повторял легенду о краже оберона (вероятно принадлежащую Вирту). Есть такая поговорка: "Сколько не кричи халва — во рту слаще не станет". Надеюсь вы понимаете, что если кричать толпой, халва так же не появится.
Алексей нашёл в себе мужество и здравый смысл отказаться от данной дискуссии — так как это простой обмен бездоказательными утверждениями. В чём я с ним полностью согласен.
Потому предлагаю тему закрыть, по крайней мере до появления новых и прямых фактов.
Здравствуйте, Дарней, Вы писали:
AVC>>Когда-то (давно уже) я предложил на одном из форумов рассмотреть язык Оберон в качестве языка для обучения студентов.
Д>еще один изувер Д>за что вы так бедных студентов не любите?
Зря ты так. Паскаль в качестве первого языка при программировании очень хорош. Почему бы его место сейчас не отдать Oberon-у. Язык, как мне представляется, простой, лаконичный, модульный, надежный. Для первого года обучения, имхо, то, что нужно. А затем уже можно на C++/Java/C# переходить.
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
Д>>еще один изувер Д>>за что вы так бедных студентов не любите?
E>Зря ты так. Паскаль в качестве первого языка при программировании очень хорош. Почему бы его место сейчас не отдать Oberon-у. Язык, как мне представляется, простой, лаконичный, модульный, надежный. Для первого года обучения, имхо, то, что нужно. А затем уже можно на C++/Java/C# переходить.
мне паскаль всегда не нравился
слишком неправильная идея положена в его основу (это я про примитивизацию конструкций языка)
Здравствуйте, eao197, Вы писали:
Д>>за что вы так бедных студентов не любите? E>Зря ты так. Паскаль в качестве первого языка при программировании очень хорош. Почему бы его место сейчас не отдать Oberon-у.
Нынче модно ООП. Ни классический паскаль, ни Оберон для демонстрации ОО-подхода не подходят. Если начинать с процедурного программирования, то, возможно, Оберон весьма достойная замена паскалю.
Владик wrote:
> Д>>за что вы так бедных студентов не любите? > E>Зря ты так. Паскаль в качестве первого языка при программировании > очень хорош. Почему бы его место сейчас не отдать Oberon-у. > Нынче модно ООП. Ни классический паскаль, ни Оберон для демонстрации > ОО-подхода не подходят. Если начинать с процедурного программирования, > то, возможно, Оберон весьма достойная замена паскалю.
Угу, а потом студенты пишут программы с кучей глобальных переменных и
непонятных функций. Знаем, проходили.
Надо учиться с функциональных языков — хорошо мозги прочищает.
Здравствуйте, Cyberax, Вы писали:
>> Д>>за что вы так бедных студентов не любите? >> E>Зря ты так. Паскаль в качестве первого языка при программировании >> очень хорош. Почему бы его место сейчас не отдать Oberon-у. >> Нынче модно ООП. Ни классический паскаль, ни Оберон для демонстрации >> ОО-подхода не подходят. Если начинать с процедурного программирования, >> то, возможно, Оберон весьма достойная замена паскалю.
C>Угу, а потом студенты пишут программы с кучей глобальных переменных и C>непонятных функций. Знаем, проходили.
По-твоему, Паскаль способствует написанию неструктурированных программ с большим количеством глобальных переменных?
C>Надо учиться с функциональных языков — хорошо мозги прочищает.
Да уж . А ты, оказывается, экстремал. Или экстремист. Не знаю, что в данном случае более подходит.
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
eao197 wrote:
> C>Угу, а потом студенты пишут программы с кучей глобальных переменных и > C>непонятных функций. Знаем, проходили. > По-твоему, Паскаль способствует написанию неструктурированных программ > с большим количеством глобальных переменных?
ДА!
Сколько раз уже видел такой код:
program blah;
var
d : Integer;
m,n : array [1..4][1..4] of real;
procedure PoschitatDeterminant;
begin
{Тут считают детерминант матрицы m}
end;
procedure UmnozhitMatricy;
begin
{Тут умножают матрицу m на n}
end;
begin
{что-то еще}
end.
И это встречается у 99% студентов.
Паскаль не стимулирует писать в хорошем стиле — поставил глобальную
переменную и оно работает.
А вот в функциональных языках такое не получится — там переменные менять
нельзя
> C>Надо учиться с функциональных языков — хорошо мозги прочищает. > Да уж . А ты, оказывается, экстремал. Или экстремист. Не знаю, что в > данном случае более подходит.
В УдГУ на мат. факе в прошлом году первым языком изучали Рефал. Ничего,
живут люди.
Здравствуйте, Сергей Губанов, Вы писали:
СГ>. Как минимум, я слышал или читал ранее про аналогичную мысль утверждаемую публично следующими людьми: [...]Михаэль Франц
Насколько мне известно, Франц никогда не говорил о заимствованиях в языке. Он говорил о другом:
For example, Adl-Tabatabai et al. [ACL98] describe a compilation strategy for Java that they might
just as well have copied from one of Wirth’s books [WG92, Wir96], but they present it as a new
invention and give it the new name “lazy code selection”. Wirth has been teaching the identical
method at least since the mid-1980’s, calling it “delayed code emission”.
Кстати, разработчики Java HotSpot таки ссылались на Вирта.
C>program blah;
C>var
C> d : Integer;
C> m,n : array [1..4][1..4] of real;
C>procedure PoschitatDeterminant;
C>begin
C>{Тут считают детерминант матрицы m}
C>end;
C>procedure UmnozhitMatricy;
C>begin
C>{Тут умножают матрицу m на n}
C>end;
C>begin
C>{что-то еще}
C>end.
C>
Да, гораздо лучше так
class blah
{ int d;
double[][] m,n;
public void SozdatMatricy;
{ m = new double[4][4];
n = new double[4][4];}
public void PoschitatDeterminant;
{Тут считают детерминант матрицы m}
public void UmnozhitMatricy;
{Тут умножают матрицу m на n}
{что-то еще}
}
Трурль wrote:
> Да, гораздо лучше так > >class blah >{ int d; > double[][] m,n; > public void SozdatMatricy; > { m = new double[4][4]; > n = new double[4][4];} > > public void PoschitatDeterminant; > {Тут считают детерминант матрицы m} > > public void UmnozhitMatricy; > {Тут умножают матрицу m на n} > > {что-то еще} >} >
Вы читаете что я пишу хоть, где вы увидели предложение сразу учить ООП
на С++? Надо сначала учить функциональные языки, чтобы было понятие
контекста вычислений и сторонних эффектов.
Чтобы писать потом код хотя бы примерно так:
program blah;
type
Matrix4 = array[1..4][1..4] of real;
function Determinant4(m : Matrix4) : real ;
begin
{Считаем детерминант}
end;
function Multiplicate4(m1,m2 : Matrix4) : Matrix4;
begin
{Тут умножают матрицу m1 на m2}
end;
var
m,n : Matrix4;
begin
{что-то еще}
end.
eao197 wrote:
> Меня на паскале именно так и учили писать. И били по рукам за > глобальные переменные, рассказывая, почему это плохо.
Меня так еще на QuickBasic'е учили писать Но факт в том, что Паскаль допускает плохой стиль, а куча плохих учебников его поощряют. Ну и многие студенты так пишут еще со школьных уроков
информатики (квалификация большинства школьных учителей информатики
оставляет желать лучшего).
Поэтому проще всего взять язык где "неправильно" просто нельзя писать
Кстати, так и делают в MITе — там используют Scheme.
Здравствуйте, Cyberax, Вы писали:
>> Меня на паскале именно так и учили писать. И били по рукам за >> глобальные переменные, рассказывая, почему это плохо.
C>Меня так еще на QuickBasic'е учили писать Но факт в том, что Паскаль C>допускает плохой стиль, а куча плохих учебников его C>поощряют. Ну и многие студенты так пишут еще со школьных уроков C>информатики (квалификация большинства школьных учителей информатики C>оставляет желать лучшего).
C>Поэтому проще всего взять язык где "неправильно" просто нельзя писать C>Кстати, так и делают в MITе — там используют Scheme.
Полностью согласен! Особенно изуитски это выглядит у Вирта. Он единственный кто регулярно заявляет о том, что мол его языки позволяют писать только в правильном стиле. Собственно в том сама суть его работ — он пытается сделать такой язык на котором можно написать только правильно — и все танцы с бубном, минимализация синтаксиса сверх разумных пределов — следствие этой идеи. Однако несколько странно учить идеи типизации с помощью языка в котором возможны лишь примитивные типы (такого как Паскаль). Тем более, что ещё большой вопрос — стоит ли начинать учить программированию с алгоритмов. Есть большое подозрение, что лучше всё-таки сразу учить ООА/ООП — развивать объектное мышление — чем учить 5 лет алгоритмам, утверждая, что это программирование, а потом удивляться, почему нет вузов, которые готовили бы разработчиков.
А то до сих пор вижу динозавров, которые утверждают, что мол алгоритм сортировки — это "суть программирования", а объекты — ерунда (и в общем с определённой точки зрения правы — но не для тех детей, кого они этому учат) а потом бедолаги обнаруживают, что вокруг них одна "едунда", а "суть программирования" используется лишь в готовом виде (а за попытки писать свои сортировки Тим лиды лупят по рукам)
Здравствуйте, Владик, Вы писали:
В>Нынче модно ООП. Ни классический паскаль, ни Оберон для демонстрации ОО-подхода не подходят. Если начинать с процедурного программирования, то, возможно, Оберон весьма достойная замена паскалю.
Насчет классического Паскаля Вы, несомненно, правы. Для демонстрации ООП он не годится.
Но за что "досталось" бедному Оберону?
Оберон поддерживает и объектно-ориентированное, и модульное, и компонентно-ориентированное программирование.
(Возможно, Вы реализовали бы это по-другому. Но все же это в нем есть.)
И при этом очень прост.
Я действительно выучил его за день. Но пусть это не показательно (я раньше был знаком с Паскалем).
Вот другой пример. Наш новый сотрудник для реализации достаточно сложной отдельной программы (отладчика) выбрал (самостоятельно! я никакого отношения к этому не имею) Компонентный Паскаль, с которым был знаком только с моих слов и по описанию языка.
Я усомнился (именно так — я (поклонник Оберона) усомнился ) в рациональности такого шага — язык для него новый.
Говорю ему через несколько дней: таких-то вот компонентов у тебя, вероятно, нет; можешь приспособить мои, написанные на Си. А он отвечает: да я их уже на Компонентном Паскале реализовал — все работает.
Это я к тому, что простота имеет все же значение.
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.