On Monday 10 July 2006 12:03, Oren Weil wrote:
> לפי דעתי C תיהיה שפה "קשה" בשביל ילדים ביסודי, אולי תחשוב משהו יותר
> ליכוון של KPL או סוג של Basic ללינוקס.
>

בתקווה שאני לא פותח מלחמת "מה השפה הטובה ביותר להתחיל בה", הנה 20 האגורות שלי:

1. שפת C היא שפה קשה נקודה. הבעייה בלהתחיל עם C היא שבמקום להתעסק בתכנות אתה 
מתעסק עם יותר מדי דברים שוליים כמו הקצאות זכרון, שחרור זכרון, מצביעים, 
ומריחות זכרון. שפה למתחילים צריכה לאפשר לך לעשות בקלות דברים כמו להדפיס 
מחרוזות, לשרשר שתי מחרוזות מבלי לדאוג אם יש מקום ואם הקודמות או החדשה שוחררה, 
רצוי שלא תצטרך לדאוג לטיפוסים יותר מדי, וכו. אין את כל הדברים האלה ב-C.

שמתי לב איך בטכניון אנשים שמתחילים ללמוד עם C, נאבקים יותר מדי עם דברים כאלה 
במקום ללמוד את התכלס של התכנות והאלגוריתמיקה.

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

http://en.wikipedia.org/wiki/List_of_BASIC_dialects

בעיה אחרת היא שעולם התוכנה התקדם מאוד מאז. פעם כל ילד שידע בייסיק ואסמבלר היה 
נחשב האקר. היום מהאקרים מתחילים מצפים שידעו הרבה יותר(1). בייסיק פרופר (לא 
Visual Basic, VB.NET, Visual Basic for Applications, ושאר הואריאנטים 
המודרניים של מיקרוסופט), גם לא הצליחה לתפוס את השפות המודרניות האחרות שהתקדמו 
יותר, אך עדיין נשארו קלות יחסית ללימוד. 

דיאלקט הבייסיק שאני מכיר שהכי התרשמתי ממנו הוא Visual Basic for Applications 
שקיים באקסל, וייתכן גם שקיים במקומות אחרים. הוא די מודרני וכן קונסיסטנטי 
יחסית (אך עדיין מחוויר לעומת פרל ואחיותיה) ייתכן שיש מימוש מספיק דומה מספיק 
טוב שלו ללינוקס, אבל לא חקרתי את הנושא, וזה גם לא חסר לי כל כך.

3. אני מציע להתחיל עם אחת מהשפות הדינמיות/גמישות/"שפות תיסרוט"/שפות P וכו. 
אילו אני הייתי צריך ללמד הייתי מלמד פרל, גם משום שזאת השפה שאני מכיר הכי טוב, 
וגם מפני שאני חושב שהיא מתאימה לכך. קרוב לודאי שפייתון או רובי מתאימות גם הן, 
אם כי יש להן יתרונות וחסרות.

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

-----------------

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

יש בכוונתי לכתוב על כך מסה מקיפה (באנגלית), אבל זה הסיכום שלי.

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

בכבוד רב,

        שלומי פיש

[1] - http://www.joelonsoftware.com/articles/LordPalmerston.html

> Adam Rimon wrote:
> > שלום לכולם,
> >
> > ככל הנראה, אני אלמד במהלך חצי משנת הלימודים הבאה מחשבים בבית ספר
> > יסודי, שבו למדתי, בירושלים.
> > חשבתי ללמד אותם תכנות בשפת
> > C
> > ובמקביל להכיר להם את לינוקס.
> > אני מקווה שיאושרו לי שלוש שעות שבועיות:
> > שעה תיאורטית, ושעתיים מעבדה.
> >
> > אשמח אם תציעו לי רעיונות לתכנית לימודים בלינוקס.
> >
> > תודה,
> > -אדם

-- 

---------------------------------------------------------------------
Shlomi Fish      [EMAIL PROTECTED]
Homepage:        http://www.shlomifish.org/

95% of the programmers consider 95% of the code they did not write, in the
bottom 5%.

לענות