ওওপির যুগে সি কী এত জনপ্রিয় করে তোলে? [বন্ধ]


91

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

টিআইওবি প্রোগ্রামিং সম্প্রদায় সূচক

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

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


18
ভিডিওগেমস, এমবেডেড সিস্টেম, হার্ডওয়্যার প্রোগ্রামিং (ফার্মওয়্যার), অপারেটিং সিস্টেম, প্রভৃতি

25
নোট করুন যে আপনি কেবল যা মাপছেন তা পেয়েছেন - টিআইওবিইর ক্ষেত্রে, +"<language> programming"জনপ্রিয় অনুসন্ধান ইঞ্জিনগুলিতে হিটের সংখ্যা । একটি ব্লগ পোস্ট "কেন আর কেউ সি প্রোগ্রামিং করে না" এই সূচীতে সিটির জন্য গণনা করা হয়। হেক, গুগল এটি গ্রহণ করার সাথে সাথে এই প্রশ্নটি করতে পারে।

40
ওওপির বয়স? এটি একটি সুন্দর সাহসী বিবৃতি।
মাহমুদ হোসাম

57
আপনার ধারণা আছে যে ওওপি একটি সিলভার বুলেট, আপনার এটি দ্রুত হারাতে হবে, ওওপি সম্পর্কে বিশেষ বা "ভাল" কিছুই নেই, এটি বহু কোড সংস্থার কৌশলগুলির মধ্যে একটি মাত্র।
রায়নস

23
@ ডেড এমজি: পট, কেটল মিলান। টিআইওবি'র ডেটা নির্ভরযোগ্য নাও হতে পারে, তবে আপনার টাকের দৃ as়তার দাবি যে "এটি জনপ্রিয় নয়" এর কোনও উত্স বা উদ্ধৃতি নেই। আপনি যদি প্রশ্নের পিছনে অনুমানকে চ্যালেঞ্জ জানাতে চলেছেন তবে কমপক্ষে এটির ব্যাক আপ করার জন্য কিছু প্রমাণ সরবরাহ করুন।
ড্যানিয়েল প্রাইডেন

উত্তর:


143

কয়েকটি কারণ যা অবদান রাখে:

  • সি সর্বব্যাপী। প্ল্যাটফর্ম যাই হোক না কেন, সি সম্ভবত উপলব্ধ।
  • সি বহনযোগ্য। পরিষ্কার সি এর একটি অংশ লিখুন এবং এটি অন্যান্য প্ল্যাটফর্মগুলিতে ন্যূনতম সংশোধনগুলির সাথে সংকলন করে - কখনও কখনও এটি বাক্সের বাইরেও কাজ করে।
  • সি কিছুক্ষন ধরে ছিল। যখন ইউএনআইএক্স বিশ্বকে জয় করেছিল, সে দিনগুলিতে সি (পছন্দসই ইউনিক্স প্রোগ্রামিং ভাষা) তার বিশ্ব আধিপত্যে অংশ নিয়েছিল এবং প্রোগ্রামিং জগতের লিঙ্গুয়া ফ্রেঞ্চে পরিণত হয়েছিল f যে কোনও গুরুতর প্রোগ্রামারকে কমপক্ষে সি এর কিছুটা অংশ বোঝার আশা করা যায় ; অন্যান্য বেশিরভাগ ভাষা সম্পর্কে একই কথা বলা যায় না।
  • সি এখনও ইউনিক্স এবং ইউএনআইএক্স-স্বাদযুক্ত সিস্টেমগুলির জন্য ডিফল্ট ভাষা। আপনি যদি কোনও গ্রন্থাগার ওপেন-সোর্স জমিতে সফল হতে চান তবে সি ব্যবহার না করার জন্য আপনার যথেষ্ট কারণ প্রয়োজন This এটি আংশিক traditionতিহ্যের কারণে, তবে আরও বেশি কারণ সি আপনিই কোনও ভাষা যা আপনাকে নিরাপদে কোনও ইউনিক্স-এর মতো সমর্থনযোগ্য বলে ধরে নিতে পারেন পদ্ধতি. আপনার লাইব্রেরি সি তে লেখার অর্থ আপনি নির্ভরতা হ্রাস করতে পারেন।
  • সি সহজ। এটিতে অত্যাধুনিক ওওপি বা কার্যকরী ভাষার প্রকাশের অভাব রয়েছে তবে এর সরলতার অর্থ এটি দ্রুত বাছাই করা যায়।
  • সি বহুমুখী। এটি এম্বেডড সিস্টেম, ডিভাইস ড্রাইভার, ওএস কার্নেল, ছোট কমান্ড-লাইন ইউটিলিটিস, বড় ডেস্কটপ অ্যাপ্লিকেশন, ডিবিএমএস, অন্যান্য প্রোগ্রামিং ল্যাঙ্গুয়েজ বাস্তবায়ন এবং আপনি ভাবতে পারেন এমন আরও অনেক কিছুর জন্য উপযুক্ত।
  • সি দ্রুত। বেশিরভাগ সি বাস্তবায়ন সরাসরি মেশিন কোডে সংকলন করে এবং মেশিন স্তরে যা ঘটে তার উপর প্রোগ্রামারটির সম্পূর্ণ ক্ষমতা থাকে। কোনও দোভাষী নেই, কোনও জেআইটি সংকলক নেই, ভিএম বা রানটাইম নেই - কেবল কোড, সংকলক, একটি লিঙ্কার এবং খালি ধাতু।
  • সি 'ফ্রি' (বিয়ার এবং স্পিচ অর্থে উভয় ক্ষেত্রে)। এমন কোনও একক সংস্থা নেই যা মানকটির মালিকানাধীন এবং নিয়ন্ত্রণ করে, বেছে নেওয়ার জন্য বেশ কয়েকটি বাস্তবায়ন রয়েছে, সি ব্যবহারের জন্য কোনও কপিরাইট, পেটেন্টিং বা ট্রেডমার্ক সম্পর্কিত সমস্যা নেই এবং সেরা কিছু বাস্তবায়ন ওপেন সোর্স।
  • সি এর প্রচুর গতি চলছে। ভাষা কয়েক দশক ধরে জনপ্রিয়, সুতরাং ভাষা সমর্থন করার জন্য প্রচুর পরিমাণে অ্যাপ্লিকেশন, গ্রন্থাগার, সরঞ্জাম এবং সর্বোপরি সম্প্রদায় রয়েছে।
  • সি পরিপক্ক। সর্বশেষ মান যা বড় পরিবর্তনগুলি প্রবর্তন করে তা হ'ল সি 99 এবং এটি বেশিরভাগ পিছনের সাথে সামঞ্জস্যপূর্ণ পূর্ববর্তী মানগুলির সাথে। নতুন ভাষা (যেমন, পাইথন) এর মতো নয়, আপনাকে শীঘ্রই যে কোনও সময় পরিবর্তনগুলি ভাঙ্গার বিষয়ে চিন্তা করতে হবে না।
  • সি সামঞ্জস্যপূর্ণ। বেশিরভাগ ভাষাগুলিতে সি এর সাথে কথা বলার বাইন্ডিং রয়েছে এর অর্থ একটি সাধারণ স্ট্যান্ডার্ড কলিং কনভেনশন ব্যবহার করে সি-তে একটি গ্রন্থাগার বিকাশ করতে পারে এবং আত্মবিশ্বাস বোধ করে যে প্রায় কোনও অন্য ভাষা সেই লাইব্রেরির সাথে লিঙ্ক করতে পারে। বিস্তৃত ব্যবহারের জন্য কয়েকটি জনপ্রিয় ভাষার নামকরণ করতে: সি #, জাভা, পার্ল, পাইথন, পিএইচপি সব কিছুই খুব বেশি ঝামেলা ছাড়াই সি লাইব্রেরির সাথে লিঙ্ক করতে পারে।
  • সি শক্তিশালী: ভাষাটি যদি কিছু না করতে পারে তবে সমস্ত জনপ্রিয় সংকলক এসেম্বলারের কোড এম্বেড করার অনুমতি দেয় যা হার্ডওয়্যার যা কিছু করতে পারে তা করতে পারে। সামঞ্জস্যতা সম্পর্কে উপরোক্ত বিষয়টির সাথে ট্রান্সজিটিভ মিলিত, এর অর্থ সি উচ্চ স্তরের ভাষা এবং সমাবেশের "বেয়ার ধাতু" এর মধ্যে যোগাযোগ হিসাবে কাজ করতে পারে।

9
আমি মনে করি আপনার সমস্ত যুক্তি সঠিক নয়। 1) সি সর্বব্যাপী। সি ++ সি এর মতো সর্বব্যাপী, যেহেতু সি ++ থেকে সি সংকলক রয়েছে। 2) সি বহনযোগ্য। সি ++ এর সাথে একই। 3)। সি কিছুক্ষন ধরে ছিল। সি ++ এর সাথে একই। 4)। সি বহুমুখী। সি ++ এর সাথে একই। 5) সি দ্রুত। সি ++ এর সাথে একই। 6)। সি 'ফ্রি'। সি ++ এর সাথে একই। 7)। সি এর প্রচুর গতি চলছে। আবার সি ++ এর সাথে একই। 8) সি পরিপক্ক হয়। সি ++ এর সাথে একই। সুতরাং আপনি আসলে প্রশ্নের উত্তর না।
কনস্ট্যান্টিন সোলোমাটোভ

19
সি 11 সর্বশেষতম মান, সি 99 নয়। সবাই'৯৮ ব্যবহার করে বলে এটি সত্যই গুরুত্বপূর্ণ নয়।
পাব্বি

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

37
@ কনস্ট্যান্টিনসোলোমাটোভ - এই সত্য যে সি কম্পাইলার ধরণের সি ++ প্রয়োজন তা প্রমাণ করে যে সি সর্বব্যাপী one
অবধি

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

88

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

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

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

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

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

সুতরাং আসুন যে সমস্ত পিছনে টানা যাক সফ্টওয়্যার। প্রোগ্রামিংয়ের ক্ষেত্রে বাস্তব বিশ্বে অবজেক্টগুলির কী বলা উচিত?

ওয়েল, এক জিনিস জন্য এটা মানে যে কি সংজ্ঞায়িত সফ্টওয়্যার একটি "ভালো" বস্তু সত্যিই হোক বা না হোক আপনি যে ডাটাটি নির্দ্ধিধায় হ্যান্ডলিং করছে ধরনের ধারণা সমর্থন হওয়া উচিত সময়ের স্বীকৃত অধ্যবসায়

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

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

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

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

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

অন্যান্য অঞ্চল যেখানে ওওপি উদ্বেগজনক হতে পারে তা পুরানো অবজেক্ট ধারণাগুলিতে খুব বেশি ফোকাস করছে ।

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

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


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

@ রায়নস, $ ম্যাটেক্স, আপনার দু'জনের জন্য আপনার সদয় কথার জন্য ধন্যবাদ, এবং আমি আনন্দিত যে আপনি এটি আকর্ষণীয় পেয়েছেন!
টেরি বলিঞ্জার

1
এই গভীর চিন্তাধারার, দুর্দান্ত উত্তরটির পক্ষে ভোট দিতে সক্ষম হওয়ার জন্য সাইটে সাইন আপ করেছেন। =)
শাওরোজকো

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

2
এই উত্তরটি আমাদের এখনও এসকিউএল কেন প্রয়োজন তার উত্তর!
এইচএলজিইএম

25

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

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

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


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

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

@ কনস্ট্যান্টিন সোলোমাটোভ: প্রথমত, এটি অত্যন্ত বিষয়মূলক। দ্বিতীয়ত, আপনি প্রয়োজনে সিতে আবর্জনা সংগ্রহ যুক্ত করতে পারেন।
back2dos

আপনি যদি জাভা এবং সি ++ এর মধ্যে সমঝোতা চান তবে ওবজ-সি চেষ্টা করুন :) অবশ্যই প্রতিটি সি / সি ++ প্রোগ্রামারের চেষ্টা করা উচিত।
সুলতান

21

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

মূলত এটি এমন একটি ভূমিকা পূরণ করতে সি তে সিদ্ধ হয় যা সি ++ এর পক্ষে অনুপযুক্ত।


2
মিমি .. একটি সি, টমেটো এবং পনির রোল!
ডেড এমএমজি

3
ঠিক আছে, সি ++ এর এবিআই আছে। এটি ঠিক যে সি এবিআই শিলা হিসাবে শক্ত যেখানে সি ++ এক সময় প্রায়শই পরিবর্তিত হয়। প্লাস প্রচুর সি ++ ব্যবহারের অ্যাপ্লিকেশনটিতে টেমপ্লেটগুলি সংকলিত হয়, সুতরাং আপনি এটি আপডেট করতে পারবেন না। সমস্ত কার্যকারিতা যখন ফাংশন কলগুলির আড়ালে থাকে তখন গ্রন্থাগারটি ঠিক করা এবং অ্যাপ্লিকেশনটিকে কাজ করে রাখা সম্ভব হয়।
জানু হুডেক

12

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

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

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


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

1
এমন কোনও সরঞ্জামচেন যা এতে অব্যবহৃত ফাংশনগুলিকে সরিয়ে দেয় না stringযদি আপনি সিআরটিকে স্থিতির সাথে সংযুক্ত করেন তবে এটি কোনও লবণের মতো মূল্য নয় এমন একটি সরঞ্জামচেন।
বিলি ওনিল

10
নির্বোধ বিষয় হ'ল, আমি এমন একটি লাইব্রেরি নিয়ে কাজ করি যেখানে যথেষ্টstd::string পরিশীলিত হয় না । পারফরম্যান্স এবং ক্ষমতা উভয় ক্ষেত্রে আপনি যদি স্ট্রিং সম্পর্কে সত্যই গুরুতর হন তবে আপনি সি ব্যবহার করে ফিরে যাচ্ছেন তা char*নিশ্চিত হওয়ার জন্য প্লেইন ওল্ডগুলি ব্যবহার না করেও আপনি নিজেই আবার এটি করছেন । (স্ট্রিংগুলি আশ্চর্যজনকভাবে জটিল, এমনকি যদি আপনি এগুলি জটিল হওয়ার প্রত্যাশা করেন
তবেও

1
পছন্দ করুন ঠিক এই কারণেই সি স্ট্যান্ডার্ডটি সবসময় স্ট্রিং এবং হ্যাশ টেবিলের মতো জিনিসগুলি পূর্বেই রেখেছিল, অনেক সময় তাদের অনুপস্থিতি আমাকে বিরক্ত করে তোলে।
ইঞ্জিনিয়ার

@ আর্কেইনজাইনার: সি-তে মৌলিক অনুপস্থিত ডেটা টাইপ হ'ল একটি "টি [[]" টাইপ যা একটি টি * এবং আকার_ টি একত্রিত করবে, অ্যারের মতো সূচিযুক্ত হতে পারে, একটি টি * তে পচে যেতে পারে এবং এটিকে স্পষ্টত রূপান্তরিত হতে পারে যে কোনও টি [এন] টাইপ করুন (আকারটি স্বয়ংক্রিয়ভাবে সংকলক দ্বারা সরবরাহ করা হচ্ছে)। এই জাতীয় ধরণের অনেক ক্ষেত্রে স্বয়ংক্রিয় গণ্ডিগুলি পরীক্ষা করার অনুমতি দিতে পারে যেখানে এটি অন্যথায় অসম্ভব, যখন বিভিন্ন ধরণের কোডকে অনেকগুলি ক্লিনার এবং আরও সুগম করে তোলে।
সুপারক্যাট

11

এমবেডেড সিস্টেম এবং ড্রাইভারগুলি সাধারণত সি তে প্রোগ্রাম করা হয় As এছাড়াও অনেকগুলি উত্তরাধিকার সি সিস্টেম রয়েছে যা এখনও রক্ষণাবেক্ষণ এবং প্রসারিত।


2
হ্যাঁ, সি সব কিছু চালায় runs এবং ভাষা শিখতে এটি বেশ সহজ (সি ++ এর তুলনায়)।
বেনিয়ামিনবি

10

বায়ুসংক্রান্ত হাতুড়ি (বায়ু হাতুড়ি) এর যুগে ম্যানুয়াল হাতুড়ি জনপ্রিয় করে তোলে একই জিনিস: সি নির্দিষ্ট কিছু কাজের জন্য এখনও সঠিক হাতিয়ার।


6

সরলতা, ধারাবাহিকতা এবং নির্ভুলতা।

এটি সহজ - আপনার কোনও জটিল বিকাশের পরিবেশ, বিস্তৃত গ্রন্থাগার বা ভার্চুয়াল মেশিনের দরকার নেই।

এটি সামঞ্জস্যপূর্ণ - 10 বছর আগে রচিত বেশিরভাগ সি আজ সংকলন করতে পারে।

যথার্থতা - এটি আপনাকে মেশিনের স্তরে নামতে দেয়, প্রয়োজন অনুসারে মেমরির অবস্থানগুলি জেনে। এটি পারফরম্যান্স এবং এম্বেডেড হার্ডওয়্যারগুলির জন্য দুর্দান্ত।

এটি সব কিছুর জন্য নয়, কিছুটা হলেও এটি একটি দরকারী সরঞ্জাম।


5
আরও ভাল, 10 বছর আগে সংকলিত কোডটি আজ কার্যকর করতে পারে এমন একটি উপযুক্ত সুযোগ রয়েছে।
ডোনাল ফেলো

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

6

আমি অন্য উত্তর থেকে দুটি পয়েন্ট উদ্ধৃত করি, কারণ তারা সময়ে সময়ে আমি এখনও সি ব্যবহার করার ঠিক কারণগুলি ক্যাপচার করি (যদিও এটি আমার পছন্দের মূল ভাষা নয়):

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

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

সি ++ এর সাথে আমার একটি আলাদা অভিজ্ঞতা ছিল। আমি এটি 1995 সালের কাছাকাছি শিখেছি এবং এর অর্থ হ'ল অপরিহার্য থেকে ওওপিতে একটি বড় দৃষ্টান্তের সুইচ। গ্রেট! আমি এটি 1999 পর্যন্ত বেশ কয়েকটি প্রকল্পের জন্য ব্যবহার করেছি few কয়েক বছরের জন্য আমি সি ++ ব্যবহার করিনি এবং যখন আমি এটি পুনরায় তুলে নিয়েছি (২০০৮) আমি ইতিমধ্যে ভাষাতে প্রচুর নতুন বৈশিষ্ট্য পেয়েছি এবং আরও পরিকল্পিতভাবে (ইতিমধ্যে সি ++ তে প্রবর্তিত হয়েছে) 11)। আমি আবার ভাষা শিখতে হবে অনুভূতি পেয়েছিলাম।

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

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

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


4

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


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

1

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

  • সি ভাষা সি ++ এর চেয়ে অনেক সহজ। আমি এমন কোনও সংস্থা জানি না যা তাদের কোডিং কনভেনশনে সম্পূর্ণ সি ++ স্ট্যান্ডার্ড ব্যবহার করে। গুগলের সি ++ কোড স্টাইলটি উদাহরণ হিসাবে দেখুন : http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml
  • সংকলন করতে সি অনেক দ্রুত। নির্মাণগুলি সঙ্কলন করতে অভাবের জন্য ধন্যবাদ।

এই লিঙ্কটি নষ্ট হয়ে গেছে।
ar2015

0

কিছুই নেই। টিআইওবি একটি মূল্যহীন সূচক। যদি আপনি প্রকৃতপক্ষে তাদের পরিমাপটি দেখুন তবে এটি একটি পরম অনুমান। সর্বোত্তম।


10
টিআইওবি নিরর্থক হওয়ার অর্থ এই নয় যে সি জনপ্রিয় নয়
রায়নোস

এটি অবশ্যই ওপি-তে উপস্থাপন করা যুক্তিকে পরাস্ত করে- যে সি জনপ্রিয় এবং তাই এর অবশ্যই কিছুটা ব্যবহার থাকতে হবে।
ডেড এমজি

2
সি এর জনপ্রিয়তার আরও ভাল পরিমাপ হ'ল প্রায় প্রতিটি প্ল্যাটফর্মের একটি সি সংকলক থাকে
রায়নোস

@ রায়নোস: এটি মোটেও পরিমাপ নয়। কেবলমাত্র এর অর্থ এটি কার্যকর করা সহজ। এটি কতজন লোক ব্যবহার করে, বা কেন তা নিয়ে এটি কিছুই বলে না।
ডেড এমএমজি

2
পুরোপুরি নয়, আমি আনন্দের সাথে বিরোধী ভিউ পয়েন্টগুলি গ্রহণ করি। আপনার এক লাইনের উত্তরটিতে সামান্য চিন্তাভাবনা প্রয়োগ হয়েছে বলে মনে হচ্ছে এবং আপনি নিজের প্রতিক্রিয়া সহ বিতর্কিত এবং অ-সং-গঠনমূলক।
mattnz

0

প্রচুর লিগ্যাসি সফ্টওয়্যার

অনেকগুলি সংস্থার তাত্ক্ষণিকভাবে তাদের সমস্ত কোড সি ++ বা অনুরূপে পরিবর্তন করতে পারে না।

অনেক সংস্থার তাদের কোড পরিবর্তন করার সামর্থ নেই।

অনেক সংস্থার তাদের কোড পরিবর্তন করার সামর্থ্য রয়েছে, কিন্তু যত্ন নেই, বা "সস্তা"।

অনেক সংস্থার স্থানান্তর প্রক্রিয়া চলছে, কিন্তু, এখনও শেষ হয়নি।

লুকানো অবজেক্ট ওরিয়েন্টেশন

(অবজেক্ট ওরিয়েন্টেড) সি উত্স কোডটি অবজেক্ট ওরিয়েন্টেড সি সোর্স কোড হিসাবে নকশাকৃত, অ্যাপ্লিকেশনগুলি যা অবজেক্ট ওরিয়েন্টেশন দিয়ে মডেল করা হয় এবং "খাঁটি সি", বা "সি ++" বা অন্যান্য ওও প্রগ্রে অনুবাদ করে এমন সরঞ্জামগুলি দিয়ে কোডড করা হয়। সি মধ্যে ল্যাং

শুনেছি কিছু ভিডিও গেমগুলি সেভাবেই হয়। কিছু ক্রস প্ল্যাটফর্ম সরঞ্জাম এবং জিএনকে (জিওজেক্ট, জিলেবারি) জিএনওম লিনাক্স ওএস বিতরণের জন্য ভিজ্যুয়াল ইন্টারফেস লাইব্রেরি।


3
এই উত্তরের উত্তর অর্ধেকটি deobfuscated করা প্রয়োজন।
aramis

@aramis। দ্বিতীয় অংশটির অর্থ: অনেকগুলি কোড সরাসরি "সি" তে দান করা হয়েছে বলে মনে হয়, তবে, আসলে অন্য ভাষায়, এবং "সি" তে
ট্রেসলেট হয়েছে

0

আমি দেখেছি যে উত্তরদাতাদের মধ্যে কয়েকটি সি কেন সর্বাধিক জনপ্রিয়, এটি দীর্ঘকাল ধরে রয়েছে, এটি বেশিরভাগ প্ল্যাটফর্মে, বিনামূল্যে ইত্যাদি উপলভ্য

তবে অন্যান্য ভাষা সম্পর্কে একই কথা বলা যেতে পারে, উদাহরণস্বরূপ ফ্রি পাস্কাল - এটি নিখরচায় এবং প্রায় সব প্ল্যাটফর্মের জন্যই সমর্থিত।

পাস্কাল আবিষ্কার হয়েছিল ১৯ 1970০ সালের আশেপাশে, সি আবিষ্কার হয়েছিলো ১৯2২ এর আশেপাশে, সুতরাং আমি মনে করি পাসকাল প্রায় দীর্ঘ সময় সি এর কাছাকাছি ছিল।

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

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

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

খুব বড় অ্যাপ্লিকেশনগুলি সি / সি ++ এর চেয়ে অবজেক্ট পাস্কল দিয়ে পরিচালনা করা সহজ।

একটি প্রোগ্রামিং ভাষা থাকার কথা যা '70 এর পর থেকে কিছু হয়েছে এবং প্রতি 5 বা 10 বছরে পরিবর্তিত ভাষাগুলি পছন্দ করে না। সময় হিসাবে প্রযুক্তি অগ্রগতি এবং প্রোগ্রামিং পদ্ধতি উন্নত হয়। যদি কয়েকটি ভাষা প্রতি কয়েক বছর পরপর পরিবর্তিত হয় তবে সম্ভবত এটির ডিজাইনার এটি ভালভাবে ভাবেননি। তবে ১৯ 1970০ থেকে ২০১২ প্রায় অর্ধ শতাব্দী, সফটওয়্যার বিকাশে ব্যবহৃত অগ্রগতি অন্তর্ভুক্ত করার জন্য সেই সময়ে কোনও ভাষায় পরিবর্তন করা ঠিক আছে।

সি নিজেই বেশ কয়েকবার সংশোধিত হয়েছে। সুতরাং, অন্যান্য ভাষাগুলি সেই দৃষ্টিকোণ থেকে এটির চেয়ে ভাল নয়।


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

0

কারণ সি এর বিশাল ব্যবহারকারীর বেস রয়েছে। হ্যাঁ এটি একটি ক্যাচ -২২ এর কিছুটা হলেও আমি যখন স্ট্যাক ওভারফ্লোতে সি ওভার সম্পর্কে কোনও প্রশ্ন করি তখন আমি প্রায় তত্ক্ষণাত উত্তর পেয়ে যাই get পাইথন সম্পর্কে একই প্রশ্নের উত্তর পেতে কয়েক ঘন্টা সময় নিতে পারে।

সি ++ এর প্রতি শ্রদ্ধা জানাতে এটি আইএমও আরও জটিল। তদ্ব্যতীত, 10 বছর ধরে ওওপি চেষ্টা করার পরে, আমি এটি সর্বদা দরকারী নয় বলে মনে করি এবং প্রায়শই এর পরিবর্তে পদ্ধতিগত প্রোগ্রামিং ব্যবহার করা সহজ।


আপনি কি সি # বা জাভার জন্য এসও প্রশ্ন জিজ্ঞাসার তুলনা করেছেন?
gnat

@ জাগান এটি সি ভি পাইথনের একটি বিচ্ছিন্ন উদাহরণ (যা পথে আরও প্রশ্ন জিজ্ঞাসা করা হয়েছে!)। সি # এর সাথে আমার কোনও অভিজ্ঞতা নেই (আপনি কি আমার # সি বা জাভের জন্য এসও প্রশ্ন জিজ্ঞাসা করবেন না তা লক্ষ্য করেছেন ?)
puk

হেই, আমি দেখতে পাই স্ট্যাক ওভারফ্লোতে থাকা # পিয়ন সম্প্রদায়টি প্রায় সর্বদা অতি দ্রুত। যদিও আমি বিস্মিত হব যদি সি সম্প্রদায় উত্তরের গতির জন্য জাভাস্ক্রিপ্ট সম্প্রদায়ের তুলনা করে। (বেশিরভাগ পরিমাণের ভলিউমের কারণে)
থারস্মমনার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.