ระบบคอมไพล์ QBS 2.0 เวอร์ชันใหม่มาถึงแล้ว

คิวบีเอส

Qbs เป็นระบบสร้างอัตโนมัติที่ขับเคลื่อนโดยชุมชนและไม่เชื่อเรื่องภาษา มันรวดเร็วและให้การเรียนรู้ภาษาที่ง่ายโดยใช้ QML

เมื่อเร็วๆ นี้ ได้มี การประกาศ เปิดตัว Qbs 2.0 ซอฟต์แวร์โอเพนซอร์สฟรีที่ใช้งานได้บนหลายแพลตฟอร์ม สำหรับจัดการกระบวนการพัฒนาซอฟต์แวร์ ซอฟต์แวร์นี้ ได้รับการออกแบบมาเพื่อรองรับโครงการขนาดใหญ่และซับซ้อนที่เขียนด้วยภาษาโปรแกรมต่างๆ โดยหลักๆ คือ C/C++

เวอร์ชัน2.0 ใหม่นี้มีความสำคัญในแง่ของหมายเลขเวอร์ชัน เนื่องจากเกี่ยวข้องกับการใช้งานแบ็กเอนด์ JavaScript ใหม่ซึ่งเข้ามาแทนที่ QtScript ที่ล้าสมัยไปแล้วใน Qt 6

สำหรับผู้ที่ไม่คุ้นเคยกับ Qbs นั้น มันใช้ภาษา QML เวอร์ชันที่เรียบง่ายกว่าในการกำหนดสคริปต์การสร้างโปรเจ็กต์ ทำให้สามารถสร้างกฎการสร้างที่ยืดหยุ่นได้ ซึ่งสามารถเชื่อมต่อโมดูลภายนอก ใช้ฟังก์ชัน JavaScript และสร้างกฎการสร้างตามอำเภอใจได้

Qbs มีความโดดเด่นตรงที่ไม่มีกลไกสำหรับการสร้างบิลด์ภายในทำให้มั่นใจได้ว่าสามารถสร้างบิลด์ได้หลายเวอร์ชันจากซอร์สโค้ดเดียว รวมถึงการสร้างจากคำสั่งเรียกใช้งานเดียวและแบบขนานได้

นี่เป็นคุณสมบัติสำคัญที่ช่วยให้มั่นใจได้ว่าไฟล์ต้นฉบับจะไม่ได้รับผลกระทบหากไดเร็กทอรีการสร้างถูกลบและจะไม่มีการเขียนไฟล์เอาต์พุตใดๆ ลงในไดเร็กทอรีต้นฉบับ Qt เป็นส่วนประกอบที่จำเป็นในการสร้าง Qbs แม้ว่า Qbs เองจะได้รับการออกแบบมาเพื่อจัดการการประกอบโปรเจกต์ใดๆ ก็ตาม

ภาษาสคริปต์ที่ใช้ใน Qbs ได้รับการปรับให้สร้างและแยกวิเคราะห์สคริปต์บิลด์โดยอัตโนมัติโดย IDE นอกจากนี้ Qbs จะไม่สร้าง makefiles และหากไม่มีตัวกลาง เช่น ยูทิลิตี make จะควบคุมการเผยแพร่คอมไพเลอร์และลิงเกอร์ เพิ่มประสิทธิภาพกระบวนการสร้างตามกราฟโดยละเอียดของการขึ้นต่อกันทั้งหมด

การมีอยู่ของข้อมูลเริ่มต้นเกี่ยวกับโครงสร้างและการพึ่งพาในโครงการช่วยให้คุณสามารถดำเนินการแบบขนานได้อย่างมีประสิทธิภาพในหลายเธรด สำหรับโปรเจ็กต์ขนาดใหญ่ที่ประกอบด้วยไฟล์และไดเร็กทอรีย่อยจำนวนมาก ประสิทธิภาพของการสร้างใหม่โดยใช้ Qbs อาจดีกว่าการสร้างใหม่หลายเท่า: การสร้างใหม่แทบจะทันทีและไม่ต้องเสียเวลารอของนักพัฒนา

ความแปลกใหม่หลักของ QBS 2.0

การเปิดตัว QBS 2.0 เวอร์ชันใหม่นี้มีความโดดเด่น ดังที่ได้กล่าวไว้ในตอนต้น เนื่องจากมีการนำเอ็นจิ้น JavaScript ใหม่มาแทนที่ QtScriptซึ่งล้าสมัยไปแล้วตั้งแต่ Qt 6 เพราะถือว่าไม่สมจริงที่จะดำเนินการบำรุงรักษา QtScript เพียงอย่างเดียวต่อไป เนื่องจากมีการผูกมัดที่ซับซ้อนกับ JavaScriptCore

โอกาสของการรักษา QtScript ด้วยการพึ่งพาที่ซับซ้อนดูเหมือนจะไม่น่าสนใจเป็นพิเศษ อย่างไรก็ตาม ไม่มีผู้สมัครรายใดเสนอ API เพื่อสกัดกั้นการเข้าถึงทรัพย์สิน ซึ่งเป็นสิ่งที่นักพัฒนาบอกว่าพวกเขาต้องการอย่างยิ่งสำหรับเหตุผลด้านประสิทธิภาพ

จากมุมมองของผู้ใช้ ไม่ควรมีการเปลี่ยนแปลงที่เห็นได้ชัดเจน โดยเฉพาะอย่างยิ่งประสิทธิภาพดูเหมือนจะใกล้เคียงกัน อย่างไรก็ตาม QtScript ค่อนข้างผ่อนปรนในการยอมรับค่าที่ไม่ได้กำหนดในบริบทที่ไม่จำเป็นต้องยอมรับ ดังนั้นการติดตั้งใช้งานใหม่อาจเปิดเผยจุดบกพร่องในโครงการของคุณ

เอนจินนี้เป็นไปตามข้อกำหนด ES2019และมีประสิทธิภาพเหนือกว่าเอนจินที่มีอยู่เดิมอย่างเห็นได้ชัด (XS ดีกว่า 35%, DukTape ดีกว่าสองเท่า, JerryScript ดีกว่าสามเท่า และ MuJS ดีกว่าเจ็ดเท่า) จากมุมมองของการพัฒนาสคริปต์การสร้าง การเปลี่ยนไปใช้เอนจินใหม่ไม่น่าจะทำให้เกิดการเปลี่ยนแปลงที่สังเกตได้ชัดเจน

ประสิทธิภาพโดยรวมจะยังคงเกือบเหมือนเดิมความแตกต่างประการหนึ่งคือ เอ็นจิ้นใหม่มีข้อกำหนดที่เข้มงวดมากขึ้นสำหรับการใช้ค่าว่าง ซึ่งอาจเปิดเผยปัญหาในโปรเจ็กต์ที่มีอยู่ซึ่งไม่เคยถูกตรวจพบมาก่อนเมื่อใช้ QtScript

นอกจากนี้ ยังมีการกล่าวถึง การลบไฟล์โปรเจ็กต์ qmake ซึ่งส่งผลให้ภาระงานบำรุงรักษา สำหรับนักพัฒนาลดลง

ในที่สุดมีการกล่าวถึงว่าเวอร์ชัน 2.1 จะเห็นการเขียนโค้ดใหม่ซึ่งนักพัฒนาคิดว่าพวกเขาจะมีคุณสมบัติใหม่หลายอย่างรวมถึงการปรับปรุงประสิทธิภาพทั่วไป

หากคุณสนใจเรียนรู้เพิ่มเติม สามารถดูรายละเอียดได้ที่ลิงก์ต่อไปนี้


เพิ่มเป็นแหล่งข้อมูลที่ต้องการใน Google