Можно ли полностью отказаться от динамически типизированых я
От: dotneter  
Дата: 18.11.10 08:54
Оценка:
Днем и ночью меня мучает данный вопрос.
Отказаться — это с минимальными потерями заменить все полезные фичи динамики на статику.
Так как на динамике я ничего серьезного не писал, то о полезности того или иного имею достаточно смутное представление.
1) Не нужно явно указывать тип
x = 1
Вроде вывод типов в большенство своем должен решить эту проблему
x = 1
Там где все же придется явто указывать, скорее всего не большая потеря.
2) Утиная типизация
def foo(x)
x.bar + 1
Структурные типы вроде должны эту проблему решать

x::{bar::Num}
3) Работа с динамическими данными
p = getPersonJson(1)
print p.Name
Самое правильное это конечно было бы иметь какое то описание для источника по которому можно было бы сгенерировать обертку, eсли описания нет, тогда выглядет не проблемой использовать те же структурные типы
p::{Name::String}
4) Ну и например изменение классов в рантайме
class Person
property Name
p = Person()
p.Age = 20
Опять же включая воображение, можно что нибудь придумать, например при компиляции p::Persoin,{Age:Int}, или вообще так не делать.

Так как языка с такими фичами скорее всего не сущетсвут, то нельзя с увереность сказать что это все может взлететь.
Соответственно два вопроса.
Что я упустил? Можно ли всетаки отказаться от дт?
Хотелось бы еще услышать стороников дт, какие фичи в дт считаются особенно полезны.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Talk is cheap. Show me the code.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.