এতো পুরোনো হয়েও সি কেন একটি ভালো প্রোগ্রামিং ভাষা

এই প্রশ্নের উত্তর জানার আগে আসুন অল্প কথায় জেনে নেয়া যাক C ভাষার ইতিহাস।

👇

✅

C একটি জেনারেল পারপাজ, ক্রস প্ল্যাটফর্ম, এফিশিয়েন্ট, হার্ডওয়্যার ইন্ডিপেন্ডেন্ট, আনম্যানেজড, স্ট্র্যাকচার্ড প্রোগ্রামিং ল্যাঙ্গুয়েজ। এর Expression Control Flow, Data Structure বেশ সমৃদ্ধ। C একটি "খুব উচ্চ স্তরের" ভাষাও নয় এবং এটি অ্যাপ্লিকেশনের কোনও নির্দিষ্ট ক্ষেত্রে বিশেষায়িত নয়। তবে এর বিধিনিষেধের অনুপস্থিতি এবং এর সাধারণতা এটিকে অনেক কার্যকরী হিসাবে অনুমানযোগ্য শক্তিশালী ভাষার চেয়ে আরও সুবিধাজনক এবং কার্যকর করে তোলে। ১৯৭২ সালে Dennis Ritchie মূলত C তৈরি করেছিলেন Unix অপারেটিং সিস্টেমের জন্য। C প্রোগ্রামিং ল্যাঙ্গুয়েজ মূলত B নামের আরেকটি প্রোগ্রামিং ল্যাঙ্গুয়েজ দ্বারা প্রভাবিত যা তৈরি করেছিলেন Ken Thompson।

﹟ এবার মুল প্রশ্নের দিকে আসা যাক কেন এতো পুরোনো হয়েও C কেন একটি ভালো প্রোগ্রামিং ল্যাঙ্গুয়েজঃ-

👉🏻

C একটি "Turing complete" প্রোগ্রামিং ল্যাঙ্গুয়েজ। "Turing complete" মানে হচ্ছে কম্পিউটিংয়ে কল্পনাযোগ্য যে কোনও সম্ভাব্য জিনিস এটি দিয়ে করা যায়। মানুষ বা আর্টিফিশিয়াল ইন্টেলিজেন্স দ্বারা চিন্তা করা যায় এমন যে কোনও প্রোগ্রাম সি-তে লেখা যেতে পারে।

👉🏻

এটি একটি কম্পাইল্ড প্রোগ্রামিং ল্যাঙ্গুয়েজ, সুতরাং এর পার্ফরম্যান্স চমতকার।

👉🏻

এটি একটি আনম্যানেজড প্রোগ্রামিং ল্যাঙ্গুয়েজ, এর অর্থ আপনি এই ল্যাঙ্গুয়েজে বানানো প্রোগামের ব্যাবহৃত মেমোরীর পরিমান নিজের ইচ্ছা মতো ম্যানেজ করতে পারেন।

👉🏻

এই ল্যাঙ্গুয়েজে খুব এফিশিয়েন্ট হার্ডওয়্যার ইনস্ট্রাকশন সেট তৈরী করা সম্ভব, কারন এটি একটি "Close to Hardware" প্রোগ্রামিং ল্যাঙ্গুয়েজ।

👉🏻

C একটি "Composable" প্রোগ্রামিং ল্যাঙ্গুয়েজ। এর অর্থ হলো এঈ ভাষার এক ফাংশনের রেজাল্ট অন্যটিতে পাঠানো সম্ভব। সুতরাং এটি দিয়ে জটিল প্রোগ্রাম আর্কিটেকচার বানানো সহজ।

👉🏻

এতে খুব সহজে Module পরিবর্তন করানো যায় যাতে খুব সহজে বাইনারী লাইব্রেরী সমুহ একে অপরের সাথে ইন্টার‍্যাক্ট করতে পারে। এই সুবিধার কারনে C সহজেই অত্যান্ত জটিল প্রোগ্রাম বানানো যায়।

👉🏻

এই ভাষায় ভিন্ন ভিন্ন আরবিটারী টাইপ ডাটা মডেল বানানো যায়।

👉🏻

এটি সরাসরি মেমোরী অ্যাক্সেস করতে পারে।

👉🏻

এই ভাষার সিনট্যাক্স বেশ সিম্পল। অন্যান্য ভাষার তুলনায় এর স্পেশ্যাল সিম্বল ও রিজার্ভড কীওয়ার্ড খুব বেশী নয়।

👉🏻

for(){} লুপ সম্ভবত যে কোন প্রোগ্রামিং ভাষার সম্ভাব্য সব থেকে পাওয়ারফুল ফিচারগুলোর একটা। Iteration এর জন্য C ভাষার for(){} লুপ যথেষ্ট এফিশিয়েন্ট।

👉🏻

বাইনারী ডাটা রীড/রাইট বা ম্যানিপুলেশন এর জন্য C সবথেকে দ্রুত ও দক্ষ ভাষা। সম্ভবত এই কারনেই বেশীরভাগ প্রোগ্রামিং ভাষার প্রথম কম্পাইলার C তে লেখা হয়।

👉🏻

প্রায় সব প্রধান অপারেটিং সিস্টেম , কার্নেল (Linux , Mac , Windows , Unix) C তে লেখা। কারন C খুব সহজে হার্ডওয়্যারের সাথে যোগাযোগ ও সমন্বয় সাধন করতে পারে।

👉🏻

গানিতিক সমস্যা সমাধানের জন্য C অত্যান্ত দক্ষ একটি ভাষা। এটি খুব সহজেই integer, floating point সংখ্যা সম্পর্কিত সমস্যা, জটিল সংখ্যা ও বিচ্ছিন গানিতিক সমস্যার সমাধান করতে পারে। এছাড়া C এর বিল্ট-ইন ম্যাথমেটিক্যাল লাইব্রেরী, দ্রুত ফাংশন কল এটিকে আরো দক্ষ করে তোলে।

👉🏻

C খূব সহজেই ভিন্ন ভিন্ন হার্ডওয়্যার মডেলের সাথে খাপ খাইয়ে নিতে পারে।

👉🏻

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

👉🏻

সত্যি বলতে C ব্যাতীত কম্পিউটিং জগত শিকড়বিহীন বৃক্ষের মতো। শিকড় কেউ খেতে চায় না। কিন্তু শিকড় ছাড়া বৃক্ষ টিকে থাকে না। অন্যভাবে বলতে গেলে C প্রোগ্রামিং ল্যাঙ্গুয়েজকে বর্তমান সময়ের কম্পিউটিং জগতের ভিত্তি হিসেবে চিন্তা করলে ভুল হয় না।