কেন বেশিরভাগ লিনাক্স প্রোগ্রাম সি লেখা হয়?


30

কেন বেশিরভাগ লিনাক্স প্রোগ্রাম সি লেখা হয়? সেগুলি কেন সি ++ দিয়ে লেখা হয় না, যা আরও নতুন?


14
C++এর চেয়ে নতুন Cতবে এটি কিছুটা অপ্রাসঙ্গিক। তারা বিভিন্ন ভাষা।
মাদুর

6
আপনার সম্ভবত স্ট্যাকওভারফ্লো বা প্রোগ্রামারগুলিতে এটি জিজ্ঞাসা করা উচিত (যেখানে বিষয়টি ইতিমধ্যে সুন্দরভাবে কভার করা হয়েছে )।
রোজিট্রিজেভিয়াকজ

4
@ ম্যাট ওয়েল, এটি সম্পূর্ণরূপে সঠিক নয়, কারণ সি ++ হ'ল সি'র একটি সুপারসেট আপনি সিতে প্রোগ্রাম করতে পারেন এবং এটি সি ++ সংকলক দিয়ে সংকলন করতে পারেন। এটি সংকলন এবং আশানুরূপ কাজ করবে।
পোলেমন

8
@ পোলেমন: এটি ভুল, অসম্পূর্ণতা রয়েছে। en.wikedia.org/wiki/Compatibility_of_C_and_C%2B%2B
Mat

উত্তর:


37

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

শেষ পর্যন্ত, এটি একটি .তিহাসিক বিষয়। বেশিরভাগ অ্যাপ্লিকেশন স্টাফ সি-তে লেখা হয়, কারণ বেশিরভাগ কার্নেল স্টাফ সি-তে লেখা হয় এবং তখন থেকে বেশিরভাগ স্টাফ সি-তে লেখা ছিল, লোকেরা মূল ভাষা ব্যবহার করার প্রবণতা রাখে।

এই মুহুর্তে, কেউ জিজ্ঞাসা করতে পারে "ঠিক আছে, সুতরাং কেন কার্নেল সিতে লেখা এবং সি ++ এ পোর্ট করা হয়নি?" । এটি কিছুক্ষণ আগে কার্নেল ট্র্যাপে আলোচনা করা হয়েছে । এই থ্রেড থেকে উদ্ধৃত করা যেতে পারে এমন একটি দুর্দান্ত ব্যাখ্যা হ'ল yoshi314 (সরাসরি উদ্ধৃত) এর প্রতিক্রিয়া :

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

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

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

সি ++ আরও বহুমুখী, তবে সি লোভেল বা এম্বেড থাকা স্টাফের জন্য আরও উপযুক্ত।


অন্যদিকে, "বেশিরভাগ লিনাক্স প্রোগ্রাম" বেশ বিভ্রান্তিকর। গ্রাফিকাল অ্যাপ্লিকেশনগুলি একবার দেখুন। পাইথন আরও বেশি করে গ্রাউন্ড পাচ্ছে বিশেষত লিনাক্সের জিইউআই পরিবেশে। উইন্ডোজ এবং নেট। এর সাথে একই ঘটছে About


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

@ ম্যাসিজেপিয়োকটকা এগুলি সত্য, এবং এটি একটি দুর্দান্ত আলোচনা, তবে সি এর একটি সংজ্ঞায়িত এবিআই নেই , প্রতিটি প্ল্যাটফর্মে প্রায়শই জিনিসগুলি কাজ করার একটি "সুস্পষ্ট" উপায় রয়েছে তা বাদে । তারপরে এটি নেতাকে অনুসরণ করে।
dmckee

@ ডিএমকেই: আমি বলিনি যে এটি মানসম্মত হয়েছে তবে প্রতিটি প্ল্যাটফর্মের সিআইপি কিছু সাধারণ নিয়ম অনুসরণ করে (কোনওটি বা ন্যূনতম ম্যাংলিং সহ) খুব কমই পরিবর্তিত হয় - যা এটি 100% সঠিক না হলেও এই উদ্দেশ্যে কার্যকর করে তোলে।
ম্যাকিয়েজ পাইচোটকা

2
আজকাল, আপনি এটিও বিবেচনা করতে পারেন ... * আপনি সি তে যা কিছু করতে পারেন আপনি সি ++ তেও একইভাবে করতে পারেন, "বাহ্যিক সি "ও ভাবেন ... * সংকলকটি আরও জটিল কোড তৈরি করবে না যদি আপনি আরও জটিল কোড লিখবেন না ... * আপনি সি ++ তে একই বেয়ারবোন স্টাফ লিখতে পারেন ... * আপনি সি থেকে সি ++ লাইব্রেরি লিঙ্ক করতে এবং ব্যবহার করতে পারেন শেষ পর্যন্ত এটি একটি historicalতিহাসিক সমস্যা।
Zrin

7

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

http://harmful.cat-v.org/software/c++/linus


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