תכנות מונחה עצמים לעומת תכנות פרוצדורלי
תכנות מונחה עצמים (OOP) ותכנות פרוצדורלי הן שתי פרדיגמות תכנות. פרדיגמת תכנות היא סגנון בסיסי של תכנות מחשב, והם נבדלים באופן הייצוג של אלמנטים שונים של התוכנית וכיצד מוגדרים שלבים לפתרון בעיות. כפי שהשם מרמז, OOP מתמקדת בייצוג בעיות באמצעות אובייקטים בעולם האמיתי והתנהגותם בעוד שתכנות פרוצדורלי עוסקת בייצוג פתרונות לבעיות באמצעות פרוצדורות, שהן אוספי קוד הפועלים בסדר מסוים.ישנן שפות תכנות התומכות בהיבטים מרכזיים של OOP (הנקראות שפות OOP), פרוצדורליות (הנקראות שפות פרוצדורליות) ושניהם. אבל דבר אחד חשוב לציין הוא ש-OPP ו-Procedural הן שתי דרכים לייצוג בעיות שיש לפתור, וזה לא משנה באיזו שפה משתמשים. במילים אחרות, ניתן להשתמש בשפות OOP עבור תכנות פרוצדורלי בעוד שפות פרוצדורליות יכולות לשמש לפעמים עבור OOP, במאמץ מסוים.
תכנות פרוצדורלי היא דרך לתכנות על ידי זיהוי מכלול השלבים לפתרון בעיה מסוימת והסדר המדויק שיש לבצע אותם כדי להגיע לתוצאה או למצב הרצוי. לדוגמה, אם ברצונך לחשב את יתרת סגירת סוף החודש עבור חשבון בנק, הפעולות הנדרשות יהיו כדלקמן. ראשית, אתה רוכש את היתרה ההתחלתית של החשבון ולאחר מכן אתה מפחית את כל סכומי החיוב שהתרחשו במהלך החודש. לאחר מכן, אתה מוסיף את כל סכומי האשראי שהתרחשו במהלך החודש. בסיום התהליך תקבלו את יתרת סגירת החודש של החשבון.אחד המושגים העיקריים של תכנות פרוצדורלי הוא קריאת הפרוצדורה. הליך המכונה גם תת שגרה, שיטה או פונקציה מכיל רשימה מסודרת של הוראות שיש לבצע. הליך יכול להיקרא בכל עת במהלך הביצוע על ידי כל הליך אחר או בפני עצמו. דוגמאות לשפות תכנות פרוצדורליות הן C ו-Pascal.
ב-OOP, ההתמקדות היא בחשיבה על הבעיה שיש לפתור במונחים של אלמנטים בעולם האמיתי וייצוג הבעיה במונחים של אובייקטים והתנהגותם. אובייקט הוא מבנה נתונים הדומה מאוד לאובייקט כלשהו בעולם האמיתי. אובייקטים מכילים שדות נתונים ושיטות המייצגים תכונות והתנהגות של אובייקטים בעולם האמיתי. ישנם מספר מושגי OOP חשובים כמו הפשטת נתונים, אנקפסולציה, פולימורפיזם, מסרים, מודולריות וירושה. כמה שפות OOP פופולריות הן Java ו-C. עם זאת, ניתן להשתמש בהם גם לביצוע תכנות פרוצדורלי.
ההבדל העיקרי בין OOP לתכנות פרוצדורלי הוא שהמיקוד של תכנות פרוצדורלי הוא לפרק את משימת התכנות לאוסף של משתנים ותתי שגרות בעוד שהפוקוס של OOP הוא לפרק את משימת התכנות ל- אובייקטים, המקיפים נתונים ושיטות.ההבדל הבולט ביותר יכול להיות שבעוד שתכנות פרוצדורלי משתמש בפרוצדורות כדי לפעול ישירות על מבני נתונים, OOP תאגד את הנתונים והשיטות יחד כך שאובייקט יפעל על הנתונים שלו. כשזה מגיע למינוח, נוהל, מודול, קריאת פרוצדורה ומשתנה בתכנות פרוצדורלי מכונים לעתים קרובות מתודה, אובייקט, הודעה ותכונה ב-OOP, בהתאמה.