LINUX.ORG.RU

История изменений

Исправление tailgunner, (текущая версия) :

Я бы сказал, что юнит-тесты потому можно не считать «запуском программы»

Речь о тестах вообще, а не исключительно о юнит-тестах.

давайте всё же согласимся, что статическая типизация и динамическая реализация друг другу не противоречат.

Ха. Да эта ваша динамическая типизация - частный случай статической. Если серьёзно - я согласен, не противоречат. Поверх динамически типизированного языка можно написать чекер статических типов.

во всех SQL-серверах есть возможность подать запрос с консоли, т.е. eval, а также alter table и alter procedure, т.е., SQL реализован динамически

Это не доказывает ровно ничего. Первая реализация SQL (описанная у Дейта SQL/DS, кажется) использовала статическую компиляцию запросов, а при ALTER TABLE просто перекомпилировала их. Насчёт eval - никаких проблем скомпилировать строку нет, а в статически типизированных языках реализован REPL. Короче, если компилятор или чекер являются, упрощенно говоря, библиотечным функциями, ты можешь проделывать со статически типизированным кодом все те же трюки, что и с динамически типизированным. По крайней мере, в теории - из практических реализаций пока только REPL.

Большинство же языков программирования, включая и новомодные, имеют статическую реализацию и это наносит гигантский урон производительности труда.

Нет смысла откладывать проверку ошибок до исполнения. Динамическая типизация - атавизм из времён, когда люди не умели делать приличных систем типов (я не говорю, что они сейчас умеют, но они учатся). Динамическая типизация останется экзотическим режимом работы, изредка полезным, или просто отомрет.

Исходная версия tailgunner, :

Я бы сказал, что юнит-тесты потому можно не считать «запуском программы»

Речь о тестах вообще, а не исключительно о юнит-тестах.

давайте всё же согласимся, что статическая типизация и динамическая реализация друг другу не противоречат.

Ха. Да эта ваша динамическая типизация - частный случай статической. Если серьёзно - я согласен, не противоречат. Поверх динамически типизированного языка можно написать чекер статических типов.

во всех SQL-серверах есть возможность подать запрос с консоли, т.е. eval, а также alter table и alter procedure, т.е., SQL реализован динамически

Это не доказывает ровно ничего. Первая реализация SQL (описанная у Дейта SQL/DS, кажется) использовала статическую компиляцию запросов, а при ALTER TABLE просто перекомпилировала их. Насчёт eval - никаких проблем скомпилировать строку нет, а в статически типизированных языках можно реализован REPL. Короче говоря, если компилятор или чекер являются, упрощенно говоря, библиотечным функциями, ты можешь проделывать со статически типизированным кодом все те же трюки, что и с динамически типизированным. По крайней мере, в теории - из практических реализаций только REPL.

Большинство же языков программирования, включая и новомодные, имеют статическую реализацию и это наносит гигантский урон производительности труда.

Нет смысла откладывать проверку ошибок до исполнения. Динамическая типизация - атавизм из времён, когда люди не умели делать приличных систем типов (я не говорю, что они сейчас умеют, но они учатся). Динамическая типизация останется экзотическим режимом работы, изредка полезным, или просто отомрет.