টপিকঃ প্রকাশিত হলো avro.im!
জাভাস্ক্রিপ্টে অভ্র:
২০১১ সালে অভ্র যখন পুরোটা আবার নতুন করে লেখা হয়, এর অন্যতম কারণ ছিল অভ্রতে সংযোজন করা নতুন ফনেটিক পার্সার। অভিধানভিত্তিক ফনেটিক সাজেশন দেখানোর জন্য আমাদের প্রথম চাহিদা ছিল একটা ন্যাটিভ কম্পাইলারের, কারণ লাখখানেক শব্দের মধ্যে প্রতি কীস্ট্রোকের সাথে যত দ্রুত সম্ভব খুঁজে দেখতে হবে ব্যবহারকারী কী লিখতে চাইছেন, কোন হাই লেভেল ডায়নামিক কিন্তু স্লো ল্যাঙ্গুয়েজ দিয়ে আমরা সেটা লিখতে চাইনি। মাত্র ৩ বছর আগের কথা, ঐ সময়েও আমরা কল্পনা করতে পারিনি যে এই ন্যাটিভ ল্যাঙ্গুয়েজ, কম্পাইলার ইত্যাদিকে বুড়ো আঙুল দেখিয়ে অভ্র ফোনেটিক একদিন জাভাস্ক্রিপ্টে লেখা সম্ভব হবে! ব্রাউজারগুলোর মধ্যে প্রতিযোগিতা, বিশেষ করে ক্রোমের V8 জাভাস্ক্রিপ্ট ইঞ্জিন এরমধ্যে পৃথিবীটা বদলে ফেলেছে অনেকখানি।এই সূত্রে প্রথম পাগলাটে আইডিয়াটা ছিল সারিমের। আমরা তখন লিনাক্সে আইবাসের জন্য অভ্র পোর্ট করবে এমন স্বেচ্ছাসেবক খুঁজছি। সারিম রিফাতের কাছে জানালো ও কাজটা করতে আগ্রহী। তখন নোমে (GNOME) অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য সবেমাত্র জাভাস্ক্রিপ্ট সাপোর্ট যোগ করার সিদ্ধান্ত নেয়া হয়েছে, সারিম জানালো ইতিমধ্যেই যেহেতু অভ্র পার্সারের ছোট অংশটার জন্য (ডিকশনারি সাপোর্ট বাদ দিয়ে) রিফাত জাভাস্ক্রিপ্ট লাইব্রেরি বানিয়ে রেখেছে, ও লিনাক্স ডেস্কটপের জন্য অভ্র বানাতে চায় জাভাস্ক্রিপ্ট দিয়ে। ব্রাউজার ভিত্তিক না, একেবারে একটা ডেস্কটপ অ্যাপ্লিকেশন জাভাস্ক্রিপ্ট দিয়ে, তাও আবার যেটা আমরা একসময় ভেবেছিলাম খানদানি-উচ্চবংশ-ন্যাটিভ-প্ল্যাটফর্ম ছাড়া করা যাবে না! “JavaScript everywhere” মুভমেন্ট তখনও এসেছে কি আসেনি, এখন চিন্তা করতে যতটা সহজ মনে হয়, তখন ততটাই পাগলাটে চিন্তাভাবনা ছিল এসব, অভিজ্ঞজন মাত্রই জানেন সেকথা। যাইহোক, শুধু ক্লাসিক ফনেটিকের সাথে অভিধানের সুবিধা যোগ করতে আমিও একসময় প্রজেক্টটায় হাত দিলাম। লিনাক্সের অভ্র প্রকাশিত হলো। লাইসেন্সিং ঝামেলার জন্য লিনাক্স ক্রোমের V8 ইঞ্জিন ব্যবহার না করে মজিলা ফায়াফক্সের জাভাস্ক্রিপ্ট ইঞ্জিনটা ব্যবহার করে, যেটায় অভ্র V8 এর তুলনায় কিছুটা ধীরগতিতে কাজ করে। এইজন্যে একটু পুরাতন কম্পিউটার যারা ব্যবহার করেন সুযোগ পেলে লিনাক্সে অভ্র কেন উইন্ডোজ বা ম্যাকের চেয়ে স্লো এই নিয়ে অভিযোগ করতে ছাড়েন না। আমরা তারপরেও দাঁতে দাঁত কামড়ে বসে আছি, জাভাস্ক্রিপ্টের জয়জয়কার কেবল শুরু, এখন ওসব কথায় কান দিলে হবে না। তাছাড়া Henry Ford যেমনটা বলে গেছেন (বলে জনশ্রুতি আছে)-
If I had asked people what they wanted, they would have said faster horses
সবকথায় কান দিলে তো চলেনা
avro.im:
avro.imসারিম তার স্বভাবসুলভ দ্বিতীয় পাগলামিতে হাত দিল এরপর- যেহেতু আইবাস-অভ্র পুরোটাই জাভাস্ক্রিপ্টে লেখা, এবার এটা ব্রাউজারে পোর্ট করলে কেমন হয়? সুবিশাল সার্ভারসাইডের প্রসেসিং সুবিধা নেয়া এবং আধুনিক মেশিনলার্নিং পদ্ধতি ব্যবহার করা গুগলের ইনপুট মেথড আছে আমাদের জন্য, কিন্তু সত্যিকার অর্থে শুধু ব্রাউজারে চলতে পারে এমন কোন স্বয়ংসম্পূর্ণ ফনেটিক ইঞ্জিন নেই। বানাতে পারলে এটাই হবে এমন প্রথম কিছু। কাজ চলতে লাগলো, সারিম সারারাত জেগে কাজ করে, আমি শতমাইল দূর থেকে পরীক্ষা করি, ফিডব্যাক দেই। একসময় রিফাতও যোগ দিল, অনেক কিছু আবার লেখা হলো নতুন করে, সিয়াম নতুন করে ডিজাইন করলো। মূল কাজ শেষ হয়েছে তাও বছরখানেক, প্রজেক্টটার নাম শুরুতে অভ্রপ্যাড থাকলেও পরে avro.im দেয়া হয়েছে, এরমধ্যে আমরা এটা ব্যবহার করেছি, পরিচিত অল্প কয়েকজনের কাছে ফিডব্যাকের জন্য দেয়া হয়েছে। ছোটখাট ত্রুটি বিচ্যুতি ঠিক করতে করতে এখন বলা যায় avro.im জনসম্মুখে প্রকাশ করার পর্যায়ে এসেছে।
মনে রাখার সুবিধার্থে বলি, এখানে avro.im এর “im” মানে ইনপুট মেথড, অর্থাৎ লেখন পদ্ধতি।
সুবিধা:
গুগলের ইনপুট টুল থাকা সত্ত্বেও আমরা avro.im নিয়ে কাজ করতে উৎসাহিত হয়েছি কয়েকটা কারণে:এটা সম্পূর্ণ অফলাইনে কাজ করে। আধুনিক ব্রাউজারভিত্তিক অফলাইন অ্যাপ বানানোর পূর্ণ সুবিধা নিয়েছি আমরা। প্রথমবার লোড হতেই যা সময় নিবে, এরপর প্রতিবার আপনি যখন চাইবেন মুহূর্তের মধ্যে avro.im ব্যবহার করতে পারবেন।
ট্রান্সলিটারেশনের জন্য সার্ভার-সাইড প্রসেসিং এর প্রয়োজন না থাকায় গুগল বা অন্যান্য যেকোন ফনেটিক লেখার পদ্ধতির চেয়ে এটা দ্রুতগতিতে কাজ করে। কোন অত্যাধুনিক অ্যালগরিদম ব্যবহার করেও এসব রাউন্ডট্রিপ ল্যাটেন্সিকে টেক্কা দেয়ার উপায় নেই, সুতরাং সেটা না থাকলেই সব দিক থেকে মঙ্গল।
প্রাইভেসি। আমাদের কাছে অত্যন্ত গুরুত্বপূর্ণ ইস্যু। আমি যাই লিখি, যাই করি, সেটা যত তুচ্ছ বা নিরামিষ হোক না কেন, আমি চাইনা সেখানে অন্য কেউ নজরদারি করুক। avro.im এর সম্পূর্ণ প্রসেসিং যেহেতু আপনার কম্পিউটারেই হয়, এখানে বাইরে থেকে নজরদারির উপায় নেই। এমনকি avro.im এ যে ৫টি খসড়া সংরক্ষণ করার সুবিধা রাখা হয়েছে, সেটাও আসলে আপনার ব্রাউজারে সংরক্ষিত হয়। আপনি যা লিখবেন সেটা আপনার অভিরুচি, অন্য কেউ সেখানে নাক গলাতে চাইলেও পারবে না, পারা উচিত নয়।
এটা মুক্ত সফটওয়্যার। গুগল কোনদিনও তার ইনপুট মেথডটা মুক্ত করবে কিনা আমরা জানি না, বরং উল্টোটা ঘটার উদাহরণ আছে, ডেভেলপারদের জন্য এপিআই দিয়ে পরে সেটা বন্ধ করে দেয়ার ঘোষণা দিয়েছে তারা। ভেন্ডরলকিং এর সমস্যা এটাই। অভ্র সেই তুলনায় খুব ছোট একটা প্রজেক্ট, কিন্তু এটা মুক্ত, এবং এটা সবার, কেউ চাইলেই কালকে এসে এখানে ট্যাক্স বসাতে পারবে না।—
avro.im প্রথম অভিধানের সুবিধাসহ কোন ফনেটিক পার্সার যেটা সরাসরি ব্রাউজারে কাজ করে, এটা অভ্রর প্রথম সত্যিকার অর্থে ক্রস-প্ল্যাটফর্ম লেখার পদ্ধতি, এটা অভ্র পোর্টেবল এডিশনের চেয়েও বেশি পোর্টেবল এবং আধুনিক, যেটা এমনকি ক্রোমওএস এর মত শুধু ব্রাউজারভিত্তিক সিস্টেমেও চলতে সক্ষম। আমরা কাজটা করতে অসম্ভব আনন্দ পেয়েছি। এর পাশাপাশি এটা যখন আপনার কাজে লাগবে, সেটা হবে আমাদের উপরি পাওয়া।
সভ্যতার একেবারে কিনারা ধরে হাঁটার কিছু সমস্যাও আছে, সবকিছু প্রস্তুত অবস্থায় পাওয়া যায় না অনেক ক্ষেত্রেই। ডেস্কটপের ক্রোম বা ফায়ারফক্স ব্রাউজারে চমৎকার কাজ করলেও স্মার্টফোনের ব্রাউজারগুলোতে অনেক সীমাবদ্ধতার কারণে সবকিছু ঠিকঠাক কাজ নাও করতে পারে। আশা করি সময়ের সাথে এসব সমস্যা দূর হবে। আপনি ডেভেলপার হলে নিজেও হাত লাগাতে পারেন। বাংলা নিয়ে কাজ করতে চাইলে আমাদের দরজা সবসময় খোলা। তাছাড়া উপরের গল্পটা যদি পড়ে থাকেন, আপনি এখন জানেন কোন আইডিয়াই এখানে পাগলামি না!
সবাইকে ঈদ ও পূজোর শুভেচ্ছা।
মূল সূত্র: অমিক্রন ব্লগ
শুভকামনা অমিক্রনকে, শুভেচ্ছা আরেকটি পদক্ষেপের জন্য। জয়তু সারিমের পাগলামীকে!
এগিয়ে চলো!