קהילת קפתח - תוכנה חופשית, כללי יסוד

אורי עידן

עודכן לאחרונה ב - 16.05.06

משך השיעור

45 דקות. סה"כ בנושא שני שיעורים.

מטרות השיעור

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

קוד פתוח ותוכנה חופשית (זמן לסוף השיעור 00:45)

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

מהי תוכנה חופשית? (זמן לסוף השיעור 00:35)

תוכנה חופשית היא תוכנה שעונה על ארבעת הקריטריונים הבאים:
  1. ניתן להשתמש בה לכל מטרה
  2. ניתן ללמוד כיצד היא עובדת במפנים
  3. אפשר לשנות אותה ולשפר אותה
  4. אפשר להפיץ מחדש את השינויים
חשוב להדגיש שתוכנה חופשית אינה תוכנה חינמית, יתכן שתוכנה מסויימת תיהיה גם חופשית וגם חינמית
אבל עצם זה שתוכנה היא חופשית אינו מבטיח שהיא חינמית.
מאחר ובתוכנה חופשית אין מגבלה על העתקת התוכנה (קיים איסור לשים מגבלה כזו),
במקרים רבים מאד תוכנה חופשית היא גם חינמית.
חשוב להבין שבהגדרת תוכנה חופשית כאשר מדובר על הפצת תוכנה, הדבר יכול להעשות גם בתשלום.
תוכנה חופשית לעולם לא תכיל מגבלות כגון איסור התקנה על יותר ממחשב אחד, איסור הפעלה למטרות
כלשהן או איסור הפעלה על ידי אוכלוסיות כל שהן.מאחר שאחד העקרונות הוא שאפשר ללמוד כיצד תוכנה
חופשית עובדת מבפנים, כותב התוכנה או מפיץ התוכנה חייב להפיץ יחד עם התוכנה את קוד המקור.
מאחר שאפשר לשנות תוכנה חופשית, קוד המקור המופץ חייב לכלול את כל קבצי העזר לצורך יצירת גרסה
חדשה של התוכנה מתוך קבצי קוד המקור.זמינות זו של קוד המקור מאפשרת למספר רב של אנשים להכיר את התוכנה מבפנים.

אבטחת איכות למוצר פתוח (זמן לסוף השיעור 00:30)

לפני שנמשיך הלאה לנושא הקהילה, חשוב לענות על שאלה שעולה בדרך כלל בנושא תוכנה חופשית:
"אם כל אחד יכול לשנות, האם לא נוצר בלאגן אחד גדול?”
או במילים אחרות "כיצד אנו יודעים שהתוכנה אכן עושה מה שהיא אמורה לעשות?”
פיתוח תוכנה חופשית בדומה לפיתוח כל תוכנה מורכב מהיררכיה של מנהל פיתוח, ראשי צוותים ומפתחים.
נכון שכל אחד יכול לשנות את התוכנה אבל על מנת להפיץ את השינויים הוא שולח אותם לצוות הפיתוח של התוכנה או מפיץ אותם בעצמו.
צוות הפיתוח בוחן כל שינוי או תוספת שנשלחה אליו, אם התוספת או השינוי עולים בקנה אחד עם מדיניות הפרויקט
ואכן מהווים שיפור של התוכנה, שינויים אלו יכנסו לגרסה הבאה של התוכנה. במידה ושינויים אלו לא מתאימים לתוכנה,
תישלח הודעה על כך לכותב. כך מובטחת איכות התוכנה.

חשיבות הקהילה (זמן לסוף השיעור 00:25)

תוכנה חופשית מבוססת על העקרון שכל אחד יכול לראות את קוד המקור ולשפר אותו.
מכאן שתוכנה חופשית בעצם מבוססת על קהילה, בניגוד לתוכנה קניינית שנוצרת על ידי קבוצה מצומצמת
שרק לה השליטה על מה יקרה עם התוכנה ורק לה השליטה על המרכיבים הפנימיים של התוכנה.
בתוכנה חופשית השליטה היא בידי המשתמשים, לא ניתן לכפות על המשתמשים דבר מכיון שמשתמשים שלא מרוצים
ממבנה או פעולת התוכנה יכולים (בעצמם או באמצעות אנשים שהם שוכרים למטרה זו) לשנות את התוכנה ואו
ליצור תוכנה חדשה המבוססת על אותה תוכנה. לכן אפשר לומר שתוכנה חופשית היא קודם כל קהילה ורק לאחר מכן תוכנה.
הקהילה מורכבת ממספר קבוצות מרכזיות על אף שיש לעיתים חפיפה בין הקבוצות (בודק יכול להיות גם משתמש וכו'):
  1. מתכנתים
  2. בודקים
  3. קבוצת תיעוד
  4. משתמשים
שימו לב שבניגוד לתוכנה קניינית, אין הפרדה בין קהילת המשתמשים לבין אלו שיצרו את התוכנה או עוסקים בעבודה על התוכנה.
גם מרכיבי הקהילה אינם קשיחים, בודק תוכנה יכול לראות את קוד המקור ולתקן באג שהוא מוצא.
אנשי התיעוד יכולים לבחון את קוד המקור ואולי גם לשנותו.
המשתמשים יכולים לכתוב תיעוד בעצמם, המשתמשים יכולים לשלוח הודעות על באגים.
אם כך, תוכנה חופשית: מתחילה מהקהילה ומפותחת על ידי הקהילה.
הקהילה איננה קהילה הומגנית, יכולים להיות בה חברים מכל העולם ומכל הגילאים.
הקהילה איננה מועדון סגור ולכן היא שונה מהקהילות המוכרות לנו כדוגמאת:
  • קהילת התושבים בשכונה מסויימת
  • תלמידי בית ספר מסויים
  • תנועת נוער מסויימת וכד'

כללי יסוד (זמן לסוף השיעור 00:20)

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

מבוא לפתרון בעיות (זמן לסוף השיעור 00:10)

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

סיכום (זמן לסוף השיעור 00:05)

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