Чи є якісь основні архітектурні відмінності при розробці програм, які будуть побудовані на статичних мовах (таких як C # або Java) та динамічних мовах (таких як Ruby або Python)?
Ні.
Трохи простіше написати фантазійні рамки для динамічних мов. Але це не є додатком.
Які дизайнерські можливості можуть бути хорошим вибором для одного типу, який поганий для іншого?
Ні, насправді.
Ви можете писати хороші речі будь-якою доброю мовою.
Чи є якісь корисні функції, досяжні з одним типом, що не з іншим (в дизайні та архітектурі, звичайно)?
Ні.
Різниця полягає в тому, що динамічні мови - "писати, запускати, виправляти". Можна експериментувати і швидко виправити.
Статичні мови - це "написати, скласти, побудувати, запустити, виправити". Не можна так легко експериментувати.
Крім цього, вони майже однакові за своїми можливостями.
Чи є якісь динамічні структури дизайну?
Можливо. Python eval()
та execfile()
функції - певним чином - вказують на динамічну функцію мови, яку важко (але далеко не неможливо) обробляти статичною мовою. Було б набагато більше рядків коду для складання та виконання коду в одному і тому ж просторі процесу.
Це не динамічна мова. Це просто простіше.