Scratch

בלוקים באתר סקראץ'
סקראץ היא סביבת פיתוח המיועדת להוראת תכנות בעיקר ילדים בגיל 8 עד 16. בסביבת פיתוח זו יוצרים ממשק משתמש גרפי (GUI) הנעזר בדמויות ובלוגיקה. בסביבה לא כותבים קוד אלא גוררים ומשחררים באופן חזותי "בלוקים", צורות ובהן בדרך כלל הוראה לדמות, ומסדרים אותם זה אחר זה, וכך יוצרים תסריט לדמות. כל בלוק מייצג פקודה או מספר פקודות בתכנות.

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

== היסטוריה ==
התחלת פיתוח סקראץ' החלה בסביבות 2003, על ידי מעבדת המדיה של MIT בראשות מיטשל רזניק.

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

ב-15 במאי 2007, סקראץ' 1.0 הושק. העורך של סקראץ' 1.0 לא היה מקוון, ולא נכלל באתר אינטרנט. משתמשים יכלו לשתף פרויקטים לאתר דרך העורך הלא מקוון, ואחרים יכלו להגיב על עליהם.

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

תוספות בין הגרסאות:

* בגרסאות 1.1 ו1.2 שוחררו בלוקים חדשים.
* בגרסה 1.4, שוחרר בלוק "שאל __ והמתן", והשתדרג מסך הטעינה של הפרויקטים.
* בגרסה 2.0, סקראץ' החלו לערב פלאש בפרויקטים
* במהלך השנה לאחר פרסום 2.0, הוחלט לבחור "מנחי קהילה". מנחי הקהילה, הם סקראצ'רים שפועלים למען קהילת סקראץ', מנהלים את האתר אך הם לא מצוות סקראץ'.

==תסריטים==
תסריטים מיוצגים בסביבת העבודה על ידי בלוקים שמזכירים במידת מה תרשים זרימה. גם פסוקיות בשפה מיוצגות בצורה חזותית.

===צורות של בלוקים===
ישנן מספר צורות של בלוקים, ולכל צורה יש משמעות. אלו הצורות (הקווים התחתיים מסמלים מקום בו בוחרים אפשרות מתוך מאגר אפשרויות מתאים או כותבים באופן חופשי):

הגרסה העברית של סביבת הפיתוח scratch 1.4
* מלבן מפעיל (מלבן שבצלעו העליונה יש צורת גל) - כל הוראה בצורה זו היא התחלה של תסריט וגורמת לו לפעול. לדוגמה: "כאשר נלחץ מקש __".
* מלבן פקודה - כל הוראה רגילה. לדוגמה: "זוז __ צעדים" (בתוכנה זו, צעד הוא כמות כלשהי של פיקסלים במסך המחשב).
* לולאות (מעין צורה של האות כ) - כל סוג של לולאה, כלומר חזרה על הפעולות שבתוך הצורה. לדוגמה: "לעולמים".
* ערכים (אליפסה) - ערך מספרי או מילולי. לדוגמה: "מיקום על ציר Y".
* תנאים (משושה) - תנאי ששמים במקום המיועד לכך בתוך צורה אחרת. יכול להוציא נכון (True) או לא נכון (False). לדוגמה: "מיקרופון רועש?".
* עצירת המשך התסריט - בלוקים כגון "לעולמים", "עצור הכל", הם בלוקים ללא מקום לחיבור בלוק חדש אחריהם.

===קבוצות של בלוקים===
הבלוקים מחולקים ל-9 קבוצות. כל בלוק מותאם בצבעו לקבוצה לה הוא שייך. להלן הקבוצות וצבען:

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

== מבנה ==
במסך העריכה יש 4 חלקים.

# אזור שבו הבלוקים נמצאים ומשם יש לגרור אותם
# אזור שבו בונים את הקוד
# אזור שבו רואים את המסך
# אזור הדמויות והרקעים

ישנן 9 קטגוריות של בלוקים:
{| class="wikitable"
|+
!צבע
!שם
!שימוש
!הערות
|-
|כחול
|תנועה
|בלוקים שגורמים לדמות לזוז/להסתובב
|
|-
|סגול
|מראה
|שולט במראה של הדמות ואומר בבועות דיבור
|
|-
|ורוד-סגול
|שמע
|מאפשר לעשות בפרויקט צלילים ומוזיקה
|
|-
|כתום בהיר
|אירועים
|מאפשר לעשות דברים כאשר משהו יקרה (כאשר x)
|
|-
|כתום בהיר-כהה
|בקרה
|מאפשר לבקר את הפרויקט בעזרת פקודות כגון ״לעולמים״ ופקודות ״אם אז״
|
|-
|תכלת
|חיישנים
|מאפשר לשתמש בחיישנים וגם לבצע שאלה במהלך הפרויקט
|
|-
|ירוק
|מפעילים
|מאפשר לבצע פעולות מתמטיות, ונותן הרחבה לתנאים
|
|-
|כתום כהה
|משתנים
|מאפשר ליצור ולערוך משתנים ורשימות
|
|-
|אדום-פסטל
|הלבנים שלי
|מאפשר ליצור לבנה המורכבת ממספר לבנים וכך למנוע שימוש בהרבה לבנים
|חייבים להגדיר את הבלוק
|-
|ירוק כהה
|הרחבות
|ניתן להוסיף אפשרויות לשימוש במוזיקה, עט, חיישן מצלמה ועוד
|צריך להוסיף אותם לפני השימוש בהם, בשונה מהקטגוריות האחרות
|}

== הרחבות ==
בגרסה 3.0 נוסף אפשרות להרחבות המאפשרות להוסיף חיישן מצלמה, טקסט לדיבור ועוד.
הרחבת ״עט״ בסקראץ'
כל התוספים בצבע ירוק כהה.
{| class="wikitable"
|+
!שם התוסף
!שימוש
!הערות
!דרישות
|-
|מוזיקה
|מאפשר לנגן ב18 כלי נגינה
|
|
|-
|עט
|מאפשר לצייר על המסך במהלך הפרויקט
|
|
|-
|חיישן מצלמה
|מאפשר לשלוט במצלמה ובחיישנים שבה
|לא ניתן לשמור תמונה שצולמה
|
|-
|טקסט לדיבור
|מאפשר לדמות לדבר ב23 שפות
|שיתוף פעולה עם Amazon wec services, לא עובד על כל השפות
|WiFi
|-
|תרגום
|מאפשר לתרגם טקסט בעזרת גוגל תרגום
|שיתוף פעולה עם גוגל (חברה), לא עובד על כל השפות
|WiFi
|-
|Makey Makey
|חיבור למכשיר Makey Makey
|שיתוף פעולה עם JoyLabz
|
|-
|micro:bit
|מאפשר לחבר את הפרייקט לmicro:bit
|שיתוף פעולה עם micro:bit
|WiFi & Bluetooth
|}
scratch lab מאפשר לכל הציבור להשתמש בפקודות נסיניות של סקראץ'. כיום יש 4 קטגריות בscratch lab.
{| class="wikitable"
|+
!שם באנגלית
!שם בעברית
!שימוש
|-
|New Block Colors<ref></ref>
|צבעים חדשים לבלוק
|מאפשר לאנשי בעלי ראייה לקויה לראות טוב בעזרת נגדינות צבעים
|-
|Animated Text<ref></ref>
|טקסט מונפש
|מאפשר להוסיף טקסט שמחליף צבעים
|-
|Face Sensing<ref></ref>
|חיישן פנים
|מאפשר לגרום לדמות לעקוב אחרי מקום בפנים (למשל לעקוב אחרי האף)
|-
|Video Sprites<ref></ref>
|דמויות וידאו
|מאפשר למלא חלל מסוים בדמות עם המצלמה
|}

== התוכנה ==
סקראץ' נכתבה בעזרת Squeak (מימוש של שפת התכנות Smalltalk). עד שנת 2012 קוד המקור שלה היה זמין, אך ברישיון (Scratch Source Code License) שהגביל שינויים. החל ממרץ 2012 התוכנה זמינה גם לפי תנאי רישיון ה-GPL (גרסה 2).

== צנזורה בסין ==
באגוסט 2020 ממשלת סין חסמה את הגישה לאתר סקראץ', באותה תקופה מעל שלוש מיליון אנשים בסין השתמשו בסקראץ'<ref></ref>. 

== סקראץ' ג'וניור ==

סקראץ' ג'וניור היא תוכנה דומה לסקראץ' שמאפשרת גם למי שלא יודע לקרוא לתכנת.

==קישורים חיצוניים==
* 

* [https://scratch.mit.edu/projects/1015621641/ <nowiki>The Journey [History Recap] | Scratch Week on Scratch</nowiki>]

== הערות שוליים ==

קטגוריה:שפות תכנות
קטגוריה:תוכנות שהושקו ב-2003