การพิมพ์ที่แข็งแกร่ง / อ่อนแอและการพิมพ์แบบสแตติก / ไดนามิกเป็นมุมฉาก
Strong / อ่อนแอนั้นเกี่ยวกับว่าชนิดของค่าสำคัญหรือไม่ ในภาษาที่มีการพิมพ์น้อยคุณสามารถใช้สองสายที่เต็มไปด้วยตัวเลขและทำการเพิ่มจำนวนเต็ม ในภาษาที่พิมพ์อย่างรุนแรงนี้เป็นข้อผิดพลาด (เว้นแต่คุณจะแปลงหรือแปลงค่าเป็นประเภทที่ถูกต้องก่อน) การพิมพ์ที่เข้ม / อ่อนไม่ได้เป็นแบบขาวดำ ภาษาส่วนใหญ่ไม่เข้มงวด 100% หรืออ่อนแอ 100%
การพิมพ์สแตติก / ไดนามิกนั้นเกี่ยวกับว่าชนิดจะเชื่อมโยงกับค่าหรือตัวระบุ ในภาษาที่พิมพ์แบบไดนามิกคุณสามารถกำหนดค่าให้กับตัวแปรใด ๆ โดยไม่คำนึงถึงชนิด การพิมพ์แบบสแตติกกำหนดประเภทสำหรับตัวระบุทุกตัวและการกำหนดจากประเภทที่แตกต่างกันอาจเป็นข้อผิดพลาดหรือส่งผลให้เกิดการส่งโดยนัย บางภาษาใช้วิธีไฮบริดเพื่อให้สามารถประกาศประเภทแบบคงที่เช่นเดียวกับตัวระบุที่ไม่พิมพ์ ('ตัวแปร') นอกจากนี้ยังมีการอนุมานประเภทซึ่งเป็นกลไกที่เป็นไปได้ในการพิมพ์แบบคงที่โดยไม่ต้องประกาศประเภทของทุกอย่างชัดเจนโดยการรวบรวมคอมไพเลอร์คิดประเภท (Haskell ใช้สิ่งนี้อย่างกว้างขวาง C # เปิดเผยผ่านvar
คำหลัก)
การเขียนโปรแกรมแบบไดนามิกที่อ่อนแอช่วยให้แนวทางปฏิบัติ; ภาษาไม่ได้อยู่ในแนวทางของคุณตลอดเวลา แต่มันจะไม่ก้าวเข้ามาเมื่อคุณถ่ายภาพด้วยตัวเอง ในทางตรงกันข้ามการพิมพ์แบบสเตติกที่แข็งแกร่งจะผลักดันโปรแกรมเมอร์ให้แสดงความคาดหวังบางอย่างเกี่ยวกับค่าในโค้ดอย่างชัดเจนในวิธีที่ทำให้คอมไพเลอร์หรือล่ามตรวจจับข้อผิดพลาดได้ ด้วยระบบการพิมพ์ที่ดีโปรแกรมเมอร์สามารถกำหนดสิ่งที่สามารถและไม่สามารถทำสิ่งที่มีคุณค่าได้และหากเกิดอุบัติเหตุคนบางคนพยายามที่จะไม่พึงประสงค์บางอย่างระบบการพิมพ์ก็มักจะสามารถป้องกันมันได้