ওওপি বনাম ফাংশনাল প্রোগ্রামিং বনাম কার্যবিধ [বন্ধ]


237

এই প্রোগ্রামিং দৃষ্টান্তগুলির মধ্যে পার্থক্যগুলি কী কী, এবং এগুলি নির্দিষ্ট সমস্যার সাথে আরও উপযুক্ত বা কোনও ব্যবহারের ক্ষেত্রে অন্যের তুলনায় একটির পক্ষে কি উপযুক্ত?

স্থাপত্যের উদাহরণগুলি প্রশংসা!


এটি সম্পূর্ণ উত্তর নয়, তবে আমি এখানে "ফাংশনাল" কীভাবে "ওও" স্টাইলকে (F # এর প্রেক্ষিতে) প্রভাবিত / বিপরীত করে তা সম্পর্কে কিছুটা লিখি: lorgonblog.spaces.live.com/blog/cns!701679AD17B6D310!511। প্রবেশ
ব্রায়ান

আপনি এই পড়া বিবেচনা করতে পারেন ! কোন পিঁপড়াটি কখন ব্যবহার করতে হবে তার অনেকগুলি উদাহরণ রয়েছে মূল পার্থক্য, উপকার / বিবেচনা ইত্যাদি
নিকিতা ইগনাটোভ


1
আরও দেখুন: stackoverflow.com/questions/1530868
dreftymac

চাচা বব এ সম্পর্কে টুইট করেছেন । এবং এখানেও
jaco0646

উত্তর:


129

এগুলির সমস্ত নিজস্ব উপায়ে ভাল - তারা একই সমস্যাগুলির জন্য কেবল ভিন্ন পদ্ধতি।

একটি সম্পূর্ণরূপে পদ্ধতিগত স্টাইলে, ডেটা এটিতে কাজ করে এমন ফাংশনগুলি থেকে অত্যন্ত ডিউপলড হয়ে থাকে।

কোনও অবজেক্ট ওরিয়েন্টেড স্টাইলে ডেটা তার সাথে ফাংশনগুলির সংকলন বহন করে।

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

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

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

আপনি যেটি ব্যবহার করেন তা কেবল আপনার প্রকল্প এবং আপনার ভাষা সমর্থন করে এমন বিমূর্ততাগুলির জন্য আরও বেশি অর্থবোধ করে।


5
আপনি যা বলেছেন, আপনি যা লিখেছেন তা প্রতিফলিত হয় না বলে মনে হয়। আপনি বলছেন যে তাদের কাছে "ভাল এবং স্বীকৃতি" নেই, এবং তারপরে বলুন যে তারা কীভাবে পৃথক পন্থা। কেন যে কোনও অবস্থার উপর ভিত্তি করে কেউ অন্যের চেয়ে এক পদ্ধতির পছন্দ করবে? শক্তি এবং দুর্বলতা, উপকারিতা এবং কনস, আপনি যা কিছু বলুন তারা উপস্থিত থাকে! আমি বলছি না যে একটি অন্তর্নিহিত আরও ভাল, এবং আপনিও করেন নি। আমি বিশ্বাস করি এটিই আপনি সত্যই বলতে চেয়েছিলেন। আপনি যদি না সত্যই বিশ্বাস করেন যে কোনও নির্বাচিত পদ্ধতির ইতিবাচক এবং negativeণাত্মক নেই, অন্য পদ্ধতির তুলনায়।
জেএম বেকার 15 ই

1
@ টেকজিলা: আমি সম্মত হই যে আমার শব্দটি দুর্বল ছিল, তবে আমার অর্থ হ'ল আপনি যে বৈশিষ্ট্যগুলি উল্লেখ করতে এবং বলতে পারেন যে ভাষাটি X এর চেয়ে বেশি ভাল তা নয় যে ভাষা এক্সটি অ্যালগরিদম ইউ এবং ভাষা লেখার পক্ষে উপযুক্ত? Y অ্যালগরিদম ভি লেখার পক্ষে আরও উপযুক্ত হতে পারে, তবে উভয়ই উভয় ভাষায়ই সহজেই প্রয়োগ করা যেতে পারে।
গ্রেফ্যাড

2
পদ্ধতিগত এবং কার্যকরী মধ্যে পার্থক্য আমার কাছে পরিষ্কার নয়। আমি কলেজে স্কিম / র‌্যাকেট শিখছি, তবে আমি সত্যিই এর মধ্যে এবং প্রসেসিয়াল সি বা পিএইচপি-র মধ্যে বড় পার্থক্য দেখতে পাচ্ছি না, আপনি কিছু উদাহরণ দিতে পারেন?
লিওনেল

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

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

25

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

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

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

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


5
পাইথন, রুবি, ... সি বা এলআইএসপি এর মতো "স্ট্যান্ডার্ড" লাইব্রেরি নেই, কারণ সেগুলি একক প্রয়োগের ভাষা। পাইথন যা গুয়েডো বলে, তার কোনও মান নেই standard আজকাল যে কোনও নির্দিষ্ট সি বা এলআইএসপি (বা যাই হোক না কেন) বাস্তবায়নের সাথে স্ট্যান্ডার্ডের চেয়ে বড় লাইব্রেরি আসে।
ড্যান অ্যান্ড্রিটা

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

1
ইরাকমেক্সেলের সম্পর্কিত রেন্ট: ব্লগ.ইর্কামেক্সেল ডটকম
২০১/0

20

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

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

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

পাইথনে, একটি ফাংশন প্রথম শ্রেণির নাগরিক, তবে এতে নির্বিচারে বিবৃতি থাকতে পারে। সুতরাং আপনার কাছে এমন একটি ফাংশন থাকতে পারে যাতে পদ্ধতিগত কোড থাকে তবে আপনি কার্যকরী ভাষার মতোই এটি পাস করতে পারেন।

একইভাবে ওওপি-র জন্য যায়। জাভার মতো ভাষা আপনাকে কোনও শ্রেণীর বাইরে পদ্ধতি / ফাংশন লিখতে দেয় না। চারপাশে কোনও ফাংশনটি পাস করার একমাত্র উপায় হ'ল এটিকে এমন কোনও বস্তুতে মুড়িয়ে ফেলা যা সেই ফাংশনটি কার্যকর করে এবং তারপরে সেই বস্তুকে চারপাশে পাস করে pass

পাইথনে, আপনার এই বাধা নেই।


আমি বিশ্বাস করি আপনার অর্থ "এই দৃষ্টান্তগুলি পারস্পরিক একচেটিয়া হওয়া উচিত নয়"। তাদের মধ্যে 3 টি আদর্শিক যে আদর্শভাবে আপনি একটি, 2 বা 3 টি একটি একক প্রোগ্রামে (যদি আপনার ভাষা এটির অনুমতি দেয়) ব্যবহার করতে পারে।
জো পাইনেদা

হ্যাঁ, আমি অনুমান করি যে পারস্পরিক একচেটিয়া জন্য এটি আরও ভাল শব্দ! ধন্যবাদ
18:50

14

জিইউআইয়ের জন্য আমি বলব যে অবজেক্ট-ওরিয়েন্টেড প্যারাডিজমাটি খুব উপযুক্ত। উইন্ডোটি একটি অবজেক্ট, পাঠ্যবাক্সগুলি হ'ল অবজেক্ট এবং ওকে-বাটনটিও একটি। অন্যদিকে স্ট্রিং প্রসেসিংয়ের মতো স্ট্যান্ড প্রসেসিং অনেক কম ওভারহেড দিয়ে সম্পন্ন করা যায় এবং তাই সহজ পদ্ধতিগত প্যারাডিজমা দিয়ে আরও সোজা।

আমি মনে করি না এটি ভাষাও প্রশ্ন নয়। আপনি প্রায় কোনও জনপ্রিয় ভাষায় কার্যকরী, প্রক্রিয়াভিত্তিক বা অবজেক্ট-ভিত্তিক লিখতে পারেন, যদিও এটি কারওর জন্য কিছু অতিরিক্ত প্রচেষ্টা হতে পারে।


17
"অবজেক্ট = জিইউআই উইজেট" এই ভ্রান্ত ধারণাটি স্থির করার জন্য লোভিত করার প্রলোভনযুক্ত, তবে আমি বিরত থাকব। ওওপি "উইন্ডো" এবং "বোতাম" এর মতো দৃশ্যমান ইন্টারফেস উপাদানগুলির মতো "ইউজার অ্যাকাউন্টাউন্ট" বা "পেন্ডিংসেল" এর মতো বিমূর্ত ধারণাগুলি উপস্থাপনের জন্য ঠিক পাশাপাশি কাজ করে।
ডেভ শেরোহমান

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

6
-1। জিওআই এর সাথে ওওপি-র কোনও সম্পর্ক নেই। আদর্শভাবে, গুইস ডিজাইনের সর্বোত্তম পদ্ধতি হ'ল একটি বাহ্যিক পাঠ্য ফাইল (যেমন এইচটিএমএল) ব্যবহার করা। স্ট্রিং-প্রসেসিংয়ের মতো জিনিসগুলি বস্তুগুলির সাথে আসলে আরও ভাল much (সি তে স্ট্রিং সম্পর্কে চিন্তা করুন) !!
হেসেন

1
আমি জানি না, সম্ভবত আমি এটি উপলব্ধি করার জন্য কেবলমাত্র প্রোগ্রামিংয়ের অভ্যস্ত। আপনি কীভাবে কিছু ইন্টারেক্টিভ স্টাফ করবেন যেমন পাঠ্যবক্স এক্স এর মান পরিবর্তন করার সাথে যখন পাঠ্যবক্স ওয়াইয়ের মানগুলি অবজেক্টগুলি ব্যবহার না করে পরিবর্তিত করা হয়েছে? ঠিক আছে, আপনি কেবল সমস্ত কিছুর জন্য বিশ্বব্যাপী vars ব্যবহার করতে পারেন ...
panschk

1
স্ট্রিং প্রসেসিং দুর্দান্তভাবে পার্লে সম্পন্ন হয় (জাভা, সি ++ বা সি # এর চেয়ে ১০০ গুণ ভাল) তবুও ভাষার স্ট্রিং কার্যকারিতা একেবারে অবজেক্ট ওরিয়েন্টেড নয়। সি এর স্ট্রিং হ্যান্ডলিংটি ভয়ানক ছিল, কিন্তু তখন সি একমাত্র প্রক্রিয়াগত ভাষা নয় (সেরাও নয়)।
জো পিনেদা

6

আপনার প্রশ্নের উত্তর দেওয়ার জন্য আমাদের দুটি উপাদান প্রয়োজন:

  1. বিভিন্ন আর্কিটেকচার শৈলী / নিদর্শনগুলির বৈশিষ্ট্য বোঝা।
  2. বিভিন্ন প্রোগ্রামিং প্যারাডিমগুলির বৈশিষ্ট্যগুলি বোঝা।

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

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

আমি মনে করি আপনার প্রতিটি দৃষ্টান্তের ইতিহাস পড়ার চেষ্টা করা উচিত এবং লোকেরা কেন এটি তৈরি করে এবং আপনি সেগুলি সহজেই বুঝতে পারবেন see

উভয় বোঝার পরে, আপনি আর্কিটেকচার শৈলী / নিদর্শনগুলির আইটেমগুলিকে প্রোগ্রামিং প্যারাডিমগুলির সাথে সংযুক্ত করতে পারেন।


2

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


1

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

ক) আপনি একটি চৌকস সিস্টেম তৈরি করেন যা একটি নির্দিষ্ট পরিমাণে উত্তরাধিকার অনুকরণ করবে। এটা হতে পারে!

i) আপনি একটি হুক সিস্টেম ব্যবহার করতে পারেন , যা প্রত্যাশা করে যে প্যারেন্ট পি এর প্রতিটি শিশু সি ফাংশন এফের জন্য একটি নির্দিষ্ট ওভাররাইড করবে You

ii) বাচ্চাদের পিতামাতায় কাস্ট করতে আপনি স্ট্রাক্ট মেমরি প্রান্তিককরণ বৈশিষ্ট্যটি ব্যবহার করতে পারেন ।

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

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

আমি পদ্ধতির দিকে ঝোঁক খ। আমি অ্যাপ্রোচ এ ব্যবহার করে একটি সম্ভাব্য সমাধান লিখেছি এবং আমি সত্যবাদী হব, এই কোডটি ব্যবহার করে এটি খুব অপ্রাকৃত অনুভূত হয়েছিল।


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

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

তুমি জান. আমার মন্তব্যটি এই পোস্টে মোটামুটি কী প্রাসঙ্গিকতা তা দেখতে পাচ্ছি না। : পি
ক্রিস বেক

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