سوچا ہے ایک ایڈیٹر لکھیں گے

نبیل

تکنیکی معاون
السلام علیکم دوستو،

امید کرتا ہوں کہ خیریت سے ہوں۔ چلیں آج ایک اور پراجیکٹ شروع کرنے کی بات کرتے ہیں۔ اگر چہ اس وقت بھی اردو ٹیکسٹ ایڈیٹر موجود ہیں اور اردو ٹیکسٹ utf-8 فارمیٹ میں محفوظ کرنا ممکن ہے، ان ایڈیٹرز کی فیچرز کچھ تشنہ ہیں۔ اردو نوٹ‌ پیڈ صرف ونڈوز 2000 اور اس سے اوپر پر کام کرتا ہے اور اس کے استعمال سے قبل ونڈوز میں لینگویج سپورٹ انیبل کرنا بھی ضروری ہے۔ اردو ایڈیٹر لائٹ بھی ایک ایڈہاک حل ہی ہے۔ اس کے علاوہ یوزر کئی اور فیچرز شامل کرنے کا مطالبہ کرتے آئے ہیں۔

مذکورہ بالا وجوہات کی بنا پر میں نے سوچا ہے کہ ایک اور اردو ایڈیٹر کا پراجیکٹ‌ شروع کیا جائے۔ موجودہ ایڈیٹرز پر مزید کام کرنا بوجوہ غیر فائدہ مند ہوگا۔

کسی سوفٹویر کی ڈیویلپمنٹ شروع کرنے سے پہلے اس کی ضروریات (requirements) کی لسٹ اکٹھا کرنا ضروری ہے۔ یہاں آپ سب کی ان پٹ ضروری ہے۔ اس تھریڈ کا مقصد بنیادی طور پر انہی ریکوائرمنٹس کی وضاحت کرنا ہے۔
 

نبیل

تکنیکی معاون
کراس پلیٹ‌ فارم کمپیٹیبلٹی
(Cross-platform Compatibility)

میں نے ایڈیٹرز اردو نوٹ پیڈ اور اردو ایڈیٹر لائٹ لکھنے کے لیے سی پلس پلس اور ایم ایف سی کا استعمال کیا ہے۔ اس کی ایک وجہ تو یہ ہے کہ میرے ذہن میں cross-platform compatibility کا کوئی خیال نہیں تھا اور میں نے بنیادی طور پر ونڈوز کے لیے ہی پروگرام لکھا تھا۔ دوسرا میں جاوا اور ڈاٹ نیٹ پر مبنی پروگرام اس لیے بھی نہیں لکھنا چاہتا تھا کیونکہ میرے خیال میں ایک اضافی ورچوئل (مجازی) مشین یا رن ٹائم سسٹم پر ایک بوجھ ہوتا ہے۔ بہرحال اب میں اس معاملے کو مختلف انداز سے دیکھتا ہوں۔

سی پلس پلس میں کام کرتے ہوئے مجھے یونیکوڈ سے متعلق تمام فیچرز implement کرنے کے لیے خاصی تگ و دو کرنا پڑی تھی۔ دوسری جانب جاوا اور ڈاٹ نیٹ میں یونیکوڈ کی بِلٹ اِن سپورٹ موجود ہے (میرا خیال تو یہی ہے)۔

ضروری نہیں کہ ہم کراس پلیٹ فارم کمپیٹیبلٹی کا مقصد کو حاصل کرنے میں کامیاب ہوں۔ بہرحال اس کی کوشش کرنے میں کوئی ہرج نہیں ہے۔

میرے ذہن میں ایڈیٹر کی implementation کے لیے ذیل کی چوائس ہے:

1۔ جاوا
اگر ایڈیٹر لکھنے کے لیے جاوا کا استعما کیا گیا تو میں اس کے لیے sun کی جاوا کی بجائے ibm کی جاوا ورچوئل مشین اور اس کے eclipse ٹول سیٹ کو ترجیح دوں گا۔ آئی بی ایم کے ڈیویلپمنٹ پلیٹ فارم میں swt لائبریری کی خصوصیت یہ ہے کہ اگرچہ یہ کراس پلیٹ فارم کمپیٹبل ہے لیکن اس پر مبنی پروگرام کو ہر پلیٹ فارم کے لیے علیحدہ سے کمپائل کرنا پڑتا ہے۔ اس کی وجہ یہ ہے کہ swt لائبریری ہر پلیٹ فارم کے لیے علیحدہ سے آپٹمائزڈ ہوتی ہے اور اسی بنا پر sun کی ورچوئل مشین پر چلنے والے پروگراموں کی نسبت تیز رفتار ہوتی ہے۔

2۔ ڈاٹ نیٹ

ڈاٹ نیٹ اگرچہ مائیکروسوفٹ کا پلیٹ فارم ہے لیکن یہ مونو کی شکل میں دوسرے پلیٹ فارمز پر بھی دستیاب ہے۔ اب یہ مجھے معلوم نہیں کہ ان دوسرے پلیٹ فارمز پر مونو ہمہ وقت وہی فیچرز شامل ہوتی ہیں جو کہ ونڈوز پر ڈاٹ نیٹ میں شامل ہوتی ہیں۔ ذاتی طور پر میں ڈاٹ نیٹ میں ڈیویلپمنٹ کرنے کو ترجیح دوں گا۔

3۔ QT

QT ایک مقبول اور کراس پلیٹ‌ فارم سی پلس پلس لائبریری کا نام ہے اور اس میں لکھا ہوا پرورگام بھی اسی لیے کراس پلیٹ فارم کمپیٹبل ہوگا لیکن میرے خیال میں QT کا learning curve بھی سب سے زیادہ ہوگا۔ QT میں لکھا گیا پروگرام جاوا اور ڈاٹ‌ نیٹ پروگرامز کی نسبت زیادہ سبک ہو گا۔ میں QT میں کام کرنے کو کم ترجیح دوں گا۔ اس کی ایک وجہ تو یہی ہے کہ میں نے پہلے اسے استعمال نہیں کیا ہوا۔ :cry:
 

دوست

محفلین
بھائی جی کس زبان میں‌ لکھنے کا سوچا ہے۔ میرے خیال میں جاوا جیسی بھی ہے چاہے اس کے لیے رن ٹائم ماحول درکار ہے چیز اچھی ہے۔دوسرے اس کےلیے وہ سیمردو کا سورس کوڈ بھی استعمال کیا جاسکتا ہے اس میں ایک نہیں کئی ایک سہولیات مفت میں موجود ہیں۔
خیر یہ تو آپ بہتر جانیں کہ کس زبان میں اسے لکھا جائے۔
میں اب اگر تجاویز کا ڈھیر لگا دوں تو برا مت مانیےگا۔
ایک نمبر پر تو ڈھیر سارے اردو فانٹس یم یم مجھے بڑا مزہ آتا ہے جب ڈھیر سارے فانٹس دستیاب ہوں۔پھر اردو اپنی اپنی سی لگتی ہے جیسے ان پیج میں ڈھیر سارے فانٹس دستیاب ہیں۔
اس کے بعد سپیل چیکر۔
لغت
اور اور اور اردو ویب کا سارے کا سارا تختہ ساتھ میں کیز داخل کرنے کی سہولت بھی۔
اردو کے ساتھ،سندھی،پشتو،پنجابی اور بلوچی کی سپورٹ ۔۔۔
انگریزی بھی ۔۔
اور اور اور اور اور اور یہ کہ ای میل کی سہولت بھی۔
یونیکوڈ میں ۔
فی الحال اتنا بہت ہے ،ابھی تجاویز نازل نہیں ہورہیں مزید ہوئیں تو پیش کردوں گا۔
 

الف نظامی

لائبریرین
icu
innternational component for unicode
ibm والوں کا بھی دیکھ لو
ٹیکسٹ پراسیسنگ اور لے آوٹ کے لیے
ساتھ ہی
FreeType
فانٹ فائلز سے گلفز اٹھانے کے لیے۔
 
جاوا یا ڈاٹ نیٹ‌ جس میں بھی شروع کیا جائے سارا کوڈ پیسٹ کرکے اس پر بحث کی جائے اور کلاسز ، فنگشنز کو تفصیل سے زیر بحث لایا جائے تاکہ مختلف لوگ مل کر کام کر سکیں۔ ساتھ میں ایڈیٹر کو مختلف موڈیولز میں بانٹا جائے اور ایک ایک کرکے مکمل کیے جائیں۔ مجھے قوی امید ہے کہ اگر ساتھ ساتھ بحث ہوگی تو پروگرام بھی کافی حد سمجھ آئے گا اور اس میں مشوروں سے بہتری بھی آتی جائے گی۔

فانٹ بولڈ کرنے اور رنگ بدلنے کی بھی سہولت ہونی چاہیے۔ :lol:
 

نبیل

تکنیکی معاون
آپ سب دوست یہاں اپنی تجاویز اکٹھی کرتے رہیں۔ آخر میں انہیں پرکھا جائے گا کہ ان میں سے کونسی قابل عمل ہیں اور یہ کہ انہیں کس ترتیب سے implement کیا جائے۔

ایک اور بات: اس مرتبہ میں اس کام کو ٹیم ورک کے انداز میں کرنا چاہ رہا ہوں۔ یعنی کہ اس سلسلے میں مجھے پروگرامنگ کے کام میں مدد کی ضرورت ہے۔ آپ میں سے جو دوست پروگرامنگ کا تجربہ رکھتے ہوں وہ سامنے آئیں۔ جو تجربہ نہیں رکھتے لیکن پروگرامنگ کرنا چاہتے ہیں، وہ بھی آگے آئیں۔ انہیں پروگرامنگ ہم سکھا دیں گے۔ :p
 
میں تیار ہوں اور کام کرنا بھی چاہتا ہوں اور مجھے سکھائیں میں آگے بھی سکھانے کو تیار ہوں۔ :lol:

visual basic اور c میں پروگرامنگ کرتا رہا ہوں۔ اس کے لیے جاوا کی مبادیات سے بھی واقف ہوں اور مل کر چلیں گے تو جو نہیں آتا وہ بھی سیکھا جائے گا۔ اس کے لیے میں کئی لوگوں سے خصوصا جاوا اور سی شارپ میں مدد لے سکتا ہوں۔
 

زیک

مسافر
نبیل اپنی wishlist تو بعد میں لکھوں گا اس وقت صرف یہ کہنا تھا کہ مجھے بھی اس کام میں شامل سمجھیں۔
 

نبیل

تکنیکی معاون
زکریا آپ کی شمولیت تو understood تھی۔ :p

آپ سے ہم سب سے اہم کام کروائیں گے، یعنی پراجیکٹ منیجمنٹ کا۔ اگر آپ کوڈنگ پر بھی ہاتھ صاف کرنا چاہتے ہیں تو سو بسم اللہ۔ :D
 

نبیل

تکنیکی معاون
میں بھی کچھ requirements لکھتا ہوں۔ بعد میں اس تھریڈ میں موجود سب ریکوائرمنٹس اور وشز الگ سے ترتیب دے دیں گے۔

جیسا کہ شاکر نے اوپر کہا ہے، اس ایڈیٹر میں ملٹی پل کی بورڈز کی سپورٹ ہونی چاہیے۔ یہاں ہم یہ طے کر لیتے ہیں کہ اس ایڈیٹر میں کی بورڈ‌ ڈیفینیشن کی وہی فارمیٹ ہوگی جو کہ یونی پیڈ کی ہے۔ اس طرح اس ایڈیٹر میں یونی پیڈ کے لیے تیار کردہ کی میپنگز استعمال کی جا سکیں گی اور نئے کی بورڈ‌ تیار کرنا بھی آسان ہوگا۔
 

جیسبادی

محفلین
پہلے تو میں کہنے لگا تھا کہ ایڈیٹر کی کوئی ضرورت نہیں۔ پھر خیال آیا کہ ایسا ایڈیٹر شاید مفید ہو جو گرافیکل فارمیٹنگ کرے مگر "یونیکوڈ کنٹرول حروف" کی مدد سے۔ ریاضی (سائیلیب) کے اسباق لکھتے ہوئے میں نے ح‌ٹ‌م‌ل کی بجائے زیادہ تر کنٹرول حروف کا استعمال کیا۔ اس میں کچھ مسائل سامنے آئے۔ پیرا کو دائیں سے بائیں کرنے میں تو صرف شروع میں RLE اور آخر میں PDFلگانا ہوتا ہے۔ مگر ردّوبدل کرتے ہوئے بیچ میں کہیں LRO /PDF کا ٹکرا لگانا پڑ جائے تو عبارت عجیب شکل اختیار کر لیتی ہے اور آنکھیں بند کر کے کام کرنا پڑتا ہے۔ اس کے علاوہ ایسا موڈ ہونا چاہیے کہ تمام کنٹرول حروف نظر آنا شروع ہو جائیں۔ وغیرہ۔

QT کے بارے میں سنا ہے کہ اس کی ٹکر کی documentation کسی اور پراجیکٹ کی نہیں۔ لینکس پر اس کی پروگرامنگ کے خاص آلات بھی موجود ہیں۔ استعمال کا البتہ تجربا نہیں۔

جاوا اگرچہ میٹلیب جیسے پروگراموں میں کامیابی سے استعمال ہو رہا ہے، مگر حقیقت یہ ہے کہ م‌س اس کا بیڑا غرق کرنے میں کامیاب ہو چکی ہے۔ اس لئے اس کا استعمال مناسب نہیں۔

کراس پلیٹفارم کیلئے پائیتھن python, Tkinter کے ساتھ بھی ایک غور کرنے والی چیز ہے۔
 

سیفی

محفلین
السلام علیکم۔۔۔۔۔۔۔۔دوستانِ محفل

نبیل بھیا ۔۔۔۔۔۔۔۔۔۔۔ آپ نے تو “راقم“ اردو ایڈیٹر پر کام کیا ہوا ہے۔۔۔۔ اس کا ایک فیچر مجھے بہت اچھا لگا۔۔۔۔۔۔

ایک ورک سٹیشن سے دوسرے پر فائل امپورٹ کرنے کی سہولت:

راقم میں کام کرتے ہوئے آپ کسی ایک لائن پر کسی دوسرے ورک سٹیشن پر موجود پوری فائل کا ڈیٹا انسرٹ کر سکتے ہیں۔۔۔۔

اس کا فائدہ یہ ہے کہ اگر ایک ٹیم ایک اردو پراجیکٹ پر کام کر رہی ہو اور بعض ممبران اپنا کام مکمل کر لیں تو ٹیم لیڈر صرف امپورٹ کمانڈ سے کسی بھی ورک سٹیشن سے ڈیٹا کو اپنے سسٹم کی اوپن اردو فائل میں پیسٹ کر سکتا ہے۔۔۔۔

اگر نیٹ ورک سے بڑھ کر یہ سہولت انٹرنیٹ پر بھی مہیا ہو جائے تو کیا ہی بات ہے۔۔۔۔
 

الف نظامی

لائبریرین
[align=left:0affb425b6]Text Operations
Input/output
Editing like insertion deletion etc.
Formatting like lines breaks, paragraph breaks, etc.
Handling text collections like characters, words, lines, paragraphs etc.
Layout operations like alignment, justification etc.
Visual attributes like color, size, style etc.
Selection, copy, cut, paste etc.
Context-sensitive shaping
Bidirectionality[/align:0affb425b6]
[align=left:0affb425b6]Fonnts Sypport
TrueType Fonts
Postscript Type 1 fonts, including Multiple Master fonts
Postscript CID-keyed fonts
OpenType, CFF as well as CEF fonts
Windows bitmap fonts[/align:0affb425b6]
 

نبیل

تکنیکی معاون
راجہ فار حریت نے کہا:
[align=left:544de80ddd]Text Operations
Input/output
Editing like insertion deletion etc.
Formatting like lines breaks, paragraph breaks, etc.
Handling text collections like characters, words, lines, paragraphs etc.
Layout operations like alignment, justification etc.
Visual attributes like color, size, style etc.
Selection, copy, cut, paste etc.
Context-sensitive shaping
Bidirectionality[/align:544de80ddd]
[align=left:544de80ddd]Fonnts Sypport
TrueType Fonts
Postscript Type 1 fonts, including Multiple Master fonts
Postscript CID-keyed fonts
OpenType, CFF as well as CEF fonts
Windows bitmap fonts[/align:544de80ddd]

میرا ارادہ یہاں پہلے مرحلے میں ایک اردو ٹیکسٹ ایڈیٹر کی ریکوائرمنٹس اکٹھا کرنا ہے۔ جہاں تک ظاہری خواص (Visual Attributes) کا تعلق ہے تو یہ ایک ورڈ پروسیسر میں زیادہ متعلقہ ہیں۔

جہاں تک ایڈیتنگ فنکشنز کا تعلق ہے تو یہ ایڈیٹر کے بنیادی use case ہیں اور یہ ضروری ریکوائرمنٹس ہیں۔ اس کے علاوہ ٹیکسٹ‌ڈاکومنٹ‌ میں حروف، الفاظ اور پیراگراف وغیرہ کی collections فراہم کرنے کا آئیڈیا بھی اچھا ہے۔ میرا ایک اور آئیڈیا یہ ہے کہ ایڈیٹر میں ٹیکسٹ ڈاکومنٹ‌ کا ایک XML-schema ڈیفائن کرکے ایک پلگ ان انٹرفیس مہیا کر دیا جائے جسے استعمال کرکے اس XML پر کوئی بھی ‌XSL ٹرانسفارمیشن اپلائی کی جا سکے۔ اس طرح اردو ٹیکسٹ‌ کو مختلف فارمیٹس میں ایکسپورٹ‌کرنا آسان ہو جائے گا۔

رہی بات فونٹس کے استعمال کی تو میرے خیال میں اس سلسلے میں مکمل طور پر زیر نظر پلیٹ فارم یعنی جاوا یا ڈاٹ نیٹ‌ پر انحصار کیا جانا چاہیے۔ ان پلیٹ فارمز میں موجود ٹیکسٹ رینڈرنگ کی صلاحیتوں سے بڑھ کر کام کرنا ہمارا مطمع نظر نہیں ہونا چاہیے۔
 

نبیل

تکنیکی معاون
راجہ فار حریت نے کہا:
Support of multiple languages/scripts

مجھے اس بات کی زیادہ سمجھ نہیں آئی۔ کیا تم یونی پیڈ کی طرز کی multi-language سپورٹ‌ چاہ رہے ہو؟ میں نے تو صرف arabic script پر کام کرنے کا سوچا ہے۔ اور میرے خیال میں ہمیں ضرورت بھی اسی کی ہے۔ اسی کے اندر رہتے ہوئے اردو، سندھی، پشتو وغیرہ کی سپورٹ مہیا کرنا ممکن ہوگا۔
 

نبیل

تکنیکی معاون
جیسبادی نے کہا:
پہلے تو میں کہنے لگا تھا کہ ایڈیٹر کی کوئی ضرورت نہیں۔ پھر خیال آیا کہ ایسا ایڈیٹر شاید مفید ہو جو گرافیکل فارمیٹنگ کرے مگر "یونیکوڈ کنٹرول حروف" کی مدد سے۔ ریاضی (سائیلیب) کے اسباق لکھتے ہوئے میں نے ح‌ٹ‌م‌ل کی بجائے زیادہ تر کنٹرول حروف کا استعمال کیا۔ اس میں کچھ مسائل سامنے آئے۔ پیرا کو دائیں سے بائیں کرنے میں تو صرف شروع میں RLE اور آخر میں PDFلگانا ہوتا ہے۔ مگر ردّوبدل کرتے ہوئے بیچ میں کہیں LRO /PDF کا ٹکرا لگانا پڑ جائے تو عبارت عجیب شکل اختیار کر لیتی ہے اور آنکھیں بند کر کے کام کرنا پڑتا ہے۔ اس کے علاوہ ایسا موڈ ہونا چاہیے کہ تمام کنٹرول حروف نظر آنا شروع ہو جائیں۔ وغیرہ۔

QT کے بارے میں سنا ہے کہ اس کی ٹکر کی documentation کسی اور پراجیکٹ کی نہیں۔ لینکس پر اس کی پروگرامنگ کے خاص آلات بھی موجود ہیں۔ استعمال کا البتہ تجربا نہیں۔

جاوا اگرچہ میٹلیب جیسے پروگراموں میں کامیابی سے استعمال ہو رہا ہے، مگر حقیقت یہ ہے کہ م‌س اس کا بیڑا غرق کرنے میں کامیاب ہو چکی ہے۔ اس لئے اس کا استعمال مناسب نہیں۔

کراس پلیٹفارم کیلئے پائیتھن python, Tkinter کے ساتھ بھی ایک غور کرنے والی چیز ہے۔

جیسبادی، آپ سادہ ٹیکسٹ‌ ایڈیٹنگ سے بڑھ کر فیچرز کا مطالبہ کر رہے ہیں۔ آپ غالباً اردو html ڈاکومنٹس کی ایڈیٹنگ کی فیچر چاہ رہے ہیں۔ اگر ایسا ہی ہے تو شاید میری اوپر پیش کی گئی XML-schema اور XSL transformation والی تجویز ثابت ہو۔ ریاضی کی علامات کے لیے ایک علیحدہ انٹرفیس مہیا کیا جا سکتا ہے جس کے ذریعے اردو عبارت میں ریاضی کی علامات شامل کی جا سکیں۔
 

نبیل

تکنیکی معاون
سیفی نے کہا:
السلام علیکم۔۔۔۔۔۔۔۔دوستانِ محفل

نبیل بھیا ۔۔۔۔۔۔۔۔۔۔۔ آپ نے تو “راقم“ اردو ایڈیٹر پر کام کیا ہوا ہے۔۔۔۔ اس کا ایک فیچر مجھے بہت اچھا لگا۔۔۔۔۔۔

ایک ورک سٹیشن سے دوسرے پر فائل امپورٹ کرنے کی سہولت:

راقم میں کام کرتے ہوئے آپ کسی ایک لائن پر کسی دوسرے ورک سٹیشن پر موجود پوری فائل کا ڈیٹا انسرٹ کر سکتے ہیں۔۔۔۔

اس کا فائدہ یہ ہے کہ اگر ایک ٹیم ایک اردو پراجیکٹ پر کام کر رہی ہو اور بعض ممبران اپنا کام مکمل کر لیں تو ٹیم لیڈر صرف امپورٹ کمانڈ سے کسی بھی ورک سٹیشن سے ڈیٹا کو اپنے سسٹم کی اوپن اردو فائل میں پیسٹ کر سکتا ہے۔۔۔۔

اگر نیٹ ورک سے بڑھ کر یہ سہولت انٹرنیٹ پر بھی مہیا ہو جائے تو کیا ہی بات ہے۔۔۔۔

سیفی بھائی، مجھے راقم اردو ایڈیٹر کے استعمال کا اتنا تجربہ نہیں ہے۔ اب معلوم نہیں کہ آپ کی مذکورہ فیچر کی کتنی ڈیمانڈ ہے لیکن اس سے ریکوارمنٹس اکٹھا کرنے کے سلسلے میں کچھ stimulus مل سکتا ہے۔ سوال یہ ہے کہ ایک ایڈیٹر میں نیٹ ورک سے متعلقہ کونسی فیچرز ہونی چاہییں۔
 
Top