Posts Tagged ‘קוד פתוח’

שטויות הזויות – או למה לימנים אסור להשתמש בקוד פתוח

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

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

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

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

למה לינוקס היא המערכת היחידה שאיתה אפשר להתמודד מול iPad

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

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

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

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

אבל… מה עם אנדרואיד?

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

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

תרומות קוד? לא בדיוק. 75% מלינוקס נכתב ע"י מפתחים בתשלום

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

במהלך ההרצאה שלו בLinux.conf.au הציג ג'ונתן קורבט, הבעלים של LWN.net את הנתונים המפתיעים משהוא האלו ואת הניתוח שלו לקוד הלינוקס.לפי קורבט 18% מהקוד נכתבו על ידי מפתחים שלא השתייכו לשום תאגיד ולא דרשו תשלום, כלומר מתנדבים טהורים, עוד 7% מהקוד נתרמו ע"י כותבים שלא הוגדרו, כלומר אין לדעת אם מדובר במתנדבים או מפתחים בתשלום, אך 75% מהקוד נתרם ע"י אנשים ששולם להם בכדי לכתוב את הקוד הזה.

בתוך תחום הקוד שנכתב בתשלום נמצאות רד-האט שבראש הטבלה עם 12% מהקוד, כשאחריה אינטל עם 8%, מיד אחר כך IBM ונובל כשכל אחת עם 6% ואוראקל עם 3%. אף על פי שהחברות הן מתחרות ויריבות מטבען, הפיתוח המרכזי של הקרנל מתנהל מצוין לפי קורבט.

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

מערכת הקבצים הטובה ביותר? גוגל חושבת שזאת Ext4

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

במכתב ששלח מהנדס בכיר בגוגל לרשימת התפוצה של מפתחי Ext4 נכתב כך:

Google is currently in the middle of upgrading from ext2 to a more upto date file system. We ended up choosing ext4.

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

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

למה אתם צריכים לפתח עם OpenGL ולא עם DirectX

שיחה שהייתה לי עם אנשים רבים וחזרה על עצמה התחילה בוידוי שלי: "אני לומד פיתוח גרפיקה תלת-מימדית עם OpenGL"', התגובה של רבים מהאנשים הייתה "לא באמת, למה? DirectX טובה יותר. היא העתיד." אני מאמין שברוב המקרים התגובה נובעת מבורות ולאו דווקא מעמדות מוצקות ומבוססת של אותו אדם.

אז לפני שאני אפתח במלחמת הDirectX vs. OpenGL הנה הסבר קצר על כל אחד מהטכנולוגיות:

מהאודות של OpenGL באתר הרשמי כתוב כך: "..מאז נוסדה ב1992 הפכה OpenGL לפלטפורמת פיתוח הגרפיקה ב2D וב3D הנפוצה בעולם, כשהיא תומכת במגוון רחב של פלטפרמות (מערכות הפעלה)…". על פי ויקיפדיה לOpenGL שתי מטרות עיקריות, האחת היא לחסוך מהמשתמש את הכתיבה הכל כך קשה של קוד למנועי 3D שונים על ידי הצגת API יחיד שתואם לכולם, המטרה השניה היא לחסוך מהמפתח את כאב הראש שבהתחשבות ביכולות שונות של חומרות שונות על ידי תמיכה אחידה של החומרות בממשק הOpenGL. כיום, OpenGL מנוהל על ידי Khorons Group, מלכ"ר שעושה את עבודתו נאמנה. חשוב לציין, OpenGL תומכת בכל פלטפורמת משחקים קיימים, החל בווינדוס, מק, לינוקס, BSD, וגם בWII ובPLAYSTATION, באייפון ובמכשירי האנדרואיד והMaemo וכו' וכו'.. ובכן, היא תומכת כמעט בכל הפלטפורמות הקיימות, מלבד XBox שהסיבה לכך לדעתי ברורה, וזה מוביל לנושא הDirectX:

כבר מאז ימי הMS-DOS הותיקים הבינה מיקרוסופט שמשחקים על מחשב הוא אחד הדברים היותר חשובים למשתמשי המיינסטרים, לפיכך ב1995, עם יציאת מערכת ההפעלה הראשונה שלהם ב32BIT, הווינדוס 95, הם יצרו מערך ספריות שסייע ודירבן מפתחים לכתוב משחקים במיוחד למערכת הווינדוס 95 שלהם. הספריות הללו כללו את Direct3D, DirectInput וDirectSound, כאשר כל החבילה כאחד נקראה DirectX. כאשר מיקרוסופט נכנסה בכוחות עצמה לשוק הקונסולות היא קראה לקונסולה שלה DirectX BOX או בקיצור XBox.

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

למה לDirectX שימוש נרחב מאוד בקרב חברות פיתוח המשחקים?

כולם משתמשים בDirectX בגלל מעין לולאה של שימוש שהמשתמשים נכבלו אליה עקב כמה יתרונות לDirectX. הAPI יצא לווינדוס ולXBOX ואנשים החלו להשתמש בו, בעבר הפיתוח באמצעותו לווינדוס היה קל יותר מאשר פיתוח עם OPENGL (אני מאמין שהמצב משתנה היום), כך קרה שמחזור אחד השתמש בDirectX בגלל יתרונות אלו ומאז הוא צמח, אדם שלמד את הAPI הזה לא יטרח וילמד API אחר, מכיוון שהAPI היה מוכוון מערכת יחידה הרבה חברות חומרה האיצו את התמיכה שלהם בDirectX מתוך אמונה שזהו העתיד היחידי בעולם המשחקים וכך נכנסו לאותה לולאה ארורה, חברות החומרה ושאר חברות התמיכה בגרפיקה למשחקים מעדיפים לתמוך בDirectX, המשתמשים מעדיפים את DirectX כי כולם משתמשים בה וככה הולכת וגדלה הקהילה, שצמחה מתוך נקודה בזמן בה DirectX ליבלב, תקופה קצרה מאוד שהאיצה אותו קדימה, מעין מזל של הנסיבות הייתי אומר. כמובן, תוסיפו לזה את העוצמה האדירה שיש לחברה מסחרית חזקה כל כך כמו מיקרוסופט אל מול ארגון מלכ"רי ולא מסחרי וזאת התוצאה. מעין מצב שהיום לדעתי, מקיים מצב אבסורדי שמוצר נחות ממוצר אחר מצליח יותר בגלל שהוא מוכר יותר, מפורסם יותר ומקודם בעוצמה חזקה הרבה יותר. מעטים האנשים שיבחינו לבד במלכוד, שלמעשה המוצר האחר עדיף. גם מעורבים לדעתי מניעים פסיכולוגיים, אנשים מעדיפים להאמין שחברה מסחרית גדולה מסוגלת לפתח מוצר טוב יותר בכל מקרה מאשר ארגון מלכ"רי, וזה פשוט לא נכון, קחו את זה כסוג של "תימחור איכות", כשתלכו לקופת החולים ותוצע לכם תרופה ב10 שקל ותרופה ב60 שקל, אתם תלכו על זאת שב60 שקל, כי המניע הפסיכולוגי שלכם אומר שעל תרופות לא מתפשרים ולא קונים משהוא "בזול", למרות שיתכן שהוא זהה לחלוטין ואין לכם שום הבנה בתחום, זה לדעתי בדיוק מה שקורה כאן.

אז… למה OpenGL עדיף?

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

OpenGL חזקה יותר

זה ידוע שOpenGL מהירה וטובה יותר ברינדור גרפיקה בזמן אמת, (הסתכלו במצגת שלNvidia אם אתם לא מאמינים), יש לה גישה לכל הפיצ'רים החדשים ביותר שקיימים בכל GPU דרך Vendor Extention. כלומר OpenGL מספקת לך גישה ישירה לכל הפיצ'רים הגרפיים בכל מערכת ופלטפורמה בעוד DirectX מספק רק את הגרסאות האחרונות כפי שהן נתמכות בווינדוס, כלומר יתכן שתחזיק חומרה חזקה מאוד אך היא לא תנוצל מכיוון שגרסת הDirectX שלך לא הכי עדכנית, או שבאופן כללי DirectX לא תומך באותו הפיצ'ר בגרסתו החדשה ביותר, בעוד שOpenGL מספק גישה ישירה ובכך מאפשר תמיד גישה לכל יכולות החומרה שבידי המשתמש.

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

OpenGL חוצה פלטפורמותחוצה פלטפורמות

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

OpenGL היא טכנולוגיה שעדיף להשען עליה, היא טובה לעתיד

OpenGL היא פרויקט קוד פתוח, הארגונים שמנהלים את הפיתוח שלו הם מלכ"רים והתרומה לקוד נעשית על ידי המוני מפתחים. OpenGL היא מושא חזק מאוד לתרומות, בין אם תרומות במובן של תרומות כספיות מצד חברות מסחריות בעלות אינטרס ובין אם תרומות קוד משמעותיות ממפתחים שונים. לאף אחד אין בעלות פרטית על OpenGL והיא עומדת בפני עצמה, היא לעולם תשאר חופשית ושלמה. לעומת זאת ישנה את DirectX של חברת מיקרוסופט, שאחרי הכל, היא חברה מסחרית והמוצר מסחרי. מיקרוסופט ביום בהיר אחד יכולה למרר את חייכם, לבצע החלטות לא ברורות מתוך החלטות מסחריות נטו שנועדו לקדם אותה (ראו למשל אי פיתוח DirectX 10 לווינדוס XP על מנת שיותר משתמשים יעברו לויסטה) והיא עלולה לבצע גם החלטות שיורידו לטמיון את כל עבודת חייכם. האם אתם באמת מוכנים להיות תלויים בטכנולוגיה כזאת?

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

לסיכום…

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

אמנם לא נגעתי בעובדה הזאת במאמר אבל אני חייב להתייחס אליה בסיכום, מיקרוסופט מאמנת כיום מאין צבא של מתכנתים הכבולים לה, בעיקר באמצעות C#, אני לא אומר שC# היא לא שפה מעולה, אבל שימו לב לכבילה שהיא גורמת לכם. ובכלל זאת, רוב בתי הספר בארץ מלמדים C#, ולמיטב הבנתי רוב הסטודנטים למדעי המחשב בארץ מתחילים בC# ורק אחר כך מתעסקים בC++ ושאר השפות. תלמיד מוכשר שמגלה עניין, או סטונדנט שרוצה להמשיך ללמוד בעצמו, או סתם אדם שנכבל לC# יבחר באופן אוטומתי לפתח עם DirectX וXNA. אני רק מנסה להגיד לכם, תפקחו עיניים, תראו מה קורה מסביבכם לפני שתישאבו לאותו הכלא שלא יאפשר לכם יציאה, שתהיו בו כל כך עמוק שכל נסיון בריחה יעלה לכם הרבה יותר מכפי שאתם מסוגלים או רוצים לשלם.

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

הערות:

  1. התייחסתי לOpenGL כאל קוד פתוח בעוד שלמעשה זהו סטנדרט פתוח, ההבדלים בין השניים לא משנים במאומה לתוכן המאמר.
  2. התוכן למאמר נאסף ממקורות רבים ברשת. אם מישהוא מעוניין ברשימת המקורות אתם מוזמנים לפנות אליי.
  3. OpenGL מיועדת ליצירה גרפית בלבד, ולכן ההשוואה הישירה היא מן הסתם לDirect3D או Direct2D.

למה השירות הקהילתי לקוד הפתוח כל-כך איכותי?

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

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

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

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

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

Rails 3 בטא ראשונה בפברואר

לפי דיוויד היינמייר הנסון האדם שיצר את Ruby On Rails, למרות שהבטא אמורה הייתה להשתחחר בסוף החודש הזה היא כנראה תשתחרר בסופו של דבר בפברואר. היינמייר נתן פרטים נוספים ואף לוח שחרורים מוערך בראיון לInfoWorld. אם הכל ילך כצפוי, Rails 3 עתיד להשתחרר סופית כבר ברבעון הראשון של השנה.

הגרסה החדשה של Rails תהיה גירסת האיחוד המיוחלת עם Merb, כך שנצפה בגרסה הבאה בשיפורי ביצועים, בתמיכה בJQuery וכלה בשאר היתרונות היחסיים שהיו לMerb ביחס לRails. כמו כן בהשראת Merb לRails בגירסה החדשה יהיה API שיאפשר פיתוח קל יותר של תוספים ופלאג-אינים לפריימוורק.

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

הרצאה בGoogle Tech Talk על Cmake

ביל הופמן הרצה בGoogle Tech Talk בניו יורק על כלי הקוד הפתוח CMake/CPack/CTest/CDash ועל שימושים בבדיקה ובפיתוח תוכנות C++.

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

עוד יום, עוד אנדרואיד, מוטורלה שיחחרו מכשיר חדש, הBackflip

מכשיר הBackflipמוטורולה שיחררו מכשיר אנדרואיד חדש בשם Backflip, המכשיר מריץ את מערכת האנדרואיד 1.5 אבל אמור להתעדכן לאנדרואיד 2.1 בהמשך. המכשיר מצויד במסך מגע 3.1 אינץ' ובמקלדת QWERTY מלאה ואלגנטית שיכולה להתקפל למאחורי המסך, הנוחות הזאת לאלו שלא אוהבים מקלדת במסך תעלה לכם בקצת עובי של המכשיר אבל לא משהוא שבאמת יפריע לכם.

המפרט הטכני של המכשיר מציין שהוא מצויד במצלמה 5 מגה פיקסל עם פלאש מבוסס LED, כמו גם 2GB זיכרון בסיסי עם המכשיר, אמנם נמוך יחסית לסטנדרטים של היום אבל יכול בקלות להיות מורחב ל32GB ע"י כרטיסי זיכרון. רק בגלל שאני מפחד לעשות עוול למכשיר בכך שאשכח את אחד מנתוניו הטכניים אני גם לא אנסה לכסות את כולם פה, באופן כללי, נראה כמו מכשיר אנדרואיד סטנדרטי, מהסוג שמעוצב ככה שאו שממש ממש תאהבו אותו, או שממש תשנאו אותו, תלוי בטעמכם האישי. אני אישית כבר אוהב אותו.

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

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

ביקורת ספר: Linux In A Nutshell

Linux In A Nutshell coverמהדורה: 6.
מוציאה לאור: O'reilly.
ראה אור: ספטמבר 2009.
עמודים: 994.

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

במבט ראשון בנתונים היבשים של הספר ניתן להיבהל, 994 עמודים זה בהחלט מספר מפוצץ, אך חשוב להבהיר, כ500 עמודים מהספר הם רשימה אלפבתית של הפקודות השונות של לינוקס, שהם למעשה שם הפקודה, מה היא עושה, איך כותבים אותה ומה האפשרויות השונות שלה. שום דבר שלא תראו ממילא על ידי שימוש בman pages של אותה פקודה ישירות בטרמינל. כ80 עמודים נוספים הם הIndex נושאים שבסוף הספר, כך שבדיעבד נשארנו עם כ400 עמודי לימוד כשגם בהם יש בסוף חלק מהנושאים ריפרנס של הפקודות השונות המתקשרות לנושא, כך שבהערכה גסה הייתי אומר שבדיעבד יש לכם 300 עמודים שבאמת תצטרכו להפעיל את הראש ולהבין את העניינים. פתאום הספר לא נראה מאיים כלל נכון? מה גם שחלק גדול מהפקודות שנמצאות ברפרנס חוזרות על עצמם וברגע שאתה קולט את העקרון הכללי – אתה בפנים.

הנושאים המכוסים בספר הם רבים ומגוונים, והם הם אלו שיעניינו ויטרידו את מי שבא ללינוקס בגישה של למידה, מי שרוצה ללמוד אותה בין אם להפוך בעתיד למנהל מערכת או להיות בעל כישורי שליטה כללים בלינוקס. בין הנושאים המכוסים בהרחבה עניין הBoot Loader באופן כללי ופתיחת דיון נרחב על GRUB ועל LILO, מנהלי חבילות באופן כללי ודיון נרחב על מנהל החבילות DEB, על RPM ועל YUM, הסבר על שפת הShell, הBash, לימוד עקרונותיה ותכנות בסיסי בה, (מי שאגב רוצה להרחיב בנושא זה אני ממליץ בחום על הספר Linux command line and shell scripting אליו אולי אני אכתוב בהזדמנות אחרת), נושא העורכים בלינוקס מלומד בהרחבה, הVI, הEMACS וכו', כמו כן גם נושא ניהול הקוד למתכנתים, כשבהרחבה מוסבר על Subversion ועל Git, ובסופו של הספר מדובר על נושא כלי הוירטואליזציה לשורת הקוד.

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