คำตอบสั้น ๆ : ใช่เพราะคุณจัดการกับปัญหาที่ยากขึ้น
คำตอบยาว (เอนเอียงอย่างยิ่ง) : สำหรับฉันรูปแบบการออกแบบมักจะระบุว่ากระบวนทัศน์บางอย่างมีปัญหาในพื้นที่ที่กำหนด รูปแบบ OOP จัดการกับปัญหาของ OOP (ในระดับที่ต่ำกว่ารูปแบบ Java จัดการกับปัญหาของ Java), รูปแบบ FP จัดการกับปัญหาของ FP ฯลฯ
ระหว่างการเขียนโปรแกรมคุณอาจมีลำดับความสำคัญแตกต่างกัน คุณอาจต้องการโปรแกรมที่ถูกต้องคุณอาจต้องการเวลาที่สั้นลงสู่ตลาดโปรแกรมที่เร็วที่สุดการบำรุงรักษาระยะยาวหรือการบำรุงรักษาแบบทันทีด้วยการจ้างงานใหม่ คุณจะมีความแตกต่างกันอย่างมาก - หากคุณเป็นผู้ควบคุมการเขียนโปรแกรมของโรงไฟฟ้าที่คุณต้องการทำในครั้งแรกและไม่ใช่การแก้ไขข้อผิดพลาดทุกครั้งในขณะนี้และจากนั้น ("การล่มสลายเกิดขึ้นทุกครั้งที่กดCtrl+Alt+Del?") ถ้าคุณอยู่ใน HPC ลอจิกสามารถทำได้ง่าย แต่คุณต้องการที่จะดำเนินการให้เร็วที่สุดเท่าที่จะเป็นไปได้เป็นต้นนอกจากนี้กระบวนทัศน์บางอย่างยังเหมาะกับปัญหาบางอย่างที่ดีกว่า (พูด AI และการเขียนโปรแกรมเชิงตรรกะข้อมูลและฐานข้อมูลเชิงสัมพันธ์)
OOP คือบางส่วนขยาย 'ดีเกินไป' ในกรณีที่เรียบง่ายและเป็นเรื่อง "การสร้างแบบจำลองการแสดงสดจริง" ยกตัวอย่างเช่นในหนังสือเล่มแรกเกี่ยวกับ OOP ผมอ่านมีชั้นเรียนPerson
, Employee
และManager
มีis-a
ความสัมพันธ์ จนถึงตอนนี้ดีมาก แต่ถ้าพนักงานได้รับการเลื่อนตำแหน่งเป็นผู้จัดการ?
ในทางกลับกันกระบวนทัศน์อื่น ๆ ก็มีบทเรียนครั้งแรกยากขึ้นเช่น FP ที่มีตัวแปรไม่เปลี่ยนรูป (สิ่งที่ตลกคือคนที่มีประสบการณ์เกี่ยวกับการเขียนโปรแกรมมักจะพบว่ามันยากที่จะเรียนรู้มากกว่าผู้ที่เป็นภาษาแรก) - ไม่หนักกว่า OOP การทดสอบฟังก์ชั่นที่บริสุทธิ์นั้นไม่สำคัญและใน Haskell / Scala / ... คุณมีเครื่องมือที่สร้างการทดสอบให้คุณ
PS ใช่ - คำตอบนั้นเอนเอียงกับ OOP และฉันยอมรับว่าบางคนขยายมันว่า 'อยู่ในปฏิกิริยา' กับ OOP OOP มีประโยชน์ แต่ก็ไม่ใช่ทางออกเดียวที่ดีที่สุดในความคิดของฉัน
PPS ใช่ - ใช้รูปแบบการออกแบบ - ทำให้การเขียนโปรแกรม OOP ง่ายขึ้นในที่สุด
PPPS ฉันใช้ OOP เป็นคำพ้องความหมายของโปรแกรม OOP ที่จำเป็น