Wygląda na to, że ostatnio wszyscy skaczą na dynamiczną, nieskompilowaną modę. Pracowałem głównie w skompilowanych, statycznych językach (C, Java, .Net). Mam doświadczenie z dynamicznymi językami, takie jak ASP (Vb Script), JavaScript i PHP. Korzystanie z tych technologii pozostawiło w ustach zły smak, gdy myślę o językach dynamicznych. Rzeczy, które zwykle zostałyby wyłapane przez kompilator, takie jak błędne nazwy zmiennych i przypisanie wartości niewłaściwego typu do zmiennej, pojawiają się dopiero w czasie wykonywania. Nawet wtedy możesz nie zauważyć błędu, ponieważ po prostu tworzy nową zmienną i przypisuje jakąś domyślną wartość. Nigdy też nie widziałem, żeby funkcja Intellisense działała dobrze w języku dynamicznym, ponieważ zmienne nie mają żadnego jawnego typu.
Chcę wiedzieć, co ludzie uważają za tak atrakcyjne w językach dynamicznych? Jakie są główne zalety, jeśli chodzi o rzeczy, które umożliwiają języki dynamiczne, a czego nie można zrobić lub są trudne do wykonania w językach kompilowanych. Wydaje mi się, że już dawno temu zdecydowaliśmy, że takie rzeczy, jak nieskompilowane strony ASP, rzucające wyjątki w czasie wykonywania, były złym pomysłem. Dlaczego odradza się tego typu kod? I dlaczego przynajmniej wydaje mi się, że Ruby on Rails tak naprawdę nie wygląda na coś, czego nie mógłbyś zrobić z ASP 10 lat temu?