তিন দশক ধরে সিস্টেম প্রোগ্রামিংয়ের জগতে একটাই রাজত্ব ছিল — সি (C) আর সি++ (C++)। আপনি যদি প্রোগ্রামিং শেখা কারো সঙ্গে কথা বলেন, তিনিও হয়তো ধরে নেন এটাই চিরন্তন সত্য। কিন্তু ২০২২ সালের ১১ ডিসেম্বর মুক্তিপ্রাপ্ত লিনাক্স কার্নেলকার্নেলঅপারেটিং সিস্টেমের মূল অংশ যা হার্ডওয়্যার ও সফটওয়্যারের মধ্যে সরাসরি যোগাযোগ নিয়ন্ত্রণ করে ৬.১ সংস্করণ সেই ধারায় একটা ঐতিহাসিক মোড় এনে দেয় — প্রথমবারের মতো কার্নেলে যুক্ত হয় রাস্ট (Rust) ভাষায় লেখা কোড। এর মাধ্যমে দীর্ঘদিনের আপত্তি তুলে নেন লিনাক্সের স্রষ্টা লিনুস টরভাল্ডস স্বয়ং, আর Rust-for-Linux প্রকল্পের নেতৃত্বে থাকা মিগুয়েল ওহেদা দেখতে পান বহু বছরের পরিশ্রমের ফল। এটাকে আমি সামান্য "টেক নিউজ" বলে উড়িয়ে দিতে রাজি নই — এটা একটা ধর্মান্তরণের মতো ঘটনা, যেখানে সবচেয়ে রক্ষণশীল প্রকল্পটাই বদলাতে রাজি হলো।

২০১৫ সালের ১৫ মে রাস্ট ১.০ মুক্তিপ্রাপ্ত হওয়ার ঠিক দশ বছর পর, ভাষাটি এখন আর কেবল মজিলার একটা গবেষণা প্রকল্প নয় — এটা আধুনিক সিস্টেম প্রোগ্রামিংয়ের সত্যিকারের বিকল্প হয়ে উঠেছে। প্রশ্নটা তাহলে হলো, একটা ভাষা কীভাবে দশ বছরে "আকর্ষণীয় পরীক্ষা" থেকে "শিল্প-মান" হয়ে ওঠে? আমার উত্তর — মেমোরি-সেফটিমেমোরি-সেফটিপ্রোগ্রামে মেমোরি ভুলভাবে ব্যবহারের কারণে সৃষ্ট ত্রুটি বা নিরাপত্তা-ঝুঁকি প্রতিরোধের নিশ্চয়তা ও কনকারেন্সি-সেফটির নিশ্চয়তা দিয়ে। রাস্ট এমন এক শ্রেণির বাগ প্রায় নির্মূল করে দেয়, যা গত তিন দশকে সবচেয়ে বেশি সিকিউরিটি সংকটের জন্ম দিয়েছে।

অ্যান্ড্রয়েডে শূন্য বাগ — কাকতালীয়, নাকি প্রমাণ?

২০২২ সালে গুগল অ্যান্ড্রয়েড ওপেন সোর্স প্রজেক্টে (AOSP) রাস্ট সাপোর্ট যুক্ত করে। ২০২৪ সালে প্রকাশিত প্রতিবেদনে গুগল জানায়, রাস্টে লেখা নতুন কোডে এখনো পর্যন্ত কোনো মেমোরি-সেফটি ভালনারেবিলিটিভালনারেবিলিটিসফটওয়্যারের এমন দুর্বলতা যা কাজে লাগিয়ে হ্যাকার আক্রমণ চালাতে পারে পাওয়া যায়নি। এই তথ্যটা আমার কাছে শুধু একটা পরিসংখ্যান নয়, রীতিমতো রায়। তুলনায় সি ও সি++ কোডে ঐতিহাসিকভাবে অ্যান্ড্রয়েডের ভালনারেবিলিটির প্রায় ৭০ শতাংশই ছিল মেমোরি-সেফটি-সংক্রান্ত। যে সমস্যা তিন দশক ধরে ইঞ্জিনিয়ারদের রাত জাগিয়েছে, একটা ভাষা বদলেই সেটার সমাধান হয়ে যেতে পারে — এই সম্ভাবনাটাই বিগ টেককে রাস্টের দিকে ঠেলে দিচ্ছে।

মাইক্রোসফট থেকে ক্রোমিয়াম — একা লিনাক্স নয়

২০২৩ সালে মাইক্রোসফট আনুষ্ঠানিকভাবে নিশ্চিত করে যে উইন্ডোজ কার্নেলের গ্রাফিক্স ও DWrite সাবসিস্টেমে রাস্ট যুক্ত হয়েছে। অ্যাজুর ক্লাউডের কিছু ইনফ্রাস্ট্রাকচার কম্পোনেন্টেও রাস্ট ব্যবহৃত হচ্ছে। গুগল ক্রোমিয়াম ব্রাউজারের নির্দিষ্ট কম্পোনেন্টে রাস্ট পরীক্ষা করছে — বিশেষত সেই অংশগুলোতে, যেখানে ডেটা-পার্সিং ঐতিহ্যগতভাবে বাফার-ওভারফ্লোবাফার-ওভারফ্লোমেমোরির নির্ধারিত সীমার চেয়ে বেশি ডেটা লেখার ফলে সৃষ্ট নিরাপত্তা ত্রুটি বাগ তৈরি করে। লক্ষ্য করার মতো বিষয় হলো, এই তিনটা প্রতিষ্ঠানই একে অপরের প্রতিদ্বন্দ্বী, তবু একই সিদ্ধান্তে পৌঁছেছে। আমার কাছে এটাই সবচেয়ে জোরালো প্রমাণ যে এটা কোনো সাময়িক হুজুগ নয়।

শুধু প্রযুক্তি নয়, রাজনীতিও লাগে

২০২১ সালের ফেব্রুয়ারিতে গঠিত হয় Rust Foundation — সদস্য হিসেবে যোগ দেয় আমাজন ওয়েব সার্ভিসেস (AWS), গুগল, মাইক্রোসফট, মজিলা, মেটা ও হুয়াওয়েই। ভাষাটির দীর্ঘমেয়াদী স্থিতিশীলতা ও ওপেন-সোর্স গভর্নেন্স নিশ্চিত করাই এর মূল উদ্দেশ্য — কারণ যেকোনো টেকনিক্যাল সুবিধার চেয়ে বেশি গুরুত্বপূর্ণ এই আস্থা তৈরি করা যে ভাষাটা কোনো একটা কোম্পানির খেয়ালের উপর নির্ভরশীল নয়।

আর ডেভেলপারদের মতামতও একই দিকে ইঙ্গিত করছে। Stack Overflow-এর ডেভেলপার সার্ভেতে ২০১৬ থেকে ২০২৪ পর্যন্ত টানা ৯ বছর ধরে রাস্ট "Most Admired Language" বিভাগে শীর্ষে। এটা আমার চোখে গুরুত্বপূর্ণ একটা সংকেত — কোনো ভাষা জোর করে ব্যবহার করানো যায়, কিন্তু জোর করে ভালোবাসানো যায় না। যারা রাস্ট ব্যবহার করেছেন, তারাই ভবিষ্যতেও ব্যবহার চালিয়ে যেতে চান।

তাহলে সমস্যা কোথায়? — এত ভালো তো সবাই ব্যবহার করছে না কেন

রাস্ট সহজ ভাষা নয়, এবং এটা স্বীকার করাই সৎ বিশ্লেষণ। এর ownershipownershipরাস্ট ভাষার নিয়ম যেখানে প্রতিটি মেমোরি-মানের মালিকানা একটি ভেরিয়েবলের হাতে থাকে, যা মেমোরি নিরাপত্তা নিশ্চিত করে ও borrow-checkerborrow-checkerকম্পাইলের সময় মেমোরি ব্যবহারের নিয়ম যাচাই করে বাগ আগেই ধরে ফেলার রাস্টের ব্যবস্থা মডেল নতুনদের জন্য কঠিন। বড় প্রকল্পের কম্পাইল সময় দীর্ঘ, আর বিশ্বব্যাপী অভিজ্ঞ রাস্ট ডেভেলপারের সংখ্যা এখনো সি/সি++ বা জাভা/গো-র তুলনায় অনেক কম। কিছু বড় প্রকৌশল দল এখনো সি++-কেই বেছে নিচ্ছে — বিশেষত যেখানে বিদ্যমান কোডবেস বিশাল, আর পুরো সিস্টেম নতুন করে লেখার ঝুঁকি নেওয়ার মতো সময় বা সাহস কারো নেই।

  • সুবিধা: মেমোরি-সেফটি গ্যারান্টি, শূন্য-খরচ অ্যাবস্ট্র্যাকশনশূন্য-খরচ অ্যাবস্ট্র্যাকশনএমন প্রোগ্রামিং সুবিধা যা রানটাইমে কোনো বাড়তি পারফরম্যান্স খরচ যোগ করে না, fearless concurrency, cargo ও crates.io-র মানসম্পন্ন টুলিং।
  • দুর্বলতা: খাড়া শেখার বক্র, দীর্ঘ কম্পাইল সময়, ছোট ট্যালেন্ট পুল, কিছু ক্ষেত্রে অপরিণত লাইব্রেরি ইকোসিস্টেম।

আমাদের ক্যাম্পাস আর ইন্ডাস্ট্রি কি প্রস্তুত?

বাংলাদেশে রাস্ট এখনো প্রধান ভাষা নয় — এটা মেনে নেওয়া ভালো, মিথ্যা আশাবাদ দেখানোর দরকার নেই। তবে বুয়েট, নর্থ সাউথ ইউনিভার্সিটি ও আইইউটির মতো প্রতিষ্ঠানগুলোর সিস্টেম প্রোগ্রামিং বা অপারেটিং সিস্টেমস কোর্সে এটা আলোচনা হিসেবে যুক্ত হতে শুরু করেছে, যা আমার কাছে একটা ভালো লক্ষণ। TigerIT, Kaz Software এবং কিছু এমবেডেড-ফার্মওয়্যার নির্মাতা প্রতিষ্ঠান ছোট ছোট অভ্যন্তরীণ প্রকল্পে রাস্ট পরীক্ষা করছে বলে জানা যায়। আমার মতে বাংলাদেশের জন্য বিশেষ সুযোগ আছে এমবেডেড ডিভাইস, আইওটি ও নিরাপদ ব্যাকএন্ড পরিষেবার ক্ষেত্রে — যেখানে মেমোরি-সেফটি ও পারফরম্যান্স দুটোই দরকার, এবং যেখানে আমরা এখনো তুলনামূলকভাবে পিছিয়ে।

পরবর্তী পাঁচ বছরে পুরো লিনাক্স কার্নেল রাস্টে পুনর্লিখিত হবে — এই প্রত্যাশা করাটা অবাস্তব, আর আমি সেই প্রত্যাশা করছিও না। কিন্তু নতুন ড্রাইভার, নেটওয়ার্ক স্ট্যাক ও ফাইলসিস্টেম মডিউল যে ক্রমেই রাস্টে লেখা হবে, সেই ইঙ্গিত স্পষ্ট। সিস্টেম প্রোগ্রামিং জগতের জন্য এটা কোনো বিপ্লবী ঘোষণা নয়, বরং নীরব অথচ নির্ধারক একটা পরিবর্তন — আর যারা এখন থেকেই এই ভাষাটা শিখতে শুরু করবেন, দশ বছর পর তারাই এগিয়ে থাকবেন বলে আমি বিশ্বাস করি।