উত্তর:
জাভা ভার্চুয়াল মেশিনে চালিত হয়, যখন সি ++ সরাসরি হার্ডওয়্যারে চালিত হয়। এর অর্থ হ'ল আপনার মেমরিটি কোথায় যায় এবং সি ++ এর মাধ্যমে এটি কী করা হয় তার উপরে আপনার আরও নিয়ন্ত্রণ থাকে।
জাভা হ'ল আবর্জনা সংগ্রহের ভাষা। আপনার স্মৃতিতে আপনার সরাসরি নিয়ন্ত্রণ নেই। আপনি মেমরির নতুন অংশগুলি বরাদ্দ করতে পারেন, তবে এটি মুছে ফেলার পরে আপনি (সূক্ষ্ম) নিয়ন্ত্রণ রাখবেন না। আবর্জনা সংগ্রহকারী আপনার প্রতিটি এক্স ফ্রেম বরাদ্দ করা প্রতিটি মেমরি পরীক্ষা করে এবং এটি আবর্জনা বা এখনও ব্যবহৃত হচ্ছে কিনা তা নির্ধারণ করে।
গেমসের জন্য এটি বিপর্যয়কর হতে পারে। প্রতি কয়েক ফ্রেমে কিছু আবর্জনা সংগ্রাহক আপনার যে প্রতিটি বরাদ্দ তা এখনও ব্যবহার হচ্ছে কিনা তা পরীক্ষা করে দেখার জন্য আসে ? মন্দার কথা বলুন!
দ্বিতীয়ত, আমরা যে লাইব্রেরিগুলি ব্যবহার করি সেগুলির বেশিরভাগই সিটিতে লেখা ছিল বা সি ++ তে লেখা ছিল। আমি স্কেলফর্ম, হাভোক পদার্থবিজ্ঞান ইঞ্জিন, ফিজএক্স, স্পিডট্রি ইত্যাদির কথা বলছি শিল্পে ব্যাপকভাবে ব্যবহৃত সমস্ত পেশাদার প্যাকেজ। অন্য কোনও ভাষা যদি রাজা হতে চায় তবে এটি তাদের আরও ভাল সমর্থন করে।
আমার ব্যক্তিগত দৃষ্টিভঙ্গি হ'ল জাভা ডেস্কটপ অ্যাপ্লিকেশন এবং অ্যাপ্লিকেশনগুলির জন্য সত্যিই দুর্দান্ত তবে গেমসের জন্য নয়। জাভা বিকাশকারীদের জন্য অনেক দুর্দান্ত সরঞ্জাম রয়েছে এবং এটি জাভা ভার্চুয়াল মেশিনের বাস্তবায়িত যে কোনও প্ল্যাটফর্মে তাত্ত্বিকভাবে চালানো যেতে পারে তবে আমি এখনও সি ++ পছন্দ করি কারণ আমার স্মৃতিতে আমার এই নিয়ন্ত্রণ প্রয়োজন । বিশেষত যখন আপনি বহিরাগত ডেটা স্ট্রাকচার (লাল-কালো গাছ, দ্বিগুণ লিঙ্কযুক্ত তালিকা ইত্যাদি) নিয়ে কাজ শুরু করেন এটি আপনার সমস্ত মেমরির বরাদ্দের একটি ভাল ওভারভিউ রাখতে সহায়তা করে।
আমি বলছি না: জাভা ব্যবহার করবেন না। আমি বলছি: আপনি জাভা কেন ব্যবহার করছেন তা ভেবে দেখুন। মাইনক্রাফ্ট জাভাতে নির্মিত হয়েছিল, তাই জাভাতে গেমগুলি তৈরি করা অবশ্যই সম্ভব। তবে এটি কি আরও ভাল খেলা হতে পারত, যদি এটি সি ++ এ নির্মিত হত? ওয়েল, এটি অবশ্যই বড় তিনটি (উইন্ডোজ, ম্যাকস, লিনাক্স) এ চালানোর জন্য এতটা সস্তা হত না, তবে এর পরেও এটির বিকাশে প্রচুর প্ল্যাটফর্ম-নির্দিষ্ট বাগের মুখোমুখি হয়েছিল, জাভাগুলি মসৃণ করতে পারে না এমন বাগগুলি ওভার।
প্রোগ্রামার শুরুর জন্য এখন প্রচুর সি ++ ফ্রেমওয়ার্ক রয়েছে। এটি না শিখার আসলেই কোন অজুহাত নেই, বিশেষত যদি আপনি এই শিল্পে নিজের ক্যারিয়ারটি আরও এগিয়ে নিতে চান।
সংক্ষিপ্ত উত্তর: সি ++ স্থানীয় কোডের সাথে সংকলন করে, তাই সঞ্চালনটি ডেভেলপারের উপর নির্ভর করে, রানটাইম বা ভিএম নয়।
দীর্ঘ উত্তর:
সি ++ "দ্রুত" হওয়ার সাথে সি ++ এর কোনও সম্পর্ক নেই। এই মুহুর্তে, এটি উপলব্ধ এমন কয়েকটি ভাষার মধ্যে একটি যা একাধিক প্ল্যাটফর্মের জন্য স্বতন্ত্র, নেটিভ কোড উত্পাদন করে এমন সরঞ্জামগুলির দ্বারা সমর্থিত by
আগের দিন, আপনি সি, সি ++, বেসিক / 2, ডেলফি ইত্যাদি ব্যবহার করতে এবং দক্ষ, ফ্রিস্ট্যান্ডিং এক্সিকিউটেবল পেতে পারেন। ভাষার পছন্দটি ব্যক্তিগত পছন্দ এবং বাজার শক্তির বিষয় ছিল।
এই দিনগুলিতে, "C ++ দ্রুত" এমন ধারণাটি মূলত একটি স্ব-পরিপূর্ণ ভবিষ্যদ্বাণী, যদিও এলএলভিএম পরিবর্তনের পক্ষে ভাল অবস্থানে রয়েছে যা এটি পার্সার মুটের মধ্যে যা যা ঘটেছিল তা যেমন হয়েছিল একসময়।
বোরল্যান্ডের এটি ঠিক আছে: একাধিক ভাষাগুলি যেগুলি পার্স করা হয়েছিল, প্রথমে অনুকূলিতকরণ প্রয়োগ হয়েছে, তারপরে একটি সাধারণ ব্যাকএন্ড সংকলক এবং লিঙ্কারে প্রেরণ করা হয়েছে। যা কার্যকরভাবে এলএলভিএমের অন্যতম বড় সাফল্য।
জাভা এমনভাবে গঠন করা হয়েছে যে জেভিএম ছাড়া এটি প্রয়োগ করা খুব কঠিন হবে। অদ্ভুতভাবে যথেষ্ট, সি #, সাধারণত, এবং ভুলভাবে, জাভার প্রায় সমতুল্য বলে ধরে নেওয়া, ইতিমধ্যে আইওএস সহ বেশ কয়েকটি প্ল্যাটফর্মের নেটিভ কোডটি সংকলন করে।
আমার ক্রিসমাস তালিকার শীর্ষে? ফিরে যাওয়ার এবং বৈশিষ্ট্যগুলি যুক্ত করার জন্য একটি টাইম মেশিন, আসল ব্যতিক্রম হ্যান্ডলিং এবং আসল ওয়ার্কিং পলিমারফিজম সি ++ এ, এবং পার্সারটি নিজেরাই আবিষ্কার করতে পারে এমন f "d আপ অ্যার সিনট্যাক্স ক্র্যাপ থেকে মুক্তি পান I আমি 10 বছরের জন্য একটি প্রিপ্রসেসর লিখেছিলাম আগে কারণ এটি নির্বুদ্ধিতা freaking।