8. Groovy is very easy to enter
into for Java developers,
since…
Java code is Groovy code
9. Groovy Features
• Strings
• Collections
• Date
• Parsing and producing
JSON
• Working with a DB
• Processing XML
• Template engines
• Builders
• Grapes
• Traits
• Processing
configuration
• HTTPBuilder
• and many more…
10. Groovy is more than just
a set of features,
it is more than a better
Java
11. There are new concepts for
Java developers
• Dynamic language
• with optional static-typing and static-
compilation
• Closures
• Functional programming
• Meta-programming
• Traits
• DSLs
• and more…
אני אחד המארגנים של קהילת Java.IL
יחד עם אסף, אורי, חיים ותומר אנחנו מארגנים meetups וכנסים בנושאים הקשורים ל Java JVM ושפות תיכנות JVM
אנחנו פועלים כחצי שנה, יש כבר קרוב ל 650 נרשמים.
אני רוצה לנצל את ההזדמנות הזאת כדי להזמין אותכם להירשם, להשתתף במיטאפים: גם לשמוע וגם לדבר, ולהיות פעילים בקהילה.
אני אוהב לתכנת. אחת הסיבות המרכזיות היא שאני אוהב לראות שמשתמשים במה שאני יוצר, אני אוהב שלקוחות אוהבים להשתמש במוצרים שאני יוצר.
לכן חשוב לי להשתמש בכלים שעוזרים לי להיות פרודוקטיבי, כלים שעוזרים לי לגרום לדברים לקרות.
שפת תיכנות היא אחד הכלים האלה.
בואו נראה איך Java בתחום הזה. ה runtime של Java ה JVM הוא מערכת יציבה שקיימת כבר 20 שנה, מאד נדיר להיתקל בבאג כאן. אפשר לבנות מערכות שהן robust and scalable - תורם הרבה לפרודקטיביות.
ל Java יש ecosystem מאד עשיר, כמעט כל בעיה שאתם נתקלים אפשר למצוא תשובה או לשאול…- תורם הרבה לפרודקטיביות.
אבל מה לגבי שפה עצמה? כאן זה כבר פחות תורם לפרודוקטיביות. אני מפתח Java 15 שנה, אני אוהב Java, אבל ב Java צריך לכתוב הרבה boilerplate code וזה עוצר אותך, זה לא נותן להתקדם וזה ממש לא כיף. לא הרגשתם Java עוצרת אותכם? הלוואי ו Java היתה דינאמית יותר, קלילה יותר ומגניבה יותר כמו שפות אחרות אולי. לא כיף לפתח עם Java.
לפני כשנתיים וחצי פגשתי את Groovy. Groovy היא שפת תיכנות מבוססת על Java, היא רצה מעל JVM, ולכן נהנת מכל הדברים הטובים שלה. היות ואפשר להשתמש בקוד Java בתוך קוד של Groovy אפשר להנות מה ecosystem של Java, אבל Groovy מוסיפה ecosystem נוסף, ecosystem חם ומקבל מפתחים חדשים.
Groovy היא שפה דינאמית וקלילה בעזרת Groovy אפשר להיות הרבה יותר פרודוקטיבי וגם להנות מהפיתוח.
ויש הרבה features מעניינים. אני לא הולך לפרט כאן את features, יש הרבה חומר ברשת. אני אגע בקצרה בכמה בהמשך.
אבל Groovy היא יותר מאוסף של features, היא יותר מ Java משופרת, Groovy חושפת את מפתחי Java ל concepts חדשים, דרכים נוספות לפתח תוכנה, וגם פותחת דרכים ללמוד שפות נוספות. אני יכול להעיד על עצמי שמאז שאני מפתח גם ב groovy אני מפתח טוב יותר גם ב Java. וגם לומד ומפתח ב scala.
משתמשים ב Groovy בהרבה אירגונים גדולים ומפורסמים וקטנים. אני משתתף הרבה במיטאפים וכנסים בארץ, אני מארגן חלק מהם ואני שומע מעט מאד על Groovy. זה לא המצב בעולם, בכנסים מובילים בעולם מדברים הרבה על Groovy יש הרבה פרויקטים עם Groovy. אני חושב שהמצב בארץ לא מוצדק חבל שזה כך ואני רוצה לשנות את זה.
אני חושב שיש ל Groovy יתרון על פני שפות JVM אחרות שגם הן נהנות מה runtime הזה. יש כמה שפות מצויינות אבל ל Groovy קל מאד להיכנס בניגוד לשפות אחרות. לכן אני חושב שכל מפתח Java חייב לדעת Groovy: זה יכול להיות שימושי בהרבה מאד מקרים, זה מכניס כיף לפיתוח. אני אראה לכם כמה דוגמאות כאלה בהמשך.
לפני שאני נוגע ב Groovy עצמו אני רוצה להראות לכם כלי מאד שימושי שמגיע עם Groovy, זהו כלי שאפשר להשתמש בו גם כשמפתחים Java. מפתחי Ruby,Python,Scala,Javascript שבינכם מכירים את המושג REPL: זוהי אותה סביבה command line בהרבה מקרים, שמאפשרת לכתוב פקודות בשפה מסויימת ומייד לראות תוצאה. זה מאד שימושי, תורם הרבה לזרימה בזמן הפיתוח. כמה נחמד לרשום קוד Javascript ב Chrome dev tool ופשוט מייד לראות תוצאה. ב Java אין משהו כזה, ואני חושב שזאת נכות של Java. אבל עכשיו בזכות ה groovy shell יש את זה גם ב Java!! אני אראה לכם.
אני קיבלתי ממקור חיצוני URL אבל הוא היה escaped
חיפשתי באינטרנט ומצאתי שיש API של apache commons lang שמאפשר לעשות unescape
בדרך כלל ב Java צריך לייצר איזשהו main או unit test
no more!!!!
אפשר לעשות את זה גם מ IDE הנה כך ב intellij
אחד הדברים הראשונים שאני למדתי לאהוב ב Groovy הן Groovy collections
הן מתבססות על Java collections אבל מוסיפות כל כך הרבה יכולות!
הנה כך מאתחלים רשימה שהיא בעצם ה ArrayList של Java
קל מאד לקחת רשימה ולהפוך אותה לרשימה אחרת
איך מאתחלים map עם ערכים התחלתיים וערך default
שורה אחת ב Groovy
וכך עושים את זה ב Java
ב Commerce Sciences אנחנו מפתחים מוצר שה front end שלו היא single page application המפותח מעל Ember וה- backend אפליקציית Java מעל Play! Framework. אנחנו מנהלים campaigns של לקוחות. campaign הוא בעצם json שנשמר ב DB. חלקים מה json הזה נשלחים ל front end בפורמט ש ember מצפה לקבל. יש הרבה התעסקות עם json. אנחנו מצאנו את עצמנו מתאמצים המון לעשות את זה ב Java. ב Groovy זה כל כך פשוט, תיכף תיראו.
הסיפר שלנו הוא בעצם דוגמה לשימוש ב Groovy באפלירציית Java קיימת. אנחנו התחלנו עם בעיה אחת: מניפולציות json.