প্রোগ্রামিং প্যারাডাইম: সংশোধিত সংস্করণের মধ্যে পার্থক্য

বিষয়বস্তু বিয়োগ হয়েছে বিষয়বস্তু যোগ হয়েছে
Sammay Sarkar (আলোচনা | অবদান)
Sammay Sarkar (আলোচনা | অবদান)
৮০ নং লাইন:
 
=== অবজেক্ট-অরিয়েন্টেড প্রোগ্রামিং ===
{{Main|অবজেক্ট-অরিয়েন্টেড প্রোগ্রামিং}}
{{Main|Object-oriented programming}}
<!--
Following the widespread use of procedural languages, [[object-oriented programming]] (OOP) languages were created, such as [[Simula]], [[Smalltalk]], [[C++]], [[C Sharp (programming language)|C#]], [[Eiffel (programming language)|Eiffel]], [[PHP]], and [[Java (programming language)|Java]]. In these languages, [[data]] and methods to manipulate it are kept as one unit called an [[object (computer science)|object]]. With perfect [[Encapsulation (computer programming)|encapsulation]], one of the distinguishing features of OOP, the only way that another object or user would be able to access the data is via the object's ''[[Method (computer programming)|methods]]''. Thus, the inner workings of an object may be changed without affecting any code that uses the object. There is still some [[Object-oriented programming#Criticism|controversy]] raised by [[Alexander Stepanov]], [[Richard Stallman]]<ref>{{cite web|url=http://groups.google.com/group/comp.emacs.xemacs/browse_thread/thread/d0af257a2837640c/37f251537fafbb03?lnk=st&q=%22Richard+Stallman%22+oop&rnum=5&hl=en#37f251537fafbb03|title=Mode inheritance, cloning, hooks & OOP (Google Groups Discussion)}}</ref> and other programmers, concerning the efficacy of the OOP paradigm versus the procedural paradigm. The need for every object to have associative methods leads some skeptics to associate OOP with [[software bloat]]; an attempt to resolve this dilemma came through [[Polymorphism (computer science)|polymorphism]].
 
পদ্ধতিগত ভাষাসমূহের প্রচলনের পরে অবজেক্ট-ওরিয়েন্টেড (বা ''ওওপি'') প্রোগ্রামিং ভাষার উৎপত্তি হয়। এদের মধ্যে রয়েছে [[সিমুলা (প্রোগ্রামিং ভাষা)|সিমুলা]], [[স্মলটক]], [[সি++]], [[সি শার্প]], [[আইফেল (প্রোগ্রামিং ভাষা)|আইফেল]], [[পিএইচপি]], [[জাভা (প্রোগ্রামিং ভাষা)|জাভা]], ইত্যাদি। এ ধরণের ভাষায় প্রোগ্রামের তথ্য এবং সেই তথ্যের সংশ্লিষ্ট কোড একত্রিত হয়ে [[অবজেক্ট]] নামের গঠন তৈরি করে থাকে। এর থেকে ওওপি ভাষার আর একটি গুরুত্বপূর্ণ বৈশিষ্ট্য [[এনক্যাপসুলেশন]] উদ্ভুত হয়। এনক্যাপসুলেশনের মূল কথা হচ্ছে, কোন অবজেক্টের অন্তর্গত তথ্য বাইরে থেকে (অন্য অবজেক্ট বা ব্যবহারকারী দ্বারা) সরাসরি পাঠ বা পরিবর্তন করা যাবে না, কেবলমাত্র ওই তথ্যের সংশ্লিষ্ট অবজেক্টটির ''[[মেথড (প্রোগ্রামিং)|মেথড]]'' এর মাধ্যমে করা যাবে। এভাবে নির্দিষ্ট তথ্যের ওপর নির্দিষ্ট অবজপক্টের সম্পূর্ণ এবং একক নিয়ন্ত্রণ প্রতিষ্ঠিত হয়। এর ফলে কোডের অন্যান্য অংশের পরিবর্তন না করেই কোন অবজেক্টের অন্তর্গত কোডে ব্যাপক পরিবর্তন করা সম্ভব হয় (যদি তার মেথডসমূহ অপরিবর্তিত থাকে)। তথাপি, [[রিচার্ড স্টলম্যান]], [[আলেক্সান্দার স্তেপানভ]] এবং আরও অনেকে ওওপি প্রোগ্রামিংয়ের বিপক্ষে মত প্রকাশ করেছেন।<ref>{{cite web|url=http://groups.google.com/group/comp.emacs.xemacs/browse_thread/thread/d0af257a2837640c/37f251537fafbb03?lnk=st&q=%22Richard+Stallman%22+oop&rnum=5&hl=en#37f251537fafbb03|title=Mode inheritance, cloning, hooks & OOP (Google Groups Discussion)}}</ref> এঁরা প্রসিডিউরাল প্রোগ্রামিংয়ের চেয়ে অবজেক্ট-ওরিয়েন্টেড প্যারাডাইমের কার্যকারিতা উন্নত কীনা, তা নিয়ে সন্দিহান। প্রতিটি অবজেক্টের জন্য নিজস্ব মেথডের উপস্থিতির শর্ত অনেকের কাছে [[কোডের বাহুল্য]] বলে প্রতীয়মান হয়। এই বাহুল্য দূরীকরণের একটি উপায় হিসেবে উদ্ভাবিত হয়েছে বহুরূপিতা বা [[পলিমরফিজম (কম্পিউটার বিজ্ঞান)|পলিমরফিজম]]।
Because object-oriented programming is considered a paradigm, not a language, it is possible to create even an object-oriented assembler language. [[High Level Assembly]] (HLA) is an example of this that fully supports advanced data types and object-oriented assembly language programming{{snd}} despite its early origins. Thus, differing programming paradigms can be seen rather like ''motivational [[meme]]s'' of their advocates, rather than necessarily representing progress from one level to the next{{Citation needed|date=March 2018}}. Precise comparisons of the efficacy of competing paradigms are frequently made more difficult because of new and differing terminology applied to similar entities and processes together with numerous implementation distinctions across languages. -->
 
অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং যেহেতু একটি প্যারাডাইম, কোন প্রোগ্রামিং ভাষা নয়, তাই এই প্যারাডাইম অনুসরণকারী এসেম্বই ভাষা গঠন করাও অসম্ভব নয়। [[উচ্চস্ত্রের এসেম্বলি ভাষা]] (এইচএলএ) এই ধারণাটিরই বাস্তবায়ন করেছে। এটি একটি এসেম্বলি ভাষা হলেও আধুনিক [[টাইপ ব্যবস্থা|ডেটা টাইপ]] এবং প্রোগ্রাম কৌশল{{snd}} ব্যবহারে সক্ষম।
 
Because object<!-oriented programming is considered a paradigm, not a language, it is possible to create even an object-oriented assembler language. [[High Level Assembly]] (HLA) is an example of this that fully supports advanced data types and object-oriented assembly language programming{{snd}} despite its early origins. Thus, differing programming paradigms can be seen rather like ''motivational [[meme]]s'' of their advocates, rather than necessarily representing progress from one level to the next{{Citation needed|date=March 2018}}. Precise comparisons of the efficacy of competing paradigms are frequently made more difficult because of new and differing terminology applied to similar entities and processes together with numerous implementation distinctions across languages. -->
 
=== অন্যান্য প্যারাডাইম ===