چرا افزونه های فایرفاکس در نسخه کوانتوم حذف شده اند؟
فایرفاکس نسخهی ۵۷، و یا کوانتوم، با کلی امکانات جدید و تغییرات گسترده منتشر شد. فایرفاکس بلاخره موفق شد در فاکتور سرعت به گوگل کروم برسد، همچنین رابط کاربری این نسخه بسیارسادهتر شده و چند امکان ویژه و جدید در آن قرار داده شده است. این نسخه بگونه ای طراحی شده که جای هیچ گلایهای باقی نمیگذارد.گویا آی تی: زیاد حرف آخر ما را جدی نگیرید، در اینترنت همیشه موضوعی برای گلایه کردن پیدا میشود. در مورد فایرفاکس کوانتوم، مورد شکایت این است که یکسری از افزونههای خاص کار نمیکنند. تعداد بسیاری از افزونههای محبوب و پراستفاده شامل DownThemAll و Greasemonkey با کوانتوم بدرستی کار نمیکنند. و دیگر افزونهها شامل Firebug و ScrapBook دیگر هیچوقت کار نخواهند کرد.
مطمئناً این موضوع برای افرادی که از این افزونهها استفاده میکردند موضوع آزاردهندهای خواهد بود و شاید شما فکر کنید این کار شرکت موزیلا اقدامی مستبدانه است، اما اینطور نیست. چه دوست داشته باشیم یا نه، موزیلا به این نتیجه رسیده که برای حرکت به جلو تنها انتخابی که دارد این است که تعدادی از افزونههایی که از آنها به عنوان میراث یاد میکند را کنار بگذارد. در ادامه دلیل آن را بررسی خواهیم کرد.
این افزونهها چگونه کار میکردند
افزونههای قدیمی و سنتی فایرفاکس با زبان رابط کاربر XML (XUL) نوشته شده بودند. رابط کاربر فایرفاکس نیز با این زبان نوشته شده است و به همین دلیل افزونههایی که تحت XUL بودند میتوانستند بطور مستقیم تغییراتی را در آن رابط کاربر ایجاد کنند. این افزونهها همچنین دسترسی تقریبا کاملی به XPCOM داشتند. XPCOM یک مدل قدرتمند از کامپوننتهایی است که توسط فایرفاکس استفاده میشود.
اگر بخواهیم این موضوع را بطور سادهتری بیان کنیم : افزونههای فایرفاکس با توجه به نوعشان توانایی کم و یا زیادی را برای تغییر مرورگر شما داشتند و اینکار را بطور مستقیم انجام میدادند. دلیل اینکه این افزونهها بسیار قدرتمند بودند این بود : هیچ پیش نویسی از مواردی که آنها میتوانستند تغییر بدهند و یا نمیتوانستند به آن دسترسی داشته باشند وجود نداشت. و این دلیلی بود برای تمایل نسخه جدید فایرفاکس جهت قطع رابطه با این افزونهها.
افزونههای کروم و اپرا به اینصورت عمل نمیکنند. این مرورگرها APIهایی را در اختیار توسعه دهندگان افزونهها قرار میدهند، بدین معنی که لیستهایی از موارد مختلف وجود دارد که تعیین میکنند افزونهها توانایی کنترل چه امکاناتی را دارند و به چه مواردی دسترسی ندارند. در دو سال اخیر، فایرفاکس نیز APIهایی از این دست با عنوان وب افزونه (WebExtension) به توسعه دهندگان معرفی کرده و آنها را تشویق نموده تا از آنها استفاده کنند.
افزونههایی قدیمی روند توسعه و پیشرفت فایرفاکس را دشوار کرده بود
فایرفاکس کوانتوم، اولین بروزرسانی این مرورگر برای متوقف کردن سیستم قدیمی افزونهها نیست : سالهاست که فایرفاکس در حال کار بر روی این مشکل است. چون افزونهها بطور مستقیم توانایی تاثیر گذاشتن بر روی فایرفاکس را داشتند، این امکان وجود داشت که حتی با کوچکترین تغییری در خود فایرفاکس، افزونهها بطور کامل متوقف شوند و یا مشکلاتی در عملکرد این مرورگر ایجاد شود.
کاربران فایرفاکس، چون نمیدانستند که افزونهها چنین مشکلاتی را ایجاد میکنند، فرض کردند که نسخهی جدید دارای اشکال در عملکرد است. تیم توسعهی موزیلا تمام تلاش خود را بکار بست تا قبل از معرفی نسخهی جدید، مطمئن شود افزونههای محبوب بدرستی عمل کنند. اما بوضوح مشخص است که تلاش آن راه به جایی نبرده است.
API وب افزونهها، با تعیین اینکه کدام افزونه توانایی انجام چه کارهایی را دارد و چگونه میتواند آنها را انجام دهد، توانستند که این مشکلات را برطرف کنند. این موضوع بدین معنیست که توسعه دهندگان فقط باید از این امر اطمینان حاصل کنند که APIها بدرستی کار کنند و دیگر نیازی نیست تا نگران مشکلات مربوط به عملکرد و یا تغییرات رابط کاربری که یکسری از افزونهها ایجاد میکردند باشند. نتیجهی انجام اینکار، متوقف شدن افزونههای کمتری در طولانی مدت است. اما برای محقق شدن این خواسته، موزیلا باید سیستم عملکردی فزونههای قدیمی را کنار میگذاشت.
این تغییرات باعث شده که بسیاری از امکانات عالی موجود در کوانتوم محقق شوند. به عنوان مثال ویژگی مولتی پروسس (چند پردازش) یکی از عوامل اصلی افزایش سرعت فایرفاکس کوانتوم است. چهار پردازش مختلف تبها و رابط کاربر کوانتوم را کنترل میکنند، بدین معنی که فایرفاکس اکنون میتوانند بجای یک هسته از هر چهار هستهی پردازنده سیستم استفاده کند. این واقعیتی است که افزونههای قدیمی برای آن ساخته نشدهاند، و برای فعال کردن مجدد این افزونهها فایرفاکس باید به ناچار لایههای زیادی را در مرورگر خود بگنجاند که نتیجهی آن کند شدن فعالیت آن است. تعداد زیادی از تغییرات پیش رو در فایرفاکس به علت استفاده از افزونههای قدیمی کنار گذاشته شده بودند و این موضوع نشان میدهد که چرا موزیلا برای پیشرفت باید سیستم افزونههای قدیمی را کنار میگذاشت.
سازگاری برای چندسکویی یه مشکل بود
روزگاری، افزونههای موجود در فایرفاکس دلیلی بود که یکسری از کاربران فایرفاکس را به کروم ترجیح میدادند. اما این روزها، در حالی که فایرفاکس در حال انتقال دادن بهترین افزونههایی که سالها از آنها استفاده میکرد به گورستان است، کروم در مبحث افزونهها، در حال زیاد کردن فاصلهی خود با فایرفاکس است.
درست است که افزونههایی در فایرفاکس وجود دارد که نمیتوانید از آنها در کروم استفاده کنید، اما کروم سیستم افزونهای بسیار بزرگتری را داراست. مطمئناً سیستم جدید API وب افزونهها یک شبه مشکلات را حل نخواهد کرد، اما این راه حل کار را برای توسعه دهندگان بسیار راحتتر کرده تا افزونههای کروم را به افزونهی فایرفاکس تبدیل کنند زیرا شباهت زبانهایی که افزونهها با آن نوشته میشوند به اندازهی کافی به هم شبیه هستند تا این تبدیل را ممکن کنند. در بسیاری از موارد تنها تغییرات بسیار کمی مورد نیاز است تا افزونهی کروم در فایرفاکس اجرا شود، و این موضوع بدین معنی است که توسعه دهندگان میتوانند افزونههای محبوب شما در کروم را به فایرفاکس انتقال دهند. این موضوع میتواند جریان زیادی از افزونهها را در پی داشته باشد که میتوانند براحتی با سیستم جدید کار کنند.
قبل از این اتفاق نیز فایرفاکس در حال از دست دادن کاربرانش بود
بحثها زیادی وجود داشت که تغییر در سیستم افزونهها میتواند منجر به از دست رفتن کاربران فایرفاکس شود، اما این مورد در برابر تعداد کاربرانی که سالهاست به علت آمارها و امتیازهای مرورگرها از فایرفاکس به کروم مهاجرت کردهاند تقریبا هیچ است. سرعت رقابتی و کمبود افزونهها نیز از آن سو کمکی نمیکرد، اما اکنون هدف فایرفاکس کوانتوم این است که هر دو مشکل را برطرف کند.
آیا امکان عقب افتادگی نیز وجود دارد ؟ صد در صد، تعدادی از کاربران به کروم مهاجرت خواهند کرد و تعدادی دیگر از نسخههای قدیمی که سیستم افزونههای آن قدیمی است استفاده میکنند. اما دیگر شرایط مانند گذشته نخواهد بود. فایرفاکس برای اینکه کماکان یک مرورگر مناسب باقی بماند باید متحول میشد و این روشی است که آنها برای اینکار انتخاب کردند.
توسعه دهندگان زمان برای منتقل شدن به API جدید را داشتند
تعدادی از کاربران به این مورد توجه نمیکنند که این انتقال در حال حاضر انجام شده و افزونههایی که بر روی مرورگر آنها بخوبی عمل میکند از API وب افزونهها استفاده میکنند. این دیگر افزونهها هستند که این انتقال را انجام ندادهاند.
این مورد میتواند به این دلیل باشد که توسعه دهندگان این افزونهها مدت زمانیست که آنها کنار گذاشتهاند و یا اینکه زیر بار نوشتن مجدد آنها با سیستم جدید API نرفتهاند. در مواردی هم API ارائه شده کنترلهای کمی در اختیار توسعه دهندگان قرار دادهاند بطوریکه امکان ایجاد افزونهای مشابه افزونه قبلی وجود نداشته است و به همین دلیل توسعه دهندگان پروژه را رها کردهاند. و در موارد بسیاری نیز این تبدیل هنوز کامل نشده است.
مورد هرچیز که باشد، افزونهها بطور ناگهانی غیرفعال نشدهاند. فایرفاکس دو سال است که وب افزونهها را معرفی کرده و زمان غیرفعالسازی افزونههای قدیمی یکسال پیش به اطلاع همهی توسعه دهندگان رسیده است.
“با اتمام سال ۲۰۱۷، و انتشار نسخهی ۵۷ فایرفاکس، ما منحصراً به وب افزونهها منتقل خواهیم شد، و دیگر افزونهها در نسخهی دسکتاپ متوقف خواهد گردید”