শিল্পটি কেন সি থেকে সি ++ এ সরে গেছে? [বন্ধ]


19

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

আমার প্রশ্নটি সি ++ তে একটি বিশাল সুইচ সম্পর্কে যা ডুম 3 দিয়ে কমবেশি কমপ্লিট হয়ে গিয়েছিল।

আমার জন্য আকর্ষণীয় বিষয় হ'ল এই মাইলফলকের আগে, বেশিরভাগ গেম ইঞ্জিন এবং গেমস নিজেই সি-তে লেখা ছিল, ঠিক এটি ভূমিকম্প যুগের পরে থেকেই । এটিও আকর্ষণীয় যে আইডি সফ্টওয়্যার সি ++ এর আইডটেক 4 এর জন্য কোডবেজ সম্পূর্ণরূপে পুনরায় লেখার সিদ্ধান্ত নিয়েছে, এমন একটি বিশাল পরিমাণ কাজ যা সত্যই আমি কারণগুলির সত্যিকারের ভাল তালিকা ছাড়াই বুঝতে পারি না।

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

কেন একটি নির্দিষ্ট সময়ে শিল্প বড় আকারে সি ++ তে স্যুইচ করেছে? আইডিটি পছন্দ করার কারণগুলি কী কী?

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

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

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

আমার সি ++ কোডটি সি ++ সংস্করণটি উল্লেখ করা উচিত যা 2-3 রিলিজ পুরানো?


1
আমি সন্দেহ করি যে সি ++ সি এর পরিমাণের বর্ধন, লোকেরা সি ++ ভেক্টরের মতো সি ++ বৈশিষ্ট্য সহ সি লিখতে শুরু করেছিল, সেখান থেকে সি ++ এর পরিবর্তে সি ++ শেখানো হয়েছিল এবং এইভাবে লোকেরা পুরো প্রস্ফুটিত সি ++ লিখতে শুরু করে।
এপিআই-বিস্ট

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

@ টিড্রন 1) আমাকে একটি ভাল নির্বাহযোগ্য উত্পাদন করতে হবে, আমি যেমন ভাষা সম্পর্কে যত্ন করি যেমন একটি গুরুত্বপূর্ণ সম্পদ সম্পর্কে আমি যত্ন করি তবে এটি সবকিছুই নয় এবং আমি যা বিক্রি করি তা 2) এনক্যাপসুলেশন এটি পারফরম্যান্সের পক্ষে খুব ভাল নয়, যদি কেউ চায় আমাকে সি ++ বিশ্ব ছাড়তে রাজি করান, এনক্যাপসুলেশন এটির জন্য একটি ভাল বিষয়।
ব্যবহারকারী 827992

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

@ নিকোলবোলাস আমি আইডি সম্পর্কে কথা বলার কারণটি ব্যাখ্যা করছিলাম, দয়া করে পুরো প্রশ্নের অর্থটি পেয়ে যাবেন।
ব্যবহারকারী 827992

উত্তর:


28

সি ++ সি সবকিছু করে। আপনি সি ও সি ++ মিশ্রিত করতে পারেন যেখানে সি এর সুবিধাগুলি সি ++ এর চেয়ে বেশি igh এটি সি ++ এর খুব ইচ্ছাকৃত ডিজাইনের সিদ্ধান্ত।

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

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

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

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

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

আমার ব্যক্তিগত বিশ্বাস - যা আমি অন্যান্য গেমস শিল্প পেশাদারদের সাথে ভাগ করে নিয়েছি যার সাথে আমি কথা বললাম - এটি হ'ল সি ++ এর বর্ধিত অভিব্যক্তি এবং উচ্চ-স্তরের প্রোগ্রামিং সুবিধাগুলি সি এর সাথে ভাষার বর্ধিত জটিলতা ছাড়িয়ে যায় এবং অন্যান্য ঘন ঘন অন্যান্য অ্যান্টি-সি ++ দাবী করা আজকের প্রযুক্তির সাথে কেবল পুরানো।


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

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

3
"আইডিয়োম্যাটিক" হ'ল "আরামদায়ক" বলার আরেকটি উপায় যা "আপেক্ষিক ছাড়াও —" এর অর্থ এটিও প্রায় সংজ্ঞা অনুসারে, ভাষার একটি অস্বস্তিকর অঞ্চল রয়েছে যেখানে অন্যথায় উপযুক্ত সি ++ প্রোগ্রামার বিশেষত দক্ষ হবে না। (আমি অগত্যা মনে করি না যে এর অর্থ এই যে তারা এই উপাদানগুলির দ্বারা "বিভ্রান্ত" হচ্ছেন, কেবল তারা এগুলিতে অস্বস্তি বোধ করছেন বা তাদের সাথে সাবলীল নন)) এবং, কিছুটা অবধি, সিডিয়োমেটিক সি ++ শেখার লোকদের উপর অস্বস্তি করতে শেখানো হয় নিছক একটি কাঁচা পয়েন্টার ঝলক। সুতরাং আমি মনে করি না যে একটি সক্ষম সি ++ প্রোগ্রামার কোনও সক্ষম সি প্রোগ্রামারকে বোঝায়।
জন কলসবেক

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

1
@ ড্যানিয়েল কার্লসন: যথেষ্ট ভাল, আমি কেবল প্যাডেন্টিক। দুঃখিত। এই শিরাতে, যদিও ... সি ++ সি এর চেয়েও অনুকূলিতকরণ করে এমন কিছু করে না :) আমি বলতে চাই, আপনি যদি এসটিএল ব্যবহার করেন তবে আপনি এসটিএল যা করেন তার মধ্যে সীমাবদ্ধ, তবে কেন একটি বড় অংশ আমরা সি ++ পরিবর্তে সি # বা জাভা কারণ আমরা শুধু সমগ্র STL reimplement অথবা কাঁচা বিন্যাস বা ইনলাইন প্রতীকী ভাষান্তর বা (SSE intrinsics মত) ভাষা এক্সটেনশন এমনকি ঢিলা ব্যবহার করতে পারেন, ইত্যাদি ব্যবহার
শন Middleditch

12

কেন একটি নির্দিষ্ট সময়ে শিল্প বড় আকারে সি ++ তে স্যুইচ করেছে? আইডিটি পছন্দ করার কারণগুলি কী কী?

আইডি সফটওয়্যার না "শিল্প"। তারা একটি সংস্থা। তারা প্রভাবশালী হতে পারে, তারা সবাই না।

আমি ১৯৯৯ সালের তারিখের বেশ কয়েকটি গেম ইঞ্জিনে কাজ করেছি এবং তারা সি ++ ব্যবহার করেছে।

"সেই সময়ে প্রায়" সি ++ গ্রহণের মূল কারণগুলি হ'ল:

  1. ইহা ছিল মানক করা । সি ++ 98 এর নামকরণ করা হয়েছে কারণ এটি 1998 সালে একটি আইএসও স্ট্যান্ডার্ড হিসাবে প্রকাশিত হয়েছিল then তখন পর্যন্ত সি ++ এর একাধিক উপভাষা ছিল যা স্পষ্ট ধারণা ছাড়া "আসল" বা "সঠিক" ছিল with এটি একবার মানসম্পন্ন হয়ে গেলে, এবং সংকলকগণ স্ট্যান্ডার্ডটি প্রয়োগ করতে শুরু করলে গেম ডেভেলপাররা প্রকৃত মানের উপর নির্ভর করতে পারে।

  2. পুরানো কৌতুকটি মনে রাখবেন: একজন লোক চিকিত্সকের অফিসে andুকলেন এবং বললেন, "আমি নিজের হাতটি এভাবে বাড়িয়ে দিলে ব্যথা হয়।" তাই চিকিত্সক বলেছেন, "সুতরাং আপনার হাতটি এভাবে বাড়িয়ে দেবেন না।"

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

    প্রকৃতপক্ষে, এর ফলে প্রচুর সি ++ গেমগুলি আইডিয়োমেটিক সি ++ নয় (কমপক্ষে, আধুনিক নয়) প্রতিচ্ছবি সি ++ নয়), কেবল "ক্লাস সহ সি" " এবং এটি সি ++ প্রোগ্রামের জন্য পুরোপুরি কার্যকরী উপায়। হেল, typedef structআপনি যখন নতুন টাইপ তৈরি করেন তখন টাইপ করতে না পারাটাই সুবিধা।

    সি ++ হ'ল বৈশিষ্ট্যগুলির একটি বড় ব্যাগ এবং আপনি যেটি চান তা চয়ন করতে পারেন।

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

আপনার বক্তব্য হচ্ছে? সবে গুগল এনডিকে ব্যবহার করে লোকদের সহ্য করে; এটি স্পষ্ট যে তারা সবাই জাভা ব্যবহার করতে চায়। এনডিকে থাকার একমাত্র কারণ হ'ল কিছু গুরুত্বপূর্ণ বিকাশকারী রয়েছে যারা এটিকে ছাড়া প্ল্যাটফর্মটি কেবল ব্যবহার করবেন না। সুতরাং, তাদের এবং তাদের বৈশিষ্ট্যগুলির প্রয়োজনীয়তার জন্য NDK উপস্থিত রয়েছে।

হ্যাঁ, সি ++ বাস্তবায়নের জন্য একটি বৃহত্তর এবং আরও জটিল স্পেসিফিকেশন। জাভাও তাই। তাই হয়সি ছাড়া কোনও ভাষাও

এছাড়াও, "সর্বশেষ এবং সর্বশ্রেষ্ঠ বৈশিষ্ট্যগুলি" বলতে কী বোঝ? আপনি যদি সি ++ 11 স্টাফ সম্পর্কে কথা বলছেন, ভাল, কেউ এখনও পুরোপুরি এটি প্রয়োগ করে না। অনুমানটি হয় সবেমাত্র এক বছরের পুরনো। এছাড়াও, NDK হয় C11 সমর্থন করে কিনা তা আমি জানি না; হ্যাঁ, সি এর "সর্বশেষ এবং দুর্দান্ত বৈশিষ্ট্যগুলি" রয়েছে যা সর্বত্র সমর্থিত নয়।

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

আপনি যদি সি ব্যবহার করতে চান তবে সি ব্যবহার করুন । অন্যান্য ব্যক্তিরা যে পছন্দটি করেন নি তার অর্থ এই নয় যে আপনার পছন্দটি ভুল বা তাদের পছন্দটি ভুল। আপনার নিজের কাছে তাদের ন্যায্যতা দেওয়ার দরকার নেই এবং তাদের আপনার কাছে নিজেকে ন্যায্যতা দেওয়ার দরকার নেই।


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

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

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

7

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

প্রতিটি রিলিজের জন্য পুরো ইঞ্জিনটি প্রায় নতুন করে লিখতে তাদের পক্ষে সাধারণ বিষয় ছিল (কমপক্ষে সাম্প্রতিক অবধি - আমি গত কয়েকটি গেম সম্পর্কে বেশি কিছু জানি না), এবং যেহেতু সি ++ জনপ্রিয়তার সাথে বেড়ে চলেছে এটি স্টিকের পরিবর্তে এটি ব্যবহার করা বোধগম্য হয় সি এর সাথে সময়ের সাথে কম এবং কম লোক সি এর সাথে সক্ষম হতে চলেছে

কেন একটি নির্দিষ্ট সময়ে শিল্প বড় আকারে সি ++ তে স্যুইচ করেছে?

কারণ সি কোডের সাথে প্রায় পুরোপুরি পিছনের দিকে সামঞ্জস্য রেখে এটি আপনাকে প্রচুর উচ্চ স্তরের কার্যকারিতা দেয়।

আইডিটি পছন্দ করার কারণগুলি কী কী?

গুগল আপনার জন্য এই উত্তর দিতে হবে: http://fabiensanglard.net/doom3/interviews.php

"... অর্ধেক প্রোগ্রামারদের শুরুতে সত্যই সি ++ ব্যাকগ্রাউন্ড ছিল I আমার সি এবং অবজেক্টিভ-সি ব্যাকগ্রাউন্ড ছিল এবং আমি সি ++ ছেলেরা যে কোডটি লিখছিলাম তা কেবলমাত্র কোডটি দেখে" C ++ এ স্লাইড "হলাম। আমি যদি ভাষাটি ব্যবহার শুরু করার আগে ভালভাবে গবেষণা এবং অন্বেষণ করার জন্য সময়টি বাজেট করতাম had

আপনি এখনও বলতে পারেন যে রেন্ডারার কোডটি মূলত সিতে তৈরি হয়েছিল, তারপরে সাজানো সি ++ তে সাজানো।

আজ, আমি দৃly়ভাবে বিশ্বাস করি যে সমালোচনামূলক পারফরম্যান্স প্রয়োজনীয়তার সাথে বৃহত, বহু-বিকাশকারী প্রকল্পগুলির জন্য সি ++ হ'ল সঠিক ভাষা এবং ডুম 3 এর অভিজ্ঞতার জন্য টেক 5 অনেক ভাল off "

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

  1. প্রোগ্রামাররা ভবিষ্যতে দেখতে পারে না। তারা জানত না যে দুর্বল সি ++ সমর্থন সহ একটি নতুন প্ল্যাটফর্ম থাকবে। অ্যান্ড্রয়েড ২০০৯ অবধি সঠিকভাবে উপস্থিত ছিল না Do ডুম 3 2004 এর ছিল।
  2. আপনি কি মনে করেন যে পিসি এবং কনসোলগুলির জন্য কাটার এজ এজ থ্রিমি গেমগুলি লিখছেন তারাও তাদের কোড ফোনে চালিত হওয়ার প্রত্যাশা করছেন? এই ডিগ্রিটির বহনযোগ্যতার জন্য লক্ষ্যমাত্রা পাওয়ার ক্ষেত্রে প্রচুর পার্থক্যের কারণে খুব বিরল এবং প্রায়শই অর্থহীন।

আমার সি ++ কোডটি সি ++ সংস্করণটি উল্লেখ করা উচিত যা 2-3 রিলিজ পুরানো?

আপনি এই সম্পর্কে যত্ন কেন? সর্বাধিক নতুন জিনিস তাড়া করে আটকাবেন না। যদি 5 বছর আগে এটি যথেষ্ট ভাল ছিল তবে হঠাৎ এটি এখন খারাপ হয়ে উঠবে না।


3

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

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