অবজেক্টিভ-সি (Objective-C)

From binaryoption
Jump to navigation Jump to search
Баннер1

অবজেক্টিভ-সি প্রোগ্রামিং ভাষা

ভূমিকা

অবজেক্টিভ-সি (Objective-C) একটি সাধারণ প্রোগ্রামিং ভাষা যা সি প্রোগ্রামিং ভাষার ওপর ভিত্তি করে তৈরি করা হয়েছে। এটি স্মলটক-এর মতো অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং এর ধারণাগুলো সমর্থন করে। অ্যাপলের অপারেটিং সিস্টেম যেমন macOS এবং iOS এর জন্য অ্যাপ্লিকেশন তৈরির প্রধান ভাষা হিসেবে অবজেক্টিভ-সি ব্যবহৃত হত। যদিও বর্তমানে Swift অ্যাপলের পছন্দের ভাষা, তবুও অবজেক্টিভ-সি এর পুরনো কোডবেস এবং এর গভীর প্রভাবের কারণে এটি এখনো গুরুত্বপূর্ণ।

ইতিহাস

১৯৮০-এর দশকে ব্র্যাড কক্স এবং টম লাভ অবজেক্টিভ-সি তৈরি করেন। তাঁরা সি ভাষার সাথে স্মলটক-এর বার্তা পাঠানোর ক্ষমতা যুক্ত করতে চেয়েছিলেন। প্রথম দিকে এটি নেক্সট (NeXT) অপারেটিং সিস্টেমের জন্য তৈরি করা হয়েছিল। পরবর্তীতে অ্যাপল ১৯৯৭ সালে নেক্সটকে অধিগ্রহণ করার পর অবজেক্টিভ-সি ম্যাক অপারেটিং সিস্টেমের প্রধান ভাষা হয়ে ওঠে। আইফোন এবং আইপড টাচ এর আগমনের সাথে সাথে এটি আইওএস ডেভেলপমেন্টের জন্যও গুরুত্বপূর্ণ হয়ে ওঠে।

বৈশিষ্ট্যসমূহ

অবজেক্টিভ-সি এর কিছু গুরুত্বপূর্ণ বৈশিষ্ট্য নিচে উল্লেখ করা হলো:

  • অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং: অবজেক্টিভ-সি ক্লাস, অবজেক্ট, ইনহেরিটেন্স, পলিমরফিজম এবং এনক্যাপসুলেশন এর মতো মৌলিক অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ধারণাগুলি সমর্থন করে।
  • মেসেজ পাসিং: অবজেক্টিভ-সি তে অবজেক্টগুলোর মধ্যে বার্তা আদান-প্রদানের মাধ্যমে যোগাযোগ করা হয়। এটি মেথড কল করার একটি ভিন্ন পদ্ধতি।
  • ডায়নামিক টাইপিং: অবজেক্টিভ-সি একটি ডায়নামিকভাবে টাইপ করা ভাষা, যার মানে হলো কম্পাইল টাইমে ভেরিয়েবলের টাইপ নির্ধারণ করা হয় না, বরং রান টাইমে নির্ধারিত হয়।
  • সি এর সাথে সামঞ্জস্যতা: অবজেক্টিভ-সি সি কোডের সাথে সম্পূর্ণরূপে সামঞ্জস্যপূর্ণ। এর ফলে সি-তে লেখা লাইব্রেরি এবং কোড অবজেক্টিভ-সি প্রোগ্রামে ব্যবহার করা যায়।
  • ফাউন্ডেশন ফ্রেমওয়ার্ক: অবজেক্টিভ-সি এর সাথে অ্যাপলের ফাউন্ডেশন ফ্রেমওয়ার্ক রয়েছে, যা বিভিন্ন ধরনের ডেটা টাইপ, কালেকশন ক্লাস এবং অন্যান্য ইউটিলিটি প্রদান করে।

সিনট্যাক্স

অবজেক্টিভ-সি এর সিনট্যাক্স সি এর মতোই, তবে এতে কিছু অতিরিক্ত বৈশিষ্ট্য রয়েছে।

  • মেথড ডিক্লারেশন: অবজেক্টিভ-সি তে মেথড ডিক্লারেশন ব্র্যাকেটের মধ্যে আর্গুমেন্ট এবং রিটার্ন টাইপ উল্লেখ করে করা হয়। উদাহরণস্বরূপ: `-(int)addTwoNumbers:(int)num1 and:(int)num2;`
  • মেসেজ পাসিং: মেসেজ পাসিং এর জন্য `[object method]` সিনট্যাক্স ব্যবহার করা হয়। যেমন: `[myObject doSomething];`
  • ইনস্ট্যান্স ভেরিয়েবল: ইনস্ট্যান্স ভেরিয়েবলগুলি `@public`, `@protected`, এবং `@private` অ্যাক্সেস স্পেসিফায়ার ব্যবহার করে ঘোষণা করা হয়।

অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ধারণা

  • ক্লাস: ক্লাস হলো একটি ব্লুপ্রিন্ট যা অবজেক্ট তৈরি করতে ব্যবহৃত হয়। এটি ডেটা (ইনস্ট্যান্স ভেরিয়েবল) এবং মেথড ধারণ করে।
  • অবজেক্ট: অবজেক্ট হলো ক্লাসের একটি উদাহরণ। প্রতিটি অবজেক্টের নিজস্ব ডেটা থাকে।
  • ইনহেরিটেন্স: ইনহেরিটেন্সের মাধ্যমে একটি ক্লাস অন্য একটি ক্লাসের বৈশিষ্ট্যগুলি উত্তরাধিকার সূত্রে পেতে পারে। এটি কোড পুনরায় ব্যবহারের সুবিধা দেয়।
  • পলিমরফিজম: পলিমরফিজমের মাধ্যমে বিভিন্ন ক্লাসের অবজেক্ট একই মেথড কলের মাধ্যমে বিভিন্ন আচরণ করতে পারে।
  • এনক্যাপসুলেশন: এনক্যাপসুলেশন ডেটা এবং মেথডকে একটি ইউনিটের মধ্যে আবদ্ধ করে এবং ডেটা সুরক্ষায় সহায়তা করে।

মেমরি ম্যানেজমেন্ট

অবজেক্টিভ-সি তে মেমরি ম্যানেজমেন্ট একটি গুরুত্বপূর্ণ বিষয়। পূর্বে, ম্যানুয়াল রেফারেন্স কাউন্টিং (MRC) ব্যবহার করা হতো, যেখানে প্রোগ্রামারকে অবজেক্টের মেমরি নিজে থেকে পরিচালনা করতে হতো। বর্তমানে, অটোমেটিক রেফারেন্স কাউন্টিং (ARC) বহুলভাবে ব্যবহৃত হয়, যা কম্পাইলার স্বয়ংক্রিয়ভাবে মেমরি পরিচালনা করে।

অবজেক্টিভ-সি মেমরি ম্যানেজমেন্টের তুলনা
Manual Reference Counting (MRC) | Automatic Reference Counting (ARC) |
Programmer managed | Compiler managed | High | Low | Yes | No (mostly) | Potentially better (with careful management) | Generally good |

ফাউন্ডেশন ফ্রেমওয়ার্ক

অ্যাপলের ফাউন্ডেশন ফ্রেমওয়ার্ক অবজেক্টিভ-সি প্রোগ্রামিংয়ের একটি অপরিহার্য অংশ। এটি বিভিন্ন ধরনের ডেটা টাইপ, কালেকশন ক্লাস এবং অন্যান্য ইউটিলিটি প্রদান করে। কিছু গুরুত্বপূর্ণ ফাউন্ডেশন ফ্রেমওয়ার্ক ক্লাস হলো:

  • NSString: স্ট্রিং ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়।
  • NSArray: অ্যারে তৈরি এবং ব্যবস্থাপনার জন্য ব্যবহৃত হয়।
  • NSDictionary: কী-ভ্যালু পেয়ার সংরক্ষণের জন্য ব্যবহৃত হয়।
  • NSDate: তারিখ এবং সময় ব্যবস্থাপনার জন্য ব্যবহৃত হয়।
  • NSURL: ইউআরএল (URL) ব্যবস্থাপনার জন্য ব্যবহৃত হয়।

অবজেক্টিভ-সি এবং সুইফট

অ্যাপল ২০১৪ সালে Swift নামক একটি নতুন প্রোগ্রামিং ভাষা উপস্থাপন করে। সুইফট অবজেক্টিভ-সি এর আধুনিক বিকল্প হিসেবে তৈরি করা হয়েছে এবং এটি আরও নিরাপদ, দ্রুত এবং সহজবোধ্য। বর্তমানে অ্যাপল সুইফটকে তাদের প্রধান ডেভেলপমেন্ট ভাষা হিসেবে উৎসাহিত করছে। তবে, অবজেক্টিভ-সি এর পুরনো কোডবেস এখনো বিদ্যমান এবং অনেক অ্যাপ্লিকেশনে এটি ব্যবহৃত হচ্ছে।

অবজেক্টিভ-সি এবং সুইফটের মধ্যে তুলনা
Objective-C | Swift |
Complex | Simple and modern | Less safe | More safe | Good | Excellent | Excellent (with C and Objective-C) | Excellent (with Objective-C) | Steeper | Easier |

উদাহরণ কোড

নিচে একটি সাধারণ অবজেক্টিভ-সি কোডের উদাহরণ দেওয়া হলো:

```objectivec

  1. import <Foundation/Foundation.h>

@interface MyClass : NSObject - (void)sayHello; @end

@implementation MyClass - (void)sayHello {

   NSLog(@"Hello, World!");

} @end

int main(int argc, const char * argv[]) {

   @autoreleasepool {
       MyClass *myObject = [[MyClass alloc] init];
       [myObject sayHello];
   }
   return 0;

} ```

এই কোডটি "Hello, World!" বার্তাটি প্রিন্ট করে।

ডেভেলপমেন্ট টুলস

অবজেক্টিভ-সি প্রোগ্রামিংয়ের জন্য বিভিন্ন ধরনের ডেভেলপমেন্ট টুলস উপলব্ধ রয়েছে:

  • Xcode: অ্যাপলের সমন্বিত উন্নয়ন পরিবেশ (IDE), যা ম্যাক এবং আইওএস অ্যাপ্লিকেশন তৈরির জন্য ব্যবহৃত হয়।
  • Clang: একটি কম্পাইলার যা অবজেক্টিভ-সি কোড কম্পাইল করতে ব্যবহৃত হয়।
  • LLDB: একটি ডিবাগার যা অবজেক্টিভ-সি কোড ডিবাগ করতে ব্যবহৃত হয়।

ভবিষ্যৎ

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

আরও জানতে

এই নিবন্ধটি অবজেক্টিভ-সি প্রোগ্রামিং ভাষার একটি সংক্ষিপ্ত পরিচিতি।

আরও কিছু প্রাসঙ্গিক লিঙ্ক:

এই লিঙ্কগুলো অবজেক্টিভ-সি প্রোগ্রামিং এবং এর সাথে সম্পর্কিত ধারণাগুলো আরও ভালোভাবে বুঝতে সাহায্য করবে।

এখনই ট্রেডিং শুরু করুন

IQ Option-এ নিবন্ধন করুন (সর্বনিম্ন ডিপোজিট $10) Pocket Option-এ অ্যাকাউন্ট খুলুন (সর্বনিম্ন ডিপোজিট $5)

আমাদের সম্প্রদায়ে যোগ দিন

আমাদের টেলিগ্রাম চ্যানেলে যোগ দিন @strategybin এবং পান: ✓ দৈনিক ট্রেডিং সংকেত ✓ একচেটিয়া কৌশলগত বিশ্লেষণ ✓ বাজারের প্রবণতা সম্পর্কে বিজ্ঞপ্তি ✓ নতুনদের জন্য শিক্ষামূলক উপকরণ

Баннер