আসুন আপনাকে একটি বাস্তব বিশ্বের উদাহরণ দিন।
প্রায় 15 বছর আগে আমি সিটিতে লিখিত একটি বৃহত সিস্টেমটি ইউনিক্স থেকে উইন্ডোজে পোর্ট করে কাজ করেছি, এটি কোডের প্রায় 3 মিলিয়ন লাইনের ছিল। আপনাকে স্কেল সম্পর্কে কিছু ধারণা দেওয়ার জন্য, আমাদের ইউনিক্স সিস্টেমগুলির কয়েকটি (আরএস 6000) সংকলন করতে 24 ঘন্টা লাগল, উইন্ডোজ প্রায় 4 ঘন্টা সিস্টেমে সংকলন করতে পারে।
(আমাদের নিজস্ব বর্ণিত ভাষায় 2 মিলিয়ন লাইন কোডও ছিল, তবে বিল্ড সিস্টেমগুলির জন্য আমাদের ভাষাটি ব্যবহার না করার সিদ্ধান্ত নিয়েছিলাম কারণ এটি ফাইল প্রসেসিংয়ের জন্য কখনই ডিজাইন করা হয়নি Also এছাড়াও আমাদের ভাষা প্রয়োগকারী সি কোডটি সংকলনের জন্য আমাদের একটি বিল্ড সিস্টেমের প্রয়োজন ছিল ।)
যে সময় বিল্ড সিস্টেমটি শেল স্ক্রিপ্টগুলির মিশ্রণে লেখা হয়েছিল এবং ফাইলগুলি তৈরি করা হয়েছিল, সেগুলি উইন্ডোগুলিতে পোর্টেবল ছিল না - তাই আমরা নিজের বিল্ড সিস্টেমটি লেখার সিদ্ধান্ত নিয়েছিলাম।
আমরা সি ব্যবহার করতে পারতাম, তবে আমরা অজগরটি ব্যবহার করার সিদ্ধান্ত নিয়েছিলাম, এর কয়েকটি কারণ ছিল। (আমরা একই সাথে পাইথনে আমাদের সোর্স কোড কন্ট্রোল সিস্টেমটিও আবার লিখেছিলাম, এটি বিল্ড সিস্টেমের সাথে খুব সংহত হয়েছিল, সুতরাং মডিউলগুলিতে চেক করার জন্য অবজেক্ট ফাইলগুলি বিকাশকারীরা ভাগ করে নিতে পারে))
আমাদের বেশিরভাগ কোড কয়েকটি সাধারণ নিয়ম (সমস্ত প্ল্যাটফর্মের জন্য উইন্ডোজ, ভিএমএস, এবং ইউনিক্সের 6 সংস্করণে পাইথনের কয়েক হাজার লাইন) দিয়ে নির্মিত হতে পারে যা ফাইলগুলির নামকরণ কনভেনশন থেকে চালিত হয়েছিল।
বিভিন্ন প্ল্যাটফর্মের সি সিস্টেমগুলির মধ্যে যখন রেগেক্স খুব মানক ছিল না, তখন পাইথনটি রেজিএক্সে তৈরি করেছিল।
কয়েকটি মডিউল কাস্টম বিল্ড স্টেপগুলির প্রয়োজন, পাইথন ক্লাস ফাইলগুলিকে গতিশীলভাবে লোড করার অনুমতি দেয়। ফোল্ডারে একটি ম্যাজিক নামের পাইথন ফাইল থাকার উপর ভিত্তি করে আমরা একটি কাস্টম শ্রেণিকে মডিউল (lib) তৈরি করতে ব্যবহার করার অনুমতি দিয়েছিলাম। অজগর ব্যবহারের এটি হত্যাকারী কারণ।
আমরা জাভা বিবেচনা করেছি, কিন্তু এটি সেই সময়ে সমস্ত প্ল্যাটফর্মে শিপিং করা হয়নি।
(আমাদের সোর্স কোড কন্ট্রোল সিস্টেমের জন্য ইউআই একটি ওয়েব ব্রাউজার ব্যবহার করেছিল যেটি সমস্ত প্ল্যাটফর্মের মধ্যে বহনযোগ্য ছিল। এটি আমাদের ইন্টারনেট সংযোগের 6 মাস আগে ছিল X আমাদের এক্স 25 এর মাধ্যমে ব্রাউজারটি ডাউনলোড করতে হয়েছিল!)