Мне влом писать много, так что объяснения в следующий раз. Может быть. Сейчас просто двумя абзацами. (Не думаю, что кто-то поймёт, но это не важно.)
Строгая типизация - она для записи решённой задачи, не строгая (которую называют динамической, но лучше бы называть её контекстной) - она для поиска решения.
Цена строгой типизации оправдывается для познанных задач предотвращением мелких ошибок. Но чем меньше мы понимаем в решении, тем больше она прекращает быть защитой и становится веригами, цементируя ошибочные предпосылки. Впрочем, это я уже упоминал.
То есть, где-то между крайними точками экономия ресурсов становится ниже потерь.
Интересно, что причина нечёткости лежит не в нашем несовершенстве и слабых аналитических способностях, а в самой природе систем вокруг создаваемого решения, требующих переосмысления элементов данных в зависимости от источника или целей использования.
Строгая типизация - она для записи решённой задачи, не строгая (которую называют динамической, но лучше бы называть её контекстной) - она для поиска решения.
Цена строгой типизации оправдывается для познанных задач предотвращением мелких ошибок. Но чем меньше мы понимаем в решении, тем больше она прекращает быть защитой и становится веригами, цементируя ошибочные предпосылки. Впрочем, это я уже упоминал.
То есть, где-то между крайними точками экономия ресурсов становится ниже потерь.
Интересно, что причина нечёткости лежит не в нашем несовершенстве и слабых аналитических способностях, а в самой природе систем вокруг создаваемого решения, требующих переосмысления элементов данных в зависимости от источника или целей использования.
no subject
Date: 2013-06-29 12:10 am (UTC)no subject
Date: 2013-06-29 08:16 am (UTC)Некоторые в базу данных строку таблицы пишут как текстовую строку через запятые, а потом парсят.
no subject
Date: 2013-06-29 12:11 am (UTC)no subject
Date: 2013-06-29 08:17 am (UTC)no subject
Date: 2013-06-29 04:58 am (UTC)Так что imho засилье динамической типизации в скриптинге связано в основном с "простотой в реализации", да экспоненциальным ростом производительности железа. Щас, кстати, imho обратный процесс пошел - по крайней мере Go мне уже рекламировали как "питон, только статически типизированный и быстрый". Возможно потому, что процессоры перестали убыстряться, а всякое распараллеливание с типизацией проще.
Что любопытно - совершенно не популярны "смешанные" языки типа cecil - где типизация есть, но опциональна (стирание всей информации о типах семантику программы не меняет)
no subject
Date: 2013-06-29 05:26 am (UTC)Ещё полиморфизм. Скажем, я не понимаю, как можно реализовать тот же grep, когда результат работы программы - поток объектов - a' list.
Собственно, попробуйте сделать sed который будет заменять поле 25:int на поле 88:int в произвольном выводе любой команды. Но со статической типизацией.
Т.е. к вам на вход этого статически типизированного sed'а может придти
float * int * float list или string * float list или просто int list.
Соответственно, если вы сидите на статической типизации, вам придётся задавать структуру данных, передаваемых на вход grep или sed.
no subject
Date: 2013-06-29 06:54 am (UTC)Конкретно для грепа нужно иметь сравнение на равенство как минимум.
Eq => ...
Тот же Haskell это сам скорее всего выведет.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:+1 по поводу не знаем
From:Re: +1 по поводу не знаем
From:(no subject)
From: (Anonymous) - Date: 2013-06-29 03:05 pm (UTC) - Expand(no subject)
From:(no subject)
From: (Anonymous) - Date: 2013-06-29 11:01 pm (UTC) - Expandno subject
Date: 2013-06-29 08:34 am (UTC)Чем дальше, тем их меньше. Плюс старые интерфейсы древних систем плохо расширяются и диктуют развитие нынешних.
no subject
Date: 2013-06-29 12:49 pm (UTC)см. LINQ
Статически типизированный sed - структурные типы. "Запись у которой есть поле c именем X и типом int".
no subject
Date: 2013-06-29 05:47 am (UTC)no subject
Date: 2013-06-29 08:37 am (UTC)(no subject)
From:no subject
Date: 2013-06-29 05:48 am (UTC)no subject
Date: 2013-06-29 06:52 am (UTC)Но опять же - типизация куда более простой способ поднятия перформанса, чем распараллеливание - потому с нее начать логичнее.
no subject
Date: 2013-06-29 08:31 am (UTC)Это определяется только по ощущениям и теоретическим измышлениям. На полный цикл в реале эти параметры никто не измерял.
no subject
Date: 2013-06-29 11:09 am (UTC)Но Ларри упирался и отбивался даже от замыканий.
(no subject)
From:no subject
Date: 2013-06-29 05:49 am (UTC)no subject
Date: 2013-06-29 07:20 am (UTC)no subject
Date: 2013-06-29 08:41 am (UTC)Естественно, всё имеет свою цену. И везде нужна правильная организация процессов, чтобы бороться со специфическим хаосом.
top-down - это замечательно, но возможно только в чистом поле. В реале слишком много мелочей задано окружением и часть из них не известна. У меня сейчас всё больше задач второго типа и всё меньше первого.
no subject
Date: 2013-06-29 09:13 am (UTC)Top-down активно используется мной в реальной практике уже года четыре, наверное. Я уже и забыл, как писать по-другому.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2013-06-29 08:05 am (UTC)no subject
Date: 2013-06-29 08:42 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2013-06-29 11:59 am (UTC)А разве миожно писать программу - не найдя заранее решения?
no subject
Date: 2013-06-29 01:03 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2013-06-29 07:39 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:ресурсов у нас как раз не хватает
From:Re: ресурсов у нас как раз не хватает
From:Re: ресурсов у нас как раз не хватает
From:Re: ресурсов у нас как раз не хватает
From:no subject
Date: 2013-07-02 03:09 am (UTC)а в реальной жизни, если решение известно заранее - то это или автоматизация (и то - не факт) или рефакторинг/переписывание.
всё остальное - всегда с шансом "ну не шмогла я, не шмогла"(с)лошадь.
конечно, народ придумывает схемы типа "а давайте сляпаем прототип из чего-то побыстрее, а потом перепишем, если взлетит", дабы минимизировать урон и т.д. Но это не меняет сути
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From: