Re[2]: Философический вопрос про автоматический вывод типов.
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 06.02.06 05:32
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>C++:

VD>
VD>Dictionady<MyFirstClassWithLongName<List<MySecondClassWithLongName^>>^, List<MySecondClassWithLongName^>>^ dic^ =
VD>    new Dictionady<MyFirstClassWithLongName<List<MySecondClassWithLongName^>>^, List<MySecondClassWithLongName^>>^ ();
dic->>Add(var1, var2);
VD>


Typedef уже отменили?
А то бы получилось:
typedef Dictionady<MyFirstClassWithLongName<List<MySecondClassWithLongName^>>^, List<MySecondClassWithLongName^>>^ MyDictionaryPtr;
...
MyDictionaryPtr dic^ = new MyDictionaryPtr;


VD>Собственно приведенный пример скорее демонстрация ума компилятора. Рельно же приемущество получается когда начинашь описывать вложенные методы. Например, я даже не знаю как типизированно описать следующую конструкцию:

VD>
VD>def hash = Hashtable ();

VD>def Init(x, y)
VD>{
VD>    foreach (value in y)
VD>        x.Add(value[0], value[1]);
VD>}

VD>Init(hash, [("1", 1), ("2", 2)])
VD>


VD>А так спокойно описал. И выглядит кратко.


После программирования с RubyOnRails я думаю, что это не есть хорошо. Там так же классы-модели возвращают какие-то объекты, которые затем используются формами для отображения информации. И очень скоро без явного декларирования типов возвращаемых объектов напрочь забываешь, что окуда возвращается и как с этим можно работать. А уж поддерживать целостность всего этого дела можно только за счет обилия unit-тестов. Приведенный тобой пример очень похож на эту ситуацию.

VD>Не пишите на дурно спроектированных языках и не будете искать шибки очень долго.


Ага, а пока появятся хорошо спроектированные языки не программируйте ничего.
И совсем уж философский вопрос: неужели за все время развития программирования еще не было создано ни одного нормально спроектированного языка?
И что заставляет думать, что через некоторое время кажущийся нормально спроектированным язык не окажется объявленным дурно спроектированным?


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.