בתור אחד שעבד לא מעט ב-Smalltalk (גם ב-IBM), אני אשמח לראות את זה קורה. כשפה, Smalltalk היא באמת היהלום שבכתר. אם אני צריך לתת משהו אחד שחסר בה לעומת Java זה Interfaces (אני חסיד גדול שלהם) ואם אני צריך לתת משהו אחד שהופך אותה למיוחדת זה נושא ה-Code Blocks, שניסה להיכנס ל-Java תחת השם Closures.
הרעיון שאין כמעט סינטקס ל-Smalltalk. פרט להגדרות של Class/method והשמות, כל פעולה הינה הפעלת מתודה עם ארגומנטים. משפט כמו "1 + 1" משמעותו - יש לי אוביקט מסוג Integer שערכו 1 (הוא Singleton), אני מפעיל את המתודה + ושולח ארגומנט שהוא גם אוביקט מסוג Integer שערכו אחד. זה OO טהור וכמובן מאוד לא יעיל...
פעולה כמו If/else או לולאה מבוצעות בעזרת Code Blocks. לדוגמה:
x > y ifTrue:[ 'x bigger then y']
ה-< היא מתודה שמחזירה מופע של מחלקה מסוג Boolean. למחלקה Boolean יש מתודה שנקראת ifTrue שמקבלת ארגומנט שהוא בלוק של קוד. אותו בלוק יבוצע אם הערך הוא true. למעשה אפשר לממש כך כל control structure שרק רוצים.
הוספת תגובה על "שובו של smalltalk?"
נא להתחבר כדי להגיב.
התחברות או הרשמה