Introduction to C Programming Language
Tags: c, programming, mdmarufsarker, introduction
Published: 2022-07-17 14:23:00

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

**প্রথমেই আসা যাক, সি কি?**

সি হচ্ছে একটি জেনারেল purpose programming language। এটি Dennis Ritchie ১৯৭২ সালে বেল ল্যাবরেটরি তে create করেছিল। এটি ইউনিক্স অপারেটিং সিস্টেম ডেভেলপ করার জন্য তৈরি করা হয়েছিল। যেটি পরবর্তীতে সবার কাছে অনেক জনপ্রিয় হয়ে উঠে।

**এবার আসা যাক কেনো আমরা সি শিখবো?**

1. কারণ এটি সবচেয়ে পপুলার একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ।
2. আপনি যদি সি জানেন তাহলে আপনাকে অন্য ল্যাঙ্গুয়েজ গুলো শিখতে বেশি কষ্ট করতে হবে না।
3. সি অত্যন্ত দ্রুতগতিতে কাজ করে যদি আমরা অন্যান্য প্রোগ্রামিং ল্যাঙ্গুয়েজ গুলোর সাথে তুলনা করি।
4. এটি বহুমুখী কাজে ব্যাবহার করা হয়, একই সাথে অ্যাপ্লিকেশন এবং technology তে।
5. গুগল, ফেসবুক, মাইক্রোসফট, VMware, redhat, Apple, Intel, IBM, Oracle, Nokia, Huawei, Samsung সহ আর ও অনেক কোম্পানি সি প্রোগ্রামিং ল্যাঙ্গুয়েজ ব্যাবহার করে তাদের কাজের জন্য।
6. যেসব কোম্পানি এমবেডেড প্রোগ্রামিং, অপারেটিং সিস্টেম নিয়ে কাজ করে সেসব ক্ষেত্রে সি একটি অসাধারণ চয়েজ। যেমন: ইউনিক্স অপারেটিং সিস্টেম সি দিয়ে তৈরি করা হয়েছিল।
7. আপনি যদি রোবোটিক্স নিয়ে আগ্রহী হয়ে থাকেন তাহলে ও সি প্রোগ্রামিং আপনাকে অনেক সাহায্য করবে।

**এবার আসি সি এবং সি++ এর মধ্যে পার্থক্য কি?**

আমরা এটার উত্তর কিছু বিষয় এর মধ্যে তুলনা করে  দেখাবো যেটা ভালো করে পড়লেই আপনারা পুরো ব্যাপারটা টুকু বুঝে যাবেন। 
Compare এর টপিক গুলো হচ্ছে - ফিচার, অ্যাপ্লিকেশন, disadvantage 

## Features of C 

-     Simple
-     Procedural
-     Structured or Modular Programming language
-     Mid-level programming language
-     Fast
-     Modularity
-     Rich Library
-     Supports Dynamic Memory Allocation
-     Middle-Level Language
-     Portable or Machine Independent
-     Extensible
-     Recursion

## Features of C++

-     Object-Oriented
-     General-Purpose Programming Language, supports features such as Polymorphism, Inheritance, and Encapsulation
-     Extensible
-     Recursion
-     Portable or Machine Independent (but Platform Dependent)
-     Rich Library
-     Fast Execution Speed
-     Compiled Language

## Applications of C 

-     Operating System
-     Language Compilers
-     Assemblers
-     Game Development
-     Text Editors
-     Network Drivers
-     Modern Programs
-     Databases
-     GUI Design
-     Embedded Systems
-     Browser Design

## Applications of C++

-     Operating Systems
-     GUIs
-     Games
-     Browsers
-     Database Engines
-     Cloud/Distributed Systems
-     Embedded Systems
-     Enterprise Software
-     Libraries

## Disadvantages of C 

-     Does not support Object-Oriented Programming (OOP) features such as Polymorphism, Inheritance, and Encapsulation
-     Inefficient Memory Management
-     Does not allow Run Time Type Checking
-     No support for Namespace
-     Lacks Exception Handling
-     Does not support the concept of constructors and destructors

## Disadvantages of C++

-     No Garbage Collection
-     Not very secure because of pointers, global variables, etc.
-     Less Flexible
-     Complex
-     Lacks support for built-in threads

## Similarities in C and C++

-     Both have a similar syntax.
-     Their compilation is similar.
-     Both languages follow the same concept of a stack, heap, and static variable.


আজকের পর্ব এই পর্যন্তই থাকছে। পরবর্তী পর্বে আমরা সি এর syntax নিয়ে জানবো ইনশাল্লাহ।