Здравствуйте, vsb, Вы писали:
>> множественного наследования vsb>интерфейсы есть. Остальное не нужно.
Не нужно Вам?
vsb>Собственно то, что множественного наследования в современных индустриальных яызках нет (за исключением С++) это подтверждает.
В каких, например, кроме Java/C#? И это ничего не подтверждает.
>> макросов vsb>Как это нет? cpp file.d > _file.d Суть в том, что макросы в D не нужны. Страуструп старательно вычищал С++ от макросов, Брайт завершил его дело.
А как там избавляются от повторений фрагментов кода, которые не укладываются в структурную удиницу языка программирования (функцию, класс, шаблон и т.п.)?
Здравствуйте, Alxndr, Вы писали:
A>Не нужно Вам?Мне субъективно оно приятно, но я понимаю, что множественное наследование порождает больше проблем, чем решает.
Конечно я предпочитаю иметь возможность, чем не име No ть её. Но я думаю, что множественное наследование порождает больше проблем, чем решает.
A>В каких, например, кроме Java/C#?
Почему кроме? Какие ещё языки поддерживают множественное наследование? Я помню только C++ и Smalltalk, возможно скриптовые. А сравнивать имеет смысл С++, D, C#, Java, именно так. Или вы не согласны? Тогда приведите примеры.
A>И это ничего не подтверждает.
С моей точки зрения — подтверждает.
A>А как там избавляются от повторений фрагментов кода, которые не укладываются в структурную удиницу языка программирования (функцию, класс, шаблон и т.п.)?
Например миксинами.
Здравствуйте, Viper_Craft, Вы писали:
V_C>Здравствуйте, Disappear, Вы писали:
V_C>Тоже самое можно и в С++, но в С++ шаблоны не только для этого...
Но не так просто и изящно. И не только это...
T>>>множественного наследования D>> многие с Вами не согласятся. А часто вы используете множественное наследование? V_C>Да, а вы понимаете данный термин?
Множественным наследованием может быть только наследование интерфейсов, все остальное — супостат.
T>>>Я забыл как там у Страуструпа "C++ is my favorite garbage collection language, because it produces no garbage" или как-то так. D>>В языке C++ его же идиому RAI сложно использовать.
V_C>Тут скорее так, в С++ ты можешь использовать GC и RAI, т.е. есть выбор, а это дополнительный плюс...
Подскажите мне пожалуйста хотябы одну реализацию GC в C++? Умные указатели не предлагать.
Re[5]: Например миксинами.Не пора ли нам перейти на D
Здравствуйте, vsb, Вы писали:
vsb>Конечно я предпочитаю иметь возможность, чем не име No ть её. Но я думаю, что множественное наследование порождает больше проблем, чем решает.
Какие проблемы эта возможность порождает, чтобы нужно было от нее отказываться?
A>>В каких, например, кроме Java/C#? vsb>Почему кроме? Какие ещё языки поддерживают множественное наследование? Я помню только C++ и Smalltalk, возможно скриптовые.
Я напомню еще Eiffel и CLOS.
vsb>А сравнивать имеет смысл С++, D, C#, Java, именно так.
Рановато называть D индустриальным. Остается C++, Java и C#.
Или вы не согласны? Тогда приведите примеры.
A>>И это ничего не подтверждает. vsb>С моей точки зрения — подтверждает.
Аминь
Тогда шаблоны тоже нужно выкинуть — как не востребованные в большинстве индустриальных языков программирования.
И детерминированное уничтожение объектов туда же.
И много чего еще.
A>>А как там избавляются от повторений фрагментов кода, которые не укладываются в структурную удиницу языка программирования (функцию, класс, шаблон и т.п.)? vsb>Например миксинами.
Можно с этого места подробнее?
И как-то миксины не вполне сочетаются с отсутствием множественного наследования...
Здравствуйте, Disappear, Вы писали:
D>Долой прошлое, господа! D>Хватит уже ходить по граблям обратной совместимости с другими граблями.
D>Не пора ли нам программировать на языке D (http://www.digitalmars.com/d/) ? D>Разве мы не заслужили
26.02.07 23:29: Перенесено модератором из 'C/C++' — Хитрик Денис
2 Хитрик Денис: Вообще так не честно. В C/C++ это был бы нормальный флэйм. Правда ответ на вопрос почему С++-программисты никогда не перейдут на D уже был дан здесь
). Но это был бы честный флэйм в котором сила (масса) неприменно одалела бы разум.
Но снеся эту тему сюда ты неизбежно подменил тему спора, так как рано или подзно (рано с моей помощью, по позже без нее) тема все равно превратится в "Казалось бы причем тут Nemerle".
Так что ты жесток.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Alxndr, Вы писали:
A>Здравствуйте, vsb, Вы писали:
>>> множественного наследования vsb>>интерфейсы есть. Остальное не нужно.
A>Не нужно Вам?
vsb>>Собственно то, что множественного наследования в современных индустриальных яызках нет (за исключением С++) это подтверждает.
A>В каких, например, кроме Java/C#? И это ничего не подтверждает.
Это хороший показатель.
A>А как там избавляются от повторений фрагментов кода, которые не укладываются в структурную удиницу языка программирования (функцию, класс, шаблон и т.п.)?
Для этого есть mixin — одна из возможностей языка. Другие возможности (только корректные их возможности) макросов, тоже доступны в языке D.
GC — опциональный. Память можно освобождать вручную. Причем сделано это лучше чем в .NET, так как память при этом действительно освобождается а прыгает между покалениями.
Ну и native компиляция, что тут еще можно сказать.
Re[6]: Например миксинами.Не пора ли нам перейти на D
Здравствуйте, Alxndr, Вы писали:
A>Какие проблемы эта возможность порождает, чтобы нужно было от нее отказываться?
По-моему это довольно старый вопрос. Есть аргументы и за, и против. С точки зрения создателя D минусы перевесили плюсы.
A>Я напомню еще Eiffel и CLOS.
Спасибо.
A>Рановато называть D индустриальным. Остается C++, Java и C#.
При этом Java и C# появились куда позже C++, а значит у их создателей было время подумать над дизайном языка.
A>Аминь A>Тогда шаблоны тоже нужно выкинуть — как не востребованные в большинстве индустриальных языков программирования. A>И детерминированное уничтожение объектов туда же. A>И много чего еще.
Почему? Я не говорю, что множественное наследование — плохо, я говорю, что его отсутствие — не есть реальная проблема. А отсутствие шаблонов — проблема. Которой в D к счастью нет.
Здравствуйте, demi, Вы писали:
D>Здравствуйте, Disappear, Вы писали:
D>С++ это как в самолете — тошнит, а выйти некуда... Такие проблемы надо силой решать. D с завтрашнего дня и все тут! Думаю, что сначала это себе позволят маленькие конторки — 4-5 человек или конторы с небольшой историей. Окажется, что после этого они догонят более крупные — писать на D легче, программы лучше. Потом только зашевелятся средние. Но для них это будет больно — тонны кода... Кто-то из них умрет, а кто-то перейдет на D. А там и до гигантов прогресс дойдет Революция как известно с низов начинается. Так что нормальную IDE D и немного либов и все, delete С++
Во многом разделяю ваши душевные стремления
Почему же нет реализациё. Есть компиляторы DMD от DigitalMars, GDC от GNU-шного набора компиляторов.
Здравствуйте, Disappear, Вы писали:
S>И что это даст. Никаких библиотек под D особенно не
...
D>А насколько был эффективен перепрыг скажем с VB на C# и.NET 1.0? Так поступило множество контор. Что там было экономически выгодно?
К C# прилагался еще .NET Framework. А это ого-го какая библиотека. И вот она уже в сочетании с удобством и мощностью языка и дает экономические выгоды при разработке.
Здравствуйте, Alxndr, Вы писали:
A>Надо думать, на тебя запрет на открытую переписку о модерировании не распространяется?
Да, есть момент. Формально непорядок. Однако, уверен, что Денис поймет, что это легкий стеб над бессмысленностью данной темы, а не обсуждение его решения.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Alxndr, Вы писали:
A>В каких, например, кроме Java/C#? И это ничего не подтверждает.
Я могу назвать только один язык где еще есть множественное наследование. Этот язык — Эфил. Больше я подобных не знаю.
Как раз С++ показал, что множественное наследование (МН) — это не верный путь развития. Единственное разумное его применение — это подключение реализации интерфейсов. Но, к сожалению, МН создает ряд проблем вроде брилиантового наследования, которые очень неприятны. Плюс к тому же МН реально усложняет компилятор. Всесто него сеондя в современных языках используют одиночное наследование (для выстраивания единой иерархии реализации) в сочетании с МН для интерфейсов и (совсем новым веянием) трэйтсами/миксинами. D как раз поддерживает все это. Так что в этой области он совершенее С++.
В общем, то D совершенее С++ во всем кроме раскрученности и количества бибоитек. Но:
1. В следствии парадокса Блаба
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Alxndr, Вы писали:
VD>В общем, то D совершенее С++ во всем кроме раскрученности и количества бибоитек. Но: VD>1. В следствии парадокса Блаба
Здравствуйте, VladD2, Вы писали:
A>>В каких, например, кроме Java/C#? И это ничего не подтверждает.
VD>Я могу назвать только один язык где еще есть множественное наследование. Этот язык — Эфил. Больше я подобных не знаю.
Тогда загляни в википедию. Кстати, выше по ветке я уже писал и про Eiffel и про CLOS.
VD>Как раз С++ показал, что множественное наследование (МН) — это не верный путь развития.
Мне он ничего такого не показал
VD>Единственное разумное его применение — это подключение реализации интерфейсов.
А что-нибудь про policy-based design ты слышал? Это так, к примеру.
VD>Но, к сожалению, МН создает ряд проблем вроде брилиантового наследования, которые очень неприятны.
Противники множественного наследования обычно говорят именно в таком ключе "ряд проблем вроде бриллиантового наследования". Никто не хочет этот ряд продолжать
Здравствуйте, Disappear, Вы писали:
D>GC — опциональный. Память можно освобождать вручную. Причем сделано это лучше чем в .NET, так как память при этом действительно освобождается а прыгает между покалениями.
GC в D применяется очень слабенький. Причина тому наличие указателей (как в С++) и невозможность по этому поводу переупорядочивать объкты в памяти.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, demi, Вы писали:
D>С++ это как в самолете — тошнит, а выйти некуда... Такие проблемы надо силой решать. D с завтрашнего дня и все тут! Думаю, что сначала это себе позволят маленькие конторки — 4-5 человек или конторы с небольшой историей. Окажется, что после этого они догонят более крупные — писать на D легче, программы лучше. Потом только зашевелятся средние. Но для них это будет больно — тонны кода... Кто-то из них умрет, а кто-то перейдет на D. А там и до гигантов прогресс дойдет Революция как известно с низов начинается. Так что нормальную IDE D и немного либов и все, delete С++
Что же до любьви к прекрасному... то очень советю покурить Nemerle. Если разберешся, то с вероятностью 99% через некоторое внемя ты поймешь, что D — это тупиковая ветвь эволюции. Ну, а с С++ тебя просто будет мутить.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.