Форум
Философия программирования
Тема
Как правильно задавать вопросы
B
I
abc
U
X
3
X
3
H1
H2
H3
H4
H5
H6
Asm
C/C++
C#
Erlang
Haskell
IDL
Java
Lisp
MSIL
Nemerle
ObjC
OCaml
Pascal
Perl
PHP
Prolog
Python
Ruby
Rust
SQL
VB
Здравствуйте, WolfHound, Вы писали: WH>Здравствуйте, meadow_meal, Вы писали: _>>1) Динамика удобнее при интеграции с другими динамическими системами или сервисами, о типизации которых на этапе компиляции ничего не известно. WH>Ничего не сможешь с этим сервисом сделать. Даже обратится к нему не сможешь. WH>Либо тебе известен контракт. А если есть контракт, то уже есть типы. _>>Примеры - работа с удаленным rpc-сервером без схемы, чтение данных из базы если схема заранее неизвестна, стык с другими динамическими системами, в общем все юзкейсы для которых ms ввел dynamic. WH>И что ты будешь дальше делать? WH>Максимум что ты можешь сделать, это распечатать то, что ты получил. WH>Это при условии, что ты вообще смог к нему обратиться. WH>А вот если ты хочешь сделать что-то осмысленное, то тебе нужно знать что там лежит WH>Вот тут уже и появляются статическая типизация. _>>2) Динамика удобнее, когда статическая типизация в имеющихся альтернативах недостаточно гибка. Например когда нужно объединение типов - вот в Nemerle есть variant, но что делать если одна переменная имеет тип A | B | C | D, а другая - A | C | E | F? WH>Это легко делается. WH>Просто это нужно настолько редко что никто это не делает. WH>Но если тебе так хочется, к немерле 2 я это прикручу. _>>Ну а если в языке даже неуклюжего variant/pm нет, то вообще туши свет - мысль, которая могла быть выражена лаконично, растекается. WH>Так в большинстве динамически типизированных языков этого тоже нет. _>>Да что там, в большинстве языков даже тип со значениями ( T | null (значение отсутствует) | undefined (значение не определено) ) уже страшная проблема. WH>Мы всё ещё говорим про динамическую типизацию, где в переменной может быть любое говно? _>>3) Системы с горячей заменой кода. Наверное, удачно совместить ее со статической типизацией в принципе возможно, но пока на этом поле играет динамика. WH>Ну, она много где играет только по тому, что никто статику засунуть не пробовал. _>>Когда в руках молоток, все вокруг кажется гвоздями. Если проблемы типизации должно решать метапрограммирование, то у типизации проблема. WH>Дело в том, что динамическая типизация позволяет некоторое метапрограммирование. WH>Так что если в языке нет метапрограммирования, то сравнение будет просто не корректным. WH>Ну и вывод типов ты изящно проигнорировал. _>>Как и все трюизмы, эти, верные в целом (если, конечно, опустить "100 строк"), могут не соответствовать действительности в конкретных условиях. WH>Когда конкретно они не соответствуют действительности? _>>Например, почему-то поддержка того же Эрланга со стороны ИДЕ намного лучше, чем существующая на данный момент поддержка Nemerle. WH>:))) Я ещё не видел ни одной ИДЕ для динамически типизированных языков, которую не мог бы запутать десятком строк кода. _>>Резюмируя - чтобы тащить динамику в продакшн действительно нужны веские причины, но при их наличии динамика не табу. WH>Пока что таких причин так и не назвали.
Теги:
Введите теги разделенные пробелами. Обрамляйте в кавычки словосочетания с пробелами внутри, например:
"Visual Studio" .NET
Имя, пароль:
Загрузить
Нравится наш сайт?
Помогите его развитию!
Отключить смайлики
Получать ответы по e-mail
Проверить правописание
Параметры проверки …