Сильне / слабке введення та статичне / динамічне введення тексту є ортогональними.
Сильний / слабкий - це те, чи має значення тип значення, функціонально кажучи. На мові з слабким типом можна взяти два рядки, які, начебто, заповнені цифрами та виконати додавання цілих чисел на них; у сильно набраній мові це помилка (якщо ви не вводите або конвертуєте значення спочатку у правильні типи). Сильний / слабкий набір тексту - не чорно-біла річ; більшість мов не є ні 100% суворими, ні 100% слабкими.
Статичне / динамічне введення тексту - це те, чи типи прив'язуються до значень або до ідентифікаторів. У динамічно набраній мові ви можете призначити будь-яке значення будь-якій змінній, незалежно від типу; статичне введення тексту визначає тип для кожного ідентифікатора, а присвоєння іншому типу або є помилкою, або призводить до неявного набору. Деякі мови застосовують гібридний підхід, дозволяючи статично оголошені типи, а також нетипізовані ідентифікатори ("варіант"). Існує також висновок типу - механізм, коли статичне введення можливе без явного декларування типу всього, шляхом компілятора з'ясувати типи (Haskell це широко використовує, C # розкриває його за допомогою var
ключового слова).
Слабке динамічне програмування передбачає прагматичний підхід; мова не заважає вам більшу частину часу, але вона не вступить, коли ви також стріляєте в ногу. Сильна статична типізація, навпаки, підштовхує програміста до явного вираження певних очікувань щодо значень у коді таким чином, що дозволяє компілятору чи інтерпретатору виявити клас помилок. За допомогою гарної системи типів програміст може точно визначити, що можна, а що не можна зробити для значення, і якщо випадково хтось намагається щось небажане, система типу часто може запобігти цьому і точно показати, де і чому все піде не так.