אתחיל בטפל: אני מזועזע מהמחשבה שהספר של סטראוסטראפ שימש מישהו לצורך לימוד השפה. ניסיתי כמה פעמים לקרוא אותו (באמת שניסיתי!), והוא הצליח תמיד להכריע אותי עוד לפני שהגעתי ל-20 אחוז. זהו אחד מהספרים הגרועים ביותר שקראתי בתחום התוכנה (ותמיד היה עצוב לי להשוות אותו עם התנ"ך של קרניגהאן וריצ'י שהוא סמל המופת לכתיבה).
ועכשיו לעיקר. אני חושב שלימוד תכנות באוניברסיטה משמש כמה מטרות שונות מאוד זו מזו. בין שלל המטרות, אני מאמין שניתן למנות ולומר שהחשובות ביניהן הן:
1. ללמוד עקרונות תכנות.
2. ללמוד על "איך עובד המחשב" (כפי שהוגדר כאן).
3. לשמש ככלי עזר לצורך מטלות יותר "CS-יות", כמו כתיבת אלגוריתמים.
המטרה השלישית, אגב, אינה ייחודית למדעי המחשב, במובן זה שכל תחום במדעים המדוייקים וההנדסה מכשיר את לומדיו בקורס תכנות בסיסי לצורך חישובים הקשורים באותו תחום.
את המטרה הראשונה - ניתן לבצע בעזרת כל שפה. אם רוצים לכלול ב"עקרונות" גם את מושג האובייקטים, אזי כמובן יש צורך בשפה מתאימה, כמו C#, ג'אווה או C++.
את המטרה השנייה יש לבצע בעזרת שפה "נמוכה", כמו C או C++. כפי שכבר הוזכר כאן, גם מי שמתמחה בשפה עם garbage collection צריך להבין מהו אותו גארבג' ומה המשמעות של לקלקט אותו. אחרת הוא יכול להיות מתכנת, אבל לא ממש מהנדס.
המטרה השלישית בדרך כלל נוחה יותר לביצוע בשפה שמאפשרת להתמקד באלגוריתם ולא בדיבוג של זכרון. מצד שני, מי שירצה למשל לחשב זמני ריצה כדי להוכיח complexity בצורה מעשית, צריך שפה שבה ידוע בדיוק מה קורה "למטה" - C או C++ למשל.
בסך הכל, אני חושב שאפשר לבצע ב-C++ את כל המטרות, ובשפות כמו C, C# וג'אווה רק את חלקן. בנוסף, ישנה מטרה חשובה נוספת לסטודנטים בדרך כלל (למרות שהמחלקות למדמ"ח מתעלמות ממנה לעתים) - והיא לדעת לתכנת, ולתכנת היטב. גם לצורך זה אני מאמין ש-C++ היא החשובה ביותר, כיוון שמי שהסתדר איתה, יוכל בקלות לעבור לשפה שרצה על VM, וגם יוכל כנראה לעבור בקלות לעולם ה-C, למשל אם יבחר בתחום ה-REAL TIME.
כדאי ללמוד גם שפות אחרות, כך שמי שיבחר יוכל להתפתח דווקא בהן ולהשתמש בהן ככלי לעבודות או לפרוייקטים שונים שבהן הן יותר מתאימות.
אולם - אני חושב שלימוד שפה אחרת מ-C++ כשפה עיקרית, לא יוכל לשמש לכל המטרות שהצבתי, ויצריך היכרות מעולה גם עם שפות נוספות (למשל - שילוב של ג'אווה ו-C יכול לעשות את העבודה).
מיכאל
הוספת תגובה על "ג'אווה תחת מתקפה?"
נא להתחבר כדי להגיב.
התחברות או הרשמה