הנהירה אל רובי און ריילס

כיצד קרה שרובי הפכה לפופולארית כל כך ומה הסיבה לביקוש הרב למפתחים הבקיאים בה?

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

תמונה: יח"צ

תמונה: יח”צ

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

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

בחירת שפה

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

אלה הסיבות שגרמו לגרופון ולטוויטר, וגם לחברות רבות נוספות בארץ ובחו”ל – כולל AirBNB, Hulu, SeekingAlpha, Fiverr, GetTaxi, ו-Klarna – לאמץ את רובי כשפת הפיתוח שלהם. רובי היא שפה שמיועדת לא לביצועים מדהימים, אלא לפיתוח מהיר וקל. יותר מזה, פיתוח ברובי מאפשר גם תחזוקה קלה, כך שכשצריכים לשנות את הקוד, להוציא דברים או להוסיף דברים חדשים, ניתן לעשות כך עם מינימום של בעיות, ומקסימום של יעילות ומהירות.

הכירו: רובי (Ruby)

אבל רגע: מהי רובי? להפתעת הרבה אנשים בארץ, רובי אינה שפה חדשה. היא נולדה ביפן, ע”י מפתח בשם יוקיהירו מאצומוטו, או בכינוי – “מאצ”, לקהילת מפתחי רובי לפני 20 שנה, כתחליף לשפת פרל. פרל ידועה כאחת מהשפות הראשונות שבה השתמשו מפתחי ווב ואנשי סיסטם. רובי אימצה הרבה דברים מפרל, כולל הקלות שבה ניתן לעבד טקסט, לעבור עם קבצים ורשתות, ולהתחבר בקלות לבסיסי נתונים. אבל רובי גם אימצה את מערכת האובייקטים של שפת Smalltalk, השפה שהגדירה את הרעיון של Object-oriented programming בעולם, אבל שלא הצליחה להמריא כשפת תכנות פופולרית. הכוח והגמישות שרובי ירשה מ-Smalltalk מאפשרת שימוש קל ומהיר באובייקטים, באופן מפתיע במיוחד למי שבא משפות מקומפלות כמו Java, .NET, ו-++C.

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

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

היתרונות: סדר, אוטומציה, בדיקות

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

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

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

עבודה מול בסיסי נתונים

ריילס גם נותן לנו כלים נוחים לעבודה עם בסיסי נתונים – גם SQL, כולל MySQL, PostgreSQL, ואפילו אורקל ו-MS-SQL, אבל גם מול החדשים כמו NoSQL, כולל MongoDB, Cassandra וכדומה. אני משתמש כבר שנים ב-PostgreSQL, והעבודה עם ריילס היא נוחה ביותר, בגלל השימוש ב-ActiveRecord, המתרגם מהעולם של אובייקטים ברובי לעולם של טבלאות ושאילתות ב-SQL. נכון, יש ספריות רבות שעושות עבודה דומה, אבל ברובי כמעט ואין קונפיגורציה, והמהירות והנוחות שבהן ניתן לכתוב ולבצע שאילתות מדהימות.

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

RubyGems ו-JRuby

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

אין ספק שרובי אינה סתם מגמה או אופנה, אלא שפה שהולכת להיות אתנו זמן רב. לא רק שרובי גרסה 2.0 יצאה לפני פחות מחודש, עם שיפורים רבים גם בשפה וגם בביצועים שלה. יש גם מימושים חלופיים שנותנים מענה למפתחי רובי שונים. לדוגמה, JRuby הינו מימוש שמתקמפל ל bytecodes של ה JVM. לא רק ש-JRuby נותן ביצועים מצויינים – הוא גם נותן לרובי ולג’אווה לשתף פעולה, עם קריאת מתודות ושימוש באובייקטים בין השפות, באופן חלק וקל. אם יש לכם השקעה גדולה בג’אווה, אבל אתם רוצים לנסות את רובי, JRuby יכול לתת לכם לקחת את הצעדים הראשונים בלי להסתכן, או לזרוק לפח את ההשקעה שכבר עשיתם.

ועדיין – אין מספיק מפתחים

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

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


הפוסט בחסות ג’ון ברייס – מכללת היי-טק


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

הרשמה בחודשי מרץ – אפריל לאחד מהקורסים הנבחרים תזכה אותך, גולש ניוזגיק, במלגה על סך 500 ₪

כתב אורח

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

הגב

20 תגובות על "הנהירה אל רובי און ריילס"

avatar
Photo and Image Files
 
 
 
Audio and Video Files
 
 
 
Other File Types
 
 
 

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

סידור לפי:   חדש | ישן | הכי מדורגים
ג'קי
Guest

איפה אפשר ללמוד? יש בארץ אפשרות?

אלון
Guest

ראה חסות פוסט – ג’ון ברייס

אלון
Guest

או פה:
http://tryruby.org

ראובן לרנר
Guest

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

נחום
Guest

מנסיון שלי עם רובי
יש עוד הרבה לאן להתקדם לפני שאפשר לקרוא לשפת סקריפטים הזו “שפה”

אלעד
Guest

רובי נועדה בעיקר לפיתוח צד שרת עבור אפליקציות אינטרנט (WEB & Mobile)
לפי התגובה שלך אני מבין שאתה בכלל לא מהתחום או אולי עדיין מיושן ומתעסק עם טכנולוגיות שהולכות ונעלמות ראה ערך מיקרוסופט (.net)

john
Guest

Node.js עוקפת את רובי ואת יתר השפות
אומנם יש לה עוד מרחק רב לגמוע עד שהיא תגיע לבגרות ולפונקציונאליות רצויה, אבל היא העתיד

l
Guest

טעות סופר –
“אין ספק שרובי הינה סתם מגמה או אופנה”
נראה שהתכוונת “אינה” ולא “הינה”

bob
Guest

ניתן ללמוד רובי און ריילס כאן: http://ruby.webninjaschool.com/
בנוסף ניתן להשתמש במידע באינטרנט: http://wiki.rubyonrails.co.il/recipes/show/Online+tutorials

Yair
Guest
הפוסט הזה בא לי בטיימינג של התלבטות בדיוק בנושא הזה.. אנחנו לפני התחלת פרויקט ווב חדש ומתלבטים אם לעבור לריילס. ההתלבטות היא בין RoR ל-python כל מה שכתב כותב הפוסט נמצא בצד של הפלוסים של ריילס, בעיקר העובדה שרובי כשפה וריילס כתשתית לווב, גמישות ונותנות יכולת לתזוזה מהירה. [ואולי גם שריילס היא עדיין הפריימוורק הכי קול באזור :) ] מהצד השני עומדת פייתון שאנחנו מכירים ואוהבים, עם django ליישומי ווב שאנחנו לומדים להכיר. אחרי שבדקנו, דיברנו ובילינו ימים עם אנשים שעובדים עם ריילס, כרגע הנטיה שלנו היא ללכת עם פייתון (ועם django) בגלל: 1. הסדר המובנה בשפה (רק דרך אחת… Read more »
עודד
Guest

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

תודה

Yair
Guest

http://techcrunch.com/2008/05/01/twitter-said-to-be-abandoning-ruby-on-rails/

תגגל : twitter+ ruby on rails תמצא את כל התיעוד

גם בערך בוויקפידיה על RoR מוקדשת פסקה לזה

עידן
Guest

אחלה כתבה ראובן, תודה רבה !

ראובן לרנר
Guest
ליאיר ולאחרים שמתעניינים: דבר ראשון, אם יש שפה שמתחרה ברובי היום, היא פייתון — גם שפה דינאמית, גם קוד פתוח, גם עם קהילה מדהימה. אם אתם כבר מכירים את פייתון, לא הייתי ממליץ לכם לבדוק את רובי, כי היתרונות (ויש כמה, לדעתי) לא יצדיקו את המעבר. דבר שני, אינני חושב שהסיפור של טוויטר אומר הרבה בקשר לריילס. אם וכשתגיעו למימדים של טייוטר, אין ספק שתצטרכו לחשוב מחדש על שפת התכנות, וכל הטכנולוגיות שלכם. אם זאת, בטוויטר עדיין משתמשים ברובי בחלק מהאתר שלהם, ויש האשמות רבות בין מפתחים שונים שלדעתי אין בסוס. נראה לי שהסיכוי יותר גדול שתגיעו למימדים של Fiverr,… Read more »
ניסן
Guest

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

הנה דרך אחת מאוד פופולרית שכמעט כל מפתח ריילס מכיר:
http://ruby.railstutorial.org

ועוד 2 לינקים:
http://www.stanford.edu/~ouster/cgi-bin/cs142-spring13/lectures.php
http://railscasts.com

אודי אורון
Guest

הי ראובן וכולם!

יופי של כתבה!

למי ששאל היכן מלמדים, אז אני מלמד פייתון ודג’אנגו, שהם אחים מקבילים ולא פחות טובים.
פרטים נוספים כאן:
http://www.10x.org.il

אודי

שלומי
Guest

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

Eli Amar
Guest

תודה על הכתבה, אם לפני שנה היינו צריכים להתנצל למה אנו מפתחים ברובי און ריילס, היום כבר פחות. בדיון נשאלו כמה שאלות לגבי העדפה בין פייטון לרובי או MVC .Net לנו הים אין ספק שרובי היא הבחירה הנכונה. שילוב של רובי עם שרת אפליקציות כמו HEROKU מאפשר להכנס לתחום בקלות ולפתח אף במהירות יותר גבוהה. למי שרוצה ללמוד את מציע את ריילקסט הנפלא http://railscasts.com/ . יש קהילה מעורבתת ותומכת ברוכים הבאים לעולם מהיר יותר.

אמיר (טורונטו)
Guest

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

ראובן לרנר
Guest
אני תמיד אומר לאנשים שבעולם של קוד פתוח, windows הוא אזרח סוג ב’. זה לא אמור שאי אפשר לעבוד עם רובי בחלונות, ויש אנשים רבים שעושים כך כל יום. אבל הרוב המכריע של מפתחי רובי משתמשים בסוג של יוניקס, או מקינטוש או לינוקס. זה גורם לכך שרוב התיעוד, חבילות, בלוגים, וספרים בעולם של רובי מניחים שיש לך יוניקס. ניתן תמיד להתקין גרסת לינוקס על חלונות עם VMWare, או (יותר ויותר באופנה) VirtualBox, במיוחד עם העטיפה של vagrant, שתוכל להוריד מ http://vagrantup.com/ אבל, למי שרוצה לעבוד בסביבה של חלונות אמיתית, יש תחליף מודרני — http://rubyinstaller.org/. התוכנה הזאת מתקינה את כל הדברים… Read more »
wpDiscuz

תגיות לכתבה: