לקראת מפגש Groovy & Grails Israel

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

בכל אופן הגיע הזמן לחזור ולכתוב, ויש גם הזדמנות מצוינת: המפגש הראשון של Groovy & Grails Israel שיערך מחר.

Grails – The search is over

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

הנקודה שבעיני הכי חשובה להזכיר היא היכולת "ליהנות מכל העולמות", כלומר:

  • מצד אחד – Grails משתייכת למה שמכונה modern web framework כמו Ruby on rails או Django. זה אומר פלטפורמות שעל ידי שמירה על מספר עקרונות (convention over configuration, DRY – Don't repeat yourself וכו') מגיעות לרמת פרודוקטיביות גבוהה וגורמות לכך שהדרך הפשוטה ביותר לעשות דברים תהיה גם הדרך הנכונה.
  • מצד שני – Grails משתלבת עם פלטפורמת JAVA בכל הרמות. זה אומר שהיא בנויה על Spring ועל hibernate – שני פרויקטים מאוד נפוצים ומוצלחים, שהיא מתקמפלת לJVM byte code ורצה על המכונה הוירטואלית המעולה של JAVA ובתור war סטנדרטי על שרתי האפליקציה הנפוצים, שניתן לכתוב חלקים בשפת JAVA אם צריך, ושניתן לנצל את כל העושר של פרויקטים בקוד פתוח שקיימים בג'אווה  (לרוב ארוזים בתוספים שמקלים מאוד על השימוש בהם).

לאחרונה שיחקתי קצת עם framework חדש שנקרא play (חלק ממה שנקרא typesafe stack). זה פרויקט חזק עם כמה רעיונות מעניינים מאוד. אבל כמו שכבתי פעם בנושא של הערכת טכנולוגיות, האספקט הטכני/הנדסי של ספריה מסוימת הוא רק אספקט אחד שצריך לקחת בחשבון, ואפילו לא החשוב שבהם. Play כל כך מתוחכם וחדשני שהוא לא "מתחשב" באף אחד מהסטנדרטים הקיימים, אלא "ממציא" את כל העולם מחדש, החל מהארכיטקטורה ועד לדרך בה מריצים את האפליקציה בשרת. טכנולוגיה כזאת מעלה את רמת הסיכון ומסבכת מאוד את כל נושא האינטגרציה כשצריך לנהל אופרציה שכוללת התקנות כל כך שונות. אני מזכיר את הנושא הזה כדי להמחיש את החשיבות של תאימות לסטנדרטים קיימים שהיא יתרון עצום של grails, ומורידה מאוד את אי הודאות ואת המורכבות בסביבות production.

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

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

אגב, groovy היא שפה דינאמית, והויכוח בין שפות דינאמיות וסטטיות הוא ותיק ומוכר עם טיעונים טובים לשני הצדדים. בכל אופן בגרסה החדשה של השפה (שאמורה להיות מוטמעת בgrails 2.2) יש אפשרות להשתמש באנוטציות שגורמות לקוד להתקמפל בצורה ססטית כמו קוד ג'אווה רגיל. זו תכונה חשובה ששוב מאפשרת ליהנות מכל העולמות ולממש את התפיסה של static typing where possible dynamic typing when needed.

בארץ האימוץ של grails  היה הרבה יותר איטי. הרבה אנשים כלל לא שמעו על הפלטפורמה והרבה אחרים שנחשפו אליה חשבו שמדובר בסוג של צעצוע כשראו כמה קל לבצע בה דברים (בג'אווה המסורת היא שטכנולוגיה רצינית חייבת להיות מסובכת, לכלול כתיבה של המון קוד או XML מיותר, ולגרום לך לסבול ולקלל. אם משהו פשוט עובד בצורה קלה ונוחה כנראה שהוא לא רציני. רוד ג'ונסון, שפיתח את spring קרא לזה the 'enterprise level' illusion). לכן מאוד שמחתי כששמעתי על Groovy & grails Israel. זו קבוצת meetup שהוקמה על ידי מני לובטקין (שכותב גם בלוג על grails). ויש בה מספר משתתפים מכובד. אני מקווה להצליח להגיע מחר למפגש הראשון. אני חושב שקהילת משתמשים מקומית שתפיץ את הבשורה היא חשובה לחברים בה, אך יכולה גם לעזור לאימוץ יותר נרחב של פלטפורמה מצוינת בתעשייה המקומית.

3 מחשבות על “לקראת מפגש Groovy & Grails Israel

כתיבת תגובה

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

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s