שלום,
נראה שכבר הכרתם את אאוריקה. בטח כבר גיליתם כאן דברים מדהימים, אולי כבר שאלתם שאלות וקיבלתם תשובות טובות.
נשמח לראות משהו מכם בספר האורחים שלנו: איזו מילה טובה, חוות דעת, עצה חכמה לשיפור או כל מה שיש לכם לספר לנו על אאוריקה, כפי שאתם חווים אותה.
»
«
למה כדאי ללמוד תכנות?
תכנות (Programming) הוא כתיבת קוד לתוכנה, או למה שאנו מכנים "תוכנות". בתכנות בונה המתכנת את התוכנה. לתכנות משתמש המתכנת בשפות תוכנה שונות.
לימוד תכנות הוא סוג מעולה של ספורט מנטלי ולוגי. הוא יכול לסייע ללומדים לשפר את ההיגיון שלהם ולהעצים את הכישורים שלהם ובכך הוא נותן כלים מעולים לחיים - גם למי שלא יהפכו למתכנתים.
לימוד התכנות משפר את החשיבה, היצירתיות, יכולת התכנון, הגילוי והסקרנות של המתכנת ולומד התכנות. יש יתרון אדיר לכל ילד וילדה שלומדים לתכנת וליצור באמצעות הטכנולוגיה והמחשבים. אבל הראשון שבהם אינו קשור אפילו במחשבים, אלא בכלי החשיבה, התכנון, הלוגיקה והסקת המסקנות (ואלה רק חלק), שהתכנות מלמד.
רבים ממייסדי החברות המצליחות והטובות בעולם למדו בילדותם תכנות, מה שפילס להם דרך לאחד התחומים המדהימים ביותר ביכולת ההשפעה שלו על העולם. מתכנת בודד יכול כיום לשנות את העולם. תשאלו את מארק צוקרברג, מייסד פייסבוק...
כיום, גם בתור ילדים, תוכלו להצטרף ולהתנסות בכתיבת קוד. זאת, אגב, גם אם אינכם מתכוונים ללמוד תכנות לעומק. תוכלו לעשות זאת באמצעות הצטרפות ל"שעת הקוד" - סוג של אירוע עולמי המאפשר לילדים להתנסות בשעה של תכנות וכתיבת קוד. כך תוכלו לחוות משהו מעולם ההייטק והחדשנות הטכנולוגית, אבל בלי להסתבך ובדרך של הנאה וחוויה. מארגני שעת הקוד מספרים שמעל 100 מיליון תלמידים מרחבי העולם השתתפו באירוע, מאז החלו אירועי שעת הקוד בעולם.
הנה ילד בן 12 שלמד לתכנת מספר על הדרך בה למד והפך למתכנת מקצועי (מתורגם):
מה שבתי הספר, וזה חמור - לא מלמדים ילדים (מתורגם):
https://youtu.be/nKIu9yen5nc
התכנות משנה את העולם (עברית):
https://youtu.be/6_RFZr9mWvc
הסברים לטוב שבתכנות (בעברית):
https://youtu.be/hyCqL_lLDOQ
תכנות (Programming) הוא כתיבת קוד לתוכנה, או למה שאנו מכנים "תוכנות". בתכנות בונה המתכנת את התוכנה. לתכנות משתמש המתכנת בשפות תוכנה שונות.
לימוד תכנות הוא סוג מעולה של ספורט מנטלי ולוגי. הוא יכול לסייע ללומדים לשפר את ההיגיון שלהם ולהעצים את הכישורים שלהם ובכך הוא נותן כלים מעולים לחיים - גם למי שלא יהפכו למתכנתים.
לימוד התכנות משפר את החשיבה, היצירתיות, יכולת התכנון, הגילוי והסקרנות של המתכנת ולומד התכנות. יש יתרון אדיר לכל ילד וילדה שלומדים לתכנת וליצור באמצעות הטכנולוגיה והמחשבים. אבל הראשון שבהם אינו קשור אפילו במחשבים, אלא בכלי החשיבה, התכנון, הלוגיקה והסקת המסקנות (ואלה רק חלק), שהתכנות מלמד.
רבים ממייסדי החברות המצליחות והטובות בעולם למדו בילדותם תכנות, מה שפילס להם דרך לאחד התחומים המדהימים ביותר ביכולת ההשפעה שלו על העולם. מתכנת בודד יכול כיום לשנות את העולם. תשאלו את מארק צוקרברג, מייסד פייסבוק...
כיום, גם בתור ילדים, תוכלו להצטרף ולהתנסות בכתיבת קוד. זאת, אגב, גם אם אינכם מתכוונים ללמוד תכנות לעומק. תוכלו לעשות זאת באמצעות הצטרפות ל"שעת הקוד" - סוג של אירוע עולמי המאפשר לילדים להתנסות בשעה של תכנות וכתיבת קוד. כך תוכלו לחוות משהו מעולם ההייטק והחדשנות הטכנולוגית, אבל בלי להסתבך ובדרך של הנאה וחוויה. מארגני שעת הקוד מספרים שמעל 100 מיליון תלמידים מרחבי העולם השתתפו באירוע, מאז החלו אירועי שעת הקוד בעולם.
הנה ילד בן 12 שלמד לתכנת מספר על הדרך בה למד והפך למתכנת מקצועי (מתורגם):
מה שבתי הספר, וזה חמור - לא מלמדים ילדים (מתורגם):
https://youtu.be/nKIu9yen5nc
התכנות משנה את העולם (עברית):
https://youtu.be/6_RFZr9mWvc
הסברים לטוב שבתכנות (בעברית):
https://youtu.be/hyCqL_lLDOQ
מה הרעיון ב"Hello World"?
"hello world" היא מחרוזת אותיות או ביטוי שתכנית מחשב מדפיסה אותה והיא סוג של קטע אצל מורים לתכנות, במיוחד מי שמלמדים להוציא פלט בשפות המתבססות על שורת פקודה.
ב-"Hello World" משתמשים בהדגמות ראשוניות ללימוד שפות תכנות שונות. עבור לומדים רבים התכנית הזו היא בעצם ניסיון התכנות הראשון שלהם בשפת התכנות שהם לומדים.
כמובן שניתן לכתוב כתכנית ראשונה בלימוד תכנות כל ביטוי אחר, אבל כתיבת הביטוי "hello world" הפכה כבר מזמן למסורת בלימודי תכנות.
מסורת התכנית הראשונה עם הודעת בדיקה של "Hello World" נולדה כתןצאה מחיקוי של תכנית דוגמה, שהופיעה לראשונה בספרם של בריאן קרניגהאן ודניס ריצ'י "The C Programming Language".
אגב, העובדה שכתיבת תכנית זו היא פשוטה מאוד הפכה אותה לשימושית גם בבדיקה שהמהדר, סביבת הריצה או הפיתוח של השפה הותקנו כראוי.
הנה תוכנית "hello world" בשפת פייתון (עברית):
https://youtu.be/rmmRRg_IcgA
ובשפת סי שארפ C#(עברית):
https://youtu.be/_Z27SlmU6qg
"hello world" היא מחרוזת אותיות או ביטוי שתכנית מחשב מדפיסה אותה והיא סוג של קטע אצל מורים לתכנות, במיוחד מי שמלמדים להוציא פלט בשפות המתבססות על שורת פקודה.
ב-"Hello World" משתמשים בהדגמות ראשוניות ללימוד שפות תכנות שונות. עבור לומדים רבים התכנית הזו היא בעצם ניסיון התכנות הראשון שלהם בשפת התכנות שהם לומדים.
כמובן שניתן לכתוב כתכנית ראשונה בלימוד תכנות כל ביטוי אחר, אבל כתיבת הביטוי "hello world" הפכה כבר מזמן למסורת בלימודי תכנות.
מסורת התכנית הראשונה עם הודעת בדיקה של "Hello World" נולדה כתןצאה מחיקוי של תכנית דוגמה, שהופיעה לראשונה בספרם של בריאן קרניגהאן ודניס ריצ'י "The C Programming Language".
אגב, העובדה שכתיבת תכנית זו היא פשוטה מאוד הפכה אותה לשימושית גם בבדיקה שהמהדר, סביבת הריצה או הפיתוח של השפה הותקנו כראוי.
הנה תוכנית "hello world" בשפת פייתון (עברית):
https://youtu.be/rmmRRg_IcgA
ובשפת סי שארפ C#(עברית):
https://youtu.be/_Z27SlmU6qg
מה זה תיכנות?
אם שאלתם את עצמכם פעם מה זה תִּכְנוּת (Programming או Coding) הרי שאתם לא לבד.
תכנות הוא סדרת הוראות שמגדירות התנהגות. על תוכנית מחשב להיות טובה, אלגנטית, יעילה ונוחה לתחזוקה.
אבל התייחסות כזו היא בעיקר לכתיבת הקוד ונוטה להיות כללית מדי. אנו רואים בתכנות ביטוי של לוגיקה. בכלל, לצורך תכנות, הליך שכולל גם תכנון והבנה מעמיקה ומגוונת בתחום הפיתוח, נדרשת מומחיות בלא מעט נושאים, כולל בתחום היישום, באלגוריתמיקה וכמובן וככל הנראה בראש ובראשונה - בעולם של הלוגיקה.
התחום הזה דומה למתמטיקה ולכן לא מעט אנשים אומרים שתכנות הוא מתמטיקה יישומית. כי אם עולם הלוגיקה כולל את המתמטיקה והתכנות, המתמטיקה היא הצד התיאורטי שלו, בעוד שהתכנות הוא הצד המעשי, הפרקטי של הלוגיקה.
חברות גם מניחות שמתמטיקאים טובים יהיו מתכנתים ומהנדסי תוכנה מצוינים וגם אם מתמטיקה ברמה גבוהה לא הכרחית לתכנות, זה אכן בדרך כלל כך.
כבר שנים שמתנהל ויכוח על מהות התכנות - האם כתיבה של תכניות מחשב טובות היא יותר הנדסה, יותר אומנות, או אמנות של ממש. כנראה שפיתוח כולל את שלושת העולמות הללו ושמתכנת מצוין הוא גם בעל מקצוע טוב, גם בעל יכולת הנדסית משמעותית וגם אמן של קוד.
ואכן, בעולם של המתכנתים יש אבחנה מסוימת בין programming, בעברית תִּכְנוּת, שזו דרך החשיבה לפתרון בעיות ברמה היותר מופשטת וייתכן אף בלי ידע בשפת תוכנה ספציפית, לבין coding שזה קִידּוּד והוא יותר החלק הטכני יותר של כתיבת הקוד ומחייב ללמוד את התחביר, ה-Syntax של השפה שבה ייכתב הקוד שלך.
רבים בתחום אומרים שאם למדת "פרוגרמינג", כלומר תכנות, יהיה לך קל מאוד ללמוד "קודינג", שזה קידוד. זו הסיבה שלמתכנתים אמיתיים כל כך קל ללמוד שפות תכנות חדשות וזו כנראה גם הסיבה שמנהיגי העולם החדשים הם מי שהיו מתכנתים מצוינים. התכנות ברמה הגבוהה שלו מסייע לבנות יכולת מנטלית גבוהה שדרושה להנהיג ולפרוץ למקומות חדשים.
להיכרות עם עולם התיכנות היכנסו לתגית "תכנות".
הנה העולם של המתכנתים (מתורגם):
https://youtu.be/tSysNQFUf2g
בעולם הפיתוח יש לא מעט שמבחינים בין מתכנת programmer למקודד coder:
https://youtu.be/CIRGjwYgdT4
סרט יותר ארוך על עולם התיכנות:
https://youtu.be/dU1xS07N-FA?long=yes
וראיון עם איש מחשבים על תכנות בעולם ההייטק (עברית):
https://youtu.be/MWuPuu2c1Y8?long=yes
אם שאלתם את עצמכם פעם מה זה תִּכְנוּת (Programming או Coding) הרי שאתם לא לבד.
תכנות הוא סדרת הוראות שמגדירות התנהגות. על תוכנית מחשב להיות טובה, אלגנטית, יעילה ונוחה לתחזוקה.
אבל התייחסות כזו היא בעיקר לכתיבת הקוד ונוטה להיות כללית מדי. אנו רואים בתכנות ביטוי של לוגיקה. בכלל, לצורך תכנות, הליך שכולל גם תכנון והבנה מעמיקה ומגוונת בתחום הפיתוח, נדרשת מומחיות בלא מעט נושאים, כולל בתחום היישום, באלגוריתמיקה וכמובן וככל הנראה בראש ובראשונה - בעולם של הלוגיקה.
התחום הזה דומה למתמטיקה ולכן לא מעט אנשים אומרים שתכנות הוא מתמטיקה יישומית. כי אם עולם הלוגיקה כולל את המתמטיקה והתכנות, המתמטיקה היא הצד התיאורטי שלו, בעוד שהתכנות הוא הצד המעשי, הפרקטי של הלוגיקה.
חברות גם מניחות שמתמטיקאים טובים יהיו מתכנתים ומהנדסי תוכנה מצוינים וגם אם מתמטיקה ברמה גבוהה לא הכרחית לתכנות, זה אכן בדרך כלל כך.
כבר שנים שמתנהל ויכוח על מהות התכנות - האם כתיבה של תכניות מחשב טובות היא יותר הנדסה, יותר אומנות, או אמנות של ממש. כנראה שפיתוח כולל את שלושת העולמות הללו ושמתכנת מצוין הוא גם בעל מקצוע טוב, גם בעל יכולת הנדסית משמעותית וגם אמן של קוד.
ואכן, בעולם של המתכנתים יש אבחנה מסוימת בין programming, בעברית תִּכְנוּת, שזו דרך החשיבה לפתרון בעיות ברמה היותר מופשטת וייתכן אף בלי ידע בשפת תוכנה ספציפית, לבין coding שזה קִידּוּד והוא יותר החלק הטכני יותר של כתיבת הקוד ומחייב ללמוד את התחביר, ה-Syntax של השפה שבה ייכתב הקוד שלך.
רבים בתחום אומרים שאם למדת "פרוגרמינג", כלומר תכנות, יהיה לך קל מאוד ללמוד "קודינג", שזה קידוד. זו הסיבה שלמתכנתים אמיתיים כל כך קל ללמוד שפות תכנות חדשות וזו כנראה גם הסיבה שמנהיגי העולם החדשים הם מי שהיו מתכנתים מצוינים. התכנות ברמה הגבוהה שלו מסייע לבנות יכולת מנטלית גבוהה שדרושה להנהיג ולפרוץ למקומות חדשים.
להיכרות עם עולם התיכנות היכנסו לתגית "תכנות".
הנה העולם של המתכנתים (מתורגם):
https://youtu.be/tSysNQFUf2g
בעולם הפיתוח יש לא מעט שמבחינים בין מתכנת programmer למקודד coder:
https://youtu.be/CIRGjwYgdT4
סרט יותר ארוך על עולם התיכנות:
https://youtu.be/dU1xS07N-FA?long=yes
וראיון עם איש מחשבים על תכנות בעולם ההייטק (עברית):
https://youtu.be/MWuPuu2c1Y8?long=yes
מה זה קוד פתוח?
מה משותף לאנדרואיד, גוגל כרום, ויקיפדיה וההייפרלופ שעומדת להסיע אנשים במהירויות מטורפות ממקום למקום? - כל אלה ומיליוני תוכנות וטכנולוגיות אחרות משוחררות לשוק כקוד פתוח (Open Source).
תוכנה בקוד פתוח כשמה כן היא. זוהי תוכנה שקוד המקור שלה פתוח ונגיש להפצה לקהילת המפתחים בכל מקום. ניתן ומותר לכל מתכנת ומפתח לערוך וליצור גרסאות חדשות של כל תוכנה שמופצת בקוד פתוח. הכי מדהים וכיף הוא שבקוד הפתוח הכל, אבל ממש הכל, הוא בחינם וללא תשלום. לא התוכנה ולא רישיון השימוש בה עולים כסף.
העקרונות של הקוד הפתוח הם פתיחות (כשהכוונה היא שאין היררכיה וכל אחד יכול להשתתף בפיתוח), חינמיות (כשהידע שנותנים ומקבלים הוא ידע ציבורי ולכן ניתן ללא תשלום) ואיכות התוצר (כי מפתחים רבים מבטיחים תוצאה באיכות גבוהה).
תוכנת קוד-פתוח היא הדרך היחידה שבה ניתן היה ליצור תוכנות ברמה גבוהה, כמו לינוקס, מערכת הפעלה שנכתבה בתחילה על ידי מפתח יחיד בשם לינוס טורוולדס, שפתח אותה בשלב מסוים לאלפי מהנדסים, מתכנתים ומפתחים מכל קצווי העולם. כולם עבדו כדי לפתח אותה במשותף, בשעות הפנאי שלהם ודרך האינטרנט, מבלי שנפגשו מעולם.
מומחים שונים הופתעו מהצלחת הקוד הפתוח. אחד מהם בשם ראימונד כתב פעם שהאמין תמיד שהתוכנות החשובות, כמו מערכות הפעלה למשל, יש לבנות כקתדרלות, בזהירות ועל ידי "קוסמים בודדים או קבוצות קוסמים" העובדים בבדידות מזהרת, מבלי לפרסם דבר לפני שהגרסה הסופית מוכנה. אבל אז הופתע לגלות שהקוד הפתוח נהג ההיפך מבניית קתדרלה והצליח. כמו בזאר גדול ורועש, עם עמדות וגישות שונות של מפתחים רבים ומגוונים, הצמיח הקוד הפתוח מערכת הפעלה עקבית ויציבה כמו לינוקס, תוכנה שלמראית עין יכולה הייתה לצמוח רק על ידי נסים.
גם אם היא הראשונה והמוכרת מבין תוכנות הקוד הפתוח, מערכת ההפעלה לינוקס אינה היחידה שפותחה כך. דפדפן האינטרנט מוזילה פיירפוקס, חבילת האופיס "אופן אופיס", אנדרואיד וכרום OS, מערכות ההפעלה שנולדו מלינוקס ועוד אלפי תוכנות קוד פתוח אחרות שהבשילו, כולן נכתבו בקוד פתוח. עשרות אלפי פרויקטים אחרים של קוד פתוח נמצאים גם הם בשלבי פיתוח שונים.
כל אלה הפכו את תנועת הקוד הפתוח לאחד הכוחות החזקים בעולם המחשבים של ימינו. התנועה נתנה השראה לפרויקטים נוספים של שיתוף פעולה גלובלי, כמו ויקיפדיה שנכתבת על ידי כותבים מכל רחבי העולם, אתרי תוכן גולשים רבים ועוד.
הנה הסבר של מושג הקוד הפתוח (עברית):
https://youtu.be/akAcajhnKzM
שיתוף הפעולה הגלובלי שמדגים את הקוד הפתוח:
https://youtu.be/yVpbFMhOAwE
פרסומת של חברה שפותחת את הקוד שלה לגמרי לעומת הקוד הסגור, המסחרי, שמזמין משטרה למתחרים:
https://youtu.be/Pj_tLugpz8g
אם הכל בקוד הפתוח נהדר אז למה יש מתנגדים? (עברית)
https://youtu.be/zmgIvBcHVH0
הנה רובוט שפותח בקוד פתוח והודפס במדפסת תלת-מימד:
https://youtu.be/H4Z09edx52E
סרטון מחוייך שמציג כיצד נער מתוודה בפני הוריו שהוא משתמש בקוד פתוח:
http://youtu.be/Oo-cIGVaOYE
ורעיונות הקוד הפתוח שנדדו לכיוון הניהול החברתי (מתורגם):
https://youtu.be/EGd5DngPQnM
מה משותף לאנדרואיד, גוגל כרום, ויקיפדיה וההייפרלופ שעומדת להסיע אנשים במהירויות מטורפות ממקום למקום? - כל אלה ומיליוני תוכנות וטכנולוגיות אחרות משוחררות לשוק כקוד פתוח (Open Source).
תוכנה בקוד פתוח כשמה כן היא. זוהי תוכנה שקוד המקור שלה פתוח ונגיש להפצה לקהילת המפתחים בכל מקום. ניתן ומותר לכל מתכנת ומפתח לערוך וליצור גרסאות חדשות של כל תוכנה שמופצת בקוד פתוח. הכי מדהים וכיף הוא שבקוד הפתוח הכל, אבל ממש הכל, הוא בחינם וללא תשלום. לא התוכנה ולא רישיון השימוש בה עולים כסף.
העקרונות של הקוד הפתוח הם פתיחות (כשהכוונה היא שאין היררכיה וכל אחד יכול להשתתף בפיתוח), חינמיות (כשהידע שנותנים ומקבלים הוא ידע ציבורי ולכן ניתן ללא תשלום) ואיכות התוצר (כי מפתחים רבים מבטיחים תוצאה באיכות גבוהה).
תוכנת קוד-פתוח היא הדרך היחידה שבה ניתן היה ליצור תוכנות ברמה גבוהה, כמו לינוקס, מערכת הפעלה שנכתבה בתחילה על ידי מפתח יחיד בשם לינוס טורוולדס, שפתח אותה בשלב מסוים לאלפי מהנדסים, מתכנתים ומפתחים מכל קצווי העולם. כולם עבדו כדי לפתח אותה במשותף, בשעות הפנאי שלהם ודרך האינטרנט, מבלי שנפגשו מעולם.
מומחים שונים הופתעו מהצלחת הקוד הפתוח. אחד מהם בשם ראימונד כתב פעם שהאמין תמיד שהתוכנות החשובות, כמו מערכות הפעלה למשל, יש לבנות כקתדרלות, בזהירות ועל ידי "קוסמים בודדים או קבוצות קוסמים" העובדים בבדידות מזהרת, מבלי לפרסם דבר לפני שהגרסה הסופית מוכנה. אבל אז הופתע לגלות שהקוד הפתוח נהג ההיפך מבניית קתדרלה והצליח. כמו בזאר גדול ורועש, עם עמדות וגישות שונות של מפתחים רבים ומגוונים, הצמיח הקוד הפתוח מערכת הפעלה עקבית ויציבה כמו לינוקס, תוכנה שלמראית עין יכולה הייתה לצמוח רק על ידי נסים.
גם אם היא הראשונה והמוכרת מבין תוכנות הקוד הפתוח, מערכת ההפעלה לינוקס אינה היחידה שפותחה כך. דפדפן האינטרנט מוזילה פיירפוקס, חבילת האופיס "אופן אופיס", אנדרואיד וכרום OS, מערכות ההפעלה שנולדו מלינוקס ועוד אלפי תוכנות קוד פתוח אחרות שהבשילו, כולן נכתבו בקוד פתוח. עשרות אלפי פרויקטים אחרים של קוד פתוח נמצאים גם הם בשלבי פיתוח שונים.
כל אלה הפכו את תנועת הקוד הפתוח לאחד הכוחות החזקים בעולם המחשבים של ימינו. התנועה נתנה השראה לפרויקטים נוספים של שיתוף פעולה גלובלי, כמו ויקיפדיה שנכתבת על ידי כותבים מכל רחבי העולם, אתרי תוכן גולשים רבים ועוד.
הנה הסבר של מושג הקוד הפתוח (עברית):
https://youtu.be/akAcajhnKzM
שיתוף הפעולה הגלובלי שמדגים את הקוד הפתוח:
https://youtu.be/yVpbFMhOAwE
פרסומת של חברה שפותחת את הקוד שלה לגמרי לעומת הקוד הסגור, המסחרי, שמזמין משטרה למתחרים:
https://youtu.be/Pj_tLugpz8g
אם הכל בקוד הפתוח נהדר אז למה יש מתנגדים? (עברית)
https://youtu.be/zmgIvBcHVH0
הנה רובוט שפותח בקוד פתוח והודפס במדפסת תלת-מימד:
https://youtu.be/H4Z09edx52E
סרטון מחוייך שמציג כיצד נער מתוודה בפני הוריו שהוא משתמש בקוד פתוח:
http://youtu.be/Oo-cIGVaOYE
ורעיונות הקוד הפתוח שנדדו לכיוון הניהול החברתי (מתורגם):
https://youtu.be/EGd5DngPQnM
תיכנות
איך עובד המתכנת?
מתכנתים (Coders) או מפתחים (Developers) הם אנשים שיודעים לכתוב קוד תוכנה. קוד התוכנה הוא תכנית מחשב שמפעילה את המחשב ומבצעת משימות.
המתכנתים כותבים את הקוד באמצעות שפות תכנות המשמשות את החברה, שפות שהם יודעים או לומדים תוך כדי העבודה.
כל תוכנה יודעת לעשות דברים. קוד התכנה שכותבים המתכנתים מכיל את ההוראות הדרושות כדי שהמחשב יבצע את הדברים הללו.
בעולם ההייטק בדרך כלל עובדים מתכנתים שונים על תוכנה אחת. כל אחד מהם מתכנת חלק מהקוד השלם ולבסוף מחברים את כל הקוד ומעבירים לבודקי התוכנה, כדי לוודא שכל הטעויות, שתמיד יש בקוד והם נקראים "באגים", יתוקנו.
הנה מתכנתים בחברות סטרטאפ שעובדים ביחד (עברית):
http://youtu.be/iAyfMSmxKoQ
כאן ההבדל בין תיכנות כמו שמציגים אותו בסרטים ובסדרות טלוויזיה ובין המציאות:
https://youtu.be/HluANRwPyNo
לינוס טורוולדס, מי שפיתח את מערכת ההפעלה לינוקס, מספר על התחלת לימוד התיכנות שלו:
https://youtu.be/S5S9LIT-hdc
וכמה חשוב הוא קוד תוכנה:
http://youtu.be/QdVFvsCWXrA
מתכנתים (Coders) או מפתחים (Developers) הם אנשים שיודעים לכתוב קוד תוכנה. קוד התוכנה הוא תכנית מחשב שמפעילה את המחשב ומבצעת משימות.
המתכנתים כותבים את הקוד באמצעות שפות תכנות המשמשות את החברה, שפות שהם יודעים או לומדים תוך כדי העבודה.
כל תוכנה יודעת לעשות דברים. קוד התכנה שכותבים המתכנתים מכיל את ההוראות הדרושות כדי שהמחשב יבצע את הדברים הללו.
בעולם ההייטק בדרך כלל עובדים מתכנתים שונים על תוכנה אחת. כל אחד מהם מתכנת חלק מהקוד השלם ולבסוף מחברים את כל הקוד ומעבירים לבודקי התוכנה, כדי לוודא שכל הטעויות, שתמיד יש בקוד והם נקראים "באגים", יתוקנו.
הנה מתכנתים בחברות סטרטאפ שעובדים ביחד (עברית):
http://youtu.be/iAyfMSmxKoQ
כאן ההבדל בין תיכנות כמו שמציגים אותו בסרטים ובסדרות טלוויזיה ובין המציאות:
https://youtu.be/HluANRwPyNo
לינוס טורוולדס, מי שפיתח את מערכת ההפעלה לינוקס, מספר על התחלת לימוד התיכנות שלו:
https://youtu.be/S5S9LIT-hdc
וכמה חשוב הוא קוד תוכנה:
http://youtu.be/QdVFvsCWXrA
מהי ההיסטוריה של הקוד הפתוח?
מאז הקים ריצ'ארד סטולמן את תנועת התוכנה החופשית, אי-שם באמצע שנות ה-80 של המאה ה-20, עשה הקוד הפתוח (Open source) דרך ארוכה. סטולמן האמין שחברות סגורות ומרוויחות כסף שייכות לעולם הישן. הוא נתקל בזה כשחברת המדפסות זירוקס לא הסכימה לאפשר לו להוסיף לדרייבר של המדפסת שלו שורת קוד ששיפרה אותה משמעותית. האיש הכריז וגיבש עם שותפים לדרך כמה עקרונות שיהיו בעתיד הליבה של תנועת הקוד הפתוח:
#פתיחות במקום היררכיה
כל מי שרוצה להשתתף בפיתוח מוזמן ובכיף.
#חינמיות
במקום חברות המבוססות על רווח התוכנות יהיו חינמיות וחופשיות. אף יותר מהחינם לסטולמן חשוב הקוד הפתוח - הוא שנותן את החופש לכל אדם לשפר את התוכנה ולהכניס בה שינויים ותוספות - זה עתיד להפוך למקור העוצמה והאיכות של תוכנות הקוד הפתוח.
#איכות תוצר גבוהה
שמושגת תודות לשיתוף מפתחים רבים.
כמה שנים אחר כך, בתחילת שנות ה-90, מפתח ומייצר לינוס טורוולדס את ליבת מערכת ההפעלה הראשונה בקוד פתוח, לינוקס. הוא מוכיח שניתן לייצר בשיטת השיתוף אפילו תוכנות מורכבות כמו מערכות הפעלה.
בשנת 1997 מתרגם אריק ריימונד את פעילותם של השניים למונחים כלכליים. הוא מוציא את הספר "הקתדרלה והבזאר", בו הוא מספר על תופעת הקוד הפתוח לציבור. זה הופך אותו כמעט מיד לאנתרופולוג הבית של תרבות ההאקרים ולמי שייחשב לאבי הקוד הפתוח.
רימונד מספר בספרו שתמיד האמין שרק פיתוח בסגנון הקתדרלה, תמיד שהתוכנות החשובות, כמו מערכות הפעלה למשל, יש לבנות כקתדרלות. הוא מסביר שהכוונה היא לפיתוח זהיר, בידי מעין "קוסמים בודדים או קבוצות קוסמים" שעובדים בבדידות ומבלי לפרסם דבר לפני שמערכת ההפעלה או התוכנה מוכנה וסופית. הוא משתף את הקוראים בהפתעתו על כך ש"הקוד הפתוח" הצליח, בשיטה הפוכה מבניית ה"קתדרלה", לפתח מערכת הפעלה עקבית ויציבה דוגמת לינוקס, על אף שהתהליך התנהל לא כקתדרלה, אלא כבזאר רועש וענקי, בו שותפים מפתחים רבים ומגוונים, בעלי עמדות וגישות רבות ואחרות זו מזו. ההתפעלות אותה שיתף עם הקוראים היא שהצליחו לפתח כך תוכנה שהייתה להיווצר רק על ידי ניסים.
בספר ריימונד מעקר את החלק האנרכיסטי והמהפכני שברעיונות התנועה החופשית, מגמיש את רישיון ההפצה של הקוד הפתוח וגם עורך מילון לאנשים פשוטים, של המושגים מעולם ההאקרים שראוי לדעת. הוא הופך רעיונות נהדרים לתנועה של ממש.
בעקבות לינוקס מגיעים גם כלים פתוחים נוספים וחזקים, דוגמת מוזילה פיירפוקס, דפדפן האינטרנט הנודע בקוד פתוח, תוכנת "Open Office" שהתחרתה באופיס של מיקרוסופט, מערכת ההפעלה לטלפונים חכמים אנדרואיד ודפדפן הכרום OS, שניצח את האקספלורר התאגידית של מיקרוסופט והפך לשולט בגלישה באינטרנט.
עם השנים הופכת תנועת הקוד הפתוח לאחד הכוחות החזקים בעולם המחשבים בכלל והתוכנה בפרט של תקופתנו. בהמשך יבואו מכונית שתוכננה בקוד פתוח, מכשירים מטורפים בתחכומם שיצרו יחד אנשים מכל קצות העולם, איש איש מביתו ומחשבו, בהתנדבות מלאה וללא ציפיה לתמורה, כאילו הם עובדים בחברה המשלמת להם משכורת על עבודתם.
איש כבר לא מופתע כשב-2009 מאמצת אפילו סוכנות החלל האמריקאית נאס"א מודל של חדשנות פתוחה ומשיגה הישגים מדהימים. הדוגמה המדהימה היא של פנסיונר אמריקאי שמצליח לפתח כלי שמנבא סערות שמש בחלל ומנצח עשרות ומאות מדענים שעושים זאת כבר שנים.
תנועת הקוד הפתוח גם העניקה לא מעט השראה לפרויקטים פתוחים של שיתוף פעולה גלובלי, בתחומים אחרים. ויקיפדיה שמאמצת את המודל השיתופי הזה נכתבת בידי עשרות אלפי כותבים ועורכים מכל העולם ומנצחת אנציקלופדיות שנכתבות על ידי מדענים, כולל "בריטניקה" המופלאה שפעילה במשך 200 שנה.
אז גם יכריזו ההולנדים על מכונית שכל תוכניותיה ופיתוחה פתוחים לציבור. ערכת הפיתוח בקוד פתוח ארדואינו (Arduino) תאפשר למשתמשים לפתח וללמוד על השילוב שבין חומרה ותוכנה, באופן ידידותי וגמיש ומעט אחר-כך גם יפרוץ המטבע הדיגיטלי ביטקוין, עם הבלוקצ'יין שמתחתיו, אותה מערכת מתוחכמת המנהלת אותו באופן מבוזר ולא נשלט על ידי ממשלות. כל אלו ומאות מיזמים אחרים ירעידו את העולם, יראו מה מאפשרים אידיאולוגיה של אנשים חופשיים ושיתוף פעולה עולמי.
הנה תולדות הקוד הפתוח (עברית):
https://youtu.be/akAcajhnKzM
יש גם אי-הבנות בנושא הקוד הפתוח (עברית):
https://youtu.be/zmgIvBcHVH0
המכונית הראשונה בקוד פתוח מוצגת ב-2007:
https://youtu.be/JD7LJ6wGkJg
האנציקלופדיה החופשית ויקיפדיה שהקים ג'ימי וויילס וכותבים עשרות אלפי אנשים בעולם (עברית):
http://youtu.be/ZDVC_pF9HaA
ופיתוח הביטקוין החופשי והשימושים שעושים בו (עברית):
https://youtu.be/g-k8lZ_eabY
מאז הקים ריצ'ארד סטולמן את תנועת התוכנה החופשית, אי-שם באמצע שנות ה-80 של המאה ה-20, עשה הקוד הפתוח (Open source) דרך ארוכה. סטולמן האמין שחברות סגורות ומרוויחות כסף שייכות לעולם הישן. הוא נתקל בזה כשחברת המדפסות זירוקס לא הסכימה לאפשר לו להוסיף לדרייבר של המדפסת שלו שורת קוד ששיפרה אותה משמעותית. האיש הכריז וגיבש עם שותפים לדרך כמה עקרונות שיהיו בעתיד הליבה של תנועת הקוד הפתוח:
#פתיחות במקום היררכיה
כל מי שרוצה להשתתף בפיתוח מוזמן ובכיף.
#חינמיות
במקום חברות המבוססות על רווח התוכנות יהיו חינמיות וחופשיות. אף יותר מהחינם לסטולמן חשוב הקוד הפתוח - הוא שנותן את החופש לכל אדם לשפר את התוכנה ולהכניס בה שינויים ותוספות - זה עתיד להפוך למקור העוצמה והאיכות של תוכנות הקוד הפתוח.
#איכות תוצר גבוהה
שמושגת תודות לשיתוף מפתחים רבים.
כמה שנים אחר כך, בתחילת שנות ה-90, מפתח ומייצר לינוס טורוולדס את ליבת מערכת ההפעלה הראשונה בקוד פתוח, לינוקס. הוא מוכיח שניתן לייצר בשיטת השיתוף אפילו תוכנות מורכבות כמו מערכות הפעלה.
בשנת 1997 מתרגם אריק ריימונד את פעילותם של השניים למונחים כלכליים. הוא מוציא את הספר "הקתדרלה והבזאר", בו הוא מספר על תופעת הקוד הפתוח לציבור. זה הופך אותו כמעט מיד לאנתרופולוג הבית של תרבות ההאקרים ולמי שייחשב לאבי הקוד הפתוח.
רימונד מספר בספרו שתמיד האמין שרק פיתוח בסגנון הקתדרלה, תמיד שהתוכנות החשובות, כמו מערכות הפעלה למשל, יש לבנות כקתדרלות. הוא מסביר שהכוונה היא לפיתוח זהיר, בידי מעין "קוסמים בודדים או קבוצות קוסמים" שעובדים בבדידות ומבלי לפרסם דבר לפני שמערכת ההפעלה או התוכנה מוכנה וסופית. הוא משתף את הקוראים בהפתעתו על כך ש"הקוד הפתוח" הצליח, בשיטה הפוכה מבניית ה"קתדרלה", לפתח מערכת הפעלה עקבית ויציבה דוגמת לינוקס, על אף שהתהליך התנהל לא כקתדרלה, אלא כבזאר רועש וענקי, בו שותפים מפתחים רבים ומגוונים, בעלי עמדות וגישות רבות ואחרות זו מזו. ההתפעלות אותה שיתף עם הקוראים היא שהצליחו לפתח כך תוכנה שהייתה להיווצר רק על ידי ניסים.
בספר ריימונד מעקר את החלק האנרכיסטי והמהפכני שברעיונות התנועה החופשית, מגמיש את רישיון ההפצה של הקוד הפתוח וגם עורך מילון לאנשים פשוטים, של המושגים מעולם ההאקרים שראוי לדעת. הוא הופך רעיונות נהדרים לתנועה של ממש.
בעקבות לינוקס מגיעים גם כלים פתוחים נוספים וחזקים, דוגמת מוזילה פיירפוקס, דפדפן האינטרנט הנודע בקוד פתוח, תוכנת "Open Office" שהתחרתה באופיס של מיקרוסופט, מערכת ההפעלה לטלפונים חכמים אנדרואיד ודפדפן הכרום OS, שניצח את האקספלורר התאגידית של מיקרוסופט והפך לשולט בגלישה באינטרנט.
עם השנים הופכת תנועת הקוד הפתוח לאחד הכוחות החזקים בעולם המחשבים בכלל והתוכנה בפרט של תקופתנו. בהמשך יבואו מכונית שתוכננה בקוד פתוח, מכשירים מטורפים בתחכומם שיצרו יחד אנשים מכל קצות העולם, איש איש מביתו ומחשבו, בהתנדבות מלאה וללא ציפיה לתמורה, כאילו הם עובדים בחברה המשלמת להם משכורת על עבודתם.
איש כבר לא מופתע כשב-2009 מאמצת אפילו סוכנות החלל האמריקאית נאס"א מודל של חדשנות פתוחה ומשיגה הישגים מדהימים. הדוגמה המדהימה היא של פנסיונר אמריקאי שמצליח לפתח כלי שמנבא סערות שמש בחלל ומנצח עשרות ומאות מדענים שעושים זאת כבר שנים.
תנועת הקוד הפתוח גם העניקה לא מעט השראה לפרויקטים פתוחים של שיתוף פעולה גלובלי, בתחומים אחרים. ויקיפדיה שמאמצת את המודל השיתופי הזה נכתבת בידי עשרות אלפי כותבים ועורכים מכל העולם ומנצחת אנציקלופדיות שנכתבות על ידי מדענים, כולל "בריטניקה" המופלאה שפעילה במשך 200 שנה.
אז גם יכריזו ההולנדים על מכונית שכל תוכניותיה ופיתוחה פתוחים לציבור. ערכת הפיתוח בקוד פתוח ארדואינו (Arduino) תאפשר למשתמשים לפתח וללמוד על השילוב שבין חומרה ותוכנה, באופן ידידותי וגמיש ומעט אחר-כך גם יפרוץ המטבע הדיגיטלי ביטקוין, עם הבלוקצ'יין שמתחתיו, אותה מערכת מתוחכמת המנהלת אותו באופן מבוזר ולא נשלט על ידי ממשלות. כל אלו ומאות מיזמים אחרים ירעידו את העולם, יראו מה מאפשרים אידיאולוגיה של אנשים חופשיים ושיתוף פעולה עולמי.
הנה תולדות הקוד הפתוח (עברית):
https://youtu.be/akAcajhnKzM
יש גם אי-הבנות בנושא הקוד הפתוח (עברית):
https://youtu.be/zmgIvBcHVH0
המכונית הראשונה בקוד פתוח מוצגת ב-2007:
https://youtu.be/JD7LJ6wGkJg
האנציקלופדיה החופשית ויקיפדיה שהקים ג'ימי וויילס וכותבים עשרות אלפי אנשים בעולם (עברית):
http://youtu.be/ZDVC_pF9HaA
ופיתוח הביטקוין החופשי והשימושים שעושים בו (עברית):
https://youtu.be/g-k8lZ_eabY
מהי רקורסיה?
רקורסיה היא קצת מורכבת להסבר אבל מאד פשוטה להבנה. מגדירים אותה כמיקוד של בעיה כללית אל בעיה "קטנה" יותר, אך זהה לזו המקורית. כך גם הגדרה רקורסיבית היא הגדרה שחייבת לפנות לאותה הגדרה, אבל בתנאים שונים. ותמיד יהיה שם תנאי עצירה, כדי שהרקורסיה לא תהיה אינסופית..
הגדרה אחרת לרקורסיה היא "הגדרת בעיה במונחים של עצמה".
רוצים דוגמה:
"אם הבנת מהי רקורסיה, חזור אל הדף ממנו הגעת. אם לא – קרא בדף זה מהי רקורסיה".
הדוגמה הזו מסבירה בדיוק את הרקורסיה, כי תנאי העצירה הוא "אם הבנת.." ואם לא אז חוזרים לאותה דוגמה כדי ללמוד מהי רקורסיה מחדש ולבסוף מבינים שהרקורסיה היא מה שאתה מתבקש לעשות..
גם מתכנתים משתמשים ברקורסיה והם מתארים פונקציה רקורסיבית כ"פונקציה שקוראת לעצמה". היא קוראת לעצמה עד שלא ניתן יותר לעשות זאת. נכון היה יותר לומר שפונקציה כזו קוראת לעותק של עצמה.
לרוב נותנים לרקורסיה כזו את הדוגמה של חישוב n-עצרת במתמטיקה (=מכפלת 1 כפול 2 כפול 3… עד כפול n).
ואגב, הנה משפט משעשע ונכון: "כדי להגדיר רקורסיה, קודם-כל צריך להגדיר רקורסיה.."
הנה סרטון שמדגים איך רקורסיה עובדת כשעושים בעזרתה גרפיקה ממוחשבת:
http://youtu.be/ghZKKaZkzrE
כניסה פנימה לפרקטל - צורה גרפית שנקראת "משולש סירפינסקי" שנבנתה בפונקציה רקורסיבית:
http://youtu.be/P5EkdJRtF-4
והסבר למתכנתים (עברית):
https://youtu.be/B19qH3XFnxY?long=yes
רקורסיה היא קצת מורכבת להסבר אבל מאד פשוטה להבנה. מגדירים אותה כמיקוד של בעיה כללית אל בעיה "קטנה" יותר, אך זהה לזו המקורית. כך גם הגדרה רקורסיבית היא הגדרה שחייבת לפנות לאותה הגדרה, אבל בתנאים שונים. ותמיד יהיה שם תנאי עצירה, כדי שהרקורסיה לא תהיה אינסופית..
הגדרה אחרת לרקורסיה היא "הגדרת בעיה במונחים של עצמה".
רוצים דוגמה:
"אם הבנת מהי רקורסיה, חזור אל הדף ממנו הגעת. אם לא – קרא בדף זה מהי רקורסיה".
הדוגמה הזו מסבירה בדיוק את הרקורסיה, כי תנאי העצירה הוא "אם הבנת.." ואם לא אז חוזרים לאותה דוגמה כדי ללמוד מהי רקורסיה מחדש ולבסוף מבינים שהרקורסיה היא מה שאתה מתבקש לעשות..
גם מתכנתים משתמשים ברקורסיה והם מתארים פונקציה רקורסיבית כ"פונקציה שקוראת לעצמה". היא קוראת לעצמה עד שלא ניתן יותר לעשות זאת. נכון היה יותר לומר שפונקציה כזו קוראת לעותק של עצמה.
לרוב נותנים לרקורסיה כזו את הדוגמה של חישוב n-עצרת במתמטיקה (=מכפלת 1 כפול 2 כפול 3… עד כפול n).
ואגב, הנה משפט משעשע ונכון: "כדי להגדיר רקורסיה, קודם-כל צריך להגדיר רקורסיה.."
הנה סרטון שמדגים איך רקורסיה עובדת כשעושים בעזרתה גרפיקה ממוחשבת:
http://youtu.be/ghZKKaZkzrE
כניסה פנימה לפרקטל - צורה גרפית שנקראת "משולש סירפינסקי" שנבנתה בפונקציה רקורסיבית:
http://youtu.be/P5EkdJRtF-4
והסבר למתכנתים (עברית):
https://youtu.be/B19qH3XFnxY?long=yes
איך מנפים שגיאות באמצעות ברווז גומי?
כשמתכנתים כותבים קוד שנועד לגרום למחשבים לעבוד בצורה מסוימת ולבצע פעולות מוגדרות, יפלו פה ושם גם שגיאות תכנות. אלו מכונות "באגים". כדי לאתר ולתקן שגיאות, הם משתמשים בשיטות שונות לאתר "באגים", שגיאות קוד.
אחת השיטות היותר משעשעות לאיתור באגים בקוד תוכנה היא "ניפוי השגיאות באמצעות ברווז גומי" (Rubber Duck Debugging). מדובר בשיטה משעשעת אך אמיתית לחלוטין לניפוי שגיאות קוד, שבעזרתה מתכנתים מוצאים באגים בתוכנת מחשב או במוצרי חומרה שמתוכנתים לפעול בדרך מסוימת. זאת כדי לתקנם ולגרום להם לפעול היטב.
בשיטה הזו מסביר המתכנת כיצד פועל הקוד שכתב, לחפץ דומם, כמו ברווז גומי. הרעיון הוא שתוך כדי ההסבר המפורט לברווז הגומי, שורה אחר שורה, של מה שעושה כל חלק של הקוד, יצליח המתכנת להבחין בשגיאות שבו, בזכות ההסבר שהוא נדרש לספק לגבי כל פעולה שמבצע הקוד.
מקור השם של השיטה הוא בסיפור שהוצג בספר "המתכנת המעשי" (The Pragmatic Programmer). בסיפור תואר מתכנת שמצליח לנפות שגיאות קוד שלו, בכך שהוא מכריח את עצמו להסביר את הקוד שלו לברווז הגומי הסתמי שלו.
השיטה נקראת גם "מבחן ברווז הגומי" או "בִּירווּז", על משקל תכנות. היא יעילה ותורמת גם לתיעוד יעיל של התוכנה או המכשיר, לצורך כתיבת חוברת למשתמש או להוראתה. בדיקת שגיאות תוך היעזרות בברווז גומי מקבילה לבדיקה של הקוד על ידי עמיתים (שיטה שנקראת "Code Review") ולשיטה שבה מסביר המתכנת את הקוד למתכנת עמית (Software Walkthrough).
הנה סרטון על הבירווז - ניפוי השגיאות בעזרת ברווז גומי:
https://youtu.be/SJC5DAfCrHY
סיפור הניפוי של השגיאות באמצעות ברווז הגומי:
https://youtu.be/huOPVqztPdc
כך מנפים את השגיאות בעזרת ברווז גומי:
https://youtu.be/m4_depGYVkM
כשמתכנתים כותבים קוד שנועד לגרום למחשבים לעבוד בצורה מסוימת ולבצע פעולות מוגדרות, יפלו פה ושם גם שגיאות תכנות. אלו מכונות "באגים". כדי לאתר ולתקן שגיאות, הם משתמשים בשיטות שונות לאתר "באגים", שגיאות קוד.
אחת השיטות היותר משעשעות לאיתור באגים בקוד תוכנה היא "ניפוי השגיאות באמצעות ברווז גומי" (Rubber Duck Debugging). מדובר בשיטה משעשעת אך אמיתית לחלוטין לניפוי שגיאות קוד, שבעזרתה מתכנתים מוצאים באגים בתוכנת מחשב או במוצרי חומרה שמתוכנתים לפעול בדרך מסוימת. זאת כדי לתקנם ולגרום להם לפעול היטב.
בשיטה הזו מסביר המתכנת כיצד פועל הקוד שכתב, לחפץ דומם, כמו ברווז גומי. הרעיון הוא שתוך כדי ההסבר המפורט לברווז הגומי, שורה אחר שורה, של מה שעושה כל חלק של הקוד, יצליח המתכנת להבחין בשגיאות שבו, בזכות ההסבר שהוא נדרש לספק לגבי כל פעולה שמבצע הקוד.
מקור השם של השיטה הוא בסיפור שהוצג בספר "המתכנת המעשי" (The Pragmatic Programmer). בסיפור תואר מתכנת שמצליח לנפות שגיאות קוד שלו, בכך שהוא מכריח את עצמו להסביר את הקוד שלו לברווז הגומי הסתמי שלו.
השיטה נקראת גם "מבחן ברווז הגומי" או "בִּירווּז", על משקל תכנות. היא יעילה ותורמת גם לתיעוד יעיל של התוכנה או המכשיר, לצורך כתיבת חוברת למשתמש או להוראתה. בדיקת שגיאות תוך היעזרות בברווז גומי מקבילה לבדיקה של הקוד על ידי עמיתים (שיטה שנקראת "Code Review") ולשיטה שבה מסביר המתכנת את הקוד למתכנת עמית (Software Walkthrough).
הנה סרטון על הבירווז - ניפוי השגיאות בעזרת ברווז גומי:
https://youtu.be/SJC5DAfCrHY
סיפור הניפוי של השגיאות באמצעות ברווז הגומי:
https://youtu.be/huOPVqztPdc
כך מנפים את השגיאות בעזרת ברווז גומי:
https://youtu.be/m4_depGYVkM
מהן סביבות הלימוד ושפות התכנות לילדים?
יש כמה שיטות לימוד של תכנות לילדים, שמתרכזות ביסודות התכנות, החשיבה הלוגית והבנת העקרונות שבבסיס עולם התכנות. אחת המוצלחות שבהן היא של האתר קודמנקי (CodeMonkey) שבו משמש משחק חווייתי ואפשר לומר אפילו ממכר, כדי לגרום לתלמידים ללמוד תיכנות ולהתמיד בו לאורך זמן.
זהו פיתוח ישראלי שמחייב מהלומד כתיבה של קוד אמיתי בשפת סקריפט (שתעבור לאחר מכן הידור, קומפילציה, לג'אווה סקריפט) שנקראת שם "CoffeeScript". בשפה זו צריכים הלומדים להקפיד על תחביר, חשיבה לוגית, הבנה של יסודות התכנות והדיוק שנדרש בתכנות המתקדם.
גם האתרים סקראץ' (Scratch) וטינקר (Tynker) מציעים סביבות תכנות לילדים והם אף קלים יותר. בהם מלמדים חשיבה תכנותית על ידי פיתוח משחקים.
סביבות התכנות הללו מבוססות על אובייקטים תכנותיים, מעין חלקים של פאזל, או קוביות משחק שמהן הילד בונה את התכנית. בקוביות המשחק של התכנות בהן, יש גם משתנים, הוראות ונתונים. ה"שפות" הללו קלות ללמידה ומשום כך הן מתאימות גם לגיל הרך.
בקודמאנקי התכנות מכוון לקוף. הוא היורש של הצב המיתולוגי משפת התכנות החינוכית LOGO, שפה שפותחה ב-MIT ואפשרה לילדים לתכנת ולפתח את החשיבה בו זמנית.
את הקוף בקודמאנקי צריכים הילדים להוביל אל הבננות. בדרך הוא יצטרך לעבור מכשולים רבים. יש למתכנתים סרגל וירטואלי שבו ניתן לחשב את הצעדים, ובאמצעות הוראות תנועה, כולל סיבובים בזוויות פשוטות, ניתן להובילו לנצחון.
ממש כמו בשפת הלוגו ההיסטורית, גם כאן נכתב הקוד באנגלית בסיסית, עם הוראות דוגמת turn to, step, right, left. ניתן לכתוב מהמקלדת או לבחור מילים מהמקרא שבתחתית המסך.
כך התלמיד לומד לעבוד בסביבת פיתוח שמזכירה את הסביבות של המבוגרים ועדיין מקבל סיוע, שדומים לו יש למען האמת גם בסביבות הפיתוח והפריימוורקס של המתכנתים המקצועיים בעולם האמיתי.
האתר קוד מונקי המיועד לגיל בית ספר יסודי, מכיתה ג' ומעלה:
https://youtu.be/fXcPjdNKJdY
ומדריך ילד שמלמד:
https://youtu.be/PZFqt3KCRdk
הנה סביבת לימוד התכנות עם האובייקטים סקרץ' (Scratch) שמתאימה גם לגיל הרך:
https://youtu.be/CCaBCMADwls
וסביבת הלימוד Tynker המתחרה בה ושולטת גם בחומרה ובשפת Java Script:
https://youtu.be/XIC9tY-zkXE
יש כמה שיטות לימוד של תכנות לילדים, שמתרכזות ביסודות התכנות, החשיבה הלוגית והבנת העקרונות שבבסיס עולם התכנות. אחת המוצלחות שבהן היא של האתר קודמנקי (CodeMonkey) שבו משמש משחק חווייתי ואפשר לומר אפילו ממכר, כדי לגרום לתלמידים ללמוד תיכנות ולהתמיד בו לאורך זמן.
זהו פיתוח ישראלי שמחייב מהלומד כתיבה של קוד אמיתי בשפת סקריפט (שתעבור לאחר מכן הידור, קומפילציה, לג'אווה סקריפט) שנקראת שם "CoffeeScript". בשפה זו צריכים הלומדים להקפיד על תחביר, חשיבה לוגית, הבנה של יסודות התכנות והדיוק שנדרש בתכנות המתקדם.
גם האתרים סקראץ' (Scratch) וטינקר (Tynker) מציעים סביבות תכנות לילדים והם אף קלים יותר. בהם מלמדים חשיבה תכנותית על ידי פיתוח משחקים.
סביבות התכנות הללו מבוססות על אובייקטים תכנותיים, מעין חלקים של פאזל, או קוביות משחק שמהן הילד בונה את התכנית. בקוביות המשחק של התכנות בהן, יש גם משתנים, הוראות ונתונים. ה"שפות" הללו קלות ללמידה ומשום כך הן מתאימות גם לגיל הרך.
בקודמאנקי התכנות מכוון לקוף. הוא היורש של הצב המיתולוגי משפת התכנות החינוכית LOGO, שפה שפותחה ב-MIT ואפשרה לילדים לתכנת ולפתח את החשיבה בו זמנית.
את הקוף בקודמאנקי צריכים הילדים להוביל אל הבננות. בדרך הוא יצטרך לעבור מכשולים רבים. יש למתכנתים סרגל וירטואלי שבו ניתן לחשב את הצעדים, ובאמצעות הוראות תנועה, כולל סיבובים בזוויות פשוטות, ניתן להובילו לנצחון.
ממש כמו בשפת הלוגו ההיסטורית, גם כאן נכתב הקוד באנגלית בסיסית, עם הוראות דוגמת turn to, step, right, left. ניתן לכתוב מהמקלדת או לבחור מילים מהמקרא שבתחתית המסך.
כך התלמיד לומד לעבוד בסביבת פיתוח שמזכירה את הסביבות של המבוגרים ועדיין מקבל סיוע, שדומים לו יש למען האמת גם בסביבות הפיתוח והפריימוורקס של המתכנתים המקצועיים בעולם האמיתי.
האתר קוד מונקי המיועד לגיל בית ספר יסודי, מכיתה ג' ומעלה:
https://youtu.be/fXcPjdNKJdY
ומדריך ילד שמלמד:
https://youtu.be/PZFqt3KCRdk
הנה סביבת לימוד התכנות עם האובייקטים סקרץ' (Scratch) שמתאימה גם לגיל הרך:
https://youtu.be/CCaBCMADwls
וסביבת הלימוד Tynker המתחרה בה ושולטת גם בחומרה ובשפת Java Script:
https://youtu.be/XIC9tY-zkXE
מי חשב שבאג אלפיים יהיה אסון חסר-תקדים?
"באג אלפיים הוא משבר חסר-תקדים בהיסטוריה האנושית." - אמר אדמונד ד'גזוס, שנתיים לפני המילניום החדש, בשנת 1998. החשש שלו ושל רבים אחרים, כולל מומחים מובילים בעולם, היה עצום והוא נבע מהעובדה שהטכנולוגיה הממוחשבת כבר שלטה בעולם.
החשש של אנשי המחשבים היה מידיעה ששנת 2000 תסומן בספרות 00. כיוון שבתוכנות המחשב הוגדרו רק שתי ספרות לשנה, 00 היה סימן שעלול להיות לשנת 1900, מה שהיה עלול לגרום לחישובים מוטעים ולתקלות מחשב שיגרמו לתקלות ואסונות קשים.
החשש הגדול מבאג אלפיים לא התממש לבסוף. ההשקעות האדירות בתיקון הבעיה בעולם פגשו למעט מאד בעיות וקטנות מהצפוי והחשש הגדול שהובע למעלה לא התממש.
כיוון שלקראת שנת 2000 היה צורך להוסיף גם את סימון המאה, נערכו שינויים במערכות מחשב רבות בעולם, הוחלפו תוכנות מיושנות שהיה בהן הבאג המפורסם ובתוכנות אחרות עברו המתכנתים על כל הקוד ותיקנו את כל המקומות שחייבו עידכון של האלף. העולם ניצל...
הנה פרסומת שממחישה את החשש ממה שיקרה בגלל באג 2000:
http://youtu.be/x6HyPJpzaHg
ואנשים שלא נראה שחששו ממנו:
https://youtu.be/VvRcOD_RvYU
"באג אלפיים הוא משבר חסר-תקדים בהיסטוריה האנושית." - אמר אדמונד ד'גזוס, שנתיים לפני המילניום החדש, בשנת 1998. החשש שלו ושל רבים אחרים, כולל מומחים מובילים בעולם, היה עצום והוא נבע מהעובדה שהטכנולוגיה הממוחשבת כבר שלטה בעולם.
החשש של אנשי המחשבים היה מידיעה ששנת 2000 תסומן בספרות 00. כיוון שבתוכנות המחשב הוגדרו רק שתי ספרות לשנה, 00 היה סימן שעלול להיות לשנת 1900, מה שהיה עלול לגרום לחישובים מוטעים ולתקלות מחשב שיגרמו לתקלות ואסונות קשים.
החשש הגדול מבאג אלפיים לא התממש לבסוף. ההשקעות האדירות בתיקון הבעיה בעולם פגשו למעט מאד בעיות וקטנות מהצפוי והחשש הגדול שהובע למעלה לא התממש.
כיוון שלקראת שנת 2000 היה צורך להוסיף גם את סימון המאה, נערכו שינויים במערכות מחשב רבות בעולם, הוחלפו תוכנות מיושנות שהיה בהן הבאג המפורסם ובתוכנות אחרות עברו המתכנתים על כל הקוד ותיקנו את כל המקומות שחייבו עידכון של האלף. העולם ניצל...
הנה פרסומת שממחישה את החשש ממה שיקרה בגלל באג 2000:
http://youtu.be/x6HyPJpzaHg
ואנשים שלא נראה שחששו ממנו:
https://youtu.be/VvRcOD_RvYU
מי הייתה עדה לאבלייס, המתכנת הראשון בהיסטוריה?
כן, זו לא טעות... היא הייתה המתכנת הראשון של עולם המיחשוב. ולא סתם מתכנת אלא מתכנת שהקדים את זמנו - את התוכנה שכתבה, היא יצרה באמצע המאה ה-19, בערך 100 שנה לפני המצאת המחשב האלקטרוני...
כן, הסיפור מתחיל הרבה לפני שנולד המחשב הראשון. עדה לאבלייס (Ada Lovelace) האנגליה, או אדה לאבלייס, הייתה מתכנתת מחשבים מבלי שראתה מעודה מחשב. למעשה, כתבה "קוסמת המספרים" שהיא הייתה, את תוכנית המחשב הראשונה בהיסטוריה.
איך זה קורה? - ובכן, לאבלייס, או עדה ביירון, הייתה בתו של המשורר האנגלי הרומנטיקן וההולל לורד ביירון. היא הייתה מתמטיקאית צעירה ומבריקה, שהייתה האדם הנכון, שעזר לגאון אחר. בכך היא זכתה להיחשב לחלוצה בריטית בעולם המחשבים.
הכל מתחיל אצלה מלימוד מתמטיקה. את העידוד ללמוד מתמטיקה ומדעים היא קיבלה מאימה. האם גידלה אותה בחברה הגבוהה של לונדון והאמינה שפיתוח הכישורים המתמטיים של ביתה, ימנע ממנה להיות משוררת כמו אביה, איש שעזב את הבית עם לידתה.
ואכן, לאבלייס הוקסמה ממספרים ופיתחה חושים וכישרון מתמטי מדהים, תכונה יוצאת דופן לנשים ועוד פחות נפוץ אצל נערות באותה תקופה. מגיל צעיר למדה עדה בביתה מתמטיקה, עם מורים פרטיים שהזמינה אימה. המורים הללו חיבבו עליה את עולם המתמטיקה והיא ממש שיחקה במספרים.
בהיותה נערה, מורתה הפגישה אותם עם החוקר צ'ארלס באבג' (Babbage), מי שהיה פרופסור למתמטיקה וממציא. האיש פיתח כמה מכונות חישוב ועבודתו בתחום מכונות החישוב נחשבת למשפיעה מאד על התכנון של המחשבים המודרניים.
על המנוע האנליטי, אחת המכונות הללו שתכנן באבג', יצרה לאבלייס המסוקרנת, למרות גילה הצעיר, אלגוריתם שנועד לחשב מספרי ברנולי. האלגוריתם הזה נחשב לאלגוריתם הראשון, שפותח בכוונה לפעול על ידי מכונה. זה היה, כאמור, 100 שנה לפני המצאת המחשב האלקטרוני.
המדהים הוא שעל אף שבאבג’ לא הצליח להשלים את בניית המנוע האנליטי מעולם, עדה הבינה שהמכונה הזו היא סוג של מחשב. וזה עוד לפני שאחרים הבינו מהו מחשב.
בחזונה של לאבלייס, כשהמחשב הזה יפותח, הוא לא רק יחשב חישובים מתמטיים, אלא גם ילחין מוסיקה ויצייר. כבר אז היא כתבה שהמכונה של באבג' דומה לנול האריגה שהמציא ז'וזף מארי ז'קאר (Jacquard). הערכתה הייתה שכמו שהנול של ז'קרד יכול לארוג דוגמאות של עלים ופרחים, יארוג המנוע האנליטי של באבג' דגמים מתמטיים מרהיבים. כמה שהיא צדקה!
לאבלייס שקדה על תרגום של מסמך שביקש ממנה באבג' לתרגם לאנגלית. בין ההסברים וההערות שהיא תרמה על המכונה של באבג', נוסף שם גם אותו אלגוריתם לחישוב מספרי ברנולי, שזוכה היום להיחשב לתכנית המחשב הראשונה בהיסטוריה.
משום כך רבים רואים בה את מתכנתת המחשבים הראשונה בעולם. ואגב, את כל זה היא עשתה עד גיל 36, בו הלכה עדה לעולמה ממחלת הסרטן.
בשנת 1979, באקט לא שובניסטי של פרגון גברי, קראו על שמה בפנטגון האמריקאי את שפת התכנות ADA, שפת מחשב המשמשת בעיקר תוכנות ומערכות הפעלה צבאיות.
הנה סיפורה של עדה לאבלייס (עברית):
https://youtu.be/td_5svpezpY?t=3m18s&end=5m32s
תולדות חייה:
https://youtu.be/U5VIiykV0LQ
ועדה לאבלייס הציעה בחייה את מה שנקרא היום מבחן לאבלייס לבינה מלאכותית (מתורגם):
https://youtu.be/Rh9vBczqMk0
כן, זו לא טעות... היא הייתה המתכנת הראשון של עולם המיחשוב. ולא סתם מתכנת אלא מתכנת שהקדים את זמנו - את התוכנה שכתבה, היא יצרה באמצע המאה ה-19, בערך 100 שנה לפני המצאת המחשב האלקטרוני...
כן, הסיפור מתחיל הרבה לפני שנולד המחשב הראשון. עדה לאבלייס (Ada Lovelace) האנגליה, או אדה לאבלייס, הייתה מתכנתת מחשבים מבלי שראתה מעודה מחשב. למעשה, כתבה "קוסמת המספרים" שהיא הייתה, את תוכנית המחשב הראשונה בהיסטוריה.
איך זה קורה? - ובכן, לאבלייס, או עדה ביירון, הייתה בתו של המשורר האנגלי הרומנטיקן וההולל לורד ביירון. היא הייתה מתמטיקאית צעירה ומבריקה, שהייתה האדם הנכון, שעזר לגאון אחר. בכך היא זכתה להיחשב לחלוצה בריטית בעולם המחשבים.
הכל מתחיל אצלה מלימוד מתמטיקה. את העידוד ללמוד מתמטיקה ומדעים היא קיבלה מאימה. האם גידלה אותה בחברה הגבוהה של לונדון והאמינה שפיתוח הכישורים המתמטיים של ביתה, ימנע ממנה להיות משוררת כמו אביה, איש שעזב את הבית עם לידתה.
ואכן, לאבלייס הוקסמה ממספרים ופיתחה חושים וכישרון מתמטי מדהים, תכונה יוצאת דופן לנשים ועוד פחות נפוץ אצל נערות באותה תקופה. מגיל צעיר למדה עדה בביתה מתמטיקה, עם מורים פרטיים שהזמינה אימה. המורים הללו חיבבו עליה את עולם המתמטיקה והיא ממש שיחקה במספרים.
בהיותה נערה, מורתה הפגישה אותם עם החוקר צ'ארלס באבג' (Babbage), מי שהיה פרופסור למתמטיקה וממציא. האיש פיתח כמה מכונות חישוב ועבודתו בתחום מכונות החישוב נחשבת למשפיעה מאד על התכנון של המחשבים המודרניים.
על המנוע האנליטי, אחת המכונות הללו שתכנן באבג', יצרה לאבלייס המסוקרנת, למרות גילה הצעיר, אלגוריתם שנועד לחשב מספרי ברנולי. האלגוריתם הזה נחשב לאלגוריתם הראשון, שפותח בכוונה לפעול על ידי מכונה. זה היה, כאמור, 100 שנה לפני המצאת המחשב האלקטרוני.
המדהים הוא שעל אף שבאבג’ לא הצליח להשלים את בניית המנוע האנליטי מעולם, עדה הבינה שהמכונה הזו היא סוג של מחשב. וזה עוד לפני שאחרים הבינו מהו מחשב.
בחזונה של לאבלייס, כשהמחשב הזה יפותח, הוא לא רק יחשב חישובים מתמטיים, אלא גם ילחין מוסיקה ויצייר. כבר אז היא כתבה שהמכונה של באבג' דומה לנול האריגה שהמציא ז'וזף מארי ז'קאר (Jacquard). הערכתה הייתה שכמו שהנול של ז'קרד יכול לארוג דוגמאות של עלים ופרחים, יארוג המנוע האנליטי של באבג' דגמים מתמטיים מרהיבים. כמה שהיא צדקה!
לאבלייס שקדה על תרגום של מסמך שביקש ממנה באבג' לתרגם לאנגלית. בין ההסברים וההערות שהיא תרמה על המכונה של באבג', נוסף שם גם אותו אלגוריתם לחישוב מספרי ברנולי, שזוכה היום להיחשב לתכנית המחשב הראשונה בהיסטוריה.
משום כך רבים רואים בה את מתכנתת המחשבים הראשונה בעולם. ואגב, את כל זה היא עשתה עד גיל 36, בו הלכה עדה לעולמה ממחלת הסרטן.
בשנת 1979, באקט לא שובניסטי של פרגון גברי, קראו על שמה בפנטגון האמריקאי את שפת התכנות ADA, שפת מחשב המשמשת בעיקר תוכנות ומערכות הפעלה צבאיות.
הנה סיפורה של עדה לאבלייס (עברית):
https://youtu.be/td_5svpezpY?t=3m18s&end=5m32s
תולדות חייה:
https://youtu.be/U5VIiykV0LQ
ועדה לאבלייס הציעה בחייה את מה שנקרא היום מבחן לאבלייס לבינה מלאכותית (מתורגם):
https://youtu.be/Rh9vBczqMk0
מה היתרון הגדול של שפת ג'אווה סקריפט?
מבין שפות התכנות הרבות, שפת ג'אווה סקריפט (Javascript ובקיצור JS) היא אחת השפות הפופולריות ביותר וגם המבוקשות ביותר אצל מעסיקים בעולם ההייטק. לפי מדידות שנערכו באתר StackOverFlow, בשנת 2019 היא הייתה השפה הכי פופולרית בעולם.
את ג'אווה סקריפט החלו לפתח בחברת נטסקייפ. היא הייתה אז שפה מהפכנית שאפשרה למפתחי אינטרנט לראשונה להוסיף לאתרים פעולות מורכבות ואינטרנאקטיביות, שהוסיפו ממדים של קסם לאתרים. אחת מהן הייתה אפשרות של הזזת העכבר מעל תמונה, שהובילה לשינוי של התמונה שמתחת.
במקור פיתח אותה מתכנת בשם ברנדן אייך (Brendan Eich), שכתב את השפה ופיתח את הגרסה הראשונה שלה כשפת תכנות ב-10 ימים בלבד. אייך, אגב, הוא מי שהקים את פרויקט מוזילה ולימים הפך גם למנכ"ל אחד הדפדפנים השווים - דפדפן הקוד הפתוח Brave. באותם ימים, אגב, היא נקראה LiveScript. בשנים שאחרי כן היא זכתה להמון שמות, ביניהם ECMAscript, Jscript ועוד.
אם כיום קשה לדמיין את העולם ללא Javascript, בתחילה היא שימשה לבנייה של דפי אינטרנט אינטראקטיביים, שבאו לידי ביטוי בעיקר בדפדפנים. באותה תקופה רבים ראו בשפה הזו סוג של שפה "חמודה" שלא משמשת למטרות רציניות מדי, אבל השקעה אדירה, מצד אחד של קהילת המפתחים ומצד שני של ענקיות טכנולוגיה כמו גוגל ופייסבוק, שינתה את המצב מקצה אל קצה.
כיום ג'אווה סקריפט משמשת לפיתוח של אתרים מורכבים, אתרי וידאו וסרטים משוכללים, אפליקציות ווב או מובייל, רשתות חברתיות מורכבות וצ'אט בזמן אמת. כל אלה פותחו לצד כלי תוכנה שונים וכמובן גם משחקי מחשב נחמדים.
גם המהירות והביצועים של JS, שבעבר היו איטיים יחסית, השתפרו מאוד ולא מעט בזכות המחשבים המהירים של היום.
לא פלא שרבים בתעשייה ממליצים למתחילים ללמוד תכנות להתחיל באחת משתי השפות - פייתון או ג'אווה סקריפט. בעוד פייתון מיועדת לשימושים מגוונים, רבים לומדים Javascript במטרה להפוך למפתחי front-end ו/או back-end.
גם המנוע שמריץ את השפה התרחב. מדפדפנים שכוללים מנוע JS הוא הורחב ל-Node.JS, מנוע עצמאי ליישומים, שפיתח מהנדס תוכנה מוכשר. בכך הוא איפשר לתעשייה מנוע JS בתוכנה עצמאית, מה שהוביל לפיתוח back-end לאפליקציות ווב ומובייל שונות, מחוץ לדפדפן.
ואגב, אחת השאלות הכי פופולריות על JavaScript היא האם היא מבוססת על שפת Java. התשובה המתחכמת היא שהקשר בין שתיהן הוא כמו הקשר בין Car ל-Carpet... התשובה הפשוטה היא שאין ביניהן כל קשר. הסיבה לכך שהשם JavaScript כולל את המילה Java היא שבשנות ה-90 שפת Java והמילה Java בכלל, היו לוהטות. לכן יצר מי שיצר את השם JavaScript לשפת התכנות שכל כך הרבה שמות היו לה ואף אחד לא ממש תפס. התוצאה הייתה מעולה ומיידית והשם JavaScript נשאר.
אחד ההבדלים הכי גדולים בין שתי השפות הללו הוא ש-JS היא Interpreted, בעוד ש-Java היא שפה שהקוד בה עובר הידור, כלומר מתורגם באמצעות Compiler לשפת מכונה.
הנה היכרות לילדים עם שפת ג'אווה סקריפט (עברית):
https://youtu.be/w5dnqy-_MQM
קורס מלא של שפת ג'אווה סקריפט (עברית):
https://youtu.be/fplM3uWr_8Y
היכרות עם שפת ג'אווה סקריפט באנגלית:
https://youtu.be/c-I5S_zTwAc
וקורס באורך מלא של תכנות בשפת Javascript :
https://youtu.be/W6NZfCO5SIk?long=yes
מבין שפות התכנות הרבות, שפת ג'אווה סקריפט (Javascript ובקיצור JS) היא אחת השפות הפופולריות ביותר וגם המבוקשות ביותר אצל מעסיקים בעולם ההייטק. לפי מדידות שנערכו באתר StackOverFlow, בשנת 2019 היא הייתה השפה הכי פופולרית בעולם.
את ג'אווה סקריפט החלו לפתח בחברת נטסקייפ. היא הייתה אז שפה מהפכנית שאפשרה למפתחי אינטרנט לראשונה להוסיף לאתרים פעולות מורכבות ואינטרנאקטיביות, שהוסיפו ממדים של קסם לאתרים. אחת מהן הייתה אפשרות של הזזת העכבר מעל תמונה, שהובילה לשינוי של התמונה שמתחת.
במקור פיתח אותה מתכנת בשם ברנדן אייך (Brendan Eich), שכתב את השפה ופיתח את הגרסה הראשונה שלה כשפת תכנות ב-10 ימים בלבד. אייך, אגב, הוא מי שהקים את פרויקט מוזילה ולימים הפך גם למנכ"ל אחד הדפדפנים השווים - דפדפן הקוד הפתוח Brave. באותם ימים, אגב, היא נקראה LiveScript. בשנים שאחרי כן היא זכתה להמון שמות, ביניהם ECMAscript, Jscript ועוד.
אם כיום קשה לדמיין את העולם ללא Javascript, בתחילה היא שימשה לבנייה של דפי אינטרנט אינטראקטיביים, שבאו לידי ביטוי בעיקר בדפדפנים. באותה תקופה רבים ראו בשפה הזו סוג של שפה "חמודה" שלא משמשת למטרות רציניות מדי, אבל השקעה אדירה, מצד אחד של קהילת המפתחים ומצד שני של ענקיות טכנולוגיה כמו גוגל ופייסבוק, שינתה את המצב מקצה אל קצה.
כיום ג'אווה סקריפט משמשת לפיתוח של אתרים מורכבים, אתרי וידאו וסרטים משוכללים, אפליקציות ווב או מובייל, רשתות חברתיות מורכבות וצ'אט בזמן אמת. כל אלה פותחו לצד כלי תוכנה שונים וכמובן גם משחקי מחשב נחמדים.
גם המהירות והביצועים של JS, שבעבר היו איטיים יחסית, השתפרו מאוד ולא מעט בזכות המחשבים המהירים של היום.
לא פלא שרבים בתעשייה ממליצים למתחילים ללמוד תכנות להתחיל באחת משתי השפות - פייתון או ג'אווה סקריפט. בעוד פייתון מיועדת לשימושים מגוונים, רבים לומדים Javascript במטרה להפוך למפתחי front-end ו/או back-end.
גם המנוע שמריץ את השפה התרחב. מדפדפנים שכוללים מנוע JS הוא הורחב ל-Node.JS, מנוע עצמאי ליישומים, שפיתח מהנדס תוכנה מוכשר. בכך הוא איפשר לתעשייה מנוע JS בתוכנה עצמאית, מה שהוביל לפיתוח back-end לאפליקציות ווב ומובייל שונות, מחוץ לדפדפן.
ואגב, אחת השאלות הכי פופולריות על JavaScript היא האם היא מבוססת על שפת Java. התשובה המתחכמת היא שהקשר בין שתיהן הוא כמו הקשר בין Car ל-Carpet... התשובה הפשוטה היא שאין ביניהן כל קשר. הסיבה לכך שהשם JavaScript כולל את המילה Java היא שבשנות ה-90 שפת Java והמילה Java בכלל, היו לוהטות. לכן יצר מי שיצר את השם JavaScript לשפת התכנות שכל כך הרבה שמות היו לה ואף אחד לא ממש תפס. התוצאה הייתה מעולה ומיידית והשם JavaScript נשאר.
אחד ההבדלים הכי גדולים בין שתי השפות הללו הוא ש-JS היא Interpreted, בעוד ש-Java היא שפה שהקוד בה עובר הידור, כלומר מתורגם באמצעות Compiler לשפת מכונה.
הנה היכרות לילדים עם שפת ג'אווה סקריפט (עברית):
https://youtu.be/w5dnqy-_MQM
קורס מלא של שפת ג'אווה סקריפט (עברית):
https://youtu.be/fplM3uWr_8Y
היכרות עם שפת ג'אווה סקריפט באנגלית:
https://youtu.be/c-I5S_zTwAc
וקורס באורך מלא של תכנות בשפת Javascript :
https://youtu.be/W6NZfCO5SIk?long=yes
מהם מגדלי האנוי?
מגדלי האנוי הם שם של חידה מפורסמת שהומצאה על ידי המתמטיקאי הצרפתי אדוארד לוקאס בשנת 1883. ב"מגדלי הנוי" נתון מגדל עם דיסקיות שהיקפן הולך ונעשה קטן ככל שהן עליונות (הרחבות למטה). מטרת החידה היא להעביר את כל המגדל בשלמותו לאחד משני העמודים הריקים שלידו. כמובן שיש להעביר את הדיסקיות במה שפחות צעדים וכמה שיותר מהר.
החידה משמשת ללימוד מתמטיקה ומדעי המחשב ולהמחשת מושגים כמו רקורסיה (ראו באאוריקה בתגית "רקורסיה"). עוד פרט מעניין - אם נסמן בנקודה כל מצב חוקי במשחק מגדלי האנוי, ונקשר בקווים את המצבים שבהם אפשר לעבור מאחד לשני, נקבל למול עינינו את גרף המשחק, בצורה של הפרקטל המוכר כ"משולש שרפינסקי".
אגב, לוקאס המציא גם אגדה שמדובר במקדש בראהמי שבו הכהנים מעבירים מגדל בן 64 דיסקיות. על פי האגדה שלו, כשיסיימו הכהנים את עבודתם, יגיע גם סוף העולם..
ישנם כללים להעברה:
א. בכל שלב תעבור רק דיסקית אחת מקום.
ב. אסור שיהיה מצב שדיסקית תהיה מונחת על דיסקית קטנה יותר.
הנה דרך לפתרון של חידת מגדלי האנוי:
http://youtu.be/BMkOBNZHcIs
מגדלי האנוי הם שם של חידה מפורסמת שהומצאה על ידי המתמטיקאי הצרפתי אדוארד לוקאס בשנת 1883. ב"מגדלי הנוי" נתון מגדל עם דיסקיות שהיקפן הולך ונעשה קטן ככל שהן עליונות (הרחבות למטה). מטרת החידה היא להעביר את כל המגדל בשלמותו לאחד משני העמודים הריקים שלידו. כמובן שיש להעביר את הדיסקיות במה שפחות צעדים וכמה שיותר מהר.
החידה משמשת ללימוד מתמטיקה ומדעי המחשב ולהמחשת מושגים כמו רקורסיה (ראו באאוריקה בתגית "רקורסיה"). עוד פרט מעניין - אם נסמן בנקודה כל מצב חוקי במשחק מגדלי האנוי, ונקשר בקווים את המצבים שבהם אפשר לעבור מאחד לשני, נקבל למול עינינו את גרף המשחק, בצורה של הפרקטל המוכר כ"משולש שרפינסקי".
אגב, לוקאס המציא גם אגדה שמדובר במקדש בראהמי שבו הכהנים מעבירים מגדל בן 64 דיסקיות. על פי האגדה שלו, כשיסיימו הכהנים את עבודתם, יגיע גם סוף העולם..
ישנם כללים להעברה:
א. בכל שלב תעבור רק דיסקית אחת מקום.
ב. אסור שיהיה מצב שדיסקית תהיה מונחת על דיסקית קטנה יותר.
הנה דרך לפתרון של חידת מגדלי האנוי:
http://youtu.be/BMkOBNZHcIs
מה למתכנתים ולביצי פסחא?
ביצי פסחא (Easter eggs) הן ביצים מעוטרות בצביעה, שהנוצרים נוהגים להחביא בחג הפסחא והילדים מחפשים, משהו שמזכיר את האפיקומן היהודי של פסח.
באופן משעשע התגלגל הביטוי הזה בשנות ה-70 גם לעולם המחשבים, כשמתכנתים משועממים החלו טומנים הפתעות שונות ויצירתיות במיוחד, בתוך משחקי וידאו של אותה תקופה ובהמשך גם בתוכנות, באתרי אינטרנט ובמחשבים. הן כונו "ביצי פסחא וירטואליות" או בלועזית "איסטר-אגגס" (Easter eggs) ואין בהן שום שימוש, למעט השעשוע הצרוף.
האיסטר אגסס יכולים להיות תמונה, קול או מסר נסתר בתוכנה או במשחק מחשב, בדיחה או חתימה אישית של המתכנת בשורות הקוד שלהן, רמזים על הגרסה הבאה, דמות משעשעת שמשמיעה קול או מזכירה דמות בסרט אנימציה, תגובה משעשעת של התוכנה לפעולה סודית שעוברת מפה לאוזן בצ'אטים ברשת ועד לכיתוב חבוי על רכיב חומרה ועוד.
ה"ביצים" הללו כבר הפכו לחלק מהווי הרשת. לכל חברה שמכבדת את עצמה יש איסטר-אגס שמוכמנים בתוך מוצריה או אתריה. לא פעם אף תוצג ביצת האיסטר בחלון ה-"אודות" של התוכנה. חלק מה"ביצים" ידועים ומפורסמים בכל פינה ברשת, בעוד אחרים ממתינים ל"חנון" שיחשוף ויספר עליהם לכולם.
נסו דוגמה לאיסטר אג בגוגל תרגום:
הדביקו בגוגל טרנסלייט את הרצף הבא:
pv zk pv pv zk pv zk kz zk pv pv pv zk pv zk zk pzk pzk pvzkpkzvpvzk kkkkkk bsch
ואז בחרו תרגום מגרמנית לגרמנית ולחצו על אייקון הרמקול הקטן שישמיע את התוצאה.
הנה ביצי הפסחא הגדולות של משחקי המחשב:
https://youtu.be/sirz0TnTje4
ביצי פסחא (Easter eggs) הן ביצים מעוטרות בצביעה, שהנוצרים נוהגים להחביא בחג הפסחא והילדים מחפשים, משהו שמזכיר את האפיקומן היהודי של פסח.
באופן משעשע התגלגל הביטוי הזה בשנות ה-70 גם לעולם המחשבים, כשמתכנתים משועממים החלו טומנים הפתעות שונות ויצירתיות במיוחד, בתוך משחקי וידאו של אותה תקופה ובהמשך גם בתוכנות, באתרי אינטרנט ובמחשבים. הן כונו "ביצי פסחא וירטואליות" או בלועזית "איסטר-אגגס" (Easter eggs) ואין בהן שום שימוש, למעט השעשוע הצרוף.
האיסטר אגסס יכולים להיות תמונה, קול או מסר נסתר בתוכנה או במשחק מחשב, בדיחה או חתימה אישית של המתכנת בשורות הקוד שלהן, רמזים על הגרסה הבאה, דמות משעשעת שמשמיעה קול או מזכירה דמות בסרט אנימציה, תגובה משעשעת של התוכנה לפעולה סודית שעוברת מפה לאוזן בצ'אטים ברשת ועד לכיתוב חבוי על רכיב חומרה ועוד.
ה"ביצים" הללו כבר הפכו לחלק מהווי הרשת. לכל חברה שמכבדת את עצמה יש איסטר-אגס שמוכמנים בתוך מוצריה או אתריה. לא פעם אף תוצג ביצת האיסטר בחלון ה-"אודות" של התוכנה. חלק מה"ביצים" ידועים ומפורסמים בכל פינה ברשת, בעוד אחרים ממתינים ל"חנון" שיחשוף ויספר עליהם לכולם.
נסו דוגמה לאיסטר אג בגוגל תרגום:
הדביקו בגוגל טרנסלייט את הרצף הבא:
pv zk pv pv zk pv zk kz zk pv pv pv zk pv zk zk pzk pzk pvzkpkzvpvzk kkkkkk bsch
ואז בחרו תרגום מגרמנית לגרמנית ולחצו על אייקון הרמקול הקטן שישמיע את התוצאה.
הנה ביצי הפסחא הגדולות של משחקי המחשב:
https://youtu.be/sirz0TnTje4
איך הפכה שפת התכנות פייתון ללוהטת?
מבין שפות התכנות הרבות נחשבת שפת התכנות פייתון (Python) לאחת משפות הפיתוח הפופולריות ביותר בעולם. זוהי שפה אינטואיטיבית, מובנת ובעלת תחביר קליט ופשוט למדי.
המקור לשם השפה איננו מנחש החנק הענקי, הפיתון. ההשראה היא דווקא סדרת המערכונים הבריטית “מונטי-פייתון”, שהמתכנת ההולנדי שפיתח את שפת התכנות כל כך העריץ.
כשפת תכנות פייתון פופולרית ומועדפת על ידי מתכנתים, מסטארט-אפים וחברות קטנות ועד מי שמפתחים בחברות ענק, כולל גוגל ואינסטגרם.
בשפת פייתון משתמשים כיום מרבית החוקרים והמפתחים בתחומי הבינה המלאכותית, לצד מדעני נתונים ומנתחי מידע, במיוחד עם צמיחת טכנולוגיות כמו למידת מכונה (Machine learning) ולמידה עמוקה (Deep learning) בעשור האחרון.
סוגי פרויקטים שנוטים לפתח בפייתון הם בתחומי תוכנה וקוד מגוונים. ביניהם בולטים יישומי WEB, כלי בינה מלאכותית, פרויקטים של אוטומציה, עיבוד נתונים, מדע נתונים (Data science), אנליזה או ניתוח נתונים (Data analysis), רשתות, אינטרנט, כלים לעיבוד תמונה ועוד.
למעשה, בשנת 2024 פייתון היא כל כך פופולרית, שלראשונה עברה את ג'אווה סקריפט (JavaScript) בתור שפת התכנות הפופולרית ביותר בעולם. בדו"ח שפרסם אתר הקוד העיקרי "גיטהאב" הוא הודיע לראשונה שפייתון עקפה את JavaScript והפכה לשפת התכנות הפופולרית ביותר בעולם.
הסיבה לצמיחה ולשינוי הזה לטובת פייתון היא הזינוק המטורף בשימוש ב-GenAI, בינה יצירתית או גנרטיבית (Generative AI). הפיתוח הגובר של כלי GenAI, על פי גיטהאב, והזינוק בפיתוחים מבוססי דאטה סיינס ודאטה אנליטיקס, הביאו לנסיקה בשימוש בפייתון, הידועה כשפה העיקרית בה משתמשים לפיתוחים אלו.
#יתרונות פייתון
כבר שנים רבות שמהנדסי תוכנה ומתכנתים ותיקים ממליצים על פייתון או ג'אווה סקריפט, בתור שפות התכנות שהכי כדאי להם להתחיל בהן. מי שמשקיעים שעתיים ביום יכולים כבר אחרי 3 חודשים לכתוב תוכנה של ממש.
לאחר מכן כדאי להתמחות באחד התחומים שהיא מאפשרת וטובה בהם, כמו פיתוח יישום ווב (web application), תוכנה רגילה למחשב (Desktop program), למידת מכונה (Machine learning) או בינה מלאכותית (Artificial intelligence).
הנה סקירה קצרה על שפת פייתון (עברית):
https://youtu.be/cKZ0miaDtkw
עוד קצת היכרות עם שפת פייתון (עברית):
https://youtu.be/A7XXmxU3o4o
תמצית בדקה של מה שלומדים בפייתון בשנה:
https://youtu.be/AfR-lJghs4w
היכרות באנגלית:
https://youtu.be/poJfwre2PIs
קורס באורך מלא של תכנות בשפת פייתון:
https://youtu.be/_uQrJ0TkZlc?long=yes
מבין שפות התכנות הרבות נחשבת שפת התכנות פייתון (Python) לאחת משפות הפיתוח הפופולריות ביותר בעולם. זוהי שפה אינטואיטיבית, מובנת ובעלת תחביר קליט ופשוט למדי.
המקור לשם השפה איננו מנחש החנק הענקי, הפיתון. ההשראה היא דווקא סדרת המערכונים הבריטית “מונטי-פייתון”, שהמתכנת ההולנדי שפיתח את שפת התכנות כל כך העריץ.
כשפת תכנות פייתון פופולרית ומועדפת על ידי מתכנתים, מסטארט-אפים וחברות קטנות ועד מי שמפתחים בחברות ענק, כולל גוגל ואינסטגרם.
בשפת פייתון משתמשים כיום מרבית החוקרים והמפתחים בתחומי הבינה המלאכותית, לצד מדעני נתונים ומנתחי מידע, במיוחד עם צמיחת טכנולוגיות כמו למידת מכונה (Machine learning) ולמידה עמוקה (Deep learning) בעשור האחרון.
סוגי פרויקטים שנוטים לפתח בפייתון הם בתחומי תוכנה וקוד מגוונים. ביניהם בולטים יישומי WEB, כלי בינה מלאכותית, פרויקטים של אוטומציה, עיבוד נתונים, מדע נתונים (Data science), אנליזה או ניתוח נתונים (Data analysis), רשתות, אינטרנט, כלים לעיבוד תמונה ועוד.
למעשה, בשנת 2024 פייתון היא כל כך פופולרית, שלראשונה עברה את ג'אווה סקריפט (JavaScript) בתור שפת התכנות הפופולרית ביותר בעולם. בדו"ח שפרסם אתר הקוד העיקרי "גיטהאב" הוא הודיע לראשונה שפייתון עקפה את JavaScript והפכה לשפת התכנות הפופולרית ביותר בעולם.
הסיבה לצמיחה ולשינוי הזה לטובת פייתון היא הזינוק המטורף בשימוש ב-GenAI, בינה יצירתית או גנרטיבית (Generative AI). הפיתוח הגובר של כלי GenAI, על פי גיטהאב, והזינוק בפיתוחים מבוססי דאטה סיינס ודאטה אנליטיקס, הביאו לנסיקה בשימוש בפייתון, הידועה כשפה העיקרית בה משתמשים לפיתוחים אלו.
#יתרונות פייתון
כבר שנים רבות שמהנדסי תוכנה ומתכנתים ותיקים ממליצים על פייתון או ג'אווה סקריפט, בתור שפות התכנות שהכי כדאי להם להתחיל בהן. מי שמשקיעים שעתיים ביום יכולים כבר אחרי 3 חודשים לכתוב תוכנה של ממש.
לאחר מכן כדאי להתמחות באחד התחומים שהיא מאפשרת וטובה בהם, כמו פיתוח יישום ווב (web application), תוכנה רגילה למחשב (Desktop program), למידת מכונה (Machine learning) או בינה מלאכותית (Artificial intelligence).
הנה סקירה קצרה על שפת פייתון (עברית):
https://youtu.be/cKZ0miaDtkw
עוד קצת היכרות עם שפת פייתון (עברית):
https://youtu.be/A7XXmxU3o4o
תמצית בדקה של מה שלומדים בפייתון בשנה:
https://youtu.be/AfR-lJghs4w
היכרות באנגלית:
https://youtu.be/poJfwre2PIs
קורס באורך מלא של תכנות בשפת פייתון:
https://youtu.be/_uQrJ0TkZlc?long=yes
מהו משולש סירפינסקי?
משולש שרפינסקי, שנקרא גם ספוג שרפינסקי או משולש סירפינסקי, הוא אחד הפרקטלים המפורסמים. את ההיכרות עימו עשו המתמטיקאים בשנת 1915. המשולש קיבל את שמו מהמתמטיקאי הפולני שתיאר אותו לראשונה, ואצלב שרפינסקי.
משולש שרפינסקי הוא דוגמה מצוינת ופשוטה במיוחד לפרקטל, צורה שמורכבת מעותקים מוקטנים של עצמה, עד אינסוף. הוא בנוי משלושה עותקים שלו שהוקטנו בחצי שוב ושוב.
הנה משולש סרפינסקי שלא נגמר, להדגמת הרקורסיה הפשוטה:
http://youtu.be/QsMvoui5WlQ?t=10s
סרט אפל מתורגם ומדהים על הפרקטלים ומשולש שרפינסקי בתוכם (מתורגם):
https://youtu.be/0C75vRVL5lE
סרטון בגרפיקת מחשב של "משולש סירפינסקי" שנבנה ברקורסיה בתלת-מימד:
http://youtu.be/P5EkdJRtF-4
משולש שרפינסקי מסוכריות של החג הנוצרי המעט מפחיד "ליל כל הקדושים":
http://youtu.be/z8ZWlUamNPI
וכך יוצרים פרקטלים כמו משולש סרפינסקי:
http://youtu.be/XwWyTts06tU?t=1m22s
משולש שרפינסקי, שנקרא גם ספוג שרפינסקי או משולש סירפינסקי, הוא אחד הפרקטלים המפורסמים. את ההיכרות עימו עשו המתמטיקאים בשנת 1915. המשולש קיבל את שמו מהמתמטיקאי הפולני שתיאר אותו לראשונה, ואצלב שרפינסקי.
משולש שרפינסקי הוא דוגמה מצוינת ופשוטה במיוחד לפרקטל, צורה שמורכבת מעותקים מוקטנים של עצמה, עד אינסוף. הוא בנוי משלושה עותקים שלו שהוקטנו בחצי שוב ושוב.
הנה משולש סרפינסקי שלא נגמר, להדגמת הרקורסיה הפשוטה:
http://youtu.be/QsMvoui5WlQ?t=10s
סרט אפל מתורגם ומדהים על הפרקטלים ומשולש שרפינסקי בתוכם (מתורגם):
https://youtu.be/0C75vRVL5lE
סרטון בגרפיקת מחשב של "משולש סירפינסקי" שנבנה ברקורסיה בתלת-מימד:
http://youtu.be/P5EkdJRtF-4
משולש שרפינסקי מסוכריות של החג הנוצרי המעט מפחיד "ליל כל הקדושים":
http://youtu.be/z8ZWlUamNPI
וכך יוצרים פרקטלים כמו משולש סרפינסקי:
http://youtu.be/XwWyTts06tU?t=1m22s
איפה יש פרקטלים בטבע?
ודאי היכרתם או קראתם באאוריקה על הפרקטלים, אותן צורות מתמטיות מיוחדות שהתגלו על ידי חוקר הפרקטלים בנואה מנדלברוט והעסיקו חוקרים רבים מתחילת המאה ה-20.
את הפרקטלים ניתן לזהות בכך שיש להם דמיון עצמי. כלומר, כל חלק בהם דומה לדבר השלם. גם בטבע ישנם לא מעט דברים שאם נביט בחלק קטן מהם נגלה את אותה צורה של השלם - בקנה מידה קטן. וגם בחלק הקטן הזה, אם נביט בעזרת זכוכית מגדלת, נוכל לראות שחלקיו שלו דומים גם הם לשלם וחלק הזה וכך זה יכול להמשיך עוד ועוד פנימה. תמיד אותה צורה ושמה...
אז אומרים לכם שכל כך הרבה פרקטלים יש בטבע ואפשר לראותם כמעט בכל מקום. אבל איפה זה בדיוק בכל מקום?
ובכן, בכרובית, בברקים, בריאות, שרכים, מפלים, בפתיתי שלג, בנימי העלה, בענפי העצים, גבישי הקרח, בענני קומולוס, בכלי הדם שלנו, בבועות סבון, בחופי ים מפורצים של פיורדים נורווגיים או בחופי אגמים כמו אגם נאצר שבמצרים, בשוניות אלמוגים במעמקי הים ועד לגלקסיות הענקיות שבחלל.
כן. בטבע נוכל למצוא צורות רבות שיש להן תכונות פרקטליות. דוגמה מפורטת היא לצלם את אורכו של חוף ים ממטוס ולראות שצורתו דומה מאד לזו שנראה בטיול לאורך החוף, כשנביט בפרטים הקטנים שלו. גם מדידת אורכו של קו החוף תגלה לנו דבר מדהים - אורכו הוא בפשטות אינסופי. זה קורה משום שקנה המידה משפיע על המדידה. אם נחשב אורך חוף מתמונת לוויין נקבל אורך קטן בהרבה מזה שיתקבל אם נמדוד את הדרך שעושה נמלה ההולכת לאורכו. הסיבה היא שהשיפולים והשיפועים שחווה הנמלה בקו החוף מאריכים לה את הדרך בטירוף. זה סוג של פרקטל - הנמלה רואה את צורת קו החוף, שהיא זהה לצורה שמצלם הלווים מהחלל.
פרקטלית היא גם הכרובית למשל. אם נחתוך אותה לאורך, נראה שיש בה התפצלויות שיוצרות המון כרוביות קטנות, שבעצמן מתפצלות כל אחת לכרוביות זעירות, שבכל אחת יש כרוביות מיקרוסקופיות והלאה.
בצורה דומה מתפצלות הריאות שלנו או כלי הדם שבגופנו. אבל אתם לא יכולים להביט אל תוך הלב, אז קחו עלה של עץ או שיח ושימו לב לנימים של העלה. נכון שהם מסתעפים ומתפצלים עוד ועוד, כשמכל נים יוצאים נימים קטנים, שמהם יוצאים נימים זעירים וכך הלאה? - גם בכלי הדם שבגופנו יוצאים כך עשרות כלי דם קטנים מכל אחד, בתבנית החוזרת על עצמה שוב ושוב, עד לנימים זעירים ודקיקים במיוחד.
הנה הסבר הפרקטלים שבטבע:
https://youtu.be/Tm0U2VxFd8Q
שלל פרקטלים טבעיים:
https://youtu.be/4IRLvYOZD8A
עוד פרקטלים בטבע:
https://youtu.be/XwWyTts06tU
ואובייקטים טבעיים שהם פרקטלים:
https://youtu.be/dZM45mfJQ40
ודאי היכרתם או קראתם באאוריקה על הפרקטלים, אותן צורות מתמטיות מיוחדות שהתגלו על ידי חוקר הפרקטלים בנואה מנדלברוט והעסיקו חוקרים רבים מתחילת המאה ה-20.
את הפרקטלים ניתן לזהות בכך שיש להם דמיון עצמי. כלומר, כל חלק בהם דומה לדבר השלם. גם בטבע ישנם לא מעט דברים שאם נביט בחלק קטן מהם נגלה את אותה צורה של השלם - בקנה מידה קטן. וגם בחלק הקטן הזה, אם נביט בעזרת זכוכית מגדלת, נוכל לראות שחלקיו שלו דומים גם הם לשלם וחלק הזה וכך זה יכול להמשיך עוד ועוד פנימה. תמיד אותה צורה ושמה...
אז אומרים לכם שכל כך הרבה פרקטלים יש בטבע ואפשר לראותם כמעט בכל מקום. אבל איפה זה בדיוק בכל מקום?
ובכן, בכרובית, בברקים, בריאות, שרכים, מפלים, בפתיתי שלג, בנימי העלה, בענפי העצים, גבישי הקרח, בענני קומולוס, בכלי הדם שלנו, בבועות סבון, בחופי ים מפורצים של פיורדים נורווגיים או בחופי אגמים כמו אגם נאצר שבמצרים, בשוניות אלמוגים במעמקי הים ועד לגלקסיות הענקיות שבחלל.
כן. בטבע נוכל למצוא צורות רבות שיש להן תכונות פרקטליות. דוגמה מפורטת היא לצלם את אורכו של חוף ים ממטוס ולראות שצורתו דומה מאד לזו שנראה בטיול לאורך החוף, כשנביט בפרטים הקטנים שלו. גם מדידת אורכו של קו החוף תגלה לנו דבר מדהים - אורכו הוא בפשטות אינסופי. זה קורה משום שקנה המידה משפיע על המדידה. אם נחשב אורך חוף מתמונת לוויין נקבל אורך קטן בהרבה מזה שיתקבל אם נמדוד את הדרך שעושה נמלה ההולכת לאורכו. הסיבה היא שהשיפולים והשיפועים שחווה הנמלה בקו החוף מאריכים לה את הדרך בטירוף. זה סוג של פרקטל - הנמלה רואה את צורת קו החוף, שהיא זהה לצורה שמצלם הלווים מהחלל.
פרקטלית היא גם הכרובית למשל. אם נחתוך אותה לאורך, נראה שיש בה התפצלויות שיוצרות המון כרוביות קטנות, שבעצמן מתפצלות כל אחת לכרוביות זעירות, שבכל אחת יש כרוביות מיקרוסקופיות והלאה.
בצורה דומה מתפצלות הריאות שלנו או כלי הדם שבגופנו. אבל אתם לא יכולים להביט אל תוך הלב, אז קחו עלה של עץ או שיח ושימו לב לנימים של העלה. נכון שהם מסתעפים ומתפצלים עוד ועוד, כשמכל נים יוצאים נימים קטנים, שמהם יוצאים נימים זעירים וכך הלאה? - גם בכלי הדם שבגופנו יוצאים כך עשרות כלי דם קטנים מכל אחד, בתבנית החוזרת על עצמה שוב ושוב, עד לנימים זעירים ודקיקים במיוחד.
הנה הסבר הפרקטלים שבטבע:
https://youtu.be/Tm0U2VxFd8Q
שלל פרקטלים טבעיים:
https://youtu.be/4IRLvYOZD8A
עוד פרקטלים בטבע:
https://youtu.be/XwWyTts06tU
ואובייקטים טבעיים שהם פרקטלים:
https://youtu.be/dZM45mfJQ40
מהו רספברי פיי המחשב האישי הזול בעולם?
אם היינו אומרים לכם שיש מחשב שעולה בסביבות 100 שקלים בלבד למחשב חדש, הייתם מאמינים?
הרספברי פיי (באנגלית Raspberry Pi) הוא מחשב זעיר שנקרא על שם פרי הפטל. מה שיש בו זה בעצם רק מעגל מודפס וזהו. כרטיס זיכרון מחליף בו את הכונן הקשיח. מדובר במחשב זעיר וזול במיוחד שניתן להרכיב ממנו מכשירים ממוחשבים מסוגים שונים ושזוכה להצלחה אדירה בקרב חובבי המחשבים. הוא זוכה לאהדה שמזכירה רק מכשירים מיתולוגיים, כמו האייפון כשרק יצא או האייפד הראשון.
רספברי פיי פותח במקור כמחשב קטן, זול ופשוט, שיהיה כלי לימוד לילדים. הוא פותח עבור לימודי מחשבים בבתי הספר, בחוגי מחשבים וטכנולוגיה ולילדים שיחקרו אותו לבד. הרעיון של מפתחיו היה שהפיי יאפשר להעלות את רמת תלמידי המחשבים למה שהייתה פעם, כשילדים היו מרכיבים ומפרקים מחשבים פשוטים ולומדים לתכנת אותם ואז מתבגרים להיות גיקים מבריקים שמקימים חברות כמו אפל ומיקרוסופט, או לפחות הופכים למתכנתים ברמה גבוהה. מה שהטריד את המפתחים היה שהמחשבים הסגורים והיקרים של ימינו לא מאפשרים לילדים לחקור אותם ולהרכיב בדרכים מעניינות ויצירתיות מספיק.
בפיי יש אפילו פינים שאין במחשבים רגילים ושמאפשרים לחבר ולתכנת אותו, כך שיעבוד עם חיישנים, בקרים של מנועים חשמליים ושאר הרכיבים שמאפשרים ליצור מכונות ומכשירים חדשניים ויצירתיים. הוא נועד להכין את הדור הבא של חובבי האלקטרוניקה, התכנות והיזמים שייצרו את העתיד של עולם ה"אינטרנט של הדברים".
הנה מחשב הרספברי פיי:
http://youtu.be/e0wkVVVLvR8
כך החליטו לייצר מחשב שיאפשר לפתח בילדים סקרנות למחשוב:
http://youtu.be/XBRkErt6VXU
מחשב להרכבה לילדים שמתבסס על רספברי (מתורגם):
http://youtu.be/n5VVNmVqF6Y
הנה מחשב זעיר למשחקי מחשב שפותח בעזרת הפיי:
http://youtu.be/5npkz0xY1fo
אם היינו אומרים לכם שיש מחשב שעולה בסביבות 100 שקלים בלבד למחשב חדש, הייתם מאמינים?
הרספברי פיי (באנגלית Raspberry Pi) הוא מחשב זעיר שנקרא על שם פרי הפטל. מה שיש בו זה בעצם רק מעגל מודפס וזהו. כרטיס זיכרון מחליף בו את הכונן הקשיח. מדובר במחשב זעיר וזול במיוחד שניתן להרכיב ממנו מכשירים ממוחשבים מסוגים שונים ושזוכה להצלחה אדירה בקרב חובבי המחשבים. הוא זוכה לאהדה שמזכירה רק מכשירים מיתולוגיים, כמו האייפון כשרק יצא או האייפד הראשון.
רספברי פיי פותח במקור כמחשב קטן, זול ופשוט, שיהיה כלי לימוד לילדים. הוא פותח עבור לימודי מחשבים בבתי הספר, בחוגי מחשבים וטכנולוגיה ולילדים שיחקרו אותו לבד. הרעיון של מפתחיו היה שהפיי יאפשר להעלות את רמת תלמידי המחשבים למה שהייתה פעם, כשילדים היו מרכיבים ומפרקים מחשבים פשוטים ולומדים לתכנת אותם ואז מתבגרים להיות גיקים מבריקים שמקימים חברות כמו אפל ומיקרוסופט, או לפחות הופכים למתכנתים ברמה גבוהה. מה שהטריד את המפתחים היה שהמחשבים הסגורים והיקרים של ימינו לא מאפשרים לילדים לחקור אותם ולהרכיב בדרכים מעניינות ויצירתיות מספיק.
בפיי יש אפילו פינים שאין במחשבים רגילים ושמאפשרים לחבר ולתכנת אותו, כך שיעבוד עם חיישנים, בקרים של מנועים חשמליים ושאר הרכיבים שמאפשרים ליצור מכונות ומכשירים חדשניים ויצירתיים. הוא נועד להכין את הדור הבא של חובבי האלקטרוניקה, התכנות והיזמים שייצרו את העתיד של עולם ה"אינטרנט של הדברים".
הנה מחשב הרספברי פיי:
http://youtu.be/e0wkVVVLvR8
כך החליטו לייצר מחשב שיאפשר לפתח בילדים סקרנות למחשוב:
http://youtu.be/XBRkErt6VXU
מחשב להרכבה לילדים שמתבסס על רספברי (מתורגם):
http://youtu.be/n5VVNmVqF6Y
הנה מחשב זעיר למשחקי מחשב שפותח בעזרת הפיי:
http://youtu.be/5npkz0xY1fo
מהן שפות תכנות?
שפת תכנות (Programming language) היא שפה המובנת למחשב. קוד שנכתב בשפת התכנות הוא בעצם תוכנה, או חלק מתוכנה. כלומר קוד כזה הוא סדרה של פקודות שגורמות למחשב לבצע פעולות שונות ומגוונות.
את התחומים הללו ששפות התכנות מסוגלות לגרום למחשב לבצע, אתם מכירים היטב ונתקלים בהם כל יום וכל היום. מניווט מנקודה לנקודה (כן, גם טלפון חכם הוא מחשב!), דרך כתיבה ושליחה של מייל לאדם אחר, הפעלה של משחק מחשב, ציור במחשב או השמעת מוסיקה וכדומה.
שפת תכנות היא הכלי שמאפשר לבני אדם, לרוב בעלי מקצוע הידועים כ"מתכנתים", לתקשר עם מחשבים ולתת להם הוראות.
השפה הזו מאפשרת את קיומו של תִּכְנוּת המחשבים, אחד המקצועות המרכזיים של עידן המחשב.
לכל שפת תכנות יש סדרה של עקרונות וכללים מוגדרים. יש לה תחביר - כלומר דרך שבה יש לנסח את הפקודות שנותן המתכנת למחשב. כך יכול המתכנת לכתוב את קוד המקור של תכנית המחשב ובסיומו, לאחר ניפוי ותיקון השגיאות, מבצעת התכנית את תפקידה.
בחירת שפת התכנות המתאימה על ידי המתכנתת תהיה על פי אופי הפרויקט, תכונות השפה והתאמתה למקום עבודה והתמחותו.
בשפות תכנות מודרניות יש שימוש רב באובייקטים. בין השאר זה אומר שקוד המקור, כלומר מה שהמתכנת כותב, משתמש לא פעם ברכיבים שנכתבו על ידי אחרים ושותפו על ידם לטובת הכלל. כך יוצא שכתיבה בשפת תכנות כזו מתבססת לא פעם על הרחבות חיצוניות, המכונות "ספריות".
כיום, בעידן האינטרנט, יש שפות תכנות שמתמחות בצד השרת (אותו מחשב משוכלל שנמצא ב"ענן" ומבצע פעולות שיישלחו בדרך כלל לדפדפן שלנו) ואחרות מתמחות בצד המשתמש, הקליינט, כלומר שפועלות על ובמחשב שלנו.
שפת התכנות Javacript למשל, היא שפה שמתמחה בצד המשתמש, קליינט סייד. פייתון (Python), בניגוד לה, היא שפה המשמשת בעיקר לצד השרת, סרוור סייד.
רק להמחשה של העניין - שתיהן מהשפות הכי פופולריות ומוצלחות. הראשונה היא אולי השפה הכי נפוצה בימינו והשניה Python, היא אולי השפה הכי קלה ללימוד של מתחילים ועדיין היא שפה מעולה לפיתוחי צד שרת ולתעשיית הסייבר. Python (קורס מלא ומתורגם לעברית בסרטון האחרון) היא גם השפה העיקרית של עולם הלמידה העמוקה (Deep Learning) - העתיד של הבינה המלאכותית, שהולך ומשנה את עולם האינטרנט כיום.
מהי שפת תכנות? (עברית):
https://youtu.be/ur7o0dAUDTg
הכוח והיופי שבתכנות (מתורגם):
https://youtu.be/crw_U-UgvcY
על המצאת שפת התכנות:
https://youtu.be/Wchru8alhaE
מתכנת מסביר על שפות תוכנה שונות (עברית):
https://youtu.be/7Baq_Xw4azM
שפות התכנות הפופולריות ב-50 שנה האחרונות ועד היום:
https://youtu.be/Og847HVwRSI
ההיסטוריה של שפות התכנות:
https://youtu.be/mhpslN-OD_o?long=yes
וקורס מלא לשפת פייתון הפופולרית, קלה ומצליחה מאוד (מתורגם):
https://youtu.be/rfscVS0vtbw?long=yes
שפת תכנות (Programming language) היא שפה המובנת למחשב. קוד שנכתב בשפת התכנות הוא בעצם תוכנה, או חלק מתוכנה. כלומר קוד כזה הוא סדרה של פקודות שגורמות למחשב לבצע פעולות שונות ומגוונות.
את התחומים הללו ששפות התכנות מסוגלות לגרום למחשב לבצע, אתם מכירים היטב ונתקלים בהם כל יום וכל היום. מניווט מנקודה לנקודה (כן, גם טלפון חכם הוא מחשב!), דרך כתיבה ושליחה של מייל לאדם אחר, הפעלה של משחק מחשב, ציור במחשב או השמעת מוסיקה וכדומה.
שפת תכנות היא הכלי שמאפשר לבני אדם, לרוב בעלי מקצוע הידועים כ"מתכנתים", לתקשר עם מחשבים ולתת להם הוראות.
השפה הזו מאפשרת את קיומו של תִּכְנוּת המחשבים, אחד המקצועות המרכזיים של עידן המחשב.
לכל שפת תכנות יש סדרה של עקרונות וכללים מוגדרים. יש לה תחביר - כלומר דרך שבה יש לנסח את הפקודות שנותן המתכנת למחשב. כך יכול המתכנת לכתוב את קוד המקור של תכנית המחשב ובסיומו, לאחר ניפוי ותיקון השגיאות, מבצעת התכנית את תפקידה.
בחירת שפת התכנות המתאימה על ידי המתכנתת תהיה על פי אופי הפרויקט, תכונות השפה והתאמתה למקום עבודה והתמחותו.
בשפות תכנות מודרניות יש שימוש רב באובייקטים. בין השאר זה אומר שקוד המקור, כלומר מה שהמתכנת כותב, משתמש לא פעם ברכיבים שנכתבו על ידי אחרים ושותפו על ידם לטובת הכלל. כך יוצא שכתיבה בשפת תכנות כזו מתבססת לא פעם על הרחבות חיצוניות, המכונות "ספריות".
כיום, בעידן האינטרנט, יש שפות תכנות שמתמחות בצד השרת (אותו מחשב משוכלל שנמצא ב"ענן" ומבצע פעולות שיישלחו בדרך כלל לדפדפן שלנו) ואחרות מתמחות בצד המשתמש, הקליינט, כלומר שפועלות על ובמחשב שלנו.
שפת התכנות Javacript למשל, היא שפה שמתמחה בצד המשתמש, קליינט סייד. פייתון (Python), בניגוד לה, היא שפה המשמשת בעיקר לצד השרת, סרוור סייד.
רק להמחשה של העניין - שתיהן מהשפות הכי פופולריות ומוצלחות. הראשונה היא אולי השפה הכי נפוצה בימינו והשניה Python, היא אולי השפה הכי קלה ללימוד של מתחילים ועדיין היא שפה מעולה לפיתוחי צד שרת ולתעשיית הסייבר. Python (קורס מלא ומתורגם לעברית בסרטון האחרון) היא גם השפה העיקרית של עולם הלמידה העמוקה (Deep Learning) - העתיד של הבינה המלאכותית, שהולך ומשנה את עולם האינטרנט כיום.
מהי שפת תכנות? (עברית):
https://youtu.be/ur7o0dAUDTg
הכוח והיופי שבתכנות (מתורגם):
https://youtu.be/crw_U-UgvcY
על המצאת שפת התכנות:
https://youtu.be/Wchru8alhaE
מתכנת מסביר על שפות תוכנה שונות (עברית):
https://youtu.be/7Baq_Xw4azM
שפות התכנות הפופולריות ב-50 שנה האחרונות ועד היום:
https://youtu.be/Og847HVwRSI
ההיסטוריה של שפות התכנות:
https://youtu.be/mhpslN-OD_o?long=yes
וקורס מלא לשפת פייתון הפופולרית, קלה ומצליחה מאוד (מתורגם):
https://youtu.be/rfscVS0vtbw?long=yes
מהו המחשב בתוך מקלדת?
רבים שמעו ודאי על מחשב ה"רספברי פיי", המחשב האישי הזול בעולם והקטן שבהם. המחשב הזה, שנמכר בדרך כלל כמעגל מודפס, עם כל החיבורים הדרושים, אך ללא כל מארז, השתנה עם הזמן מעט.
מקלדת Pi 400 שהוציאה החברה (Raspberry Pi 400) הייתה הראשונה שהכילה בתוכה מחשב מובנה שלם. המעניין ביותר הוא שהמקלדת לא הייתה שונה ממקלדות רגילות שנמכרות בחנויות ובסדר המקשים אף דומה לאלה של המחשבים הניידים הקומפקטיים ביותר.
סדרת מחשבי ה-Pi ובכללם Pi 400 מציעה פתרון פשוט למחשב בסיסי וזול. בניגוד למחשבים קודמים של רספברי פיי, על מנת להשתמש ב-Pi 400, אין ולא היה כל צורך בידע מוקדם שהוא - לא בתוכנה ולא בחומרה.
אבל למחשב הזה יש מטרה נסתרת ודי טובה. כמו מחשבים ביתיים משנות ה-80, שאותם היא הזכירה, דוגמת BBC Micro או ZX Spectrum, גם Pi 400 נועדה לפתות ילדים ובני נוער לקנות מחשב שיגרום להם להתעניין בתכנות ועם השנים להפוך למתכנתים". או כמו שסיפר פעם מייסד רספברי פיי, אבן אפטון, לאתר The Verge - שבילדותו התפתה לקנות מחשב מיקרו של BBC ולפתע הוא גילה שהפך להיות מהנדס תוכנה...
הנה מקלדת ה-Pi 400 עם מחשב הרספברי פיי המובנה:
https://youtu.be/0E9qZNk9D_M
היכרות עם המקלדת שכוללת הכל:
https://youtu.be/OqpylxLhw98
בלוגרים מעולם הלינוקס מתפייטים:
https://youtu.be/rLsXTOHJUMs
הפרטים:
https://youtu.be/JTk0x3IXhjo
וההסבר:
https://youtu.be/xt-QVoZ682o
רבים שמעו ודאי על מחשב ה"רספברי פיי", המחשב האישי הזול בעולם והקטן שבהם. המחשב הזה, שנמכר בדרך כלל כמעגל מודפס, עם כל החיבורים הדרושים, אך ללא כל מארז, השתנה עם הזמן מעט.
מקלדת Pi 400 שהוציאה החברה (Raspberry Pi 400) הייתה הראשונה שהכילה בתוכה מחשב מובנה שלם. המעניין ביותר הוא שהמקלדת לא הייתה שונה ממקלדות רגילות שנמכרות בחנויות ובסדר המקשים אף דומה לאלה של המחשבים הניידים הקומפקטיים ביותר.
סדרת מחשבי ה-Pi ובכללם Pi 400 מציעה פתרון פשוט למחשב בסיסי וזול. בניגוד למחשבים קודמים של רספברי פיי, על מנת להשתמש ב-Pi 400, אין ולא היה כל צורך בידע מוקדם שהוא - לא בתוכנה ולא בחומרה.
אבל למחשב הזה יש מטרה נסתרת ודי טובה. כמו מחשבים ביתיים משנות ה-80, שאותם היא הזכירה, דוגמת BBC Micro או ZX Spectrum, גם Pi 400 נועדה לפתות ילדים ובני נוער לקנות מחשב שיגרום להם להתעניין בתכנות ועם השנים להפוך למתכנתים". או כמו שסיפר פעם מייסד רספברי פיי, אבן אפטון, לאתר The Verge - שבילדותו התפתה לקנות מחשב מיקרו של BBC ולפתע הוא גילה שהפך להיות מהנדס תוכנה...
הנה מקלדת ה-Pi 400 עם מחשב הרספברי פיי המובנה:
https://youtu.be/0E9qZNk9D_M
היכרות עם המקלדת שכוללת הכל:
https://youtu.be/OqpylxLhw98
בלוגרים מעולם הלינוקס מתפייטים:
https://youtu.be/rLsXTOHJUMs
הפרטים:
https://youtu.be/JTk0x3IXhjo
וההסבר:
https://youtu.be/xt-QVoZ682o
מה תרמו תוכנת הייפרקארד ושפת הייפרטוק לעולם?
כשיצא מחשב המקינטוש, בשנות ה-80, הוכנסה לחבילת התוכנה המצורפת לו בין השאר תוכנה חביבה אחת, חינמית ולא ידועה, שכמעט ושינתה את העולם. קראו לה "הייפרקארד" (Hypercard) והיא הייתה תוכנה לבניית תוכנות מידע, לומדות לחינוך והדרכה ובסיסי נתונים שימושיים. היא הייתה מהפכה בהרגלי התכנות ומה שמפתיע שכמעט ולא השתמשו בה ילדים, קהל היעד העיקרי בשנים אלה לשפות תכנות מסוגה. מי שעשו בה שימוש הם דווקא מבוגרים ואנשי מקצוע משלל מקצועות ותחומי עיסוק.
הייפרקארד הציעה סביבה נוחה לפיתוח תוכנה באמצעות אובייקטים. הדימוי היה של כרטיסים, קארדס, כשכל מסך הוא כרטיס. אם רצית לבנות מערכת מידע של תקופות היסטוריות, יכולת לקבוע רקע (BackGround) אחיד, בעוד שהכרטיסים השתנו בו - כל תקופה והכרטיס שלה. אם אובייקט מוקם ברקע, הוא הופיע אוטומטית ותפקד בכל הכרטיסים. אובייקטים שמוקמו בכרטיס מסוים - הופיעו ופעלו רק בו. כל תוכנה של הייפרקארד נקראה "Stack", חבילה או אוסף של כרטיסים. בחבילה כזו יכולים היו להיות כמה רקעים שרציתם ובכל רקע יכולים המפתחים להציב כמה כרטיסים שירצו.
זה היה חדשני ועובד. עשרות אלפי מורים ואנשי מידע יצרו בצורה קלה ומהירה תוכנות שעבדו טוב ומהר. במקום קומפילציה, הייפרקארד עשתה המרה של הקוד מ-HyperTalk, שפת התכנות שלה, לשפת מכונה. הייפרקארד הייתה שפת סקריפט שאפשרה לדברים לעבוד מיד. איטית מעט יותר - אבל עובדת היטב!
הייפרקארד נקלטה במהירות שלא תאומן בשוק החינוך האמריקאי. במערכת החינוך של ארצות הברית באותה תקופה היו אחוזים גבוהים של מחשבי מקינטוש - יותר מכל מערכת הפעלה אחרת. כך הפכה HyperCard לתוכנה שאלפי משתמשים רגילים יצרו בה מערכי לימוד ללא צורך בתכנות.
מפתח הייפרקארד היה ביל אטקינסון, איש חברת Apple וצלם. אבל "אפל" לא הבינה את הפוטנציאל של הייפרקארד והיא הפסיקה בשלב מסוים את הפצת ופיתוח התוכנה. זה עורר זעם רב של המשתמשים והמפתחים, אבל אפל עמדה בסירובה להמשיך ולתמוך במהפכה שהיא יזמה והתקדמה הלאה.
הייפרקרד אולי מתה אבל רוחה ממשיכה להתקיים עד היום. כשיצר טים ברנרס לי את האינטרנט הוא הושפע מאד מתוכנת הייפרקארד, מה שגרם לכך שרעיונות שונים בה עברו אל רשת האינטרנט שתכנן. כך גם עולם ה-CD ROM שהושפע ממנה מאד, עולם הוויקי שאחראי בין השאר לאנציקלופדיית הויקיפדיה, עולם הלומדות, כלומר התוכנות החינוכיות ועוד ועוד. מפתחים ויזמים אינספור סיפרו במהלך השנים שהייפרקרד היה אחד הכלים שהכי השפיעו על האופן שבו הם תפסו והתחברו לעולם המידע והמחשבים.
במקביל, ניסו חברות שונות לפתח סביבות שונות שימשיכו את הרעיונות של התוכנה שהקדימה באופן מסוים את זמנה. גם כיום מפעילה חברה סקוטית סביבת פיתוח מאד דומה ואיכותית, הנקראת Livecode. היא מאפשרת פיתוח מבוסס אובייקטים, בשפת תכנות הדומה לשפה האנושית ועם כלים אינטואיטיביים במיוחד. בין השאר היא מאפשרת ליצור תוכנות ואפליקציות לכל סביבות הפיתוח, בקוד אחד.
הנה תוכנת הייפרקארד:
https://youtu.be/tx_WCIAM4bA
היה לה תפקיד משמעותי בתולדות הקישורים (מתורגם):
https://youtu.be/3Va3oY8pfSI
Stack שפותח בהייפרקארד ומאפשר לשוטט בבית ולחפש אלמנטים:
https://youtu.be/f2ft1uovxaQ
אפילו את תוכנת ההקלטה של הייפרקרד כתבו בהייפרקרד:
https://youtu.be/nkBb-ZqyU18
ביל אטקינסון מסביר שהייפרקארד הייתה בעצם האמא של דפדפן האינטרנט:
https://youtu.be/roT9DhDPI9k
סרט תיעודי על הייפרקארד והמהפכה שעשתה:
https://youtu.be/BeMRoYDc2z8?long=yes
וסרט ארוך על תוכנת הייפרכארד:
https://youtu.be/v9o5Ld8hpug?long=yes
כשיצא מחשב המקינטוש, בשנות ה-80, הוכנסה לחבילת התוכנה המצורפת לו בין השאר תוכנה חביבה אחת, חינמית ולא ידועה, שכמעט ושינתה את העולם. קראו לה "הייפרקארד" (Hypercard) והיא הייתה תוכנה לבניית תוכנות מידע, לומדות לחינוך והדרכה ובסיסי נתונים שימושיים. היא הייתה מהפכה בהרגלי התכנות ומה שמפתיע שכמעט ולא השתמשו בה ילדים, קהל היעד העיקרי בשנים אלה לשפות תכנות מסוגה. מי שעשו בה שימוש הם דווקא מבוגרים ואנשי מקצוע משלל מקצועות ותחומי עיסוק.
הייפרקארד הציעה סביבה נוחה לפיתוח תוכנה באמצעות אובייקטים. הדימוי היה של כרטיסים, קארדס, כשכל מסך הוא כרטיס. אם רצית לבנות מערכת מידע של תקופות היסטוריות, יכולת לקבוע רקע (BackGround) אחיד, בעוד שהכרטיסים השתנו בו - כל תקופה והכרטיס שלה. אם אובייקט מוקם ברקע, הוא הופיע אוטומטית ותפקד בכל הכרטיסים. אובייקטים שמוקמו בכרטיס מסוים - הופיעו ופעלו רק בו. כל תוכנה של הייפרקארד נקראה "Stack", חבילה או אוסף של כרטיסים. בחבילה כזו יכולים היו להיות כמה רקעים שרציתם ובכל רקע יכולים המפתחים להציב כמה כרטיסים שירצו.
זה היה חדשני ועובד. עשרות אלפי מורים ואנשי מידע יצרו בצורה קלה ומהירה תוכנות שעבדו טוב ומהר. במקום קומפילציה, הייפרקארד עשתה המרה של הקוד מ-HyperTalk, שפת התכנות שלה, לשפת מכונה. הייפרקארד הייתה שפת סקריפט שאפשרה לדברים לעבוד מיד. איטית מעט יותר - אבל עובדת היטב!
הייפרקארד נקלטה במהירות שלא תאומן בשוק החינוך האמריקאי. במערכת החינוך של ארצות הברית באותה תקופה היו אחוזים גבוהים של מחשבי מקינטוש - יותר מכל מערכת הפעלה אחרת. כך הפכה HyperCard לתוכנה שאלפי משתמשים רגילים יצרו בה מערכי לימוד ללא צורך בתכנות.
מפתח הייפרקארד היה ביל אטקינסון, איש חברת Apple וצלם. אבל "אפל" לא הבינה את הפוטנציאל של הייפרקארד והיא הפסיקה בשלב מסוים את הפצת ופיתוח התוכנה. זה עורר זעם רב של המשתמשים והמפתחים, אבל אפל עמדה בסירובה להמשיך ולתמוך במהפכה שהיא יזמה והתקדמה הלאה.
הייפרקרד אולי מתה אבל רוחה ממשיכה להתקיים עד היום. כשיצר טים ברנרס לי את האינטרנט הוא הושפע מאד מתוכנת הייפרקארד, מה שגרם לכך שרעיונות שונים בה עברו אל רשת האינטרנט שתכנן. כך גם עולם ה-CD ROM שהושפע ממנה מאד, עולם הוויקי שאחראי בין השאר לאנציקלופדיית הויקיפדיה, עולם הלומדות, כלומר התוכנות החינוכיות ועוד ועוד. מפתחים ויזמים אינספור סיפרו במהלך השנים שהייפרקרד היה אחד הכלים שהכי השפיעו על האופן שבו הם תפסו והתחברו לעולם המידע והמחשבים.
במקביל, ניסו חברות שונות לפתח סביבות שונות שימשיכו את הרעיונות של התוכנה שהקדימה באופן מסוים את זמנה. גם כיום מפעילה חברה סקוטית סביבת פיתוח מאד דומה ואיכותית, הנקראת Livecode. היא מאפשרת פיתוח מבוסס אובייקטים, בשפת תכנות הדומה לשפה האנושית ועם כלים אינטואיטיביים במיוחד. בין השאר היא מאפשרת ליצור תוכנות ואפליקציות לכל סביבות הפיתוח, בקוד אחד.
הנה תוכנת הייפרקארד:
https://youtu.be/tx_WCIAM4bA
היה לה תפקיד משמעותי בתולדות הקישורים (מתורגם):
https://youtu.be/3Va3oY8pfSI
Stack שפותח בהייפרקארד ומאפשר לשוטט בבית ולחפש אלמנטים:
https://youtu.be/f2ft1uovxaQ
אפילו את תוכנת ההקלטה של הייפרקרד כתבו בהייפרקרד:
https://youtu.be/nkBb-ZqyU18
ביל אטקינסון מסביר שהייפרקארד הייתה בעצם האמא של דפדפן האינטרנט:
https://youtu.be/roT9DhDPI9k
סרט תיעודי על הייפרקארד והמהפכה שעשתה:
https://youtu.be/BeMRoYDc2z8?long=yes
וסרט ארוך על תוכנת הייפרכארד:
https://youtu.be/v9o5Ld8hpug?long=yes