Re[25]: C++0x начали урезать
От: VladD2 Российская Империя www.nemerle.org
Дата: 17.01.08 14:15
Оценка:
Здравствуйте, Andrei F., Вы писали:

AF>Ну например, для интерфейса IConvertible им эти проблемы почему-то не помешали. А здесь сделать то же самое — ну никак

AF>В конце концов, можно было определить только версию интерфейса с аргументом того же типа, что и сам объект. Так они даже и этого не сделали.

IConvertible — это пример безгрмотного проектирования. Когда его создавали, то не было даже дженериков. На сегодня я бы его вообще запретил. Он не расширяем и избыточен одновременно. Надо было ввести один делегат и передавать фукнции конвертации куда нужно по ссылке.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[26]: C++0x начали урезать
От: Andrei F.  
Дата: 17.01.08 17:15
Оценка: -2
Здравствуйте, VladD2, Вы писали:

VD>Надо было ввести один делегат и передавать фукнции конвертации куда нужно по ссылке.


И если в генерик-типе нужна конвертация, то этот делегат придется добавить в каждый конструктор, и писать его в каждом вызове оператора new. Спасибо, не надо такой радости.
Re[25]: C++0x начали урезать
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 23.01.08 08:53
Оценка:
Здравствуйте, Курилка, Вы писали:

К>У мсье есть некий "истинный критерий святой правильности"?


Если тебе чем то не нравится Влад, это совершенно не повод усиленно провоцировать здесь флейм.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[26]: C++0x начали урезать
От: Курилка Россия http://kirya.narod.ru/
Дата: 23.01.08 09:00
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, Курилка, Вы писали:


К>>У мсье есть некий "истинный критерий святой правильности"?


Извиняюсь, если кого-то задел мой вопрос.
Re[29]: C++0x начали урезать
От: Andrei F.  
Дата: 01.02.08 05:59
Оценка: :)
Здравствуйте, FR, Вы писали:

FR>А ни о чем не говорит, вон ML появился в 1973 году, в 97 был принят новый стандарт, и сейчас вполне жив и здоров, вот только доля на рынке (даже с диалектами типа Ocaml'а) близка к нулю. Это вполне вероятное будущее и для Немерле.


Это вероятное будущее для динозавров вроде D и ему подобных. И даже не вероятное, а практически гарантированное.
А настоящее будущее — за Немерле или другими языками, которые будут устроены по тому же принципу. Если, к примеру, макросы встроят в C#, то это тоже будет вполне неплохо.
Re[30]: C++0x начали урезать
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 01.02.08 06:05
Оценка: +2
Здравствуйте, Andrei F., Вы писали:

AF>Это вероятное будущее для динозавров вроде D и ему подобных. И даже не вероятное, а практически гарантированное.

AF>А настоящее будущее — за Немерле или другими языками, которые будут устроены по тому же принципу.

Мосье оракул?

А языки типа Scala или Nice вы куда вписываете?


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[31]: C++0x начали урезать
От: Andrei F.  
Дата: 01.02.08 06:23
Оценка:
Здравствуйте, eao197, Вы писали:

E>Мосье оракул?


Нет, мосье просто анализирует данные.

E>А языки типа Scala или Nice вы куда вписываете?


Scala — это самый лучший и совершенный паровоз. Само по себе неплохо, но когда уже появились первые двигатели внутренного сгорания — совершенно бесполезно. Nice очень похож, к тому же развитие в последнее время практически остановилось, судя по данным на сайте.
Re[32]: C++0x начали урезать
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 01.02.08 06:35
Оценка:
Здравствуйте, Andrei F., Вы писали:

AF>Здравствуйте, eao197, Вы писали:


E>>Мосье оракул?


AF>Нет, мосье просто анализирует данные.


И какие данные? Учитывается ли опыт Lisp-ов?

E>>А языки типа Scala или Nice вы куда вписываете?


AF>Scala — это самый лучший и совершенный паровоз. Само по себе неплохо, но когда уже появились первые двигатели внутренного сгорания — совершенно бесполезно.


Доказательство по аналогии...
Тем не менее хотелось бы услышать более конкретные причины, по которым у Scala нет будущего.

AF>Nice очень похож, к тому же развитие в последнее время практически остановилось, судя по данным на сайте.


В Nice автор реализовал все, что хотел. Сейчас это весьма качественный и стабильный язык, дело за использованием. Будет использование, будет и дальнейшее развитие. Так сам автор Nice говорит:

If you like the language, it is of course an
option to use it more intensively, if you realize there is not the
same guarantee of future development as for a "big" language.
Basically it depends on whether a community will grow and contribute
to it, and maybe you can also help with that. I am in any case willing
to look at bugs and fix them as much as possible.


Кстати, последний релиз Nice вышел всего несколько месяцев назад -- в ноябре 2007.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[33]: C++0x начали урезать
От: Andrei F.  
Дата: 01.02.08 06:56
Оценка: 1 (1)
Здравствуйте, eao197, Вы писали:

E>И какие данные? Учитывается ли опыт Lisp-ов?


Лисп — вполне удачный язык, из него очень многие заимствовали, да и применяется он не так уж редко. Его главная проблема — неудобный синтаксис. Но в Немерле такой проблемы нет.

E>Доказательство по аналогии...


Это не доказательство, это просто аналогия. Для иллюстрации.

E>Тем не менее хотелось бы услышать более конкретные причины, по которым у Scala нет будущего.


Помрет под собственной тяжестью. Языки монолитного типа уже вплотную подошли к пределу сложности.

E>В Nice автор реализовал все, что хотел.


Никогда не встречался с таким в жизни. Всегда есть что-то еще, что хочется добавить и улучшить. Скорее всего, причины другие — "сделал всё, что смог" или "просто надоело"
Хотя надо будет изучить этот язык повнимательнее, вдруг там есть что-то интересное.
Re[34]: C++0x начали урезать
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 01.02.08 08:13
Оценка: 2 (2) +1
Здравствуйте, Andrei F., Вы писали:

AF>Здравствуйте, eao197, Вы писали:


E>>И какие данные? Учитывается ли опыт Lisp-ов?


AF>Лисп — вполне удачный язык, из него очень многие заимствовали, да и применяется он не так уж редко. Его главная проблема — неудобный синтаксис. Но в Немерле такой проблемы нет.


Тогда нужно определиться в критерии "иметь будущее". Если под этим понимается "стать мейнстримом", то это одно, а если "применяться кое-где" -- то совсем другое.

Lisp мейнстримом не стал. Хотя тогда его синтаксис вряд ли был камнем преткновения -- выбирать-то было особо не из чего. И даже знаменитого C-шного синтаксиса, который сейчас является чуть ли не ключем к успеху языка, тогда еще не было. Так что причина неудачи мейнстримовых притязаний Lisp-а в неудобном синтаксисе не выглядит очень убедительной. Скорее это отговорка для тех, кто не может перестроиться на другую волну.

Странно, что не была вспомнена другая причина -- Lisp-еры склонны создавать свои поддиалекты языка под собственные задачи. И эта причина находит свое подтверждение в том, что мейстримами (по крайней мере в последние 15 лет) были как раз языки, очень ограничивающие программистов в возможностях изменения языка под себя. А это как раз основная фича Nemerle.

Если же под будущим понимать просто существование в каких-либо нишах (как это сейчас с Lisp-ами и Schema-ми происходит), то почему тогда у D и иже с ним нет будущего? Местами я бы сам с удовольствием использовал бы D вместо C++. И мне кажется, вы не представляете себе, какой прогресс в действительности происходит вокруг D, насколько он обрастает всякой всяченой.

И еще один экскурс в историю -- в начале 2000-ных у Ruby так же не было будущего. Это был просто еще один скриптовый язык, мало кому известный и мало кем используемый. Таковым он и оставался года до 2005-го. Зато как все изменилось за последние несколько лет!

E>>Тем не менее хотелось бы услышать более конкретные причины, по которым у Scala нет будущего.


AF>Помрет под собственной тяжестью. Языки монолитного типа уже вплотную подошли к пределу сложности.


Пределу сложности чего?
Современные языки сложно разрабатывать? На примере чего это видно? Разве были жалобы от Хальсенберга о том, что они C# 3.0 делали на пределе возможностей? Или может быть Одерски заявил, что они больше не в состоянии развивать Scala? Что-то не припомню такого, наоборот, релизы языка выходят с завидной стабильностью и переодичностью.

Или может речь идет о пределе сложности восприятия языка пользователем? Мол столько фич насовали в язык, что мало кто способен с ними разобраться. Так а чем Nemerle здесь лучше?

E>>В Nice автор реализовал все, что хотел.


AF>Никогда не встречался с таким в жизни.


Все когда-то происходит в первый раз.

AF>Всегда есть что-то еще, что хочется добавить и улучшить. Скорее всего, причины другие — "сделал всё, что смог" или "просто надоело"


Или "сделал все, что хотел, теперь нужно посмотреть, нужно ли это вообще кому-то".

AF>Хотя надо будет изучить этот язык повнимательнее, вдруг там есть что-то интересное.


Да посмотрите. А то по вашим словам Nice очень похож на Scala. Хотя из похожести там только похожий набор ключевых слов: let, var, class, for, ...


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[35]: C++0x начали урезать
От: Andrei F.  
Дата: 01.02.08 13:02
Оценка: 70 (1)
Здравствуйте, eao197, Вы писали:

E>Lisp мейнстримом не стал. Хотя тогда его синтаксис вряд ли был камнем преткновения -- выбирать-то было особо не из чего. И даже знаменитого C-шного синтаксиса, который сейчас является чуть ли не ключем к успеху языка, тогда еще не было. Так что причина неудачи мейнстримовых притязаний Lisp-а в неудобном синтаксисе не выглядит очень убедительной. Скорее это отговорка для тех, кто не может перестроиться на другую волну.


Когда Лисп только появился, он просто слишком опередил свое время и практикам был не особо то и нужен. А вот уже потом его синтаксис (точнее — его отсутствие) сделал свое злое дело.
Можно сколько угодно придумывать про "другую волну", "концептуальную правильность" и так далее. Но писать x+y*z все равно было и будет удобнее, чем (+ x (* y z)), или как там оно в Лиспе пишется.

E>Странно, что не была вспомнена другая причина -- Lisp-еры склонны создавать свои поддиалекты языка под собственные задачи.


А что плохого, что они их создают? С таким же успехом можно сказать "язык Х не имел никакого успеха, потому что Х-еры склонны создавать свои библиотеки под собственные задачи"

E>И эта причина находит свое подтверждение в том, что мейстримами (по крайней мере в последние 15 лет) были как раз языки, очень ограничивающие программистов в возможностях изменения языка под себя. А это как раз основная фича Nemerle.


"После этого — значит, вследствие этого". Типичная логическая ошибка.

E>Если же под будущим понимать просто существование в каких-либо нишах (как это сейчас с Lisp-ами и Schema-ми происходит), то почему тогда у D и иже с ним нет будущего? Местами я бы сам с удовольствием использовал бы D вместо C++. И мне кажется, вы не представляете себе, какой прогресс в действительности происходит вокруг D, насколько он обрастает всякой всяченой.


Пока не будет удобного и надежного интеропа с другими языками (как минимум — тем же С++), D так и будет оставаться игрушкой для фанатов. Да и ниша самого С++ постоянно уменьшается.

E>И еще один экскурс в историю -- в начале 2000-ных у Ruby так же не было будущего. Это был просто еще один скриптовый язык, мало кому известный и мало кем используемый. Таковым он и оставался года до 2005-го. Зато как все изменилось за последние несколько лет!


А что такого случилось? На первый взгляд, он так и остался еще одним скриптовым языком, только чуть более известным, чем раньше

E>Пределу сложности чего?

E>Современные языки сложно разрабатывать? На примере чего это видно? Разве были жалобы от Хальсенберга о том, что они C# 3.0 делали на пределе возможностей? Или может быть Одерски заявил, что они больше не в состоянии развивать Scala? Что-то не припомню такого, наоборот, релизы языка выходят с завидной стабильностью и переодичностью.

E>Или может речь идет о пределе сложности восприятия языка пользователем? Мол столько фич насовали в язык, что мало кто способен с ними разобраться. Так а чем Nemerle здесь лучше?


Речь идет именно о разработке. А лучше он тем, что силами намного меньшей команды разработано намного больше поелзных возможностей.

E>Все когда-то происходит в первый раз.


Нет, не всё. Некоторые вещи происходят в первый раз. А некоторые — никогда.

E>Или "сделал все, что хотел, теперь нужно посмотреть, нужно ли это вообще кому-то".


Проект, который не развивается, точно никому не будет нужен.

E>Да посмотрите. А то по вашим словам Nice очень похож на Scala. Хотя из похожести там только похожий набор ключевых слов: let, var, class, for, ...


А какие принципиальные отличия?
Re[36]: C++0x начали урезать
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 01.02.08 13:14
Оценка:
Здравствуйте, Andrei F., Вы писали:

<...обычное безсодержательное словоблудие поскипано, хотя над отсутствием интеропа у D поулыбался...>

E>>Пределу сложности чего?

E>>Современные языки сложно разрабатывать? На примере чего это видно? Разве были жалобы от Хальсенберга о том, что они C# 3.0 делали на пределе возможностей? Или может быть Одерски заявил, что они больше не в состоянии развивать Scala? Что-то не припомню такого, наоборот, релизы языка выходят с завидной стабильностью и переодичностью.

Я таки услышу ответ на вопрос о том, к пределу какой сложности приближается разработка современных языков программирования?

E>>Или может речь идет о пределе сложности восприятия языка пользователем? Мол столько фич насовали в язык, что мало кто способен с ними разобраться. Так а чем Nemerle здесь лучше?


AF>Речь идет именно о разработке. А лучше он тем, что силами намного меньшей команды разработано намного больше поелзных возможностей.


Понятно. Это конкретный ответ. Однако, еще было бы хорошо показать, что удобство разработки самого языка положительным образом скажется на удобстве разработки разнообразного ПО на этом языке.

E>>Да посмотрите. А то по вашим словам Nice очень похож на Scala. Хотя из похожести там только похожий набор ключевых слов: let, var, class, for, ...


AF>А какие принципиальные отличия?


Ну хотя бы тем, что Nice -- не функциональный язык программирования.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[37]: C++0x начали урезать
От: Andrei F.  
Дата: 01.02.08 13:42
Оценка: +1 -1 :))
Здравствуйте, eao197, Вы писали:

E><...обычное безсодержательное словоблудие поскипано, хотя над отсутствием интеропа у D поулыбался...>


Это хорошо, что ты его поскипал. Тебе не пришлось его писать, мне не пришлось его читать. Молодец
Так что, в D уже появился интероп с С++? И как это выглядит?

E>Я таки услышу ответ на вопрос о том, к пределу какой сложности приближается разработка современных языков программирования?


Я надеюсь, мне не придется читать лекцию о разнице между монолитными и модульными системами?

E>Понятно. Это конкретный ответ. Однако, еще было бы хорошо показать, что удобство разработки самого языка положительным образом скажется на удобстве разработки разнообразного ПО на этом языке.


Меньше проблем в разработке языка — больше времени на обдумывание и проектирование. Лучше продуман язык — удобнее его использовать. И так далее.
А то за некоторые "решения" в C# так и хочется разработчикам руки пообрывать.

E>Ну хотя бы тем, что Nice -- не функциональный язык программирования.


Ну, тем хуже для него
Re[38]: C++0x начали урезать
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 01.02.08 14:13
Оценка:
Здравствуйте, Andrei F., Вы писали:

AF>Так что, в D уже появился интероп с С++? И как это выглядит?


В оригинале было:

Пока не будет удобного и надежного интеропа с другими языками (как минимум — тем же С++), D так и будет оставаться игрушкой для фанатов. Да и ниша самого С++ постоянно уменьшается.


Интероп с другими языками в том числе и с C++ в D сделан так же, как и в самом C++ -- через C-шный интерфейс. С-шные библиотеки прозначно цепляются к D, С++ные библиотеки, обернутые в C-шный API спокойно цепляются к D, D-шные библиотеки, обернутые в С-шный API спокойно цепляются к C++.

Хотя у .NET/Windows-программистов под интеропом, наверное, понимается что-нибудь другое. Только то, что работает в рамках CLR и только под Windows.

E>>Я таки услышу ответ на вопрос о том, к пределу какой сложности приближается разработка современных языков программирования?


AF>Я надеюсь, мне не придется читать лекцию о разнице между монолитными и модульными системами?


Ну, если посмотреть на Windows и Linux, и сравнить их с модульными Hurd, Plan9 и Minix3, то интересно было бы послушать, чем же на практике модульные системы лучше монолитных.

Однако, речь не о том. Лучше было бы просто ответить на прямой вопрос.
Но я так понял, что речь идет именно о том, что сложность разработки современных ЯП приближается к пределу. И я так понял, что к пределу возможностей разработчиков.

Вот только не понятно, на основании чего сделан такой вывод. Свидельства подобной ситуации можно увидеть?

E>>Понятно. Это конкретный ответ. Однако, еще было бы хорошо показать, что удобство разработки самого языка положительным образом скажется на удобстве разработки разнообразного ПО на этом языке.


AF>Меньше проблем в разработке языка — больше времени на обдумывание и проектирование. Лучше продуман язык — удобнее его использовать. И так далее.


Э-э-э. Тут как бы не все так очевидно. Вот вроде как на макросах был реализован DesignByContract, да только если сравнить его в аналогичным в Eiffel, то оказывается, что не все же сделано. Например, есть ли доступ к old-значениям в пост-условиях? И как реализовано наследование пред-условий?

Так что быстрая реализация не всегда способна привести к хорошему и юзабельному результату.

AF>А то за некоторые "решения" в C# так и хочется разработчикам руки пообрывать.


Может пора уже избавляться от юношеского максимализма? А то от С++ воротит, разработчикам C# руки хочется поотрывать. Пора бы принимать жизнь такой, какая она есть.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[30]: C++0x начали урезать
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 01.02.08 19:29
Оценка:
Здравствуйте, Andrei F., Вы писали:

AF>Это вероятное будущее для динозавров вроде D и ему подобных. И даже не вероятное, а практически гарантированное.

AF>А настоящее будущее — за Немерле или другими языками, которые будут устроены по тому же принципу. Если, к примеру, макросы встроят в C#, то это тоже будет вполне неплохо.

Боюсь, в плане будущего конкретно D заметно благополучнее, чем конкретно Nemerle просто ввиду размера девелоперской тусовки вокруг того и другого.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[35]: C++0x начали урезать
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 01.02.08 19:29
Оценка:
Здравствуйте, eao197, Вы писали:

E>Пределу сложности чего?

E>Современные языки сложно разрабатывать? На примере чего это видно? Разве были жалобы от Хальсенберга о том, что они C# 3.0 делали на пределе возможностей?

Господи, ну сколько можно искажать его фамилию. Хейлберг его зовут.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[36]: C++0x начали урезать
От: Курилка Россия http://kirya.narod.ru/
Дата: 01.02.08 20:09
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, eao197, Вы писали:


E>>Пределу сложности чего?

E>>Современные языки сложно разрабатывать? На примере чего это видно? Разве были жалобы от Хальсенберга о том, что они C# 3.0 делали на пределе возможностей?

AVK>Господи, ну сколько можно искажать его фамилию. Хейлберг его зовут.


Может всёж Хейлсберг?
Re[38]: C++0x начали урезать
От: FR  
Дата: 02.02.08 04:48
Оценка:
Здравствуйте, Andrei F., Вы писали:

AF>Это хорошо, что ты его поскипал. Тебе не пришлось его писать, мне не пришлось его читать. Молодец

AF>Так что, в D уже появился интероп с С++? И как это выглядит?

http://www.digitalmars.com/d/2.0/cpp_interface.html
http://www.digitalmars.com/d/2.0/COM.html
Re[37]: C++0x начали урезать
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 02.02.08 10:13
Оценка:
Здравствуйте, Курилка, Вы писали:

К>Может всёж Хейлсберг?


Опечатка По ссылке правильно
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[39]: C++0x начали урезать
От: Andrei F.  
Дата: 04.02.08 11:22
Оценка:
Здравствуйте, eao197, Вы писали:

E>Интероп с другими языками в том числе и с C++ в D сделан так же, как и в самом C++ -- через C-шный интерфейс. С-шные библиотеки прозначно цепляются к D, С++ные библиотеки, обернутые в C-шный API спокойно цепляются к D, D-шные библиотеки, обернутые в С-шный API спокойно цепляются к C++.


Иными словами, нужно делать обертки на каждый метод с обеих сторон, в D и в C++. Классы — эмулировать.
Я могу назвать такой "интероп" как угодно, но только не удобным или надежным.

E>Хотя у .NET/Windows-программистов под интеропом, наверное, понимается что-нибудь другое. Только то, что работает в рамках CLR и только под Windows.


Ну раз ты первый об этом заговорил, мне нравится как сделан интероп в C++/CLI.
А что он реализован только под Windows — не очень хорошо, но мне это проблем не создает.

E>Вот только не понятно, на основании чего сделан такой вывод. Свидельства подобной ситуации можно увидеть?


Имеющий глаза да увидит.

E>Так что быстрая реализация не всегда способна привести к хорошему и юзабельному результату.


Если учесть размер команды, то при разработке на языке без макросов никаких контрактов не было бы вообще.

E>Пора бы принимать жизнь такой, какая она есть.


То есть, отказаться от надежды что-то изменить? Ну уж нет. Становиться ментальным старичком я не собираюсь.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.