আপনি কি আজ কোনও সফ্টওয়্যার প্রকল্পের জন্য সি ব্যবহার করবেন? [বন্ধ]


18

যদি হ্যাঁ, আপনি কোথায় এবং কেন এটি ব্যবহার করবেন?

যদি না হয় তবে দয়া করে কেন সি আপনার কাছে গ্রহণযোগ্য নয় সে সম্পর্কে একটি ব্যাখ্যা সরবরাহ করুন।


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

হ্যাঁ - কোর্সের জন্য ঘোড়া
মার্টিজ ভার্বার্গ

ওটার মানে কি?
লুকা ম্যাটেইস

যারা ঘোড়া দৌড়কে অনুসরণ করে তাদের পক্ষে এটি একটি পুরানো প্রবাদ। মূলত এর অর্থ হ'ল যে কোনও ঘোড়া তার দিনটিতে জয়লাভ করতে পারে, যতক্ষণ না কোর্স (শুকনো, নোংরা, দীর্ঘ, সংক্ষিপ্ত, যাই হোক না কেন) এটি উপযুক্ত। প্রোগ্রামিং ভাষার ক্ষেত্রেও একই বিষয় - এটি সর্বদা প্রসঙ্গ এবং সমস্যা ডোমেনের উপর নির্ভর করে।
মার্টিজন ভার্বার্গ

2
না, তবে কেবল কারণ আজ আমি এমন কোনও প্রকল্পে কাজ করছি না যার জন্য সি ভাল ভাষার পছন্দ হবে। আগামীকাল আমাকে আবার জিজ্ঞাসা করুন।
জেমস ম্যাকনেলিস

উত্তর:


38

সি প্রোগ্রামিং এর জন্য সি একটি দুর্দান্ত ভাষা

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

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


4
আপনি "ম্যাক ওএস লিনাক্স" কোথায় নির্দেশ করতে পারেন? আমি ভেবেছিলাম ম্যাক OS ডারউইন হল: en.wikipedia.org/wiki/Darwin_%28operating_system%29
LennyProgrammers

1
পছন্দ করেছেন :-) জেনিক্স, ডিওয়াইএনএক্স এবং এ / ইউএক্সের মতো প্রচুর মৃত ইউনিসিস রয়েছে এবং বর্তমান সংস্করণ আমাদের বেশিরভাগই এইচপি-ইউএক্সের মতো দেখতে পায় না। পারিবারিক গাছটি ইউরোপীয় রাজপরিবারের মতো জটিল এবং জটযুক্ত।
বব মারফি

4
সি প্রোগ্রামিংয়ের জন্য সি একটি ভয়ঙ্কর ভাষা। আমরা জানি যে 20 বছরেরও বেশি সময় ধরে, মরিস ওয়ার্মের পরে এবং এখনও যে কোনও সুরক্ষার প্রয়োজনীয়তা, বিশেষত অপারেটিং সিস্টেম বা নেটওয়ার্ক-মুখোমুখি অ্যাপ্লিকেশনগুলির সাথে যে কোনও প্রকল্পের জন্য এটি ব্যবহার করছে, তাকে অবশ্যই অপরাধমূলক অবহেলার অভিযোগের মুখোমুখি হতে হবে।
ম্যাসন হুইলারের

2
@ ম্যাসন হুইলারের: পরিবর্তে আমাদের কী ব্যবহার করা উচিত?
স্টিভ এস

1
@ ম্যাসন হুইলার: হুম ... আমি অতীতে পাস্কালকে বরখাস্ত করেছি, তবে সম্ভবত এটি অন্য (কাছাকাছি) চেহারা দেখার সময় হয়েছে। আপনার কি অন্যান্য পরামর্শ আছে?
স্টিভ এস

17

হ্যা অবশ্যই. আমি সিস্টেমের নিম্নতর স্তরের যোগাযোগের পারফরম্যান্সের সমালোচনামূলক অংশগুলি লেখার জন্য সি ব্যবহার করব। উদাহরণস্বরূপ, আমি এরলং প্রকল্পে এনআইএফ লেখার জন্য সি ব্যবহার করব কারণ এটি এই ধরণের কাজের জন্য ডান টুল (টিএম)। অথবা আমি পার্ল প্রকল্পে অনুরূপ অংশ (এক্সএস) লেখার জন্য সি ব্যবহার করব।


16

আমি প্রায় প্রতিদিন প্রফেশনালি সি ব্যবহার করি। আসলে, সি হ'ল উচ্চ স্তরের ভাষা যেখানে আমি নিয়মিত প্রোগ্রাম করি।

যেখানে আমি সি ব্যবহার করি: আমি নিম্ন-স্তরের গ্রন্থাগার কোডটি লিখি যার যথাসম্ভব দক্ষ হওয়ার প্রয়োজন রয়েছে। আমার আঠালো কোড সি লেখা হয়েছে, অভ্যন্তরীণ গণনা লুপগুলি সমাবেশে লেখা আছে।

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

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


6
আপনার কাছে মনে হচ্ছে সত্যিই একটি মজাদার কাজ রয়েছে!
পল নাথান

এটি আমার স্বপ্নের কাজ।
rsmahanti

5

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

আমি একটি সি ++ প্রোগ্রামারকেও দেখেছিলাম যে 1K স্ট্যাকের উপর 10 কে অবজেক্ট তৈরি করার চেষ্টা করছে, এটি ভাল ধারণা নয়।


2
আসলে virtualফাংশনগুলি ঠিক আছে কারণ তারা "আপনি যা ব্যবহার করেন না তার জন্য অর্থ প্রদান করেন না" নীতি অনুসরণ করে তবে মেমরির প্রতিবন্ধক পরিবেশে আপনি ব্যতিক্রম এবং আরটিটিআই অক্ষম করতে চাইতে পারেন।
ম্যাথিউ এম।

আমার মনে হয় আমি পেরিফেরিয়াল ইন্টারফেস সরবরাহ করতে সর্বদা সি ++ তে সিঙ্গেলটন অবজেক্ট তৈরি করি। আমি মনে করি এম্বেড থাকা সিস্টেমে লোকেরা সি +++ এর চেয়ে বেশি পছন্দ করে কারণ তারা মনে করে যে সি ++ "আরও ভাল"।
এরিক

5

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

আমি কি এটি ব্যবহার করে একটি স্প্রেডশিট প্রোগ্রাম লেখার চেষ্টা করব? কোনভাবেই না. প্রতিটি সরঞ্জামের অ্যাপ্লিকেশন রয়েছে এবং আমি খুশি যে আমার কাছে অনেক সরঞ্জাম রয়েছে।

আমি সি পছন্দ করি, কিন্তু আমি হাতুড়ি দিয়ে স্ক্রু পাউন্ড করার চেষ্টা করি না।

সি যদি কোনও নতুন প্রকল্পের জন্য বুদ্ধিমান পছন্দ হয় তবে তা নিশ্চিত। যদি তা না হয় তবে আমি অন্য কিছু ব্যবহার করব।


4

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

যদি এটি প্রকল্পটি ফিট করে তবে আমার তাতে কোনও সমস্যা নেই।

আপনি যদি কোনও ওয়েব-অ্যাপ্লিকেশন বিকাশ করতে চান তবে হুম, সম্ভবত না (বা আমার খুব দৃ strong় এবং সত্য-সমর্থিত ন্যায়সঙ্গততা দেখতে হবে)।

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


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

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

এবং অন্যান্য লোকদের যদি এর মতো অন্যান্য বৈধ কারণ থাকে তবে দয়া করে তাদের এখানে পোস্ট করুন! এটি পাঠকদের জন্য দরকারী।
হাইলেম

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

@ কিডটোট: সত্যই। লজ্জাজনক অনেক লোক সত্যই আর সি জানে না।
হাইলেম

4

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

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

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

যদিও আমি অবশ্যই এটি সমস্ত কিছুর জন্য এমনকি বেশিরভাগ জিনিসের জন্য ব্যবহার করি না, এর এটির জায়গা রয়েছে এবং এটি বেশ সর্বজনীন: তাই হ্যাঁ, আমি এটি অতীতে ব্যবহার করেছি এবং ভবিষ্যতে এটি ব্যবহার করব (যদিও আমি এটি করি না) এই মুহুর্তে জানুন)।


4

হ্যাঁ, আমি সব সময় এটি করি।

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

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

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

সুতরাং এখানে আমার সিদ্ধান্ত গ্রহণ প্রক্রিয়া:

  1. আমি কি কোনও ডিভাইস ড্রাইভারের মতো বাঁধা অবস্থায় কাজ করছি? সি ব্যবহার করুন।
  2. আমি কি লিনাক্স গ্রন্থাগার লিখছি অন্য কারও ব্যবহার করতে হবে? সি ব্যবহার করুন।
  3. আমি কি কোডের ভিতরে কাজ করছি যা ইতিমধ্যে সি তে লেখা আছে? সি ব্যবহার করুন।
  4. আমি কি কোনও ম্যাক বা উইন্ডোজ লাইব্রেরি লিখছি, বা একটি লিনাক্স লাইব্রেরি কেবল ব্যবহার করব? ইন্টার্নালগুলি সি ++ তে লিখুন, তবে ভঙ্গুর বাইনারি ইন্টারফেসের সমস্যা এড়াতে কেবল একটি সি ইন্টারফেস প্রকাশ করুন।
  5. সি ++ ব্যবহার করুন।

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


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

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

3

হ্যাঁ, তবে প্রকল্পের উপর নির্ভর করে। সি কয়েকটি নিম্ন-স্তরের প্রকল্পের জন্য বা সবচেয়ে বড় সমাধানের অংশের জন্য খুব ভাল।

যেমন। বুসাইন যুক্তির জন্য ঠিক আছে, তবে ব্যবহারকারীর ইন্টারফেসের জন্য নয়।


2

যদি এটা উভয় হতে হবে

  • দ্রুত এবং
  • সুবহ

তারপরে আমি সি ব্যবহার করব সি ++।


দ্রুত এবং বহনযোগ্য, এটি জাভা বা সি #ও হতে পারে।
জোনাস

11
@ জোনাস: না। পোর্টেবলের অর্থ কেবল 'উইন্ডোজ বা লিনাক্স' নয় ;-)
স্টিভেন এ। লো

1
@ জোনাস: দ্রুত এবং পোর্টেবল, এটি জাভা বা সি # হবে না। সি ++ প্ল্যাটফর্ম এবং মাইক্রোকন্ট্রোলারের মতো এম্বেড থাকা ডিভাইসগুলিতে পোর্টেবল এবং সি অন্য ভাষাতে বহনযোগ্য (বিদেশী ফাংশন হিসাবে)। উভয়ই অ-কার্যক্ষম এবং অতএব-স্ট্যাক-ভিত্তিক-তবু-এখনও আবর্জনা-সংগ্রহ করা ভাষার চেয়ে দ্রুত। আপনার উভয়েরই দরকার নেই: একটি স্ট্যাক এবং একটি আবর্জনা সংগ্রহকারী।
কমোনাদ

2
@ জোনাস: এটি পড়ুন; ক্যাভ্যাটগুলি নোট করুন এবং আবারও "পোর্টেবল" এর অর্থ কেবল উইন্ডো / লিনাক্স নয়। প্রশ্ন জিজ্ঞাসা করে আপনি কখন সি ব্যবহার করবেন; উত্তরটি হ'ল: যখন সর্বত্র দ্রুত চালাতে হয় । আমি জাভা এবং সি # পছন্দ করি তবে এগুলি স্লেজহ্যামার এবং পুরানো / এম্বেড থাকা সিস্টেমে রানটাইম নেই। তাদের অনেকের কাছে রানটাইম ধরে রাখার জায়গাও নেই!
স্টিভেন এ লো।

2
@ জোনাস: আমি আপনার আবেগকে প্রশংসা করি, তবে "নতুন প্ল্যাটফর্ম" বিষয়টি নয়। এটি আপনাকে সহায়তা করে কিনা তা দেখার জন্য আমি আপনাকে আরও একটি সুনির্দিষ্ট উদাহরণ দেই: যুদ্ধক্ষেত্রের ট্যাঙ্কগুলিতে ফায়ার-নিয়ন্ত্রণ সহায়তা সরবরাহকারী মাইক্রোপ্রসেসারগুলিতে সি সংকলক রয়েছে। তারা কখনই জেভিএম রাখে না, করবে না।
স্টিভেন এ লো 18

2

হ্যাঁ, আসলে আমি সম্প্রতি করেছি!

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

আমি এখন যে প্রকল্পটি নিয়ে কাজ করছি তা হ'ল একটি ডাটাবেস, যা আপনি কল্পনা করতে পারেন, পারফরম্যান্স সমালোচনা। এই মুহুর্তে আমি সি এবং কিছু অজগর ব্যবহার করছি তবে এটি পুরোপুরি সি না হলে অবশেষে এটি মূলত হবে it


2

হ্যাঁ!

সি একটি নিম্ন স্তরের ভাষা এবং এমন পরিস্থিতি রয়েছে যা সি প্রায় একমাত্র বিকল্প হিসাবে আমি মাইক্রো-কন্ট্রোলার প্রোগ্রামিংয়ের জন্য সি ব্যবহার করি, বা প্যারালাল, সিরিয়াল বা এমনকি মোডেমের মতো ক্লাসিক বন্দরগুলির ডিভাইসগুলির সাথে যোগাযোগ করার জন্য কিছু কোড একসাথে রেখেছি!


2

হ্যাঁ. আমি আমার ক্যারিয়ারের বেশিরভাগ প্রোগ্রামিং সি ++ এ ব্যয় করেছি, তবে এখন আমি আমার কোডের বেশিরভাগ অংশ রুবিতে লিখি এবং যদি আমার কম পারফরম্যান্স বা নিম্ন স্তরের স্টাফ অ্যাক্সেসের প্রয়োজন হয় তবে আমি সি এক্সটেনশন লিখি। এটা ভবিষ্যতের মানুষ!


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

1

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


0

সি ++ প্ল্যাটফর্ম এবং মাইক্রোকন্ট্রোলারের মতো এম্বেড থাকা ডিভাইসগুলিতে পোর্টেবল। (সি ++ সিতে সংকলিত হতে পারে, সুতরাং মাইক্রোকন্ট্রোলার।

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

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


আমি সম্ভব সর্বাধিক বিমূর্ত ভাষাটি বেছে নিই, কারণ প্রোগ্রামের গতি আলাদা হয় না তবে উন্নয়নের সময় এবং বাগ-রেট। সি এবং সি ++ এর মধ্যে অনেক পার্থক্য রয়েছে, তবে হাস্কেলের দৃষ্টিকোণ থেকে নয়।

আমি দু'হাত ভরা জানলেও আমি অন্য ভাষা পছন্দ করি না। ... কয়েকটি ক্ষেত্রে বাদে, ভাল, বাশ


0

এম্বেড থাকা সিস্টেমে প্রায়শ কয়েক কিলোবাইট র‍্যাম এবং সম্ভবত কয়েক মেগাহার্জ প্রসেসরের ঘড়ির হারের সাথে কয়েক ডজন কিলোবাইট ফ্ল্যাশ থাকে। সি এমন একমাত্র বিকল্প যা এই জাতীয় খালি-ধাতব পরিবেশে কোনও ধারণা তৈরি করে।

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