לקראת המעבר לשפות תכנות מונחה עצמים

תקציר מאמר

Gibbons, J. (1998). Structured programming in Java.

ACM SIGPLAN Notices, 33 (4), pp. 40-43.

הוכן ע"י דורית ליקרמן ואהובה שפרלינג

החומרים שלפניכם הוכנו על ידי משתתפי סמינר קיץ למורים מובילים תשס"ד.

שימו לב: לא ניתן לעשות בחומר הזה כל שימוש מסחרי ללא רשות בכתב מראש מיוצרי החומרים.

 

תקציר

המאמר תומך בגישה המצדדת בתכנות מבני ברמת היסוד לפני תכנות מונחה אובייקטים וביישום התכנים בשפת Java.

כותב המאמר הוא Gibbons Jeremy מהמחלקה למדעי המחשב והמתימטיקה באוניברסיטת Oxford, אוכלוסיית היעד אליה מתייחס הכותב היא סטודנטים מהחוג למדעי המחשב הלומדים את קורס היסוד.

 

הכותב יוצא מנקודת הנחה שיש ללמד את הסטודנטים מתוך גישת ה"why  - למידה מתוך הבנה לעומת גישה "how” – למידה מתוך שינון.

למידת structured programming כקורס ראשון תומכת בגישה ה- why לדעתו.

 

McLaughlin Phil  מאוניברסיטת South Bank במאמרו מהשנה שעברה  מצביע על מגמה גוברת של מעבר ל- Java כשפת תכנות ראשונה,  ללא התמקדות בתכנות מונחה עצמים.

עמדתו בנושא שלילית – " אם Java הופכת לשפה הראשית אזי תכנות מונחה עצמים חייב להיות הנושא המרכזי בתכנית הלימודים...".

 

Gibbons  במאמר מתנגד לעמדה זו, וטוען ש- Java היא בהחלט שפה המתאימה להיות שפה ראשית בקורס מבוא המתמקד בתכנות מבני :

*  Java פשוטה ובטוחה – ניתן ללמוד את הוראות היסוד של השפה בזמן קצר ולהתמקד ב- program design כיוון שחלקים נרחבים מהשפה הוכנסו לתוך ה- APIs  ואותם ניתן ללמוד בקורס מתקדם.

*  כמו כן המהדר מגלה שגיאות בזמן ההידור ולכן מונע בעיות בזמן הרצה (בניגוד ל- C).

*  יישום התכנים בשפת Java מאפשר המשכיות באותה סביבה לתכנים מתקדמים יותר.

*  ניתן להשיג את השפה ללא תשלום.

*  Java היא שפה המאפשרת העברת תכנים ממחשב למחשב ללא צורך בביצוע שינויים ביישום.

*  השפה אופנתית.

 

כותב המאמר אינו מתעלם מחסרונות השפה הנובעים מעצם היותה שפה מונחית אובייקטים:

*  גם תוכנית קצרצרה הכוללת פונקציה אחת ראשית בלבד צריכה לכלול הגדרות מחלקה.

*  כבר בתחילת ההוראה יש להתמודד עם נושא העברת פרמטרים.

*  העיסוק בקלט מסובך ליישום עקב הצורך להיכנס להגדרות אובייקטים.

*  מכיוון ש- Java מטפלת בחריגים, המתכנת צריך להתייחס לכל בעיה חריגה אפילו בתכניות פשוטות.

*  קשיים תחביריים בהתמודדות עם ביטויי תנאי (ירושה מ- C)

*  חוסר היציבות של Java בהיותה שפה חדשה העוברת שדרוגים מחייבת שכתוב של חומרי ההוראה.

 

למרות החסרונות הללו, הכותב עדיין איתן בדעתו ש- Java היא שפה המתאימה לקורס ראשון בתכנות מבני ובאוניברסיטת Oxford בה הוא מלמד לומדים התלמידים לומדים התלמידים את קורס היסוד בשפה זו.

הקורס עדיין לא הסתיים (בזמן כתיבת המאמר) ולכן אין עדיין ראיות ומסקנות לגבי התועלת שמפיקים הסטודנטים הלומדים בגישה זו.

 

לדעתנו, המעבר לשפת Java כשפה ראשית ללא התמקדמות בתכנים מונחי אובייקטים היא אפשרית, אולם יש סתירה במאמר בין גישת ב- "why" לחסרונות שמציין הכותב לגבי הצורך בהתמודדות עם :

הגדרת מחלקות, העברת פרמטרים ועיסוק בקלט הנלמדים בגישת ב- “how” – אם לא מתמקדים בתכנות מונחה אובייקטים.

 

חזרה לעמוד הראשי