רוב האפליקציות המודרניות למחשב ולנייד משתמשות בטכניקות OOP.
קרדיט תמונה: SoulArt/iStock/Getty Images
שפות תכנות מונחה עצמים כמו C++, Java ו-Visual Basic פותחו על ידי מדעני מחשבים כדי להאיץ את התכנות ולשפר את איכות התוכנה. טכניקות תוכנת OOP מפרקות תוכניות לבלוקים פונקציונליים הנקראים אובייקטים, מה שגורם להם צורך לעתים קרובות תכונות כגון לחצני בקרה, ניהול מסד נתונים ומתמטיקה קלות יותר לשימוש ולשיתוף ביניהם מתכנתים. עם זאת, היתרונות מגיעים עם פשרות כגון מורכבות תוכנה נוספת וביצועים מופחתים.
פרודוקטיביות טובה יותר
טכניקות OOP אוכפות חוקים על מתכנת שבטווח הארוך עוזרים לה לבצע יותר עבודה; תוכניות מוגמרות עובדות טוב יותר, יש להן יותר תכונות והן קלות יותר לקריאה ולתחזוקה. תוכניות שאינן משתמשות ב-OOP נוטות להיות לוחות טקסט גדולים ומתמשכים כמו פרקים ארוכים מאוד בספר. כאשר מתכנתים נכנסים לשנות אותו, הטקסט בסופו של דבר הופך לא מאורגן וקשה יותר לעקוב. לעומת זאת, מתכנתי OOP לוקחים אובייקטי תוכנה חדשים וקיימים ו"תפורים" אותם יחד כדי ליצור תוכניות חדשות. מכיוון שספריות אובייקטים מכילות פונקציות שימושיות רבות, מפתחי תוכנה לא צריכים להמציא את הגלגל מחדש לעתים קרובות כל כך; יותר מזמנם מוקדש ליצירת התוכנית החדשה.
סרטון היום
עלויות תכנות נמוכות יותר
במיוחד עבור פרויקטים גדולים יותר, OOP עוזר להפחית את עלות העבודה בתכנות. צוות העובדים על פרויקט יכול לפתח ספרייה משלהם של אובייקטי תוכנה, לאפשר למתכנתים להשתמש זה בזה בקלות ולצמצם את השעות הדרושות לפיתוח תוכניות. עם איכות תוכנה משופרת, מפתחים מקדישים פחות זמן לתיקון תוכניות לא תקינות, מה שמפחית עוד יותר את עלויות העבודה.
עקומת למידה תלולה יותר
כדי לשלוט ב- OOP מתחיל חייב ללמוד מושגים חדשים ומופשטים כגון רב צורתיות -- שימוש חוזר באובייקטים תוך הוספת תכונות חדשות להם -- ו כימוס - הסתרת חלקים מהנתונים הפנימיים של אובייקט כדי לשפר את האבטחה - אף אחד מהם לא נמצא בסגנונות ישנים יותר של תכנות. לא רק שמושגים אלה לוקחים זמן ללמוד, הם עשויים להיות מורכבים מדי עבור מתכנתים צעירים יותר או כאלה שמתכנתים רק מדי פעם.
תוכנה איטית יותר
תוכנה מונחה עצמים יכולה לכלול קוד משק בית נוסף שאינו נחוץ בשפות מחשב אחרות; המחשב חייב לבצע את התכנות הנוסף, ולהאט את זמן התגובה של האפליקציה. עבור פרויקטים שבהם המהירות חשובה, מתכנתים עשויים לבחור לכתוב את החלקים הקריטיים ביותר לזמן שאינם ב-OOP שפות כגון assembler או C, שמירת קוד OOP עבור חלונות או כפתורים -- אזורים שבהם לאובייקטים יש יתרון.