ועוד. על טכנולוגיה, החיים ומה שביניהם

‏הצגת רשומות עם תוויות Open source. הצג את כל הרשומות
‏הצגת רשומות עם תוויות Open source. הצג את כל הרשומות

יום חמישי, 2 בספטמבר 2010

רשמים מוושינגטון

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

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

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

באזור וושינגטון די.סי (D.C = District of Columbia, וושינגטון לא שייכת לאף אחת מהמדינות שמרכיבות את ארה"ב, אלא היא מחוז עצמאי) יש למעשה שלושה מוקדים: וושינגטון  עצמה, כעיר הבירה; ג'ורג'טאון, שהיא עיר אוניברסיטאית יפהפייה שבנויה בבנייה ויקטוריאנית; וארלינגטון, מעבר לנהר הפוטומק, שהיא המרכז העסקי של האזור, ושבה התקיים הכנס. שלושת המרכזים נצמאים במרחק הליכה אחד מהשני.

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

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

בתמונה הראשונה אפשר לראות את הנוף מה-key bridge, שהוא הגשר שמחבר בין ארלינגטון לג'ורג'טאון.

הכנס התקיים בבניין Waterview, בקומה ה-24 והאחרונה. הבניין הוא בניין משרדים מרשים מאוד, שמארח, בין השאר, את המטה של חברת היעוץ Deloite. הקומה האחרונה שלו מושכרת לטובת כנסים ולדירקטוריונים של חברות שרוצות לקיים בעיר ישיבות הנהלה. מדובר על חלל מוקף כולו בחלונות מהרצפה עד לתקרה ושמשקיף לכל האזור, 360 מעלות.

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

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

אני וחברים מהטירונות:

תמונה ששום טיול בוושינגטון לא שלם בלעדיה:

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

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

ולסיום, רוצים לנחש מה יש בקובייה האדומה  בתמונה?

חולצה!

צולם, איך לא, בחנות של MUJI בסוהו (בקומת המרתף של החנות של MOMA). רק המשוגעים האלה יכולים לחשוב  שכדאי לקפל טי-שירט לקוביה בגודל של 4x4x4 ס"מ. נראה אותם ממציאים את המגהץ שמיישר אותה אחר-כך.

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





יום שני, 5 באפריל 2010

במה הייתם משקיעים, במיקרוסופט או ב-Red Hat?

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

חברת Red Hat מציעה שירותי פיתוח, תמיכה ואינטגרציה של הפצת לינוקס (שנקראת Red Hat Enterprise Linux, או בקיצור RHEL) לגופים עסקיים. המוצרים שלה כוללים גרסאות לינוקס לשרתים, שולחנות עבודה, מכונות וירטואליזציה ועוד. חוץ מזה היא גם תומכת בפיתוח ותחזוקה של הוצאת Fedora, שהיא למעשה הגרסה החינמית והחופשית של Red Hat, ושמיועדת בעיקר לשוק המשתמשים הפרטיים.

כמה כסף כבר יכול להיות באינטגרציה ותמיכה של לינוקס, אתם שואלים את עצמכם? אם כן, נכון ל-4.4.2010, שווי החברה עומד על 5.65 מיליארד דולר, היא מעסיקה כ-2800 עובדים בכל העולם, וההכנסות שלה בשנה האחרונה עמדו על כמעט 719 מיליון דולר. בפעם הבאה שיסבירו לכם שאין מודל עסקי בקוד פתוח, תשלחו את מי שמסביר לכם לדוח הכספי השנתי של Red Hat.

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

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

מתודלוגיה: ההשוואה נעשתה בעזרת נתונים שהורדתי מ-Yahoo Finance (וכל הכבוד שהם מאפשרים להוריד את כל הנתונים בקובץ טקסט שניתן לקריאה ע"י כל תוכנה). שלפתי את מחירי הסגירה המתואמים של שתי המניות בראשון בכל חודש מאז אוגוסט 1999 (אז התבצעה ההנפקה של Red Hat) ועד פברואר 2010. במחירים מתואמים אני מתכוון לכך המחירים מגלמים בתוכם חלוקות דיבידנד ופיצול מניות, כדי להבטיח שהשוואה תעשה בין תפוחים לתפוחים.

הגרף הבא מציג את מחיר המניות כפונקציה של החודש:


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

הגרפים האלה לא מלמדים אותנו הרבה, חוץ מזה שאי-שם בתחילת שנות ה-2000 היתה התפוצצות של בועת הדוט-קום (אבל את זה כבר ידענו מקודם). ב-1.12.1999, רק חמישה חודשים אחרי ההנפקה, עמד ערכה של מניית Red Hat על 105 דולר. בספטמבר 2001, פחות משנתיים אחר-כך, עמד מחיר המניה על 3.5 דולר. למעשה, גם מי שהשקיע במיקרוסופט וגם מי שהשקיע ב-Red Hat בסוף 1999 עוד לא ראה את הכסף שלו בחזרה (למרות שזה שהשקיע במיקרוסופט הפסיד פחות).

לכן החלטתי לבדוק את ביצועי המניות מאז משבר הדוט-קום. בספטמבר 2001 הגיעו שתי המניות לשפל חסר תקדים: Red Hat נעצרה כאמור ב-3.5$, בעוד מיקרוסופט ב-28$. מאותו רגע התחילו שתי המניות את הטיפוס שלהן מעלה. הגרף הבא מראה את התשואה כפונקציה של הזמן החל מאותו חודש:

המספרים לא משקרים: בעוד Red Hat השיגה תשואה של יותר מ-700%, השיגה מיקרוסופט קצת פחות מ-50%. רואים גם עד כמה המניה של Red Hat סובלת מתנודתיות יחסית למניה של מיקרוסופט. אומרים שאחת מהדרכים להתגבר על התנודתיות היא להשקיע לטווח ארוך, לכן בדקתי מה היו ביצועי המניות לאורך שלוש, ארבע וחמש שנים. בדקתי מה היתה התשואה למשך שלוש שנים למי שהשקיע בחודשים 9.2001-9.2004, אחרי זה 10.2001-10.2004, וכן הלאה עד 2.2007-2.2010. עבור שתי הסדרות (סדרה לכל מניה) בדקתי שלושה פרמטרים: אחוז הפעמים בהם התשואה היתה חיובית; התשואה הממוצעת (באחוזים); וסטיית התקן (גם היא באחוזים). חזרתי על הבדיקה לתקופות של ארבע וחמש שנים. התוצאות מרוכזות בטבלה הבאה:

הערות ומסקנות:
  1. מי שהשקיע במניות טכנולוגיה בסוף 1999, רגע לפני התפוצצות הבועה, הפסיד את המכנסיים, בלי קשר למודל העסקי של החברה שאת המניות שלה רכש. באותה המידה היה יכול לתרום את הכסף לצדקה.
  2. הסיכויים להשגת תשואות חיוביות על-פני חלונות הזמן שנבדקו גבוהים יותר במניית Red Hat על פני אלה של מניית מיקרוסופט (למעט חלון זמן של שלוש שנים, אז הסיכויים שווים). כלומר, אכן אם משקיעים לאורך זמן, ניתן להפחית את הסיכון שבתנודתיות של מניות "קטנות".
  3. על-פני כל חלון זמן, התשואה של מניית Red Hat גבוהה מזו של מיקרוסופט בערך פי עשרה. לעומת זאת, סטיית התקן גדולה רק פי 7-8.
  4. הדיון המעניין באמת נוגע לסיבות להבדלים המהותיים בין ביצועי המניות. כאוהד של קוד פתוח הייתי רוצה לחשוב שההבדלים נובעים מכך שהמודל של הקוד הפתוח מוכיח עצמו (מבחינה עסקית) כעדיף על-פני זה של רשיון קנייני. הבעיה היא שהאמירה הזו פשטנית מדי. ידוע שמניות גדולות נוטות לספק תשואות חסר יחסית למניות קטנות, אך עם תנודתיות קטנה יותר. הניתוח לעיל לא הביא בחשבון את ההבדלים בגדלים בין החברות. נרמול כזה של המחירים נראה לי די מורכב לביצוע.
  5. ובכל זאת, נראה לי שלכל הפחות לא ניתן לומר שהמודל העסקי של הרשיון הקנייני הניב למיקרוסופט ביצועים עדיפים על פני אלה של Red Hat.
  6. אישית, אני לא מושקע באף אחת מהמניות (אני מעדיף להשקיע את כספי בגני ילדים באזור גבעתיים. עם כמה שהם גובים, המודל העסקי שלהם נראה לי הרבה יותר מבטיח מכל המודלים שעולם התוכנה יכול להציע). אבל אם הייתי חייב להשקיע עכשיו או ב-Red Hat או במיקרוסופט לאורך זמן, הבחירה שלי היתה קלה.

יום שני, 18 בינואר 2010

לקרוא Gmail ב-Alpine

יש לי שני חשבונות אימייל עיקריים בהם אני משתמש (שניהם בג'ימייל. אני יודע, מכרתי את נשמתי לשטן וכל הג'אז הזה. אפשר להמשיך הלאה). האחד להתכתבויות שוטפות (עבודה, חברים), והשני להרשמה לרשימות תפוצה ו-newsletters. אני גם משתמש בתוכנה קטנה שנקראת mail notification ושמודיעה לי בכל פעם שמגיע מייל.

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

כדי להתגבר על הבעיה התחלתי להשתמש בדפדפן נוסף, epiphany. אבל מכיוון שהמחשב שלי מאוד ישן (IBM X30, למקרה ששקלתם מה לקנות לי ביומולדת הבא), לא השארתי את ה-epiphany פתוח אלא העליתי אותו כל פעם שקיבלתי מייל. סינג'ור.

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

יום שישי, 25 בספטמבר 2009

למה Octave עדיף על Matlab בהגרלה מהתפלגות נורמלית

אחרי שסקרתי השבוע שלוש חבילות לתכנות מדעי שיכולות להוות תחליפי Matlab, אראה היום יתרון אחד של Octave על-פני החלופה הקניינית.

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

ע.א. זה - ברנש יסודי. כדי שיוכל לתחקר את התוצאות במקרה שמשהו ישתבש, הוא קרא לפונקציית randn בעזרת seed (גרעין? תרשו לי להמשיך במונח הלועזי). בכל לולאה הוא יצר מספר אחד אקראי מהתפלגות נורמלית. את ה-seed הוא יצר מהשעון בעזרת פונקציית clock, ושמר אותו בתוך מערך לצורכי שחזור. ואכן, למרות שהשתמש בפונקציית randn שהממוצע שלה הוא אפס, הוא קיבל הגרלה שבה 90% מהמדידות היו חיוביות, ורק 10% שליליות.

תחילה חשדתי שהבעיה נעוצה באלגוריתם שמייצר את המספר האקראי. ב-Mathworks כותבים שהם משתמשים באלגוריתם Zigguart (מימוש שלו ב-C תוכלו למצוא פה). אלא שאז גיליתי שהבעיה לא חוזרת ב-Octave, למרות שגם ב-Octave משתמשים באותו אלגוריתם. אחרי נסיונות לבודד את הבעיה אני חושב שאני יכול לקבוע שמדובר במימוש שונה, והתוצאות מראות שהמימוש של Octave מניב תוצאות טובות יותר.

כדי לאשש את ההנחה שלי שמדובר במימוש האלגוריתם, כתבתי את הסקריפט הבא:
% Ranncheck.m
% Run over different seeds, and draw a number from a normal distribution

DrawNum = 2500; % Number of draws
Seed = (1:DrawNum)/2;

x = zeros(1, DrawNum); % the random variable
for i = 1:DrawNum

randn('state', Seed(i));
x(i) = randn;
end

figure;
plot(Seed, x);

title('Randn distribution');
xlabel('Seed');
ylabel('randn value');
grid on;

בתוך לולאה שרצה על i (מ-1 עד 1250), אני מגריל מספר לפי התפלגות נורמלית שה-seed שלהן הוא i (ה-seed חייב להיות שלם, ואם הוא Matlab מעגל אותו). כך שלמעשה אני יכול לצייר את הפונקציה שמקשרת בין הערך המוגרל לבין ה-seed שיצר אותו.

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

הרצתי את אותו סקריפט ב-octave, וקיבלתי את הגרף הבא:
ניתן לראות שהמימוש ב-Octave של אות אלגוריתם מניב תוצאות מפוזרות בהרבה.

ואיך כל זה מסביר את הבאג של החבר שלי? ברגע שקוראים ל-randn עם seed שמסתמך על ה-clock (שהרזולוציה שלו היא מילישנייה) בתוך לולאה, והביצוע של הלולאה קצר יחסית (יחסית להתקדמות של ה-clock), צפויים לקבל ערכי seed קרובים אחד לשני, ואו אז ההתפלגות ממנה יוגרלו הערכים לא תיראה נורמלית (כי למעשה נגריל ערכים מאיזור מסויים בגרף הראשון.

מסקנות:
  1. המימוש ב-Octave עדיף על זה של Matlab.
  2. אם משתמשים ב-Matlab, לא כדאי להסתמך על ה-clock ליצירת ה-seed בקריאה ל-randn, אלא אם כן אתם בטוחים שמשך זמן ביצוע לולאה בודדת ארוך יחסית.
  3. כדאי לבדוק מה עשו ב-Matlab בגרסאות חדשות יותר, הם יצרו עוד גנרטורים חוץ מ-state, וייתכן שהספק-באג הזה בכלל תוקן.
(וטיפ: מי שמריץ את הסקריפט על Octave בגרסה 3.0 ומקבל הודעת שגיאה שקשורה לפונטים כשהוא מבקש לשמור את הגרף בעזרת פקודת print - כדאי לו לעיין בפוסט הזה. בגרסה 3.2 הבאג אמור להיות מתוקן, אך עוד לא בדקתי).


יום ראשון, 20 בספטמבר 2009

חלופות קוד חופשי ל-Matlab

יוצא לי להשתמש בעבודה די הרבה ב-Matlab, ולכן כשהתקנתי לינוקס על ה-PC שלי לפני כשנתיים וחצי, בדקתי אם אפשר להתקין עליו Matlab. שמחתי לגלות שקיימת גרסת Matlab ללינוקס (למעשה הגרסה ללינוקס ולמק היא אותה גרסה), אך כשבאתי להתקין את התוכנה קיבלתי הודעת שגיאה. נבירה קצרה באינטרנט גילתה את מקור הבעיה: Matlab דורשת פנטיום 4 ומעלה, בעוד לי יש (על ה-IBM X30 המזדקן שלי) פנטיום 3. מה איכפת ל-Matlab איזה מעבד אני מריץ? מסתבר שב-Matlab דורשים תמיכה במשהו שנקרא SSE2 שנתמך בגרסה 4 של פנטיום. אגב, גם לא כל מעבדי ה-Atom של אינטל תומכים בדבר הזה, אז אם חשבתם לקנות נטבוק ולהתקין עליו Matlab, כדאי שתוודאו מראש שהמעבד שנשפכם חשקה בו תומך באפשרות.

מעז יצא מתוק: גיליתי לא פחות משלוש תוכנות לתכנות מדעי שמופצות תחת רשיונות קוד פתוח, ושממצבות את עצמן כתחליף Matlab (בניגוד נניח ל-R, שהיא חבילת תכנות מדעי ללא יומרה לתאימות כלשהי ל-Matlab). השלוש הן Octave, Scilab ו-FreeMat.

לפני שצוללים לכל אחת מהאפשרויות, הערה כללית: אף אחת מהאלטרנטיבות לא תואמת למנוע הגרפי של Matlab או למנוע של Simulink. המשמעות: כל הפקודות שמתייחסות ל-properties של handle מסויים בגרף, או כל הפקודות שמתייחסות למודל ב-Simulink, לא רלוונטיות בתחליפים הנ"ל, ויגררו הודעת שגיאה בריצה.

Octave
יתרונות: החבילה הותיקה ביותר היא גם היציבה ביותר בשוק. התאימות שלה ל-Matlab כמעט מושלמת: רוב הפונקציות החישוביות שיש ב-Matlab (כולל מה-Toolboxes) קיימות גם ב-Octave, ודרך הקריאה להן זהה לזו שב-Matlab. למעשה, מה שסגור ב-Matlab הוא רק ה-kernel שמבצע את החישובים. מבחינה חוקית, אין דרך להגן בקניין רוחני על תחביר (syntax) של שפה. Octave מנצלים בדיוק את זה: הם פיתחו kernel משלהם שמשתמש באותו syntax, וכך מאפשרים הרצה של סקריפטים ופונקציות גם על Octave וגם על Matlab.
חסרונות: ל-Octave אין סביבת עבודה (IDE) שבאה איתו. יש ברשת פיתרון לא רע בכלל שנקרא qtOctave, אבל הוא רץ רק על לינוקס. דרך אחרת (בה אני משתמש) היא להריץ Octave ב-Terminal ולהשתמש -text editor החביב עליכם לעריכת הקבצים. למרות שאני מוצא את הדרך הזו מספקת, אין ספק שסביבת העבודה של Matlab עשירה בהרבה, והאפשרויות שמתלוות לה הופכות את העבודה לנוחה ויעילה יותר. בנוסף, ל-Octave אין מודול גרפי משל עצמו, אלא הוא משתמש (נכון להיום) ב-gnuplot. מודול זה עני בתכונות (אין אפשרות לשמור גרף מהחלון, רק משורת הפקודה, והזום זמין רק ב-windows ולא בלינוקס, שזה בכלל מוזר). ידוע לי משיחות שנערכות בקבוצות דיון של Octave שיש שם מחשבות לעבור בעתיד לחבילה גרפית אחרת, ואף התחילו לבחון כמה אפשרויות. חסרון אחרון: תמיכה קהילתית חלשה יחסית למה שהתרגלתי בעולם הקוד הפתוח, בין היתר בגלל שימוש במדיות מיושנות (mailing lists במקום פורומים ו-wiki. השנה היא 2009, לעזאזל).
Scilab
יתרונות
: מכילה IDE מלא. יותר מזה - מכילה חבילה שנקראת Scicos ושמהווה חלופה ל-Simulink. אמנם אין תאימות ל-Simulink, אבל מי שאוהב להשתמש בתכנות גרפי והמערכות שלו נראות כמו משוואות דיפרנציאליות, ימצא ב-Scicos פתרון לא רע בכלל.
חסרונות: התאימות ל-Matlab לא מתקרבת לזו של Octave.
FreeMat
גילו נאות: לא הרצתי מעולם FreeMat מסיבות שיוזכרו בחסרונות.
יתרונות: תאימות ל-Matlab; יעילות ריצה בזכות מהדר JIT (הלא הוא Just In Time Compiler, שמאפשר קומפילציה חלקית של הקוד, לדוגמה לפני לולאת for. קיים גם ב-Matlab, אך לא ב-Octave או ב-Scilab, שם רצוי להמשיך בכתיבה וקטורית); תיעוד מפורט וברור באתר.
חסרונות: הפרויקט מתנהל בלי גב של האקדמיה (Octave מפותח ע"י אוניברסיטאות בארה"ב ובאנגליה) או התעשיה (Scilab מפותח ע"י קונסורציום של חברות בצרפת). לכן התמיכה בפרויקט חלשה, ההתקדמות איטית (הגרסה האחרונה ממרץ 2008), והגרוע מכל - המחברים לא טרחו לסדר את עניין הרשיון הפתוח. המשמעות: הפצות רבות (וביניהן Mandriva בה אני משתמש) מסרבות לצרף את התוכנה ל-repositories שלהן. כלומר, כדי להקין את התוכנה יש צורך לקמפל את קוד המקור שלה, ואנחנו הרי באנו להנות.

סיכום
אם יש לכם כסף ו-EULA לא מעניין אתכם (ואת התעשיות הבטחוניות בארץ, לדוגמה, הוא מעניין ועוד איך), לכו על Matlab. הוא יעיל, הוא נוח, יש בו הכי הרבה אופציות, והוא יעשה לכם נעים בגב.

אם אין לכם כסף, או אם לא בא לכם להצהיר בפני Mathworks והדוד סם איזה שימוש אתם עושים בתוכנה, אני ממליץ על Octave. בחודשים האחרונים התחלתי להשתמש ב-Octave גם בעבודה, ואף אחד לא שם לב. כלומר, אני לא מתקשה להריץ פונקציות וסקריפטים שחבריי כתבו ב-Matlab (ובלבד שאלה לא מכילים קריאות ל-GUI או למודלים של Simulink), וחבריי מריצים ללא קושי פונקציות וסקריפטים שאני כותב ב-Octave. השימוש ב-command line ו- text editor לא נראה לי נורא, אבל אני מדור שלמד ש-terminal היא לא קללה. למעשה, גם כשאני משתמש ב-Matlab ורוצה לדעת משהו על משתנה אני משתמש בפקודת whos ולא ב-variabes editor או איך שלא קוראים לזה, כך שכנראה שאני לא דוגמה. אבל גם אם צריך לשלם מחיר מסויים באי-נוחות, אני סבור שהמחיר הזה, יחסית לאלטרנטיבות, משתלם.

תכנות נעים!