|
||||
|
||||
ממתי ירושה היא תנאי לשפה מונחית עצמים? לפי מה שלמדתי, השפה הראשונה שפותחה כמונחת עצמים ולא כמונחת תהליכים היא עדה שפותחה על ידי משרד ההגנה האמריקאי במשך כעשור בין 73 ל-83. |
|
||||
|
||||
בתאוריה של שפות תכנות מבדילים בין Object based (מבוסס עצמים) לבין Object oriented (מונחה עצמים). ההבדל הוא בירושה. אינני מומחה בשפת Ada, אך שפה שאין בה ירושה היא לכל היותר Object based. בתעשייה לא כ"כ מקפידים על ההבדל, וכמעט כל שפה (או מוצר) שיש לו מחלקות ומופעים זוכה לתואר "מונחה עצמים". כך למשל שפת Visual Basic, בגרסה 5 (לא שיחקתי עם גרסאות מתקדמות יותר) לא כללה ירושה, אך שווקה ע"י MS כ"מונחת עצמים". ראה גם: http://www.cs.technion.ac.il/Courses/OOP/slides/expo... (מתוך שקפי הקורס בתכנות מונחה עצמים בטכניון). שים לב לדירוג: עצמים בלבד – שפה מודולרית; עצמים ומחלקות – שפה מבוססת עצמים; עצמים, מחלקות וירושה – שפה מונחת עצמים. |
|
||||
|
||||
נראה שהחבר'ה האלו מסכימים איתנו, לפחות לגבי שפת עדה המקורית: (חפשו: "is ada an object oriented language") |
|
||||
|
||||
אני לא מספיק מכיר את שפת עדה כדי לקבוע באופן פסקני שהיא אינה מונחית עצמים. זו גם שאלה פילוסופית יחסית - היכן עובר הגבול בין שפות מונחות עצמים טהורות (Smalltalk למשל) לשפות שתומכות בפרדיגמה מונחית העצמים (כמו C++ למשל, שיתכן ועדה משתייכת אליהן). וכמובן, זה שמישהו אומר ששפת תיכנות היא מונחית עצמים לא אומר שהיא באמת כזו. "מונחה עצמים" היא buzzword מאד מקובלת בעולם המחשבים, שמנפנפים בה בקלות רבה מדי. מקובל (במחוזות מהם אני מגיע לפחות, הפקולטה למדעי המחשב בטכניון) לראות בירושה את אחד מהמאפיינים החשובים ביותר של הפרדיגמה מונחית העצמים, אם לא החשוב ביותר. מישהו שמכיר את עדה (ולא ג'ון באבג'...) יכול לפרט יותר לגבי מידת מונחיות העצמים שלה? |
|
||||
|
||||
לפי מה שאני מכיר את ADA מלימודים בקורס אחד באו"פ, היא פותחה על ידי משרד ההגנה האמריקאי והיתה שונה מכל שפות התכנות שלפניה בכך שהיתה מונחת עצמים, אני מניח שהם השתמשו במושג הזה כבר אז. ככל הנראה מושג זה הורחב לאחר מכן. |
|
||||
|
||||
תגובה 154567 מי שלימד אותך כנראה השתמש בהגדרה מאד מרחיבה של "מונחית עצמים". |
|
||||
|
||||
לא דיברתי על מי שלימד אותי, דיברתי על משרד ההגנה האמריקאי בעת שפיתחו את השפה. OOP לא הומצא כשהמציאו את smalltalk. |
|
||||
|
||||
אכן, OOP לא הומצא כשהמציאו את smalltalk, אלא בערך כשהמציאו את simula, בשנת 1967. בכל מקרה, הנה מסמך הדרישות המקורי לשפת ADA: http://www.adahome.com/History/Steelman/steelman.htm לא מופיע בו, לפי חיפוש שטחי, הצירוף Object Oriented. נסה גם את זה: לפי מה שקראתי (בזכותך) בינתיים על שפת עדה אז היא תומכת במספר פרדיגמות - הפרדיגמה מונחית עצמים והפרדיגמה האימפרטיבית, לפחות (ואולי עוד). אבל אי אפשר לסווג אותה כ"שפה מונחית עצמים", כמו שאי אפשר לסווג את C++ כשפה מונחית עצמים (ומי שלא מסכים, שישאל אפילו את ממציא השפה: http://www.research.att.com/~bs/bs_faq.html#Object-O...) |
|
||||
|
||||
טוב, אז כנראה שלעולם לא יצא לי לכתוב בשפה מונחית-עצמים. לא יודע אם זה הפסד גדול. |
|
||||
|
||||
זה דווקא נחמד. אם יצא לך, קח את הקורס בתכנות מונחה עצמים בטכניון ותוכל לכתוב בדיאלקט של Smalltalk. לוקח קצת זמן להבין ש"הכל פה זה עצמים", אפילו מספרים ואפילו בלוקים של קוד. אבל כשמבינים את זה אז זה הופך להיות מאד יצירתי, ואפילו אינטואיטיבי. |
|
||||
|
||||
או, לא-לא-לא. אני לא אקח מבחירתי החופשית קורס ב..ב..בתכנות. אגב, יש הבדל עקרוני בין "הכל זה עצמים" לבין "הכל זה פונקציות," כמו שמתיימרים לעשות ב-ML וב-LISP? |
|
||||
|
||||
כן, בראשון הכל זה עצמים, ובשני הכל זה פונקציות. תטל"א? |
|
||||
|
||||
לחילופין, אולי שאלתי שטל"א? לא משנה. זה מתאים לדיון בפורום תכנותי, ואני לא מספיק מעוניין בנושא על מנת להכנס לאחד. |
חזרה לעמוד הראשי | המאמר המלא |
מערכת האייל הקורא אינה אחראית לתוכן תגובות שנכתבו בידי קוראים | |
RSS מאמרים | כתבו למערכת | אודות האתר | טרם התעדכנת | ארכיון | חיפוש | עזרה | תנאי שימוש | © כל הזכויות שמורות |