אתם יודעים מהי שפת ה-Web הנפוצה ביותר בעולם?
בוודאי תגידו Java , או תחשבו ש-.Net של מייקרוסופט היא מספר אחד.
אבל האמת היא שאף אחת מהשתיים אינה המובילה כיום. רוב אתרי האינטרנט לא כתובים לא ב-Java ולא ב-.Net. אפילו לא ב-RoR - כי למרות שרוב אפליקציות האינטרנט החדשות כיום נכתבות ברובי און ריילס, ריילס עדיין לא מספר אחת. למעשה, יותר אתרים בעולם כיום כתובים ב-PHP מאשר כל שפה אחרת.
מנכ"ל חברת outsource אמר לי פעם, שהוא לא פותח מחלקה של PHP כיוון שהוא לא יוכל לגבות הרבה כסף סביב האפליקציות, כי יש הרבה מתכנתי PHP זולים. נו באמת. אתה לא רוצה להיות תחרותי? אתה באמת מאמין שלא צריך להשקיע באנשים טובים בכדי לפתח אפליקציה טובה ולא משנה באיזו שפה או פלטפורמה?
אם PHP הכי נפוצה, מדוע אנחנו בחרנו ב-RoR?
בעבר לא מעט שאלו אותי מדוע בחרנו ב-RoR. זה היה די מזמן ובחרנו עוד לפני שידענו שהיא תהפוך לכל כך פופולארית. אם היינו יודעים עובדה זו, זה היה מקל עלינו את ההחלטה.
בפוסט הקודם פירטתי מדוע Ruby On Rails היא מצויינת. אנסה לפרט מדוע אנחנו בחרנו בה על פני PHP.
כל בעל נסיון בתוכנה יודע שהחלק היקר בפיתוח מגיע דווקא בשלב התחזוקה. כאשר כותבים אפליקציה מורכבת, לאורך שנים, האנשים מתחלפים ואיתם הידע הולך. אז עלות התחזוקה עולה. RoR בהרבה מובנים עדיפה על פני פלטפורמות אחרות, אבל בנושא התחזוקה לאפליקציות web, לעניות דעתי, Ruby On Rails עולה בהרבה על כל פלטפורמה קיימת.
כל איש תוכנה אשר מגיע לארגון פיתוח מסודר, כבר מכיר את זה שבכמה ימים או שבועות הראשונים, צריך קודם כל לקרוא את מסמכי המערכת, מסמכי ה-Design, איך התקשורת בין הרכיבים, מבנה האובייקטים וכו'. צריך ללמוד את הרכיבים בהם משתמשים ורק אז מתחילים להבין איך הכל עובד ביחד. מסמכים אלו הם קריטיים לארגון מסודר אשר רוצה לשמר את היידע בארגון (אני לא רוצה להזכיר את הארגונים שלא עושים דוקיומנטציה בפיתוח).
זה לא שב-RoR לא צריך לכתוב מסמכים, אבל מה שמגיע כבר בתור סטנדרט - אין צורך להוסיף. זה ברור מאליו, כי כל מפתח ב-RoR מכיר ועובד בשיטה זו. לדוגמא:
בל נשכח שלעתים אנחנו, המפתחים המנוסים יכולים לעשות טעויות, והקביעה של הסטנדטים שלנו היא לא מושלמת. הסיכוי שזה יקרה לקהילה פתוחה של אלפי מתכנתים הוא נמוך מאוד. כיוון ש-RoR נועדה לפיתוח Web את כל הסטנדרטים הכי רלוונטים אנחנו מקבלים built in. זה מביא אותי לייתרון נוסף של RoR.
כל מה שאני צריך בתור מפתח Web אני מקבל מה-Framework. כל הסטנדרטיים הללו הם סטנדרטים של התעשייה שאני צריך בתור מפתח, אבל אני לא צריך לחפש באינטרנט מה הכי נכון עבורי לשימוש. הקהילה עזרה לי בהחלטות אלו. אני לא חייב לעבוד עם זה, אבל זה חוסך לי זמן. הרבה זמן.
למעשה, הכתיבה בריילס חוסכת זמן (וכסף). אם בזמן הפיתוח או בתחזוקה. ריילס לא מגבילה אותי איך לעבוד, רק נותנת לי את הכלים הטובים ביותר, שכנראה ארצה אותם ממילא.
בוודאי תגידו Java , או תחשבו ש-.Net של מייקרוסופט היא מספר אחד.
אבל האמת היא שאף אחת מהשתיים אינה המובילה כיום. רוב אתרי האינטרנט לא כתובים לא ב-Java ולא ב-.Net. אפילו לא ב-RoR - כי למרות שרוב אפליקציות האינטרנט החדשות כיום נכתבות ברובי און ריילס, ריילס עדיין לא מספר אחת. למעשה, יותר אתרים בעולם כיום כתובים ב-PHP מאשר כל שפה אחרת.
מנכ"ל חברת outsource אמר לי פעם, שהוא לא פותח מחלקה של PHP כיוון שהוא לא יוכל לגבות הרבה כסף סביב האפליקציות, כי יש הרבה מתכנתי PHP זולים. נו באמת. אתה לא רוצה להיות תחרותי? אתה באמת מאמין שלא צריך להשקיע באנשים טובים בכדי לפתח אפליקציה טובה ולא משנה באיזו שפה או פלטפורמה?
אם PHP הכי נפוצה, מדוע אנחנו בחרנו ב-RoR?
בעבר לא מעט שאלו אותי מדוע בחרנו ב-RoR. זה היה די מזמן ובחרנו עוד לפני שידענו שהיא תהפוך לכל כך פופולארית. אם היינו יודעים עובדה זו, זה היה מקל עלינו את ההחלטה.
בפוסט הקודם פירטתי מדוע Ruby On Rails היא מצויינת. אנסה לפרט מדוע אנחנו בחרנו בה על פני PHP.
כל בעל נסיון בתוכנה יודע שהחלק היקר בפיתוח מגיע דווקא בשלב התחזוקה. כאשר כותבים אפליקציה מורכבת, לאורך שנים, האנשים מתחלפים ואיתם הידע הולך. אז עלות התחזוקה עולה. RoR בהרבה מובנים עדיפה על פני פלטפורמות אחרות, אבל בנושא התחזוקה לאפליקציות web, לעניות דעתי, Ruby On Rails עולה בהרבה על כל פלטפורמה קיימת.
כל איש תוכנה אשר מגיע לארגון פיתוח מסודר, כבר מכיר את זה שבכמה ימים או שבועות הראשונים, צריך קודם כל לקרוא את מסמכי המערכת, מסמכי ה-Design, איך התקשורת בין הרכיבים, מבנה האובייקטים וכו'. צריך ללמוד את הרכיבים בהם משתמשים ורק אז מתחילים להבין איך הכל עובד ביחד. מסמכים אלו הם קריטיים לארגון מסודר אשר רוצה לשמר את היידע בארגון (אני לא רוצה להזכיר את הארגונים שלא עושים דוקיומנטציה בפיתוח).
זה לא שב-RoR לא צריך לכתוב מסמכים, אבל מה שמגיע כבר בתור סטנדרט - אין צורך להוסיף. זה ברור מאליו, כי כל מפתח ב-RoR מכיר ועובד בשיטה זו. לדוגמא:
- בדיקות פנימיות Unit Testing - עם איזה מודול עובדים? ב-RoR זה מובנה. כל מי שלמד Rails יודע איך לעשות Unit Testing בפלטפורמה. אגב, ככל שהאפליקציה יותר מורכבת, צריך יותר Unit Testing.
- ORM - אם מפתח PHP מן השורה אינו מכיר ORM, אז ברור שמפתח RoR יכיר, כי כולם עובדים עם זה (אגב, Hibernate ב-Java מאוד פופולארית ורוב מפתחי ה-Java כן מכירים ORM, אך לא בטוח שיכירו MVC, למשל).
- שמות של טבלאות במסד הנתונים, אופן יצירתם, אופן תחזוקתם.
- מבנה הספריות ושמות של הקבצים - אפשר לזלזל בזה, אבל זה קריטי. כאשר אני נכנס לקוד של אפליקציה קיימת, אני יודע בדיוק איפה הגדירו את מבנה ה-DB, באילו מודולים חיצוניים משתמשים ואיפה הם מופיעים, איפה קבצי הקונפיגורציה, איפה ה-Controllers, איפה הדפים שמייצרים את ה-HTML, איפה קבצי ה-Unit Testing וכו'
בל נשכח שלעתים אנחנו, המפתחים המנוסים יכולים לעשות טעויות, והקביעה של הסטנדטים שלנו היא לא מושלמת. הסיכוי שזה יקרה לקהילה פתוחה של אלפי מתכנתים הוא נמוך מאוד. כיוון ש-RoR נועדה לפיתוח Web את כל הסטנדרטים הכי רלוונטים אנחנו מקבלים built in. זה מביא אותי לייתרון נוסף של RoR.
כל מה שאני צריך בתור מפתח Web אני מקבל מה-Framework. כל הסטנדרטיים הללו הם סטנדרטים של התעשייה שאני צריך בתור מפתח, אבל אני לא צריך לחפש באינטרנט מה הכי נכון עבורי לשימוש. הקהילה עזרה לי בהחלטות אלו. אני לא חייב לעבוד עם זה, אבל זה חוסך לי זמן. הרבה זמן.
למעשה, הכתיבה בריילס חוסכת זמן (וכסף). אם בזמן הפיתוח או בתחזוקה. ריילס לא מגבילה אותי איך לעבוד, רק נותנת לי את הכלים הטובים ביותר, שכנראה ארצה אותם ממילא.
0 comments:
הוסף רשומת תגובה