# إكس إيماكس (محرر نصوص)

إكس إيماكس هو محرر نصوص يعمل على واجهة المستخدم الرسومية بالإضافة إلى واجهة سطر الأوامر ويعمل إكس إيماكس على معظم أنظمة التشغيل الشبيهة بيونكس بالإضافة إلى أنظمة تشغيل ميكروسوفت ويندوز، ويعتبر إكس إيماكس أحد تفرعات نسخة جنو إيماكس في أواخر ثمانينيات القرن العشرين، وباستطاعة أي مستخدم القيام بتحميل واستخدام المحرر وتعديل شيفرته المصدرية لأنه يصنف ضمن البرمجيات الحرة وتحكمه نصوص رخصة جنو العمومية بالنسخة الثانية فأعلى.

## تاريخه

في الفترة ما بين عامي 1987 و1993 حصلت الكثير من التأخيرات في عملية تطوير محرر النصوص جنو إيماكس وفي نفس الفترة في أواخر ثمانينيات القرن العشرين تم الطلب من شركة لوسيد التي قام ريتشارد غابريل بتأسيسها بالقيام بتطوير إيماكس وإضافة دعمه إلى بيئة التطوير المتكاملة التي تدعم بدورها لغة سي++ والمسمى «إنرجايز سي++» ومن هنا قامت شركة لوسيد بتوظيف فريق العمل الذي سيقوم بتطوير الشيفرة المصدرية لهذا المشروع وقد أخذ بعين الاعتبار أن النسخة التي سيقوم فريق العمل بانتاجها ستشكل نواة الإصدارة رقم 19 من محرر النصوص جنو إيماكس وقد تم إنهاء العمل في العام 1991. لم يكن لدى فريق العمل الوقت لانتظار قبول التغييرات من مؤسسة البرمجيات الحرة (Free Software Foundation) في التغييرات التي أحدثوها على الشيفرة المصدرية للوصول إلى نسختهم المعدلة من إيماكس وبالتالي قررت شركة لوسيد الاستمرار بتطوير المشروع وصيانته حيث قامت مؤسسة البرمجيات الحرة باصدار النسخة 19 من محرر النصوص جنو إيماكس بعد سنة واحدة. في عام 1994 قامت شركة لوسيد بانهاء خدماتها وعندها قام مجموعة من المطورين بأخذ نسخة من الشيفرة المصدرية لمحرر النصوص التي كانت شركة لوسيد تعمل على تطويره وقد أبدت بعض الشركات الأخرى اهتمامها بتطوير هذه النسخة مثل شركة صن ميكروسيستمز ولكن الغموض في الموقف القانوني بأحقية استخدام الاسم التجاري «لوسيد» حال دون ذلك ومن هنا يأتي دور حرف ال "X" في الاسم "XEmacs" حيث يمثل الحرف الحل الوسط بين المتنازعين على حقوق الملكية في تطوير إكس إيماكس. وبالتالي فإن حرف ال "X" لا يمت بأي علاقة لتظام الإكس ويندو "X Window System" ومن الجدير ذكره هنا أن إكس إيماكس ظل وبشكل دائم يدعم أنماط التحرير التي تعتمد على واجهة سطر الأوامر بالإضافة إلى واجهات المستخدم الرسومية فيما عدا نظام "X11". و تستطيع برامج التنصيب المخصصة لإكس إيماكس وإيماكس القيام بتنصيب أي منهما مع وجود دعم نظام الإكس ويندو أو بدونه ولفترة من الفترات عرف عن إكس إيماكس دعمه لبعض وظائف واجهات الأوامر السطرية المخصصة مثل وظيفة تعليم الصيغة التي كان جنو إيماكس يفتقر لها. و بشكل عام يقوم مجتمع البرمجيات بالإشارة إلى جنو إيماكس وإكس إيماكس (و عدد آخر من محررات النصوص الشبيهة) بالإسم «إيماكس» أو «إيماكسيان» لأنهم جميعاً استلهموا وظائف التحرير النصية من نفس المرجع وهو المحرر تيكو إيماكس.

## المزايا والوظائف

تكمن مزايا ووظائف إكس إيماكس في عملية معالجة الكلمات والفقرات لتحرير النصوص ويشمل ذلك -على سبيل المثال لا الحصر- حذف الكلمات والفقرات وتحريكها والتحرك من خلالها بالإضافة إلى ميزة تعليم الصيغة بهدف تسهيل عملية قراءة نصوص الشيفرة المصدرية بالإضافة إلى اختصارات أزرار لوحة المفاتيح التي يتحكم بها المستخدم حسب رغبته ومزايا ووظائف أخرى عديدة. و يتميز إكس إيماكس بوجود أدوات مساعدة شاملة على الإنترنت بالإضافة إلى 5 كتيبات يمكن الوصول إليها عبر موقع إكس إيماكس الإلكتروني. ويقوم إكس إيماكس بدعم عدد كبير من اللغات البشرية بالإضافة لدعمه أنماط تحريرية مختلفة للعديد من لغات البرمجة. ويعمل إكس إيماكس على العديد من أنظمة التشغيل ويشمل ذلك يونكس، جنو/لينكس، بي أس دي وماك أو أس إكس (و في حالة الماك فإن إكس إيماكس بحاحة إلى دعم نظام النافذة إكس) بالإضافة لوجود نسختين تعملان على أنظمة مايكروسوفت ويندوز وهما النسخة الخاصة بنظام تشغيل ويندوز والأخرى هي النسخة المخصصة للعمل على بيئة سيغوين. أما بالنسبة للمستخدمين والمطورين فيمكنهم تعديل أو تطوير معظم وظائف المحرر عن طريق استخدام لغة ليسب الخاصة بإيماكس ومن الجدير بالذكر أنه وفي حال تعديل وظائف المحرر فلا داعي لإعادة تشغيله أو تفسير شيفرته المصدرية (Re-Compilation) من جديد وقد قام المبرمجون بتطوير العديد من الوظائف الامتدادية للمحرر إيماكس عن طريق لغة ليسب.

## التطوير

هدف المطورون منذ بداية المشروع إلى تكرار عملية إصدار النسخ من إكس إيماكس بشكل متكرر (و في العقد الثاني من القرن الحادي والعشرين وصل عدد تكرار الإصدارات إلى 2 أو 3 مما يدلل على التباطؤ في عملية التطوير مقارنة بالبدايات) وغالباً ما يقوم إكس إيماكس بالسبق في تقديم وتطوير المزايا والوظائف ليسبق في ذلك أقرانه من مشتقات جنو إيماكس (إيماكسيان) فعلى سبيل المثال كان إكس إيماكس السباق في تطوير مزايا خطوط المتغيرات (تعليم المتغيرات) وتعليم الصيغة ومع مضي السنين قام المطورون بإعادة كتابة الشيفرة المصدرية لتحسينها وتطويرها وللحاق بركب مزايا البرمجة الحديثة. لدى إكس إيماكس نظام تثبيت فريد مخصص لمعالجة حزم ليسب المطورة بشكل مستقل واَخر نسخة منه تحوي الدعم لمكتبة جتك+ البرمجية، ولطالما حظي إكس إيماكس ببيئة تطوير منفتحة منذ بداياته ويشمل ذلك حساب الولوج المجهول لنظام النسخ المتلاقية المعروف باسم (Concurrent Versions System - CVS) بالإضافة إلى حساب الولوج المفتوح على نظام الإدارة المراجعة الموزعة المعروف باسم ميركوريال وتخصيص مجموعة بريدية مفتوحة للجميع من أجل المشاركة والتفاعل مع المطورين والمستخدمين. ويأتي إكس إيماكس مع كتيب ارشادات داخلي يحوي أكثر من 500 صفحة من ارشادات الاستخدام ومعلومات أخرى مفيدة. ويذكر أيضاً أن إكس إيماكس يتبع سياسة الحفاظ على التوافقية مع واجهة برمجة التطبيقات الخاصة بالمحرر جنو إيماكس. أضحى تقديم دعم يونيكود في إكس إيماكس يشكل تحدياً كبيراً أمام المطورين ففي عام 2005 كانت إصدارة إكس إيماكس تعتمد على حزمة غير مصانة (unmaintained package) تدعى ميول-يو سي أس (حزمة برمجية) (Mule-UCS) لدعم اليونيكود في هذه الإصدارة، وبينما كان فرع التطوير في مشروع إكس إيماكس يقدم دعمه القوي والأصيل لتشفيرات اليونيكود الخارجية (external Unicode encodings) منذ العام 2002 إلا أن نظام التشفير الحرفي (character sets) الداخلي في ميول كان يفتقد الاكتمال ويبدو أن التطوير في هذا المشروع قد تم لإيقافه منذ شهر سيبتمبر من العام 2005. تقسم عملية التطوير في إكس إيماكس إلى ثلاثة فروع وهي:
* الفرع المستقر (Stable Branch)
* فرع غاما (Gamma Branch)
* فرع بيتا (Beta Branch)
يحوي الفرع بيتا مزايا ووظائف جديدة ولكنه أقل اختباراً وبالتالي أقل استقراراً وأقل أماناً، وقام المطورون بإطلاق الإصدارة 20.0 في 9 فبراير من العام 1997 والإصدارة 21.0 في 12 يوليو من العام 1998. وفي شهر يناير من العام 2009 تم إطلاق الإصدارة 21.4.22 والتي كانت تمثل الفرع المستقر (ٍStable Branch) بالإضافة إلى الإصدارة 21.5.28 والتي كانت تمثل فرع بيتا (Beta Branch) بينما لم يتم إطلاق أي نسخة لتمثيل الفرع غاما (Gamma Branch) منذ العام 2007. لدى مجموعة مطوري إكس إيماكس نظام معين لتحديد أرقام نسخ الإصدارات حيث يشير الرقم الثاني الفردي إلى إصدار نسخة تجريبية (تحت التطوير) بينما يشير الرقم الثاني الزوجي إلى إصدار نسخة مستقرة ومختبرة وجاهزة للتحميل والتثبيت على الأجهزة الحاسوبية.

## إكس إيماكس وجنو إيماكس

قام عدد من مطوري إكس إيماكس الرئيسيين بالتمييز والفصل بين إكس إيماكس وجنو إيماكس وللتدليل على ذلك نرفق لكم هذا الرابط الذي يؤشر إلى ملخص المطور ستيفن تيرنبول (مبرمج) حول هذا الموضوع. يشار إلى أن أحد أهم أسباب الاختلاف بين المشروعين ينحصر في عدم اتفاق وجهات النظر حول «تعيين» حقوق الملكية الفكرية، حيث ترى مؤسسة البرمجيات الحرة أن تعيين حقوق الملكية الفكرية لنفسها -فقط- ضروري حيث يسمح لها ذلك القيام بالدفاع عن حقوق الملكية الفكرية في حال تعدي أو مخالفة أي جهة لنصوص رخصة جنو العمومية بينما يرى مطورو إكس إيماكس أن ضعف تعيين حقوق الملكية الفكرية سمح لشركات كبرى بالتدخل والانخراط في عملية التطوير وهذا شيء جيد ولكن المشكلة تكمن في أنه في بعض الأحيان لا تسمح هذه الشركات بالترخيص لأجزاء من الشيفرة المصدرية التي تقوم بتطويرها لأسباب تعود إلى الحذر من بعض وكلاء المساهمين في هذه الشركات مما يؤدي إلى تعطيل عملية التطوير وأحياناً توقفها. وقد تواجه الشركات أيضاً المشاكل في تحصيل الإذن للسماح لها لترخيص الشيفرة المصدرية كاملة ونتيجة لما تم تفصيله سابقاً بالنسبة لحقوق الملكية الفكرية فقد قامت مؤسسة البرمجيات الحرة بتعليق هذه الحقوق المرتبطة بأجزاء من الشيفرة المصدرية للمحرر وتجدر الإشارة هنا إلى أن القرار في اعتماد أي جزء من الشيفرة المصدرية الموجودة في إكس إيماكس واستخدامها في جنو إيماكس يعتمد وبشكل كبير على رغبة المطورين الذين قاموا بكتابة هذه الشيفرة المصدرية في توكيل مؤسسة البرمجيات الحرة لتكون هي المسؤولة عن الحفاظ عليها من ناحية خرق بنود قوانين الرخص والملكية الفكرية. و عادةً في حال إضافة وظائف أو مزايا جديدة على أي من المحررين -إكس إيماكس أو جنو إيماكس- يقوم مطورو المحرر الاَخر بإضافتها إلى محررهم كما أن قسم كبير من المطورين يعملون لصالح المشروعين في نفس الوقت.