چند روز پیش دوستی در مورد امکان ارائهی نسخهی مکینتاش گنجور رومیزی سؤال کرده بود.
میدانستم که به کمک پروژهی مونو میتوان برنامههای داتنتی را تحت لینوکس اجرا کرد. پیشتر هم به کمک ابزاری که از سوی توسعهدهندگان مونو ارائه شده (اینجا را ببینید)، سازگاری گنجور رومیزی را با مونو تحقیق کرده بودم. تنها ناسازگاری گزارش شده توسط این برنامه خاصیت راست به چپ نوار ابزار برنامه بود که در فهرست در دست اقدامهای پروژهی مونو قرار دارد.
با توجه به آن که مونو نسخهی مکینتاش هم دارد دوستمان را به کد منبع گنجور رومیزی (قابل دریافت از اینجا) و پروژهی مونو ارجاع دادم و قرار شد اگر ایشان به نتیجه رسیدند مرا هم در جریان قرار دهند.
در هر صورت، امروز فرصتی شد تا به کمک دیسک زندهی مونو (قابل دریافت از اینجا) نظریهی امکان اجرای برنامه را تحت لینوکس آزمایش کنم.
نتیجه آن که با جایگزینی اسمبلی مربوط به ارتباط با پایگاه دادههای SQLite با نسخهی کاملاً Managed (من نسخهی جاری آن را از اینجا گرفتم) بدون نیاز به تغییر کد و در محیط مونو دِوِلپ میتوان پروژه را باز و کامپایل کرد (جالب آن که یک خط کد زاید را مونودولپ پیدا میکند و در موردش هشدار میدهد که فکر میکنم ویژوال استودیو در موردش هشدار نمیدهد) و نهایتاً آن را از طریق این محیط یا به کمک خط فرمان اجرا کرد.
ایراد قابل مشاهده (علاوه بر مشکل راست به چپ منو و نوار ابزار) نحوهی نمایش متون فارسی است که فکر میکنم اشکال از دیسک زندهی مونو باشد: با آن که امکان انتخاب زبان فارسی از منوی بوت دیسک زندهی یاد شده وجود دارد من نتوانستم در این محیط فارسی تایپ کنم و فکر میکنم بستههای زبان فارسی این دیسک ناقص هستند. به همین دلیل، حدس میزنم که تحت لینوکسی با پشتیبانی کافی از زبان فارسی بتوان برنامه را به صورت کم اشکال اجرا کرد.
هر چند، پروژهی مونو هنوز گویا کار زیاد دارد. به عنوان نمونه، در صورتی که پنجرهی «تنظیمات» گنجور رومیزی را باز کنید و روی دکمهی «تنظیمات پیشفرض» کلیک کنید، برنامه بلافاصله بسته میشود و در ترمینال چنین خطایی اعلام میشود:
با این وصف، احتمالاً میتوان به زودی مستقل بودن از سیستم عامل را به ویژگیهای برنامههای داتنتی اضافه کرد که پیش از این از جمله خاصیتهای منحصر به فرد برنامههای مبتنی بر جاوا بوده (و البته به دلیل نقائصش یا احتمالاً به دلیل حسادت برنامهنویسان سایر سکوها برایش جُکهایی مثل این ساختهاند: جاوا: یک بار بنویسید، همه جا اشکالش را بیابید!، یا این یکی).
پینوشت: با لینوکس OpenSUSE نگارش ۱۱.۱ به صورت نصب کامل (که امکان تایپ عربی داشت) هم امتحان کردم. نتیجه همینی است که در تصاویر مشخص است. ضمن آن که برای اجرای برنامهی داتنتی تحت مونو نیازی به کامپایل مجدد آن نیست و من بدون کامپایل مجدد و با استفاده از فایل اجرایی تولید شده توسط ویژوال استودیو، پس از جایگزینی اسمبلی مربوط به SQLite توانستم برنامه را به کمک فرمان mono اجرا کنم.
پینوشت ۲: نرمافزار ساغر راه حل نهایی برای مرور اشعار گنجور تحت لینوکس است. اینجا را ببینید.
به دنبال پیدا کردن دلیل عدم نمایش صحیح رابط کاربری برنامه توی لینوکس تحقیق مختصری کردم که نتیجهش رو میتونید اینجا ببیند.
همونطور که اونجا گفتهم:
به نظر میاد مشکل مربوط به مونو باشه،
این بحث (که مال پارساله) نشون میده که مونو برای نمایش درست کنترلهایی که متنشون با به اصطلاح complex script مقداردهی شده هنوز مشکل داره و این قابلیتها درش هنوز پیادهسازی نشده.