เส้นแบ่งระหว่างชนิดพื้นฐานและวัตถุนั้นเบลอและมักจะมีการทำเทียม ตัวอย่างเช่นใน C โครงสร้างเป็นเพียงกลุ่มของเร็กคอร์ดเพียงชนิดที่ไม่ใช่วัตถุที่ได้รับ ใน C ++, struct คือคลาสที่มีเขตข้อมูลสาธารณะทั้งหมดซึ่งเป็นวัตถุ ถึงกระนั้น C ++ ก็เกือบเข้ากันได้กับ C ... ชายแดนที่นี่อ่อนจริง ๆ
สำหรับการเขียนโปรแกรมต้นแบบคุณจำเป็นต้องมีวัตถุที่ไม่แน่นอนที่รันไทม์ พวกเขาจะต้องพิมพ์นุ่มเพราะการเปลี่ยนแปลงแต่ละครั้งที่รันไทม์คลาสของการเปลี่ยนแปลงชนิดหนึ่งไปยังอีก - การเปลี่ยนแปลงประเภทของมัน
คุณอาจเก็บชนิดพื้นฐานและชนิดที่ไม่ใช่วัตถุเป็นแบบสแตติก แต่สิ่งนี้นำเสนอความแตกต่างที่แปลกประหลาดวัตถุนั้นเป็นชนิดที่อ่อนนุ่มไม่ใช่วัตถุที่จะถูกพิมพ์แบบคงที่และต้องสร้างบาร์ริเออร์อย่างหนักระหว่างคนทั้งสอง คุณควรจะสามารถเปลี่ยนโครงสร้างหรือไม่? สตริง? Number ควรเป็นคลาสหรือชนิดพื้นฐานหรือชุดของชนิดพื้นฐาน, int / float / bignum / etc?
มันเป็นธรรมชาติมากขึ้นและง่ายต่อการเรียนรู้ใช้งานและเขียนเพื่อให้ได้ชุดนี้ทุกประเภทสามารถเปลี่ยนแปลงได้หรือไม่มีประเภทที่ไม่แน่นอนในการใช้งานจริง หากคุณประกาศประเภทเดียว (วัตถุ) ไม่แน่นอนคุณจะพบกับอาการปวดหัวและปัญหาของทั้งสองโลก
พิมพ์คงที่คือ:
- ง่ายต่อการใช้
- เร็วขึ้น / มีประสิทธิภาพมากขึ้น
- ปลอดภัยมากขึ้น
- ง่ายต่อการบำรุงรักษา / บันทึกเอกสารระบบใหญ่เนื่องจากสิ่งที่เป็นนามธรรม
พิมพ์แบบไดนามิกคือ:
- เขียนได้เร็วขึ้น
- รัดกุมมากขึ้น
- ภาษาที่ง่ายต่อการเรียนรู้
- ให้อภัยมากขึ้นสำหรับข้อผิดพลาดในการออกแบบ
ด้วยการผสมผสานทั้งสองอย่างเข้าด้วยกันคุณเสียสละมาก
- การนำไปใช้จะยากกว่าการดำเนินการสองแบบก่อนหน้านี้
- ความเร็วขึ้นอยู่กับว่าคุณใช้ประเภทซอฟต์หรือไม่ ... ถ้าเป็นเช่นนั้นมันต่ำถ้าคุณไม่เลือกภาษาเลยทำไม?
- ความปลอดภัยของประเภทอยู่นอกหน้าต่างสำหรับวัตถุทุกประเภท
- การติดตามลักษณะของมอร์ฟประเภทหนึ่งไปอีกแบบนั้นเป็นงานที่ค่อนข้างยาก บันทึกไว้ - ยากมาก
- คุณยังคงต้องทำบัญชีทั้งหมดด้วยประเภทพื้นฐานซึ่งฆ่าความกระชับและความเร็วในการเขียน
- ความซับซ้อนของภาษานั้นสูงกว่า (ยากต่อการเรียนรู้) มากกว่าภาษาที่ "เจาะจง" ใด ๆ
- "การให้อภัย" ของการพิมพ์แบบไดนามิกจะถูกแทนที่ด้วยแนวโน้มที่จะเกิดข้อผิดพลาดที่ยุ่งยากบางอย่างที่ไม่ตรงกันประเภทแอตทริบิวต์