সি ++ এর ভূমিকা আজ কী?


41

বর্তমানে আমি একজন আইটি ছাত্র এবং আমি ভাবছি যে সি ++ তে এখনও গুরুত্বপূর্ণ, এটি কীসের জন্য ব্যবহৃত হয়? আমি আমার বিশ্ববিদ্যালয়ে বেসিক সি ++ কোর্স সম্পন্ন করেছি তবে আমি আমার জ্ঞানটি কোথায় ব্যবহার করতে পারি এবং কোন দিক দিয়ে সি ++ শিখতে হবে তা আমি ভাবতে পারি না।

অন্য কথায় একজন সফল সি ++ প্রোগ্রামার হয়ে উঠতে আমার কী শিখতে হবে?

বর্তমানে আমি জাভা শিখছি কারণ আমি স্পষ্টভাবে দেখতে পাচ্ছি না যে কোন অঞ্চলে সি ++ আজ কার্যকর হতে পারে তবে আমি স্পষ্টভাবে জানি যে আমি জাভা প্রোগ্রামার হিসাবে কোন ধরণের কাজ করব। তবে আমি এখনও আশা করি যে সি ++ মারা যায় নি।


2
এটি আমার দৃষ্টিভঙ্গি। সি ++ রিয়েল টাইম পরিস্থিতিতে (এবং ভিডিওগেম) খুব কার্যকর। পারফরম্যান্সের কারণে আমি ডেস্কটপ অ্যাপ্লিকেশনগুলির (সিএইচটি সম্পর্কে ভুলে যাবেন না) জন্য সি ++ ব্যবহার করি।
হোসোমাকি

1
@ স্টিগন আইএমও সম্ভবত এটি শেষ মুহুর্তে মারা যাওয়ার সম্ভাবনা রয়েছে কারণ সম্ভবত এমন সময় আসবে যখন আজ সমস্ত ভাষা অপ্রচলিত (সম্ভবত হার্ডওয়্যারটিতে ব্যবহৃত ব্যাপক পরিবর্তনগুলির কারণে)।
কেনেথ

17
সি ++ মৃত থেকে অনেক দূরে (আমি এতে প্রতিদিন নতুন কোড লিখি), এবং যদি সিওবিএল কোনও ইঙ্গিত দেয় তবে আমার অনেক, বহু বছর ধরে কাজ হবে।
মাইকেল কোহেন

2
প্রোগ্রামিং ল্যাঙ্গুয়েজস বীকনটি দেখুন
নেমানজা ত্রিফুনোভিচ

1
সম্প্রতি আমি মাইক্রোসফ্টের চ্যানেল 9 এ কিছু আকর্ষণীয় ভিডিও দেখেছি । মাইক্রোসফ্ট বাজার গবেষণায় লক্ষ লক্ষ ব্যয় করেছে এবং তার গবেষণার ভিত্তিতে এটি সি ++ রেনেসাঁর কথা বলে। এই ভিডিওটি দেখুন ।
গ্রুকাস

উত্তর:


57

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

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

মঞ্জুর, এটি এর চেয়ে অনেক বেশি কাজের জন্য ব্যবহৃত হয়েছিল এবং সেই কাজগুলি সি # এবং পাইথন এবং অন্যান্য আরও উপযুক্ত ভাষার কাছে হারিয়ে যাচ্ছে, তবে এটি এর মূল কুলুঙ্গিকে প্রভাবিত করছে না।


20
যে কেউ সি ++ এ ম্যালোক ব্যবহার করেন আমি একটি শক্ত অবজেক্ট দিয়ে তাদের মাথায় আঘাত করতে চাই। এছাড়াও, newসি ++ এ অপারেটরের একটি কম পরিচিত বৈশিষ্ট্য রয়েছে যার নাম প্লেসমেন্ট। এটি বর্তমানে অধিকৃত মেমরির স্থানটিকে পুনরায় ব্যবহার করতে দেয়। সুতরাং কেউ যদি ভাঙন এড়াতে (বা হ্রাস করতে) চায় তবে তারা তাত্ত্বিকভাবে এটি করতে পারে। এবং ভবিষ্যদ্বাণী করা একই নির্বিচারবাদী নয়।
ট্যামস সেজেলি

4
@ অ্যাপালালা সি ++ এর রেফারেন্স গণনাও খুব বেশি, তবে অবজেক্ট লাইফটাইম ম্যানেজমেন্টের ক্ষেত্রে এটি এসবিআরএমের চেয়ে অনেক খারাপ। আমি কেবল কঠোর আরটি নির্ধারণের কথা বলছি না, আমি অবজেক্টের মডেলটির নির্জনবাদী আচরণের কথা বলছি।
কুবিবি

4
যখন আমি সি ++ শিখেছি, তখন RAII বিস্তারিতভাবে পরিচিত ছিল না; আমি নতুন এবং মুছুন এবং মস্তিষ্ক-ভিত্তিক পয়েন্টার পরিচালনা শিখেছি। সুতরাং আমি মনে করি না আপনি এটি "ধারণার চারপাশে নির্মিত" হিসাবে চিহ্নিত করতে পারেন। আজ ব্যবহৃত গ্রন্থাগারগুলি এবং অন্যান্য সহায়তা কাঠামোগুলিতে মূল ভাষা বা বাক্য গঠন থাকতে পারে।
jprete

7
@jprete সত্য যে সি ++ এর অনেকগুলি শক্তি নকশার পরিবর্তে আবিষ্কার করা হয়েছিল। এই পোস্টটি 2005-পরবর্তী ভাষা সম্পর্কে।
কুবিবি

5
RAII সি ++ তে নকশা করা হয়েছিল । তবে বেশিরভাগ সি ++ প্রোগ্রামাররা কেবল সি লিখতে থাকেন, ম্যালোককে নতুন এবং মুছে ফেলার সাথে প্রতিস্থাপন করেন।
কেভিন ক্লাইন

40

সি এবং সি ++ এর জন্য কয়েকটি বাজার রয়েছে (যদিও আমার কাছে সীমাবদ্ধ বোঝাপড়া আছে)

  1. বিদ্যমান কোড সি এবং সি ++ এর আশেপাশে কয়েকটি বৃহত্তম বিদ্যমান কোডবাস রয়েছে। এই "" পরবর্তী নতুন নতুন ভাষা "প্রায় এসেছে বলে এই আকারের কোডটি সহজেই ফেলে দেওয়া যায় না। সি বাইন্ডিংগুলি বেশিরভাগ প্ল্যাটফর্মগুলিতে আন্তঃ-ল্যাঙ্গেজ ইন্টারঅ্যাকশন মানক, তাই সি বা সি ++ এ র‌্যাপার লাইব্রেরিগুলি (খুব কমপক্ষে) লেখাতে সক্ষম হওয়া কার্যকর।
  2. উচ্চ কার্যকারিতা অ্যাপ্লিকেশন (যেমন উচ্চ ফ্রিকোয়েন্সি ফিনান্স)। সি এবং সি ++ এখনও অন্যান্য বেশিরভাগ প্রোগ্রামিং ভাষার চেয়ে সামগ্রিক পারফরম্যান্স অর্জন করে। সর্বাধিক গুরুত্বপূর্ণ, সি ++ এ, সাধারণত প্রায়শই টেমপ্লেটগুলির মতো সংকলক-সংক্রান্ত জিনিসগুলির সাথে বিমূর্ততা তৈরি হয়, যা রানটাইম থেকে সংকলন সময়কে (আপনার সামগ্রিক অ্যাপ্লিকেশনটিকে দ্রুততর করে তোলে) গতিতে চলে।
  3. (2 টির মতো) কম বিলম্বিত অ্যাপ্লিকেশন। যে ভাষাগুলিতে সিএলআর বা জেভিএম চলতে থাকে সেগুলি প্রায়শই সি ++ এর চেয়ে দ্রুত গতিবেগের উপর নির্ভর করে অ্যাপ্লিকেশনটির উপর নির্ভর করে তবে আপনার প্রোগ্রামটি কার্যকর হওয়ার আগে একটিতে এখনও সিএলআর বা জেভিএমকে মেমরিতে লোড করতে হবে। আপনার যদি হার্ড স্টার্টআপ প্রয়োজনীয়তা থাকে তবে এটি গুরুত্বপূর্ণ। কমেন্ট থেকে সম্পাদনা করুন : এই বিষয়টির জন্য, কোনও বর্ণনার কঠোর প্রচ্ছন্নতা এখানে উল্লেখযোগ্য note ভার্চুয়াল মেশিনগুলিতে চালিত ভাষাগুলি খুব কম সময়ই সীমাবদ্ধতার প্রস্তাব দেয় কারণ যেমন আবর্জনা সংগ্রহের কাজ চালানো কোনও নিয়ন্ত্রক প্রক্রিয়া নয়।
  4. এম্বেড সিস্টেম। কিছু এম্বেড থাকা সিস্টেমগুলিতে চালনার জন্য হার্ডওয়্যার থাকে যেমন জেভিএম (গুগলের অ্যান্ড্রয়েড (ঠিক আছে, এটি আসলে জেভিএম নয়, তবে এটি নিকটেই রয়েছে)), রিমের ব্ল্যাকবেরি) বা সিএলআর (উইন্ডোজ ফোন), তবে বেশিরভাগ এম্বেড থাকা সিস্টেমগুলির ক্ষমতা নেই সি বা সি ++ (যা কোনও রানটাইম সমর্থনের পরে নেই) এর চেয়ে বেশি রানটাইম সমর্থন প্রয়োজন এমন ভাষাগুলি চালান।
  5. স্থাপনার সীমাবদ্ধ অ্যাপ্লিকেশন। কখনও কখনও যদি আপনার পুরো প্রোগ্রামটি কয়েক শ কেবি থাকে তবে কখনও কখনও জেভিএম বা সিএলআর লাগানোর প্রয়োজন হয় over (যেমন আমি যে প্রোগ্রামগুলিতে কাজ করি সেগুলির বেশিরভাগটি অবশ্যই.EXE কোনও ধরণের ইনস্টলার বা এ জাতীয় কিছু ছাড়াই একটি ফাইল হিসাবে স্থাপন করা উচিত ; এর কোনও বিকল্প নেই)

2
প্রারম্ভকালীন বিলম্বিতা কেবলমাত্র একমাত্র প্রচ্ছন্নতার সাথে সম্পর্কিত নয়: হার্ড রিয়েলটাইমের প্রয়োজনীয়তা আরও বড় ডিলব্রেকার হতে পারে।
গ্রেফেইড

1
আপনি কোনও নির্দিষ্ট নির্মাতাকে (সি # বা অবজেক্টিভ-সি) লক করতে চান না বা এমন কোনও কিছু যুক্ত করুন বা চান না যে আপনার ভাষা একগুচ্ছ মামলা (জাভা) এ অদৃশ্য হয়ে যায়
মার্টিন বেকেট

@ গ্রেফ্যাড: এটাই আমি (২) দ্বারা বোঝাতে চাইছিলাম তবে আমি স্বীকার করছি যে এটি পরিষ্কার নয়। সম্পাদনা করা হয়েছে। @ মার্টিন: যদিও আমি মনে করি এটি সি ++ এর পক্ষে ভাল শক্তি, তবে আমি মনে করি না যে এটি প্রশ্নের উত্তর দেয় - যা বাজারে সি ++ সাধারণত ব্যবহৃত হয়। এছাড়াও আমি মনে করি না যে আমি যখন সিএসআর-এর একটি <S> BSD </S> (ওওপিএস: এটি এলজিপিএল) লাইসেন্সযুক্ত সংস্করণটি উপস্থিত রয়েছে (মনো) তখন কোনও নির্দিষ্ট নির্মাতাকে সি # লক করে ডাকতাম।
বিলি ওনিল

1
এছাড়াও 5. অপারেটিং সিস্টেম এবং মূল কাঠামো। ভার্চুয়াল মেশিনে আপনি অনেক কিছু করতে পারেন তবে ভার্চুয়াল মেশিনটি সি এবং / অথবা সি ++ এ এখনও প্রয়োগ করতে হবে।
জানু হুডেক

1
@ জান: হ্যাঁ তা হবে। প্রতিচ্ছবি এবং বন্ধুদের মতো বিষয়গুলি 2-4-এ সমস্যার কারণ হতে পারে। আবর্জনা সংগ্রহকারীকে লিখতে আপনার কেবলমাত্র সাবসেটটি হ'ল কিছু বস্তু যা শারীরিক স্মৃতি উপস্থাপন করে।
বিলি ওনিল

3

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.