Qbs 2.0 بلڈ ٹول کٹ جاری کر دی گئی ہے۔ Qbs کو انحصار کے طور پر Qt کی ضرورت ہوتی ہے، حالانکہ Qbs خود کسی بھی پروجیکٹ کی تعمیر کو سنبھالنے کے لیے ڈیزائن کیا گیا ہے۔ Qbs پراجیکٹ کی تعمیر کے اسکرپٹس کی وضاحت کے لیے QML زبان کا ایک آسان ورژن استعمال کرتا ہے، جس میں لچکدار تعمیراتی اصولوں کی تعریف کی اجازت دی جا سکتی ہے جس میں بیرونی ماڈیولز شامل ہو سکتے ہیں، JavaScript فنکشنز استعمال کر سکتے ہیں، اور حسب ضرورت تعمیراتی اصول بنا سکتے ہیں۔
Qbs میں استعمال ہونے والی اسکرپٹنگ لینگویج کو IDEs کے ذریعے تعمیراتی اسکرپٹ کی تخلیق اور تجزیہ کو خودکار بنانے کے لیے بنایا گیا ہے۔ اس کے علاوہ، Qbs میک فائلز نہیں بناتا، اور خود، میک یوٹیلیٹی جیسے بیچوان کے بغیر، کمپائلرز اور لنکرز کے آغاز کو کنٹرول کرتا ہے، تمام انحصار کے تفصیلی گراف کی بنیاد پر تعمیراتی عمل کو بہتر بناتا ہے۔ پراجیکٹ میں ساخت اور انحصار پر ابتدائی ڈیٹا کی موجودگی آپ کو کئی دھاگوں میں کارروائیوں کو مؤثر طریقے سے متوازی کرنے کی اجازت دیتی ہے۔ فائلوں اور ذیلی ڈائریکٹریوں کی ایک بڑی تعداد پر مشتمل بڑے پروجیکٹس کے لیے، Qbs کا استعمال کرتے ہوئے دوبارہ تعمیرات کی کارکردگی کئی گنا زیادہ کارکردگی دکھا سکتی ہے - دوبارہ تعمیر تقریباً فوری ہوتی ہے اور اس سے ڈویلپر کو انتظار میں وقت نہیں لگتا۔
یاد رہے کہ 2018 میں Qt کمپنی نے Qbs کی ترقی روکنے کا فیصلہ کیا تھا۔ Qbs کو qmake کے متبادل کے طور پر تیار کیا گیا تھا، لیکن آخر کار طویل مدتی میں Qt کے لیے بنیادی تعمیراتی نظام کے طور پر CMake کو استعمال کرنے کا فیصلہ کیا گیا۔ Qbs کی ترقی اب کمیونٹی اور دلچسپی رکھنے والے ڈویلپرز کے تعاون سے ایک آزاد پروجیکٹ کے طور پر جاری ہے۔ Qt کمپنی کا بنیادی ڈھانچہ ترقی کے لیے استعمال ہوتا رہتا ہے۔
اہم ورژن نمبر میں تبدیلی ایک نئے JavaScript بیک اینڈ کے نفاذ کی وجہ سے ہے، جو QtScript کی جگہ لے لیتا ہے، جسے Qt 6 میں فرسودہ کر دیا گیا تھا۔ اس کی پیچیدہ JavaScriptCore پابندیوں کی وجہ سے QtScript کو اندرونی طور پر برقرار رکھنا غیر حقیقی سمجھا جاتا تھا۔ لہذا، نیا بیک اینڈ خود ساختہ اور کمپیکٹ QuickJS JavaScript انجن پر مبنی ہے، جسے Fabrice Bellard، QEMU اور FFmpeg کے بانی نے بنایا ہے۔ یہ انجن ES2019 تفصیلات کو سپورٹ کرتا ہے اور کارکردگی میں موجودہ حریفوں کو نمایاں طور پر پیچھے چھوڑ دیتا ہے (XS %35، DukTape دو گنا سے زیادہ، JerryScript تین گنا، اور MuJS سات گنا)۔
تعمیراتی سکرپٹ تیار کرنے کے معاملے میں، نئے انجن میں منتقلی کے نتیجے میں کوئی اہم تبدیلی نہیں ہونی چاہیے۔ کارکردگی بھی تقریباً وہی رہے گی۔ ایک قابل ذکر فرق غیر متعینہ اقدار کو استعمال کرنے کے لیے نئے انجن کے سخت تقاضے ہیں، جو موجودہ پروجیکٹس میں ایسے مسائل کو ظاہر کر سکتے ہیں جو QtScript استعمال کرتے وقت کسی کا دھیان نہیں گئے۔
ماخذ: opennet.ru
