metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2013-10-16 01:35 pm

Грех динамических типов

Стоило сначала поиспользовать кложурь, а потом руби - буквально через месяц во все проекты вползли гопнетные dynamic, а я сижу читаю вот такое http://stackoverflow.com/questions/1653046/what-are-the-true-benefits-of-expandoobject и борюсь с искушением воткнуть его во все места проекта, где статик типы вызывали ад лапши из паттернов.
Анальные боги хаскеля и теории категорий меня проклянут, надо срочно каких зависимых типов вкурить или скалой обдолбаться, пока не поздно. Или продолжить употребление тяжелых веществ и сделать еще какое-нибудь грехопадение на х-ле.
ext_646638: (Default)

[identity profile] rdia.livejournal.com 2013-10-16 02:45 pm (UTC)(link)
А какая разница в вышеприведённом примере? Там как была динамическая типизация по-сути, так и осталась. Только [""] заменены на точки. Стало удобнее и изящнее, но никакой статической типизации там изначально не было - всё съедено приведением указателя к object.

Кроме того, разве в C# нельзя написать вместо
Dictionary
[Error: Irreparable invalid markup ('<string,>') in entry. Owner must fix manually. Raw contents below.]

А какая разница в вышеприведённом примере? Там как была динамическая типизация по-сути, так и осталась. Только [""] заменены на точки. Стало удобнее и изящнее, но никакой статической типизации там изначально не было - всё съедено приведением указателя к object.

Кроме того, разве в C# нельзя написать вместо
Dictionary<String, object> dict = new Dictionary<string, object>();

хотя бы

var dict = new Dictionary<string, object>();

?

[identity profile] metaclass.livejournal.com 2013-10-16 06:16 pm (UTC)(link)
Ну там статической нет, я ж про это и пишу.
Просто по стилю это типичный руби-питон, с обращением к словарю по строковому ключу, замаскированному под имя проперти. И да, это все таки удобнее.