ברור שSmalltalk היא השפה המושלמת לילדים :-)

אני ממליץ לנסות את Squeak ובמיוחד את הפרויקט הזה. 

ביליתי שעות רבות עם הבת שלי (מגיל 5 עד 6) בתכנות של "בוטי" כפי שהיא מכנה את זה. קשה  לתאר את ההנאה של שלה כאשר בוטי מצייר על מסך לפי ההוראות שכתבה לו בפתק (script).


אפשר לתכנת בסביבה הזאת בכמה רמות:


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


לדוגמא כדי לצייר ריבוע אפשר להקליד:


go: 100; turn: 90


 ולחזור על זה 4 פעמים. אפשר לחזור על הפקודות האחרונות עם מקשי החיצים (הבת מאד התלהבה מהפטנט). הרובוט מכיר גם את הפעולה turnLeft, אבל זה קשה יותר להקלדה כשלא יודעים אנגלית. הזדמנות טובה ללמוד מה זה זוית.


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


2. Micro Workspace - מקל על כתיבה וביצוע של סקריפטים


לדוגמא, כדי לצייר ריבוע אפשר להקליד:


| boti |

boti := Bot new.

4 timesRepeat:
[boti go: 100; turn: 90]


3.Micro Browser - "דפדפן" מיוחד שמציג רק חלק מהמחלקה שנקראית Bot


לדוגמא כדי להוסיף לרובוט פעולה כמו ציור ריבוע בגודל מסוים:


rectangle: size
4 timesRepeat:
[self go: size; turn: 90.]


היה לנו גם דיון מעניין על ה API של הרובוט. הוספנו פעולה של star: לציור כוכב. הבת התעקשה שנקרא לזה sun:  ואני טענתי ששמש היא כוכב. בסוף התפשרנו על המימוש הזה:


sun: aNumber
self star: aNumber.


4. Sequeak -בקיצור מקשים ניתן לגשת לסביבת הפיתוח המלאה של Sequak . לדוגמא, הוספתי לרובוט פעולות כמו beFast beSlow כדי לראות איך הוא מצייר לאט לאט. 


מי שמעונין לנסות את השינויים שלי יכול להוריד אותם מכאן:

http://nirs.freeshell.org/botsinc/Bot.diff



ניר סופר


לענות