LINUX.ORG.RU

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

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

У тебя есть функция, она должна принимать число, ты передаешь ей строку и в динамических языках пока ты эту самую функцию не вызовешь, ты не узнаешь об ошибке, в статических же во время компиляции компилятор скажет тебе, что ты не прав по жизни и так делать нельзя

Вообще динамическая типизация она алгебраически более правильная и понятная, а статическая она, ну просто так сложилось исторически - примитивные компиляторы которым надо было все последовательно указывать. Никому бы просто так в голову бы не пришло придумывать String "Hello World!" ведь уже кавычки есть, это все равно что писать

funct ()
begin {
   /* ... */
end } 

но только вот из за того что код с ошибкой или недочетом в этой дедушкиной системе для старого урчащего VAX даже не соберется - за нее и крепко держатся двумя руками и отпускать похоже что вообще не собираются.

Бояться многие разработчики написать тонну говнокода которому где то что то может на вход не то попасть и он или сломается или фокусы показывать начнет. Хотя в этом будет не так уж и сложно разбираться просто тыкнув пальцем в то место которое отвечает за работу того что работает не правильно, посмотреть что приходит на вход/выход и дальше проследовать по ниточке пока не дойдем до того места где у нас все происходит не так как задумывалось и починить.
Но кому это интересно когда в статичном коде это уже все на этапе компиляции выяснилось (если вообще было возможно так написать), правда сам код у них при этом как лохнесское чудовище и развивать его довольно тяжело и геморно.

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

У тебя есть функция, она должна принимать число, ты передаешь ей строку и в динамических языках пока ты эту самую функцию не вызовешь, ты не узнаешь об ошибке, в статических же во время компиляции компилятор скажет тебе, что ты не прав по жизни и так делать нельзя

Вообще динамическая типизация она алгебраически более правильная и понятная, а статическая она, ну просто так сложилось исторически - примитивные компиляторы которым надо было все последовательно указывать. Никому бы просто так в голову бы не пришло придумывать String "Hello World!" ведь уже кавычки есть, это все равно что писать

funct ()
begin {
   /* ... */
end } 

но только вот из за того что код с ошибкой или недочетом в этой дедушкиной системе для старого урчащего VAX даже не соберется - за нее и держатся двумя руками и отпускать.

Бояться многие разработчики написать тонну говнокода которому где то что то может на вход не то попасть и он или сломается или фокусы показывать начнет. Хотя в этом будет не так уж и сложно разбираться просто тыкнув пальцем в то место которое отвечает за работу того что работает не правильно, посмотреть что приходит на вход/выход и дальше проследовать по ниточке пока не дойдем до того места где у нас все происходит не так как задумывалось и починить.
Но кому это интересно когда в статичном коде это уже все на этапе компиляции выяснилось (если вообще было возможно так написать), правда сам код у них при этом как лохнесское чудовище и развивать его довольно тяжело и геморно.