Re: шаблоны С++ и дженерики С#
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.09.09 19:20
Оценка: 11 (3) +2 -5
Здравствуйте, kochetkov.vladimir, Вы писали:

Скажу так. Это глупый спор.

Ни шаблоны, ни дженерики не являются панацеей. У каждого свои особенности которые одновременно порождают и плюсы и минусы.

Да, полноценного множественного наследования (МН) на дженериках не реализовать. Но так же точно на шаблонах нельзя реализовать даже что-то похожее на компонентность.

Правильный ответ на притязания С++-ников — в языках с дженериками надо использовать другие паттерны, другие подходы, другие идеомы. Однако С++-ники никогда не поймут этого, так как они мыслят паттернами характерными для С++, которые заучены ими за долгую (или не очень) практику программирования на этом языке.

Проблему МН можно было бы решить добавив в язык пару/тройку расширений. Например, миксины. То как это может выглядеть можно поглядеть в Scala. Там аналогичная возможность называется traits
Автор(ы): Билл Веннерс, Мартин Одерски, Лекс Спун
Дата: 30.07.2007
Scala – статически типизированный, объектно-ориентированный язык программирования, в котором смешиваются императивный и функциональный стили программирования. Одна из причин заинтересоваться программированием на Scala, состоит в том, что Scala позволяет увеличить производительность разработчика по сравнению с Java, сохраняя скорость исполнения JVM, существующие инвестиции в Java-код, знания и множество API, имеющихся для JVM. Scala обладает краткостью языков типа Ruby или Python, но при этом статически типизирована, как и Java.
. Это более узкое нежели МН решение, но оно отлично решает задачу добавления функционала к классу (и не создает при этом проблем). А именно эта задача обычно приводится сторонниками МН в качестве аргумента.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.