𝗛𝗮𝘃𝗲 𝗪𝗲 𝗟𝗼𝘀𝘁 𝘁𝗵𝗲 𝗔𝗿𝘁 𝗼𝗳 𝗣𝘂𝗿𝗲 𝗢𝗽𝘁𝗶𝗺𝗶𝘇𝗮𝘁𝗶𝗼𝗻?

শুরুর দিকের ইঞ্জিনিয়াররা অত্যন্ত সীমিত পরিসরে কাজ করতেন। Apollo Guidance Computer-এ ছিল মাত্র 2KB RAM। প্রতিটি বিট ছিল গুরুত্বপূর্ণ। প্রতিটি CPU সাইকেল ছিল অপরিহার্য।

আজ আমাদের কাছে গিগাবাইট মেমরি রয়েছে। আমরা প্রায়ই আরও হার্ডওয়্যার যোগ করে সমস্যার সমাধান করি। কোড যদি ধীরগতির বা ভারী হয়, তবে আমরা আরও RAM যোগ করি। এই অভ্যাস আমাদের বিশুদ্ধ অপ্টিমাইজেশনের দক্ষতা হারিয়ে ফেলতে বাধ্য করছে।

সীমাবদ্ধতা বা কনস্ট্রেইন্টস (constraints) নিয়ে চিন্তা করার মাধ্যমে আপনি আরও উন্নত সফটওয়্যার লিখতে পারেন।

পাইথনে (Python) একটি বড় টেক্সট ফাইল কীভাবে প্রসেস করেন তা দেখুন।

সাধারণ পদ্ধতি: অনেক ডেভেলপার একসাথে একটি সম্পূর্ণ ফাইল মেমরিতে রিড (read) করেন।

অপ্টিমাইজড পদ্ধতি: ফাইলটি একবারে একটি করে লাইন প্রসেস করুন।

এই পার্থক্যটি মূলত ইঞ্জিনিয়ারিং ফিলোসফির (engineering philosophy)।

অতিরিক্ত রিসোর্স যোগ করা একটি সাময়িক সমাধান মাত্র। এটি ভঙ্গুর (fragile) সফটওয়্যার তৈরি করে। আপনার ডিজাইনকে সীমাবদ্ধতার মাধ্যমে পরিচালিত করা একটি শক্তিশালী (robust) সফটওয়্যার তৈরি করে।

অপ্টিমাইজেশন মানে কেবল গতি বাড়ানো নয়। এটি আপনার রিসোর্স বা সম্পদের প্রতি সচেতন হওয়া।

কোড লেখার সময় নিজেকে প্রশ্ন করুন:

উন্নত সফটওয়্যার আসে শৃঙ্খলা থেকে।

উৎস: https://dev.to/prabashanadev/have-we-lost-the-art-of-pure-optimization-31b9