مقولهی زبان برنامهنویسی و مجموعه ابزار، دو موضوع متفاوت است اما عموم کاربران و به خصوص افراد مبتدی، برداشت اشتباهی در این رابطه دارند و حتی این دو را یکسان فرض میکنند. در توزیعات لینوکس، میزان هماهنگی یک اپلیکیشن با دستاپ به این بستگی دارد که اپلیکیشن در GTK+ ساخته شده باشد یا Qt.
در این مقاله میخواهیم به مفاهیم GTK+ و Qt در دنیای Linux بپردازیم که برای کاربران این سیستم عامل بسیار مفید و حتی ضروری است.
آشنایی با مفهوم GTK+ و Qt
دو مجموعه ابزار یا Toolkit که توسعهدهندگان اپلیکیشن برای سیستم عامل لینوکس، استفاده میکنند، GTK+ و Qt نام دارد. اینکه ساختار اپلیکیشن و ظاهر آن چگونه خواهد شد، تا حد زیادی به تولکیت استفاده شده بستگی دارد. در واقع دکمهها، نوار ابزارها، اسلایدرها و منوهای یک اپلیکیشن به کمک GTK+ یا Qt ساخته میشود تا برنامهنویس کمتر روی جزئیات طراحی وقت صرف کند و هر چه سریعتر اپلیکیشن را تکمیل کند.
بنابراین استفاده از قابلیتهای تولکیت در توسعهی نرمافزارهای لینوکس، سرعت کار را بیشتر کرده و امور را سادهتر میکند. اما عملکرد و قابلیتهای اپلیکیشن، موضوع مستقلی است و به کدهایی وابسته است که توسعهدهنده مینویسد.
تاریخچهی مختصر GTK+ و Qt
توسعهی Qt در سال ۱۹۹۱ توسط Haarvard Nord و Eirik Chambe-Eng آغاز شد. توجه کنید که تلفظ Qt مثل واژهی Cute (کیوت) است.
بعدها کمپانی Throll Tech توسط این دو نفر بنیانگذاری شد و سورس کد نسخهای Qt برای Linux در سال ۱۹۹۵ توسط همین کمپانی منتشر شد. اما با توجه به این که شرایط یک نرمافزار رایگان را نداشت، تا سال ۲۰۰۰ محبوبیت لازم را کسب نکرد. در سال ۲۰۰۰ آزادی عمل به کاربران داده شد تا تغییراتی در Qt ایجاد کنند و کدهای تغییر یافته را منتشر کنند و از این پس Qt به یک مجموعه ابزار محبوب برای توسعهی اپلیکیشنهای لینوکس تبدیل شد.
GTK+ در آغاز به عنوان یک تولکیت ویژهی نرمافزار GIMP که نرمافزاری محبوب برای ویرایش تخصصی عکس در دنیای گنو لینوکس است، مطرح شد. Peter Mattis در سال ۱۹۹۸ این تولکیت جایگزین را معرفی کرد و برخلاف Qt که در ابتدا تغییر در آن مجاز نبود، آزادی عمل به برنامهنویسان داده شد.
با وجود اینکه Qt مجموعه ابزار قدرتمند و از نظر کاربری قویتر بوده، اما GTK+ در اولین سالهای ظهور، با کمک برنامهنویسان مختلف سریعاً پیشرفت کرد. در حال حاضر بنیاد GNOME به توسعهی GTK+ ادامه میدهد و کمپانی Qt نیز توسعهی تولکیت Qt را رهبری میکند. هر دو تولکیت در حال حاضر آزادی عمل بالایی به توسعهدهندگان میدهند.
دستاپها و نرمافزارهای مبتنی بر GTK
در حال حاضر بیشتر دستاپهای محبوب و بروز لینوکس مبتنی بر GTK طراحی شده است. دستاپ گنوم و توزیعات محبوبی مثل Ubuntu و Fedora و Debian و توزیعات وابسته به این موارد، اساساً دستاپی مبتنی بر GTK دارند. البته توزیعاتی سبکتر و سادهتر مثل Xfce یا MATE نیز همینگونه هستند.
بسیاری از اپلیکیشنهای متن باز محبوب نیز سازگاری بهتری با دستاپهای مبتنی بر GTK دارند. نمونهی این اپلیکیشنها، فایرفاکس و تاندربرد، آفیس LibreOffice و نرمافزار معروف GIMP است. اپلیکیشنهایی مثل AbiWord و Inscape و Pidgin نیز مبتنی بر GTK هستند.
اما پراکندگی خاصی بین اپلیکیشنهای مبتنی بر GTK+ وجود دارد. اپهایی که به ویژه برای گنوم طراحی شده، بعضاً تفاوت ظاهری زیادی دارند، حتی در مقایسه با دیگر دستاپهای لینوکس. علت این است که راهنمای طراحی رابط کاربری گنوم، استفاده از نوار منو را توصیه نمیکند و تغییرات دیگری را توصیه کرده که متداول نیست. اما در نهایت اپلیکیشنهای محبوب و چند پلتفرمی، طراحی خاص خود را حفظ کردهاند.
دستاپها و نرمافزارهای مبتنی بر Qt
دستاپ معروف KDE Plasma قدیمیترین و کاملترین محیط دستاپی برای لینوکس است که بر اساس Qt توسعه پیدا کرده است. حدود دو دهه از ظهور GTK میگذرد و همچنان توسعهدهندگان این دستاپ، به بهینهسازی و افزودن قابلیتهای آن ادامه میدهند. دستاپهای مبتنی بر Qt متعدد و محبوب نیستند لذا بیشتر اپهایی که بر اساس Qt توسعه داده میشود، اساساً برای دستاپ KDE Plasma بهینهسازی میشود و حتی به برخی اجزای این دستاپ وابسته است. لذا سازگاری نرمافزارهای KDE و این دستاپ، در دنیای لینوکس از بهترینها است.
دستاپ محبوب LXQt نیز از دستاپهای سبک و سادهی لینوکس است که جایگزین خوبی برای KDE Plasma محسوب میشود.
برخی از نرمافزارهای KDE برای پلتفرمهای نرمافزاری دیگر منتشر شده اما معمولاً محبوب نیستند. هر چند مواردی مثل Krita و digiKam معروف هستند. برخی نرمافزارهای مبتنی بر Qt نیز محبوبیت جهانی دارند، مثل VLC Media Player که حتی در ویندوز و مکاواس نیز کمنظیر است. نمونهی دیگر اپلیکیشن Scribus است.
تفاوت Qt و GTK+ چقدر مهم است؟
از لحاظ فنی بین دو تولکیت GTK و Qt تفاوتهایی وجود دارد اما این تفاوتها معمولاً بیشتر موردتوجه برنامهنویسان لینوکس است. این روزها با وجود پیشرفتهایی که در طراحی ظاهری و سفارشیسازی اتفاق افتاده، بسیاری از اپهای مبتنی بر GTK+ در صورت استفاده از دستاپهای مبتنی بر Qt، درست شبیه به اپهای مبتنی بر Qt به نظر میرسند. لذا درک تفاوتها مشکلتر شده است.
اما توجه به سازگاریها مهم است چرا که ممکن است هر از گاهی حین کار با اپلیکیشنها متوجه شوید که پنجرهی انتخاب فایل درست شبیه به پنجرهی انتخاب فایل در دیگر اپلیکیشنها نیست یا حین تغییر دادن تنظیمات ظاهری دستاپ لینوکس، متوجه شوید که تغییری در پوستهی یک اپلیکیشن خاص اتفاق نمیافتد. در مورد انتخاب بین Qt و GTK+ میبایست به دستاپی که متناسب با سلیقه و نیاز شماست توجه کنید.
makeuseofسیارهی آیتی