Как-то в философии мелькают названия довольно органиченного количества языков: C#, Nemerle, C++, Lisp, Haskell, OCaml, Erlang, Ruby, Python, Java, Oberon.
А вот с Eiffel-ем кому-нибудь лично сталкиваться приходилось?
Здравствуйте, eao197, Вы писали:
E>Доброго времени суток!
E>Как-то в философии мелькают названия довольно органиченного количества языков: C#, Nemerle, C++, Lisp, Haskell, OCaml, Erlang, Ruby, Python, Java, Oberon. E>А вот с Eiffel-ем кому-нибудь лично сталкиваться приходилось?
E>Вопрос связан с тем, что разработчики Eiffel на днях выпустили свою платформу для разработки, EiffelStudio, под двойной лицензией: http://www.eiffel.com/general/news/2006/2006_04_05_pr.html
E>Стало интересно. Может кто своими впечатлениями об Eiffel смог бы поделиться?
Я тут как-то упоминал про subj (но умудрился очепятаться в названиях
Мое впечатление основывается на книге Бертранда Мейера (Bertrand Meyer) "Object-Oriented Software Construction", в комплекте с CD. В ней автор очень обстоятельно рассуждает на темы/трудности ООП и в результате, как-бы вместе с читателем, создаёт Eiffel. Поэтому прежде всего могу рекомендовать этот "томик" ISBN 0-13-629155-4, больше 1200 стр.
Сухой остаток моих "впечатлений": C учетом текущей ситуации (кросс-платформенность, готовая среда разработки + библиотека, поддержка .NET) — я бы не стал тратить время на C# и Java. С/C++ нужны как "переносимый ассемблер" и его ООП-разукрашеный вариант, но в мире безопасных языков/сред Eiffel концептуально выигрывает у Java и C#. IMHO конечно.
Но еще нужно посмотреть ничего ли не урезали в реализации Eiffel в сравнении с проектом, и насколько качественный генерируется код. Дело в том, что в данном случае нужен макро-оптимизатор даже для кодогенерации в CLR. Иначе это будет вариант типа "объектного TCL" в среде CLR.
Здравствуйте, eao197, Вы писали:
E>Как-то в философии мелькают названия довольно органиченного количества языков: C#, Nemerle, C++, Lisp, Haskell, OCaml, Erlang, Ruby, Python, Java, Oberon. E>А вот с Eiffel-ем кому-нибудь лично сталкиваться приходилось?
Основная фишка языка — это Disign by contract. Сам же язык выглядит довольно странно (для меня по крайней мере).
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
LY>Мое впечатление основывается на книге Бертранда Мейера (Bertrand Meyer) "Object-Oriented Software Construction", в комплекте с CD. В ней автор очень обстоятельно рассуждает на темы/трудности ООП и в результате, как-бы вместе с читателем, создаёт Eiffel. Поэтому прежде всего могу рекомендовать этот "томик" ISBN 0-13-629155-4, больше 1200 стр.
Не знаешь, где его можно было бы качнуть в электронном виде?
Здравствуйте, eao197, Вы писали:
E>А вот с Eiffel-ем кому-нибудь лично сталкиваться приходилось?
Кстати, на счёт Eiffel и Бертрана Мейера. После того как Никлаус Вирт ушел из ETH на пенсию, в ETH (свято место пусто не бывает) пришел Бертран Мейер и начал агрессивно продвигать свой единственно истинный (по его мнению) Eiffel. Редиска он короче...
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, eao197, Вы писали:
E>>А вот с Eiffel-ем кому-нибудь лично сталкиваться приходилось?
СГ>Кстати, на счёт Eiffel и Бертрана Мейера. После того как Никлаус Вирт ушел из ETH на пенсию, в ETH (свято место пусто не бывает) пришел Бертран Мейер и начал агрессивно продвигать свой единственно истинный (по его мнению) Eiffel. Редиска он короче...
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Кстати, на счёт Eiffel и Бертрана Мейера. После того как Никлаус Вирт ушел из ETH на пенсию, в ETH (свято место пусто не бывает) пришел Бертран Мейер и начал агрессивно продвигать свой единственно истинный (по его мнению) Eiffel. Редиска он короче...
Ну это понятно
Сергей, ты как-то упоминал про различные внедрения систем на Component Pascal и Oberon. А информации про системы на Eiffel тебе не попадалось?
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
E>Сергей, ты как-то упоминал про различные внедрения систем на Component Pascal и Oberon. А информации про системы на Eiffel тебе не попадалось?
Я Eiffel-ем не интересовался, а в тех местах где пишут про Oberon — про Eiffel молчат (и наоборот, обоюдно).
Oberon-исты и Eiffel-исты друг друга игнорируют. Войны между ними нет поскольку (в отличие от Oberon vs C/C++) им особо нечего делить: Oberon — системный язык (т.е. прямой конкурент C/C++), а Eiffel — просто какая-то не понятно для чего созданная очередная ерунда.
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, eao197, Вы писали:
E>>Сергей, ты как-то упоминал про различные внедрения систем на Component Pascal и Oberon. А информации про системы на Eiffel тебе не попадалось?
СГ>Я Eiffel-ем не интересовался, а в тех местах где пишут про Oberon — про Eiffel молчат (и наоборот, обоюдно). СГ>Oberon-исты и Eiffel-исты друг друга игнорируют. Войны между ними нет поскольку (в отличие от Oberon vs C/C++) им особо нечего делить: Oberon — системный язык (т.е. прямой конкурент C/C++), а Eiffel — просто какая-то не понятно для чего созданная очередная ерунда.
Как всегда аргументов вразумительных мы не услышим?
Оно ерунда, потому что неОберон?
Здравствуйте, Курилка, Вы писали:
К>Сильно редисистей Вирта?
Вирт — учёный, Мейер — маркетолог. Маркетологи обычно редисестее чем учёные . Истинность Эйфеля Мейер отстаивает по иным соображениям нежели чем Вирт Оберон. И вообще, связи между ними-то и нет кроме той, что Мейер сейчас пришел в ETH, а Вирт до этого ушел от туда на пенсию.
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, Курилка, Вы писали:
К>>Сильно редисистей Вирта?
СГ>Вирт — учёный, Мейер — маркетолог.
Ага из его карьеры это видно:
Engineer then division head in the R&D department of Électricité de France (1974-1983), then Visiting Associate
Professor (1983-1985) at the University of California, Santa Barbara, then co-founder of Eiffel Software in Santa
Barbara, then (since October 2001) Professor of Software Engineering at ETH Zürich.
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, Курилка, Вы писали:
К>>Сильно редисистей Вирта?
СГ>Вирт — учёный, Мейер — маркетолог.
Ну да, карьера его это подтверждает — Engineer then division head in the R&D department of Électricité de France (1974-1983), then Visiting Associate Professor (1983-1985) at the University of California, Santa Barbara, then co-founder of Eiffel Software in Santa Barbara, then (since October 2001) Professor of Software Engineering at ETH Zürich.
Ясное дело, он же Оберон не делал, значит не учёный
Здравствуйте, denis_krg, Вы писали:
_>Здравствуйте, Leo Yuriev, Вы писали:
LY>>Мое впечатление основывается на книге Бертранда Мейера (Bertrand Meyer) "Object-Oriented Software Construction", в комплекте с CD. В ней автор очень обстоятельно рассуждает на темы/трудности ООП и в результате, как-бы вместе с читателем, создаёт Eiffel. Поэтому прежде всего могу рекомендовать этот "томик" ISBN 0-13-629155-4, больше 1200 стр.
_>Не знаешь, где его можно было бы качнуть в электронном виде? http://www.emule-project.net, качаешь, ставишь, поиск "Object-Oriented Software Construction": ed2k://|file|Object_Oriented_Software_Construction.pdf|16612147|B42630CB0550D5CF5B2EC2B978499AA6|/ ed2k://|file|Object%20Oriented%20Software%20Construction%20-%20Bertrand%20Myers.pdf|11975479|CE6B1AF004E14B30520973CBAEEEE1BD|/
и через несколько часов — готово.
Надеюсь всё это не сочтут грубейшим нарушением правил. Но тогда прошу добавить в FAQ ответ на "Где скачать ***?"
Сергей Губанов,
СГ>Я Eiffel-ем не интересовался, а в тех местах где пишут про Oberon — про Eiffel молчат (и наоборот, обоюдно). СГ>Oberon-исты и Eiffel-исты друг друга игнорируют. Войны между ними нет поскольку (в отличие от Oberon vs C/C++) им особо нечего делить: Oberon — системный язык (т.е. прямой конкурент C/C++), а Eiffel — просто какая-то не понятно для чего созданная очередная ерунда.
Только я прочитал статью про JML (Java Modeling Language), и чуть-чуть проехался вниз по комментариям, как увидел _шикарный_ отклик:
That's not a modelling language at all. That's a really poor attempt to give Java the advantages of Eiffel, and it completely fails. Just another lame comment-annotation tool that results in code that doesn't match comments in real world settings. Garbage. Bah.
Вот так вот. Java сосёт, Eiffel рулит. Не больше, не меньше. А ты говоришь: "...не понятно для чего созданная очередная ерунда"...
Здравствуйте, Leo Yuriev, Вы писали:
_>>Не знаешь, где его можно было бы качнуть в электронном виде? LY>http://www.emule-project.net, качаешь, ставишь, поиск "Object-Oriented Software Construction": LY>ed2k://|file|Object_Oriented_Software_Construction.pdf|16612147|B42630CB0550D5CF5B2EC2B978499AA6|/ LY>ed2k://|file|Object%20Oriented%20Software%20Construction%20-%20Bertrand%20Myers.pdf|11975479|CE6B1AF004E14B30520973CBAEEEE1BD|/ LY>и через несколько часов — готово.
LY>Надеюсь всё это не сочтут грубейшим нарушением правил. Но тогда прошу добавить в FAQ ответ на "Где скачать ***?"
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, eao197, Вы писали:
E>>Сергей, ты как-то упоминал про различные внедрения систем на Component Pascal и Oberon. А информации про системы на Eiffel тебе не попадалось?
СГ>Я Eiffel-ем не интересовался, а в тех местах где пишут про Oberon — про Eiffel молчат (и наоборот, обоюдно). СГ>Oberon-исты и Eiffel-исты друг друга игнорируют. Войны между ними нет поскольку (в отличие от Oberon vs C/C++) им особо нечего делить: Oberon — системный язык (т.е. прямой конкурент C/C++), а Eiffel — просто какая-то не понятно для чего созданная очередная ерунда.
Ерунда — это ты зря....
Да и вообще книгу его стоит почитать, чтобы понимать очень много тонкостей применения тех или иных конструкций в разных языках... Не только в Eiffel-е...
Притом он там ничего не пишет просто так, типа >> а "Eiffel — просто какая-то не понятно для чего созданная очередная ерунда"...
Он все обосновывает и рассказывает почему ерунда (на его взгляд)... Ты можешь иметь и свое мнение...
А систему многопоточности предложденную Майером я не встречал кажеться вообще нигде... А система намного более простая в применении чем всякие трэды в Delphi и С#...
От того что она другая совсем не значит что она хуже...
А такой проработки и развития множественного наследования нет пожалуй ни в одном языке...
Нет... я не хочу сказть что, давай все теперь перейдем не Eiffel раз он такой "хороший"...
Но и заявлять что это ЕРУНДА... Наверное надо для этого быть не одной пяди во лбу... (или хотя бы быть "Энштейном" в физике...)
А твое заявление это все равно что быть Фюрером в политике..
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, eao197, Вы писали:
E>>Сергей, ты как-то упоминал про различные внедрения систем на Component Pascal и Oberon. А информации про системы на Eiffel тебе не попадалось?
СГ>Я Eiffel-ем не интересовался... СГ>Eiffel — просто какая-то не понятно для чего созданная очередная ерунда.
Здравствуйте, eao197, Вы писали:
E>Стало интересно. Может кто своими впечатлениями об Eiffel смог бы поделиться?
Мое впечатление — идеальный язык для обучения ООП. А книжка Object Oriented Software Construction — идеальный годовой учебный курс, после алгоритмических основ.
Почему? Потому что при создании языка автор последовательно придерживался одного очень ценного принципа — сама архитектура и синтаксис языка не должны позволять писать на языке с нарушением правил ООП (и некоторых других правил тоже). Иными словами язык обладает максимально выверенным синтаксисом и морфологией, которые принудительно навязывают программисту good programming style.
Тем господам, которые голословно называют автора "маркетологом", рекомендуется сначала детально ознакомиться с данной книгой. А то как у нас принято, "я... не читал, но тоже поддерживаю..."
Безусловно, есть спорные утверждения, есть некоторые мелкие факты, в которых следует усомниться, есть даже некоторые сомнительные выводы, но подавляющая масса материала в книге весьма и весьма бесспорна для опытного и способного к критическому анализу и самоанализу программиста.
Здравствуйте, absolute, Вы писали:
A>А о чём топик?
Топик вообще-то о том, чтобы узнать мнение об Эйфеле у людей, которые реально пробовали на нем программировать.
Просто спровоцирован он был новостью о выпуске EiffelStudio под двойной лицензией.
A>О том, что у Эйфеля наконец-то (в 2006 году) появилась не только проприетарная лицензия!
Как я понимаю, речь идет не о языке Эйфель, а о средстве разработке EiffelStudio. Именно у EiffelStudio появилась GPL лицензия. Но кроме EiffelStudio есть другие компиляторы Эйфеля (SmartEiffel, VisualEiffel). Базовая библиотека EiffelBase распространяется под OpenSource лицензией (другое дело, что она под SmartEiffel не компилируется). Да и для Эйфеля есть ECMA стандарт (который разработчиками SmartEiffel не очень признается ). Так что сам язык проприетарным не является.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, GeeBee, Вы писали:
GB>Тем господам, которые голословно называют автора "маркетологом", рекомендуется сначала детально ознакомиться с данной книгой.
причине. Его книга тут не причём.
GB>А то как у нас принято, "я... не читал, но тоже поддерживаю..."
Почему книги Вирта по программированию компьютеров на порядок тоньше, чем книга Мейера (1200 страниц) по одному только лишь ООП?
Ведь ООП — это частный случай программирования. А если Мейер задумает написать книгу не по ООП, а по программированию, то (экстраполируя) ему придётся написать (на порядок больше) ~12'000 страниц????????????
Например,
Algorithms and Data Structures,
N. Wirth 1985 (Oberon version: August 2004)
всего 183 страницы.
Project Oberon The Design of an Operating System and Compiler,
Niklaus Wirth Jurg Gutknecht (2005 version)
всего 442 страницы про всё: полное описание операционной системы, компилятора и т.п.
Compiler Construction
Niklaus Wirth
This is a slightly revised version of the book published by ISBN 0-201-40353-6
Zurich, November 2005
всего 131 страница
Ответ я вижу только один — у Мейера на 1200 страницах вода переливается из пустого в порожнее.
Здравствуйте, Mckey, Вы писали:
M>А систему многопоточности предложденную Майером я не встречал кажеться вообще нигде... А система намного более простая в применении чем всякие трэды в Delphi и С#... M>От того что она другая совсем не значит что она хуже...
Давайте поговорим о многопоточности в Eiffel.
Многопоточность в Обероне мы уже обсудили, она реализована в Active Oberon на основе активных объектов, для чего в язык добавлено три слова: ACTIVE, EXCLUSIVE и AWAIT (поиск по форуму по этим словам).
Теперь давайте обсудим параллелизм в Eiffel.
Этот язык предлагает нам так называемые сепаратные классы.
Расскажите что это такое и как работает.
Сергей Губанов wrote: > Почему книги <http://www.oberon.ethz.ch/books.html> Вирта *по > программированию компьютеров* на порядок тоньше, чем книга Мейера (1200 > страниц) *по одному только лишь ООП*?
Почему школьный учебник _по_ _всей_ _физике_ намного тоньше, чем учебник
по какому-то там одному сопромату?
Здравствуйте, Сергей Губанов, Вы писали:
E>>Так что сам язык проприетарным не является.
СГ>Обычная ситуация. Ни один язык не является проприетарным. Просто нет таких законов, чтобы язык можно было бы объявить "запретным для чужих".
Насколько я понимаю, Java до сих пор является проприетарным языком.
И никого это не смущает.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, Cyberax, Вы писали:
>> Почему книги <http://www.oberon.ethz.ch/books.html> Вирта *по >> программированию компьютеров* на порядок тоньше, чем книга Мейера (1200 >> страниц) *по одному только лишь ООП*?
C>Почему школьный учебник _по_ _всей_ _физике_ намного тоньше, чем учебник C>по какому-то там одному сопромату?
Потому что школьный учебник предназначен для школьников. Чтобы они получили общее представление о физике.
Аналогию между книгами Вирта и школьными учебниками провести невозможно. Вирт в своих книгах не сюсюкается с малышами, а пишет ровно так как принято в науке кибернетике.
Здравствуйте, eao197, Вы писали:
E>Насколько я понимаю, Java до сих пор является проприетарным языком. E>И никого это не смущает.
Вы определённо что-то путаете.
1) На языке программирования **** может писать кто угодно сколько угодно и когда угодно.
2) Компиляторы языка программирования **** может писать кто угодно сколько угодно и когда угодно.
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, eao197, Вы писали:
E>>Насколько я понимаю, Java до сих пор является проприетарным языком. E>>И никого это не смущает.
СГ>Вы определённо что-то путаете.
СГ>1) На языке программирования **** может писать кто угодно сколько угодно и когда угодно. СГ>2) Компиляторы языка программирования **** может писать кто угодно сколько угодно и когда угодно.
СГ>Вместо **** подставьте любой язык, хоть Java...
Здравствуйте, eao197, Вы писали:
E>Как я понимаю, речь идет не о языке Эйфель, а о средстве разработке EiffelStudio. Именно у EiffelStudio появилась GPL лицензия.
Ну да.
Другими словами, "у Эйфеля, разработанного под руководством Мейера".
Сергей Губанов wrote: > C>Почему школьный учебник _по_ _всей_ _физике_ намного тоньше, чем учебник > C>по какому-то там одному сопромату? > Потому что школьный учебник предназначен для школьников. Чтобы они > получили общее представление о физике.
Вот. Вы сами ответили на свой вопрос. Дальше базовых знаний книги Вирта
не тянут, а Мейерс рассматривает конкретные тонкие момент в ООП.
> Аналогию между книгами Вирта и школьными учебниками провести невозможно. > Вирт в своих книгах не сюсюкается с малышами, а пишет ровно так как > принято в науке кибернетике.
Я не припомню сюсюканий в школьном учебнике физики. Разве что подробное
объяснение основ.
Сергей Губанов wrote: > 2) Компиляторы языка программирования **** может писать кто угодно > сколько угодно и когда угодно.
Нет. Вы можете писать компиляторы, но называть их "компиляторами языка
Java" можете только с согласия Sun'а.
Здравствуйте, Cyberax, Вы писали:
C>Дальше базовых знаний книги Вирта не тянут, а Мейерс рассматривает конкретные тонкие момент в ООП.
Предлагаею иную интерпретацию:
Вирт чётко описал то что он реально использовал при построении им ряда языков программирования и компиляторов к ним; а также как написана операционная система Oberon.
Мейерс на 1200 страницах рассматривает некое конкретное тонкое тайное знание (так сказать оккультизм от программирования).
C>Я не припомню сюсюканий в школьном учебнике физики.
Здравствуйте, Сергей Губанов, Вы писали:
C>>Дальше базовых знаний книги Вирта не тянут, а Мейерс рассматривает конкретные тонкие момент в ООП. СГ>Предлагаею иную интерпретацию: СГ>Вирт чётко описал то что он реально использовал при построении им ряда языков программирования и компиляторов к ним; а также как написана операционная система Oberon.
Вот тут Таненбаум описал по шагам создание операционной системы (причем ее исходники прилиагаются к книге): http://www.amazon.com/gp/product/0130313580/102-7608390-1971341?v=glance&n=283155 Размер в 900 страниц.
У Вирта — обзорное изложение теории, а в этих книгах конкретная практика (что там, например, Вирт говорил про восходящий синтаксический анализ?).
СГ>Мейерс на 1200 страницах рассматривает некое конкретное тонкое тайное знание (так сказать оккультизм от программирования). C>>Я не припомню сюсюканий в школьном учебнике физики. СГ>На каждом шагу.
Почти как в книгах Вирта.
Вот у Кнута — действительно фундаментальный труд. Хотя бы потому что он пережил несколько языков программирования.
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, Cyberax, Вы писали:
C>>Нет. Вы можете писать компиляторы, но называть их "компиляторами языка C>>Java" можете только с согласия Sun'а.
СГ>Ха-ха-ха, компилятор, который, в натуре, компилирует тексты написанные на языке Java я не имею права называть компилятором Java!!!!
Свой компилятор Visual Basic я имею право назвать таковым? ABAP/4? Axapta? 1C?
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, Курилка, Вы писали:
К>>Свой компилятор Visual Basic я имею право назвать таковым?
СГ>Тяжелый случай.
СГ>А как ещё можно называть компилятор, который компилирует тексты написанные на языке ***, если не компилятором языка ***???
Просто MS, SAP,1C и прочие не признают твой компилятор (и скорее всего подадут в суд на тебя, если ты будешь использовать их запатентованные технологии или зарегистрированные торговые марки), а банально просто никто им пользоваться не будет, т.к. он не будет поддержан этими конторами.
Здравствуйте, Cyberax, Вы писали:
C>У Вирта — обзорное изложение теории, а в этих книгах конкретная практика (что там, например, Вирт говорил про восходящий синтаксический анализ?).
Щазззз я Вам скажу про восходящий анализ. Вот когда человек мочится, то сечение струи не постоянно, а оно то в одну сторону приплюснуто, то в другую — зависит от высоты, скорости и прочих параметров. Вот один физик, используя гидродинамику вывел динамические уравнения для сечения этой струи и решил их. Диссертацию между прочим на этом деле защитил. Так вот всякие там восходящие анализы, то же что и определение сечения струи мочащегося человека, таже херня, но вид сбоку. А ведь конкретная практика. Ну что может быть практичнее?
Есть задача: программирование компьютера. Можно её решить просто, а можно сложно. Вирт в своих книгах описал как он это сделал и почему от всяких восходящих анализов он отказался (просто за ненадобностью). Книги объёмом ~1000 страниц по одному лишь ООП — есть пример как решать ровно туже задачу, но не просто, а сложно (= ложно). Этакие манускрипты тайного знания и тонких конкретных моментов того что и не нужно-то на самом деле.
P. S.
Если я не ошибаюсь, то вроде того физика звали Нильс Бор...
Здравствуйте, Курилка, Вы писали:
К>Просто MS, SAP,1C и прочие не признают твой компилятор (и скорее всего подадут в суд на тебя, если ты будешь использовать их запатентованные технологии или зарегистрированные торговые марки), а банально просто никто им пользоваться не будет, т.к. он не будет поддержан этими конторами.
А я про запатентованные технологии и про торговые марки ничего и не утверждал.
Я говорил, что нет законов о патентовании языков — излагать свои мысли на каком-то языке есть неотчуждаемое право любого кто на это способен (в том числе можно написать на этом же языке его же компилятор).
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, Курилка, Вы писали:
К>>Просто MS, SAP,1C и прочие не признают твой компилятор (и скорее всего подадут в суд на тебя, если ты будешь использовать их запатентованные технологии или зарегистрированные торговые марки), а банально просто никто им пользоваться не будет, т.к. он не будет поддержан этими конторами.
СГ>А я про запатентованные технологии и про торговые марки ничего и не утверждал. СГ>Я говорил, что нет законов о патентовании языков — излагать свои мысли на каком-то языке есть неотчуждаемое право любого кто на это способен (в том числе можно написать на этом же языке его же компилятор).
Сергей Губанов wrote: > C>Нет. Вы можете писать компиляторы, но называть их "компиляторами языка > C>Java" можете только с согласия Sun'а. > Ха-ха-ха, компилятор, который, в натуре, компилирует тексты написанные > на языке Java я не имею права называть компилятором Java!!!
Да. Это будет компилятор, совместимый с языком Java.
Сергей Губанов wrote: > Есть задача: *программирование компьютера*. Можно её решить просто, а > можно сложно.
Фигня все это. Все компьютеры описываются машиной Тьюринга, которую
можно программировать на brainf&&k'е. Нафиг какое-то "программирование"
изучать вообще?
> Вирт в своих книгах описал как он это сделал и почему от > всяких восходящих анализов он отказался (просто за ненадобностью). Книги > объёмом ~1000 страниц по одному лишь ООП — есть пример как решать ровно > туже задачу, но не просто, а сложно (= ложно). Этакие манускрипты > тайного знания и тонких конкретных моментов того что и не нужно-то на > самом деле.
Покажите мне книгу в 10000 страниц (я щедрый) по созданию автомобилей. А
затем по этой книге соберите автомобиль, сравнимый с Mercedes 600.
Да, кстати. В этой книге должны описываться способы извлечения железа из
руды, создание доменных печей, технологии постройки ядерных
электростанций и Общая Теория Относительности (нам нужны спутники GPS, а
там нужна ОТО).
Сергей Губанов wrote: > А я про запатентованные технологии и про торговые марки ничего и не > утверждал.
Java является зарегистрированой торговой маркой, поэтому компилятор
языка Java (tm) без разрешения Sun'а создать нельзя.
Здравствуйте, Cyberax, Вы писали:
C>Java является зарегистрированой торговой маркой, поэтому компилятор C>языка Java (tm) без разрешения Sun'а создать нельзя.
Но можно создать компилятор для языка, отличающегося от Java (tm) только названием.
Здравствуйте, VladD2, Вы писали:
E>>Насколько я понимаю, Java до сих пор является проприетарным языком. E>>И никого это не смущает.
VD>А Оберон вроде нет, но как раз Оберон никого не колышит.
Oberon, Native Oberon and ETH Oberon are trademarks of the Swiss Federal Institute of Technology Z?rich.
Трурль wrote: > Oberon, Native Oberon and ETH Oberon are trademarks of the Swiss Federal > Institute of Technology Z?rich.
Они могут разрешать свободное использование своей TM. А вот Sun не
разрешает.
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, Cyberax, Вы писали:
C>>Нет. Вы можете писать компиляторы, но называть их "компиляторами языка C>>Java" можете только с согласия Sun'а.
СГ>Ха-ха-ха, компилятор, который, в натуре, компилирует тексты написанные на языке Java я не имею права называть компилятором Java!!!!
Зря ржешь...
Такое случается сплошь и рядом.
Вот к примеру www.superwaba.com
В общем-то это java мобильных устройств,
но по известным причинам они не могут говорить, что это java.
C Ada, к примеру, такая же ситуация была.
Чтобы компилятор имел право называться компилятором с языка Ada
надо было пройти сертификацию. Т.е. грубо говоря надо было чтобы компайлер
прошел сотни тысяч тестов и проверок.
А иначе мало ли какую поделку ты захочешь назвать компилятором с языка Ада.
В определенных ситуациях в этом есть смысл.
Сергей, это называется "воинствующее невежество". Вот, кстати, Кнут — он тоже маркетолог? Или воды налил на три тома? Я вот читал, правда только II и III. И Вирта я тоже читал, только давно. Так вот секрет прост: у Кнута просто рассматривается на порядок больше алгоритмов. Сколько там видов сортировки описано в Алгоритмах и Структурах?
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, absolute, Вы писали:
A>Здравствуйте, Mckey, Вы писали:
M>>А систему многопоточности предложденную Майером я не встречал кажеться вообще нигде... А система намного более простая в применении чем всякие трэды в Delphi и С#... M>>От того что она другая совсем не значит что она хуже...
A>Давайте поговорим о многопоточности в Eiffel.
A>Многопоточность в Обероне мы уже обсудили, она реализована в Active Oberon на основе активных объектов, для чего в язык добавлено три слова: ACTIVE, EXCLUSIVE и AWAIT (поиск по форуму по этим словам).
A>Теперь давайте обсудим параллелизм в Eiffel. A>Этот язык предлагает нам так называемые сепаратные классы. A>Расскажите что это такое и как работает.
Для того чтобы ввести параллелность в синтаксис языка Мейер добавил только одно ключевое слово separate (x: separate Some_Class), которое говорит о том что любые вызовы методов объекта присоединенного к x будут выполняться на отдельном "процессоре" (понятие процессора абстрактное, а отображение абстрактных процессоров на физические ресурсы описывается в специальном файле конфигурации), т.е. формально подходя независимо, параллельно.
Для этого объекта x может выполняться параллельно только один его метод.
Если сам объект x является аргументом в вызове какого другого метода, например Load(x), то Load будет иметь монопольный, исключительный доступ к объекту x.
Дальше, если у подпрограммы есть предусловие, содержащее аргумент, объявленный как separate, например тот же x, то подпрограмма будет ожидать пока предусловие не выполниться (т.е. пока x не освободиться от монопольного доступа к нему).
И кстати он (Бертран Мейер), очень понятно излагает чем плохи, так называемые АКТИВНЫЕ ОБЪЕКТЫ, пропагандируемые в одной из разновидностей языков семейства Oberon.
Здравствуйте, Mckey, Вы писали:
M>И кстати он (Бертран Мейер), очень понятно излагает чем плохи, так называемые АКТИВНЫЕ ОБЪЕКТЫ, пропагандируемые в одной из разновидностей языков семейства Oberon.
Где? В Object-Oriented Software Construction?
Кстати, дались некоторым эти активные объекты средствами языка . Их совершенно нормально можно получить с помощью фреймворков
на обычных языках. Таких как C++, Java, C# или Ruby. И даже больше того, можно выделить группу объектов, которые будут разделять контекст одного потока (если они кооперативно выполняют одну общую операцию).
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
E>Здравствуйте, Mckey, Вы писали:
M>>И кстати он (Бертран Мейер), очень понятно излагает чем плохи, так называемые АКТИВНЫЕ ОБЪЕКТЫ, пропагандируемые в одной из разновидностей языков семейства Oberon.
E>Где? В Object-Oriented Software Construction?
E>Кстати, дались некоторым эти активные объекты средствами языка . Их совершенно нормально можно получить с помощью фреймворков
на обычных языках. Таких как C++, Java, C# или Ruby. И даже больше того, можно выделить группу объектов, которые будут разделять контекст одного потока (если они кооперативно выполняют одну общую операцию).
Да именно там...
Часть Е, глава 30.3, От процессов к объектам... и далее искать Активные объекты, стр. 937 в русском издании...
Там он говорит о самом не верном явлении инкапсуляции активности в объекте и сложностях этих объектов при реализации различных ОО механизмов, в частности наследования.
Здравствуйте, Mckey, Вы писали:
M>>>И кстати он (Бертран Мейер), очень понятно излагает чем плохи, так называемые АКТИВНЫЕ ОБЪЕКТЫ, пропагандируемые в одной из разновидностей языков семейства Oberon.
E>>Где? В Object-Oriented Software Construction?
M>Да именно там... M>Часть Е, глава 30.3, От процессов к объектам... и далее искать Активные объекты, стр. 937 в русском издании...
M>Там он говорит о самом не верном явлении инкапсуляции активности в объекте и сложностях этих объектов при реализации различных ОО механизмов, в частности наследования.
Эта критика, IMHO, устарела.
Обратите внимание на приводимую Мейером библиографию.
Все упомянутые там работы относятся к 80-м и самому началу 90-х годов.
Надо думать, что и соответствующий раздел его книги был написан в те же годы.
Поэтому вряд ли его критика относится к обероновским активным объектам, возникшим во второй половине 90-х.
К тому, он не говорит, что решение на основе активных объектов невозможно. Просто он в нем сомневается (скорее, сомневался в начаде 90-х).
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
Здравствуйте, Сергей Губанов, Вы писали:
C>>У Вирта — обзорное изложение теории, а в этих книгах конкретная практика (что там, например, Вирт говорил про восходящий синтаксический анализ?).
СГ>Щазззз я Вам скажу про восходящий анализ. Вот когда человек мочится, то сечение струи не постоянно, а оно то в одну сторону приплюснуто, то в другую — зависит от высоты, скорости и прочих параметров. Вот один физик, используя гидродинамику вывел динамические уравнения для сечения этой струи и решил их. Диссертацию между прочим на этом деле защитил. Так вот всякие там восходящие анализы, то же что и определение сечения струи мочащегося человека, таже херня, но вид сбоку. А ведь конкретная практика. Ну что может быть практичнее?
СГ>Если я не ошибаюсь, то вроде того физика звали Нильс Бор...
Так походя заявить, что диссертация Бора — херня...
Ричарду Фейнману что-то там фундаментальное со спинами электронов пришло, когда он от скуки подбрасывал тарелку в столовой.
Кстати говоря, гидродинамика пульсирующих струй — это чертовски прикладная вещь. Тот факт, что человек мочится по сложным физическим законам, не девальвирует законы.
Детская юла крутится в соответствии с теоретической механикой. И ведь наверняка первые выводы о прецессии, эллипсоидах моментов и т.д. и т.п. были сделаны на основе наблюдений за юлой. Тоже детский сад?
Здравствуйте, Трурль, Вы писали:
C>>Java является зарегистрированой торговой маркой, поэтому компилятор C>>языка Java (tm) без разрешения Sun'а создать нельзя. Т>Но можно создать компилятор для языка, отличающегося от Java (tm) только названием.
Кодт wrote: > C>>Java является зарегистрированой торговой маркой, поэтому компилятор > C>>языка Java (tm) без разрешения Sun'а создать нельзя. > Т>Но можно создать компилятор для языка, отличающегося от Java (tm) > только названием. > Эврика! Давайте назовём клон (один-в-один) Эйфеля... ну, скажем, > Contract-Pascal или OberonScript.
Это бы решило большую часть проблем Обероновцы стали бы говорить как
контракты значительно усиливают типизацию и безопасность.
Здравствуйте, Cyberax, Вы писали:
>> Эврика! Давайте назовём клон (один-в-один) Эйфеля... ну, скажем, >> Contract-Pascal или OberonScript. C>Это бы решило большую часть проблем Обероновцы стали бы говорить как C>контракты значительно усиливают типизацию и безопасность.
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
Здравствуйте, Mckey, Вы писали:
M>Там он говорит о самом не верном явлении инкапсуляции активности в объекте и сложностях этих объектов при реализации различных ОО механизмов, в частности наследования.
Что лишний раз показывает, что Мейер маркетолог пытающийся продвинуть свой Eifel, а не учёный. То что наследование реализации — есть зло известно давным давно, еще с зарождения КОП. Будь он учёным, то так и сказал бы что в языке Active Oberon (2000-2002) и Zonnon (2003-2005) тип активного объекта не является единицей наследования. Единицей наследования является конструкция под названием DEFINITION (что-то вроде interface, но чуток понавороченнее).
И вообще, фраза "инкапсуляции активности в объекте" — та ещё штучка! Сказать что активный объект есть объект+поток — это абсолютно всё-равно что сказать, что ООП есть данные+процедуры.
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, Mckey, Вы писали:
M>>Там он говорит о самом не верном явлении инкапсуляции активности в объекте и сложностях этих объектов при реализации различных ОО механизмов, в частности наследования.
СГ>Что лишний раз показывает, что Мейер маркетолог пытающийся продвинуть свой Eifel, а не учёный. То что наследование реализации — есть зло известно давным давно, еще с зарождения КОП. Будь он учёным, то так и сказал бы что в языке Active Oberon (2000-2002) и Zonnon (2003-2005) тип активного объекта не является единицей наследования. Единицей наследования является конструкция под названием DEFINITION (что-то вроде interface, но чуток понавороченнее).
Сергей, а вот скажи — а с этого года у Вирта какое слово в моде? Коли и активный Оберон и зоннон уже в прошлом?
Здравствуйте, Курилка, Вы писали:
К>Сергей, а вот скажи — а с этого года у Вирта какое слово в моде? Коли и активный Оберон и зоннон уже в прошлом?
Ой как смешно-то...
Последний язык Вирта — "Oberon". В нём активных объектов нет. Вирт даже скорее сторонник кооперативной многозадачности, чем вытесняющей.
Автор языка "Oberon 2" — Мёссенбёк.
Автор языка "Component Pascal" — компания Oberon Microsystems.
Автором языков "Active Oberon" и "Zonnon" является Гуткнехт — вот кто автор активных объектов... Какое слово у него в моде? Ну я не знаю, наверное "Bluebottle №2" написанная на "Zonnon №2".
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Что лишний раз показывает, что Мейер маркетолог пытающийся продвинуть свой Eifel, а не учёный.
Кстати да, я уже склонен согласиться, что у Мейера маркетинговое отношение к Eiffel сильно превалирует над всем остальным.
Вообще, складывается впечатление, что Eiffel Software пропагандирует единственно верный подход к разработке ПО -- Eiffel (как Метод (обязательно с большой буквы М)) и единственно правильный инструмент для написания ПО -- EiffelStudio (как Инструмент (обязательно с большой буквы И)). Причем, инструмент далеко не бесплатный. Очень даже не бесплатный. Сильно смахивает на тоталитарную секту, в которой ты вынужден платить очень высокие членские взносы, да еще не можешь из нее выйти
Видимо из-за этой политики Мейера не смотря на двадцатилетний возраст языка существует всего три (!) реализации компилятора Eiffel. Причем EiffelStudio и SmartEiffel даже не совместимы между собой А проект SmartEiffel развивается в соответствии со своим представлением о том, как должен выглядеть true Eiffel language.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, Курилка, Вы писали:
К>>Сергей, а вот скажи — а с этого года у Вирта какое слово в моде? Коли и активный Оберон и зоннон уже в прошлом?
СГ>Ой как смешно-то...
Да? Расскажи где лопата
СГ>Последний язык Вирта — "Oberon". В нём активных объектов нет. Вирт даже скорее сторонник кооперативной многозадачности, чем вытесняющей.
Консерватизм вещь хорошая, но в меру.
СГ>Автор языка "Oberon 2" — Мёссенбёк. СГ>Автор языка "Component Pascal" — компания Oberon Microsystems. СГ>Автором языков "Active Oberon" и "Zonnon" является Гуткнехт — вот кто автор активных объектов... Какое слово у него в моде? Ну я не знаю, наверное "Bluebottle №2" написанная на "Zonnon №2".
Просто вопрос в том, что ботлы все эти пачками плодятся и пока эффекта от бутылок не сильно заметно, хотя идеи появляются — это гут. Но вот зоопарк развели неслабый
Здравствуйте, Cyberax, Вы писали:
СГ>>Вирт чётко описал то что он реально использовал при построении им ряда языков программирования и компиляторов к ним; а также как написана операционная система Oberon. C>Вот тут Таненбаум описал по шагам создание операционной системы (причем ее исходники прилиагаются к книге): C>http://www.amazon.com/gp/product/0130313580/102-7608390-1971341?v=glance&n=283155 Размер в 900 страниц.
Вообще-то как раз наоборот.
Dragon Book — обзорная книга, поэтому там говорится обо всем понемногу.
Вирт же демонстрирует, как самому построить компилятор с нуля.
Оба подхода имеют право на существование.
Мне нравятся и книга Вирта, и книга Ахо и компании.
Каждая из них хороша в своем жанре.
Одна книга (Ахо и др.) написана преподавателями, в "теоретическом" стиле: обзор всего известного о предмете, с огромным списком литературы в конце. Меня данный предмет интересует, поэтому я читал ее с любопытством.
Но действительно ли именно такая книга нужна студентам?
Другая книга (Вирт) написана не только преподавателем, но и практиком, самостоятельно создающим не только компиляторы, но и операционные системы, и принимающим участие в создании новых ЭВМ.
Здесь сразу чувствуется другой стиль: практик нуждается в отборе полезной информации из окружающих шумов.
C>Вот у Кнута — действительно фундаментальный труд. Хотя бы потому что он пережил несколько языков программирования.
Кто же спорит.
Тем более, что Кнут выбрал в качестве языка ассемблер.
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.