Qbs היא מערכת אוטומציית בנייה מונעת קהילתית, אגנוסטית לשפה. זה מהיר ומציע שפה קלה ללימוד המבוססת על QML.
לאחרונה הוכרזה שחרור הגרסה החדשה של Qbs 2.0, שהיא תוכנה חינמית וקוד פתוח חוצת פלטפורמות לניהול תהליך יצירת התוכנה. הוא תוכנן לתמוך בפרויקטים גדולים ומורכבים, שנכתבו בשפות תכנות שונות, בעיקר C/C++.
הגרסה החדשה 2.0 הוא משמעותי במספר הגרסה, מכיוון שהוא משויך להטמעה של קצה ג'אווה סקריפט חדש., שהחליף את QtScript, שהוצא משימוש ב-Qt 6.
למי שלא מודע ל-Qbs, הוא צריך לדעת שזה משתמש בגרסה פשוטה של שפת QML כדי להגדיר סקריפטים לבניית פרויקטים, מה שמאפשר לך להגדיר כללי בנייה גמישים למדי שבהם ניתן לחבר מודולים חיצוניים, ניתן להשתמש בפונקציות JavaScript, וליצור כללי בנייה שרירותיים.
Qbs ייחודי בכך שהואe אין שום מנגנון להידורים פנימיים, הבטחת היכולת ליצור מספר בנייה מעץ מקור אחד, כולל בנייה מהפעלת פקודה אחת ובמקביל.
זוהי תכונת מפתח, אשר מבטיח שקובצי מקור לא יושפעו אם ספריית build נמחקת ושלא נכתבים חפצי פלט לספריית המקור. כדי לבנות Qbs, Qt נדרש כתלות, אם כי Qbs עצמו נועד לארגן את ההרכבה של כל פרויקט.
שפת הסקריפטים המשמשת ב-Qbs מותאמת לאוטומטיות את היצירה והניתוח של סקריפטים לבנות על ידי IDEs. יתרה מזאת, Qbs אינו מייצר קבצי makefile, וללא מתווכים כמו כלי השירות make, שולט בשחרור מהדרים ומקשרים, תוך אופטימיזציה של תהליך הבנייה על סמך גרף מפורט של כל התלות.
הנוכחות של נתונים ראשוניים על המבנה והתלות בפרויקט מאפשרת לך להקביל ביעילות את ביצוע הפעולות במספר שרשורים. עבור פרויקטים גדולים המורכבים ממספר רב של קבצים ותתי-ספריות, הביצועים של בנייה מחדש באמצעות Qbs יכולים להיות טובים פי כמה מ-make: הבנייה מחדש היא כמעט מיידית ואינה מבזבזת זמן למפתחים בהמתנה.
החידושים העיקריים של QBS 2.0
מהדורה חדשה זו של QBS 2.0 בולטת כאמור בהתחלה, בשל ה מנוע JavaScript חדש שבא להחליף את QtScript אשר הוצא משימוש עבור Qt 6, מכיוון שנחשב לא מציאותי להמשיך לתמוך ב-QtScript בפני עצמו עקב כריכות מורכבות ל-JavaScriptCore.
הסיכוי לשמור על QtScript עם התלות המורכבת שלו לא נראה מושך במיוחד. עם זאת, אף אחד מהמועמדים לא הציע ממשק API ליירט גישה לנכסים, דבר שהמפתחים אומרים שהם זקוקים לו לחלוטין מסיבות ביצועים.
מנקודת מבטו של המשתמש, לא אמורים להיות שינויים בולטים; בפרט, נראה שהביצועים זהים בערך. עם זאת, QtScript היה די מקל בקבלת ערכים לא מוגדרים בהקשרים שבהם זה לא היה צריך, כך שהיישום החדש עשוי לחשוף כמה באגים בפרויקטים שלך.
המנוע תואם למפרט ES2019 ועולה משמעותית על מקביליו הקיימים בביצועים (XS ב-35%, DukTape ביותר מפי שניים, JerryScript פי שלושה, ו-MuJS פי שבע). מנקודת מבט של פיתוח סקריפטים, מעבר למנוע חדש לא אמור לגרום לשינויים ניכרים.
גם הביצועים יישארו בערך אותו הדבר. מבין ההבדלים, ישנן דרישות מחמירות יותר במנוע החדש לשימוש בערכי null, מה שעלול לחשוף בעיות בפרויקטים קיימים שלא הבחינו בהם בעת השימוש ב-QtScript.
בנוסף לכך, מוזכר גם ש הסירו קבצי פרויקט qmake, וכתוצאה מכך עבודת תחזוקה מופחתת למפתחים.
לבסוף מוזכר שגרסה 2.1 תראה שכתוב של הקוד שבאמצעותו המפתחים מניחים שיהיו להם מספר פיצ'רים חדשים, כמו גם שיפורי ביצועים כלליים.
אם אתה מעוניין לדעת יותר על כך, אתה יכול לעיין בפרטים בקישור הבא.