גרסה חדשה של Crystal, שפת תכנות מקומפלת עם תחביר Ruby, שוחררה. התכונות העיקריות שלה הן זמן ריצה עם לולאת אירועים מובנית שבה כל פעולות הקלט/פלט אסינכרוניות, תמיכה בריבוי הליכים (כרגע מאופשר על ידי דגל במהלך הקומפלציה), ועבודה פשוטה ונוחה במיוחד עם ספריות C.
החל מגרסה 0.34.0, השפה מתחילה רשמית את צעידה המתמדת לעבר הוצאתה האמיתית הראשונה (כלומר גרסה 1.0).
הגרסה החדשה של קריסטל כוללת את השינויים והשיפורים הבאים, לפי סדר חשיבות:
ספריית רישום חדשה נוספה ל-API. התחבר, אשר, בניגוד לישן, יכול לנתב הודעות למערכות אחוריות שונות ולסנן הודעות אלו באופן שונה בהתאם ל"מקור".
יסודות מעולם פיתוח C, ארנו и שגיאת רווח, המשמשים עבור פרימיטיבים של קלט/פלט, הופכים לנחלת העבר הודות להיררכיית החריגים IO::Error (עם זאת, איש עדיין אינו אוסר את השימוש ב-Errno).
הוסרה החלפה אוטומטית של else nil מהאופרטור במקרה/כאשר/אחרזה נעשה כדי למנוע ממפתח לדלג בטעות על אחד הענפים. מתי בעת התאמה על מקרים דטרמיניסטיים כמו enums וסוגי מעבר מ-Union. אז, במילים פשוטות, קוד כזה לא יעבוד יותר בלי לציין קוד אחר. מתי (כאשר תו) או משימות אחר-ענפים:
a = 1 || 'x' || "פו"
מקרה א'
כאשר Int32
#…
כאשר מחרוזת
#…
סוף
אפשרות מהדר השבתת_הצפה אינו זמין עוד. עבור פעולות גלישה, השתמש בשיטות &+, &-, &*.
מערך#מילוי עכשיו עף מהר יותר מכדור, הודות להחלפת הלולאה המטופשת בממסט אחד פשוט;
מנהל של רססים (חבילות), שנקרא, באופן פרדוקסלי, שברים, משתמש כעת באלגוריתם פתרון התלות המהיר והיעיל יותר של Molinillo, בהשראת CocoaPods (Swift) ו- Builder (Ruby).
נוספה תמיכה LLVM 10, אשר בתיאוריה ייתן לנו עלייה מסוימת בפריון, ביציבות וכו'.
...ועוד הרבה שיפורים פחות משמעותיים, לדעתי הסובייקטיבית.
ראוי לציין ש-Crystal, שפה הבנויה על LLVM, מאפשרת פיתוח יישומים מהיר, פשוט ותמציתי יותר בהשוואה למקבילותיה המפורשות, ועדיין מייצרת קובץ בינארי מהיר יחסית. Golang בולטת בזכות אופציה פנויה (OOP) מתפקדת במלואה, תמיכה בגנריות ותחביר פשוט וברור מאוד. בעוד שמטרתה המיועדת דומה במידה רבה ל-Nim, היא מתמקדת בבירור בשימוש מעשי בזמן אמת. ממשק ה-API שלה מתגאה בשפע של כלים מתועדים היטב, ידידותיים למשתמש ואיכותיים, הנתמכים על ידי מפתחי השפה ולכן יציבים מאוד.
מקור: linux.org.ru
