תוכן שיווקי

Groovy – שפה דינמית למפתחי ג'אווה

10/05/2009 15:38

מאת שימי בנדיאל – מרצה בכיר במכללת הי-טק וסמנכ"ל הפיתוח של חברת Trainologic

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

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

1. יכולות שפה חזקות יותר:
•  משפטי switch הפועלים על Strings, ranges, classes
• אובייקטי פונקציה
• דינמיות: אין צורך להגדיר את סוג המשתנים
•  תמיכה מובנית ב-Regular Expressions

2. אינטגרציה "שקופה" עם ג'אווה:

• ניתן להשתמש בכל הספריות הקיימות בג'אווה
• ניתן להשתשמש בכל class ג'אווה בפרוייקט
• ניתן מקוד ג'אווה להשתמש בכל Groovy class

3. שפת Groovy  דומה מאוד לג'אווה, – עקומת למידה קטנה למפתחי הג'אווה.

4. קיימות תשתיות (frameworks) עבור Groovy שעוזרות מאוד לנושאים שונים בפיתוח. לדוגמה, התשתית הנפוצה Grails (תשתית לפיתוח אפליקציות אינטרנט). לדוגמה, קוד ה-Groovy הבא מדגים גישה למסד-נתונים והצגה של כל המשכורות מטבלת העובדים:

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

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

המקרים הטיפוסיים המתאימים לשימוש ב-Groovy הינם:

• כתיבה של בדיקות יחידה (unit tests): קל מאוד ב-Groovy לייצר קוד בדיקה באמצעות שימוש באובייקטי טווח, תשתית XML נוחה, categories ו- builders.

• לאפשר יכולות התאמה (customizations) של הלוגיקה העיסקית באמצעות שילוב של סקריפטים על ידי הלקוח.
• יצירה של שפות ייעודיות: Groovy מכילה מספר יכולות המאפשרות לייצר בקלות שפה ייעודית עבור האפליקציה.
• כתיבה מהירה של הוכחות היתכנות: Groovy מציעה מספר רב של ספריות עזר המאפשרות לבצע פעולות נפוצות בצורה פשוטה ומהירה (לדוגמא, קוד הגישה למסד-הנתונים).
• כתיבה של אפליקציות אינטרנט: תשתית ה-Grails הינה תשתית לפיתוח מהיר של אפליקציות אינטרנט המבוססת על Groovy. אתר מוכר הנכתב ע"ג תשתית זו הינו LinkedIn.

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

אירועים קרובים