Здравствуйте, Дарней, Вы писали:
Д>принципиальная разница в том, что никто в здравом уме не предлагает использовать чайные клипперы для перевозок или обучения матросов сейчас
Самые крупные и быстроходные парусные корабли построены во второй половине 20 века, и используются сейчас исключительно как учебные суда.
Здравствуйте, eao197, Вы писали:
E>Здравствуйте, Dr.Gigabit, Вы писали:
DG>>Если для вас Nemerle == VladD2, это ваши проблемы. Думаю здесь хватает людей, для кого это не так.
E>А для вас Nemerle == идеальному языку?
Для меня ключевая возможность Немерле -- это возможность поддержки метапрограммирования + платформа .NET.
После R# Немерле со своим квази-цетированием впечатляет.
Что до самого языка, на сколько я понимаю, ключевая позиция Влада (и я с этим полностью согласен) — почему не иметь еще один мэйнстрим-язык для платформы дотнет, который уже сейчас опережает C# 3.0 на порядок по всем параметрам?
Что до идеального языка, так его никогда не было и быть не может.
Здравствуйте, eao197, Вы писали:
E>Подобное сравнение -- это как сравнение чайных клипперов 19-го века и судов на подводных крыльев 20-го века. Оба типа кораблей создавались для достижения максимальной скорости, но с разницей в 100 лет. 20-ть лет в программировании (между появлением первого релиза C++ и первого (еще не свершившегося) релиза Nemerle) -- это может быть даже больше, чем 100 лет в судостроении.
Ну, то есть с сутью написанного ты согласен, просто тебе дорога честь того что ты сам ахарактризовал как столетнее (видимо барахло)?
Прэлесно!
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, FR, Вы писали:
FR>Самые крупные и быстроходные парусные корабли построены во второй половине 20 века, и используются сейчас исключительно как учебные суда.
Вот бы С++ начали так же использовать.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, eao197, Вы писали:
E>>Подобное сравнение -- это как сравнение чайных клипперов 19-го века и судов на подводных крыльев 20-го века. Оба типа кораблей создавались для достижения максимальной скорости, но с разницей в 100 лет. 20-ть лет в программировании (между появлением первого релиза C++ и первого (еще не свершившегося) релиза Nemerle) -- это может быть даже больше, чем 100 лет в судостроении.
VD>Ну, то есть с сутью написанного ты согласен, просто тебе дорога честь того что ты сам ахарактризовал как столетнее (видимо барахло)?
Почему барахло, парусники это очень красиво и романтично
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, FR, Вы писали:
FR>>Самые крупные и быстроходные парусные корабли построены во второй половине 20 века, и используются сейчас исключительно как учебные суда.
VD>Вот бы С++ начали так же использовать.
Здравствуйте, VladD2, Вы писали:
E>>Подобное сравнение -- это как сравнение чайных клипперов 19-го века и судов на подводных крыльев 20-го века. Оба типа кораблей создавались для достижения максимальной скорости, но с разницей в 100 лет. 20-ть лет в программировании (между появлением первого релиза C++ и первого (еще не свершившегося) релиза Nemerle) -- это может быть даже больше, чем 100 лет в судостроении.
VD>Ну, то есть с сутью написанного ты согласен, просто тебе дорога честь того что ты сам ахарактризовал как столетнее (видимо барахло)?
Строители парусников просто не располагали теми научными и техническими достижениями, которые были у строителей судов на подводных крыльев. ПРОСТО НЕ РАСПОЛАГАЛИ!
Как же можно сказать "что удалось в 20-м веке, но не удалось в 19-м". Но ведь ты именно это и говоришь. Ты для пиара своей любимой ныне цацки, для того, чтобы она выглядела достойно, сравниваешь ее с гораздо более старым языком.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
: Д>может быть, грубовато по форме, но точно по содержанию
Да, верно-верно. Мне понравился вот этот "вывод":
Но если уж язык должен включать только базовые вещи, то все виды циклов придется реализовать средствами самого языка. И тут мы подходим к одновременно забавному и крайне печальному выводу. В C++ нет средств расширения синтаксиса!
О как! Автор тактично умалчивает о том, что средства модификации синтаксиса для C++ и не декларировались. Более того, использование #define для таких виражей всячески порицается.
Блин, статья, короче, из серии: "кит и слон — кто кого заборет?". Содержательная часть ограничена пересказом документации по Nemerle (уж куда "точнее"-то!). И что огорчает больше всего, так это то, что это опубликовано отнюдь не в заурядном блоге.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, FR, Вы писали:
FR>>>Самые крупные и быстроходные парусные корабли построены во второй половине 20 века, и используются сейчас исключительно как учебные суда.
VD>>Вот бы С++ начали так же использовать.
FR>Так вроде давно используют.
Ключевое слово я выделил жирным.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
FR>>>>Самые крупные и быстроходные парусные корабли построены во второй половине 20 века, и используются сейчас исключительно как учебные суда.
VD>>>Вот бы С++ начали так же использовать.
FR>>Так вроде давно используют.
VD>Ключевое слово я выделил жирным.
Так это самые крупные и быстроходные используют исключительно как учебные. Но большая часть парусников сейчас яхты, а это наверно как сам понимаешь в основном источник удовольствия
Здравствуйте, eao197, Вы писали:
E>Строители парусников просто не располагали теми научными и техническими достижениями, которые были у строителей судов на подводных крыльев. ПРОСТО НЕ РАСПОЛАГАЛИ!
Это понятно, но вот какими научно-техническими достижениями не располагали создатели C++, но располагали создатели OCaml, Scala, Nemerle?
... << RSDN@Home 1.2.0 alpha rev. 655>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Здравствуйте, Klapaucius, Вы писали:
K>Это понятно, но вот какими научно-техническими достижениями не располагали создатели C++, но располагали создатели OCaml, Scala, Nemerle?
Самый старый из этих языков Ocaml появился в 1996 году и если склероз не подводит умел компилироватся тогда только в байт код и уж точно не мог тогда конкурировать по быстродействию с C++. Так что все банально не хватало очень простых научно-технических достижений, а именно достаточно быстрых компьютеров с большим объемом памяти.
FR wrote: > Здравствуйте, Klapaucius, Вы писали: > > K>Это понятно, но вот какими научно-техническими достижениями не располагали создатели C++, но располагали создатели OCaml, Scala, Nemerle? > > Самый старый из этих языков Ocaml появился в 1996 году и если склероз не подводит умел компилироватся тогда только в байт код и уж точно не мог тогда конкурировать по быстродействию с C++. Так что все банально не хватало очень простых научно-технических достижений, а именно достаточно быстрых компьютеров с большим объемом памяти.
Насчет истории склероз таки подвел . http://caml.inria.fr/about/history.en.html
The first implementation of Caml appeared in 1987 and was further
developed until 1992. <о том, как первая версия тормозила, мы пропустим >.
...
In 1990 and 1991, Xavier Leroy designed a completely new implementation
of Caml, based on a bytecode interpreter written in C.
...
In 1995, Xavier Leroy released Caml Special Light, which improved over
Caml Light in several ways. First, an optimizing native-code
compiler was added to the bytecode compiler
... Objective Caml
This design was integrated and implemented within Caml Special Light,
leading to the Objective Caml language and implementation, first
released in 1996.
Но это история CAML, ML старше C++.
А вопрос Klapaucius'а ты прочел наоборот, т.к. именно создателям С++ не
хватило научно-технических достижений .
Здравствуйте, Андрей Коростелев, Вы писали: АК>Без обид.
На самом деле, эта способность у Влада есть. Иногда и мне хочется, чтобы она была несколько более ярко выражена , но в целом его вполне можно убедить.
Вообще, кстати, Влад — почти что идеальный оппонент. В том смысле, что если ты сумел его в чем-то убедить — можно идти со своими аргументами в народ.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Programmierer AG, Вы писали:
PA>FR wrote: >> Здравствуйте, Klapaucius, Вы писали: >> >> K>Это понятно, но вот какими научно-техническими достижениями не располагали создатели C++, но располагали создатели OCaml, Scala, Nemerle? >> >> Самый старый из этих языков Ocaml появился в 1996 году и если склероз не подводит умел компилироватся тогда только в байт код и уж точно не мог тогда конкурировать по быстродействию с C++. Так что все банально не хватало очень простых научно-технических достижений, а именно достаточно быстрых компьютеров с большим объемом памяти. PA>Насчет истории склероз таки подвел .
Вроде нет, Ocaml появился имено в 1996 году
И тот же склероз подсказывает что по производительности конкурировать с С++ тогда он не мог, вот в 1999 уже мог.
PA>Но это история CAML, ML старше C++.
угу
PA>А вопрос Klapaucius'а ты прочел наоборот, т.к. именно создателям С++ не PA>хватило научно-технических достижений .
Я правильно все прочел, вот если бы он спросил каких достижений из Computer Science не хватило, тогда конечно был бы другой ответ, но вопрос то был о научно-технических достижениях
Здравствуйте, Klapaucius, Вы писали:
K>Это понятно, но вот какими научно-техническими достижениями не располагали создатели C++, но располагали создатели OCaml, Scala, Nemerle?
Обратись к списку литературы в материалах по Nemerle и посмотри, сколько там будет работ, изданных в период с 1979 по 1983 (или даже 1985, когда появился первый коммерческий компилятор C++). Вот, например
Dybvig, R. K., Hieb, R., Bruggeman, C.: Syntactic Abstraction in Scheme. Lisp and Symbolic Computations, 1993
Sheard, T., Jones, S. P.: Template Meta-programming for Haskell. Haskell Workshop, Oct. 2002, Pittsburgh
Steele, Jr., Guy, L. Common Lisp, the Language. Digital Press, second edition (1990)
Clinger, William, Rees, Jonathan et al. The revised report on the algorithmic language Scheme. LISP Pointers, 4, 3 (1991)
Flatt, M.: Composable and Compilable Macros. ICFP, Oct. 2002, Pittsburgh
Ganz, S., Sabry, A., Taha, W.: Macros as multi-stage computations: type-safe, generative, binding macros in MacroML. Preceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP-2001), New York, Sep. 2001
Sheard, T., Benaissa, Z., Martel, M.: Introduction to multistage programming: Using MetaML.
Sheard, T.: Accomplishments and Research Challenges in Meta-Programming. 2001
Bawden, A.: First-class Macros Have Types. Symposium on Principles of Programming Languages, 2000 http://eclipse.org/aspectj/ Veldhuizen, T.: Using C++ template metaprograms. C++ Report Vol. 7 No. 4 (May 1995), pp. 36-43.
Rauglaudre, D.: Camlp4 – Reference Manual. http://caml.inria.fr/camlp4/
Поскольку есть даже ссылка на работы по C++ (!), то как раз опыт практического использования C++ (и связанных с ним граблей) был у разработчиков Scala/Nemerle, но не было у создателей C++.
, самыми старыми работами в списке литературы являются:
[5] G. Bracha and W. Cook. MixinBased Inheritance. In N. Meyrowitz, editor, Proceedings of ECOOP ’90, pages 303–311, Ottawa, Canada, October 1990. ACM Press. http://citeseer.ist.psu.edu/bracha90mixinbased.html.
[8] P. Canning, W. Cook, W. Hill, W. Olthoff, and J. Mitchell. FBounded Quantification for ObjectOriented Programming. In Proc. of 4th Int. Conf. on Functional Programming and Computer Architecture, FPCA’89, London, pages 273–280, New York, Sep 1989. ACM Pres. http://portal.acm.org/citation.cfm?id=99392.
[17] A. Goldberg and D. Robson. Smalltalk80: The Language and Its Implementation. AddisonWesley, 1983.
[24] D. MacQueen. Modules for Standard ML. In Conference Record of the 1984 ACM Symposium on Lisp and Functional Programming, Papers Presented at the Symposium, August 6–8, 1984, pages 198–207, New York, August 1984. Association for Computing Machinery.
[25] O. L. Madsen and B. MoellerPedersen. Virtual Classes A Powerful Mechanism for ObjectOriented Programming. In Proc. OOPSLA’89, pages 397–406, October 1989.
[40] P. Wadler and S. Blott. How to make adhoc polymorphism less adhoc. In Proc. 16th ACM Symposium on Principles of Programming Languages, pages 60–76, January 1989.
Так же, VladD2 любит говорить, что в Nemerle очень мощный алгоритм вывода типов, мощнее, чем в Scala. Если бы этот алгоритм был старый, то и разработчики Scala могли бы его использовать. А так, похоже, что авторы Nemerle как раз своим алгоритмом вывода типов сделали еще одно научно-техническое достижение, которого не было во времена начала C++.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
FR wrote: >>> Ocaml появился в 1996 году и если склероз не подводит умел компилироватся тогда только в байт код > И тот же склероз подсказывает что по производительности конкурировать с С++ тогда он не мог, вот в 1999 уже мог.
Caml Special Light разлива 1995 г имел оптимизирующий native компилятор.
Окамл, который отличался от Caml Special Light поддержкой OO, должен был
получить native компилятор в наследство. На этот факт я и хотел обратить
внимание. Рассуждать о способности конкурировать с C++, пожалуй, не
буду, здесь тесты нужны. > > Я правильно все прочел, вот если бы он спросил каких достижений из Computer Science не хватило, тогда конечно был бы другой ответ, но вопрос то был о научно-технических достижениях
Наука vs техника — отличный заголовок для флейма на 1000 сообщений, но я
в нем участвовать не буду .
Здравствуйте, Klapaucius, Вы писали:
K>Это понятно, но вот какими научно-техническими достижениями не располагали создатели C++, но располагали создатели OCaml, Scala, Nemerle?
Еще на эту тему.
* Сборка мусора. На момент начала работ сборка мусора, безусловно, существовала. Даже Страуструп до C++ пользовался Симулой, в котором сбока мусора была. Но ее эффективность была слишком низкой. Даже в первых версиях JVM сборка мусора была далека от того уровня, на котором она есть в JVM сейчас. Это непосредственный результат достижений последних 20 лет. Я думаю, не стоит недооценивать важность сборки мусора для ключевых возможностей языка. Например, реализация замыканий вряд ли возможна без сборки мусора.
* Библиотеки. В то время вряд ли существовали библиотеки уровня JDK или .NET Framework. Это сейчас можно сделать новый язык на базе JVM (Groovy, Scala) или .NET (Nemerle) и заниматься только языком, получая огромную стандартную библиотеку даром. В то время создание языка без библиотеки означало бы необходимость выпуска стандартной библиотеки своими силами (посмотри на пример Ruby, у которого на формирование стандартной библиотеки ушло 13 лет, но она еще далека от уровня тех же JDK или .NET). Это была одной из причин, почему C++ оказался совместимым с C. Но, обеспечив совместимость и интероперабильность с C, C++ оказался в капкане, из которого выбраться уже невозможно.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.