এমন historicalতিহাসিক পরিস্থিতি কী কী ছিল যা ওরিয়েন্টেড প্রোগ্রামিংকে একটি প্রধান প্রোগ্রামিং দৃষ্টান্ত হিসাবে পরিণত করেছিল?


14

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

সম্পাদনা আমি নিজেই সবচেয়ে বেশি আগ্রহী যে ভাষাগুলির বাহ্যিক কিছু বিষয় ছিল যা তাদের ধরে রাখতে পেরেছিল।


এটি বোধগম্য, তবে আমি অনুমান করি উন্নয়নের সময় যে বহিরাগত পরিস্থিতি চলছিল তাতে আমি আরও আগ্রহী ছিলাম। এটি খুব ভালভাবে হতে পারে যে বাহ্যিক কারণগুলির একটি সীমিত প্রভাব ছিল।

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

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

1
লেগো খেলনা ইটগুলি বাহ্যিক প্রভাব হিসাবে মাপসই হতে পারে ...
জ্যামি এফ

1
@ ম্যাসন: সিমুলা এবং স্মলটাক মডেলগুলিকে কী ভাগ করবে তা নিশ্চিত নয়। আপনি কোথায় রাখবেন রুবি? Lua? পাইথন? জাভাস্ক্রিপ্ট?
কেভিন ক্লিন

উত্তর:


10

সংক্ষিপ্ত উত্তর

আমি মনে করি এটি OO দিন আগে সফ্টওয়্যার প্রকল্পের মন্থ ছিল। মৌলিকভাবে সমালোচনা ধারণাটি যুক্ত করে ওও সহায়তা করেছে - আসল বিশ্বের মডেল


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

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

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

আমার ধারণা 70০ এর শেষের দিকে লোকেরা জ্বলে উঠেছিল - কারণ পদ্ধতিগত ভাষাগুলি সেই প্রতিশ্রুতিগুলি মেনে চলে না। এবং একটি নতুন দৃষ্টান্ত অবজেক্ট ওরিয়েন্টেড যা সেই সময় থেকেই বিদ্যমান ছিল এবং এটি বড় করে তুলেছে। যদিও লোকেরা মতানৈক্য করতে পারে তবে আমি মনে করি যে সি ++ যা পরিচিতি এবং প্রমাণিত অভিজ্ঞতা এবং সি এর জন্য সহায়তা করে এবং ১৯৮৩ সালে অবজেক্ট ওরিয়েন্টেশনের প্রতিশ্রুতি (মূলত ক্লাস সহ শ্রেণীর নাম) 1983 সালে অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিংয়ের সাফল্যের এক ভিত্তি ছিল।

আরও দৃষ্টিকোণ জন্য কিছু রেফারেন্স - http://j Journal.thedacs.com/issue/43/88

তাহলে ওও কেন?

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

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

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


শিফ্টের ক্যারাকটারিকগুলি কী ছিল এবং কোথায় যেতে হবে? 70 এর শেষ। কোন মাকযুক্ত বিকাশকারীরা যেতে যেতে সময় বুঝতে পারে? প্রক্রিয়াগতভাবে ক্লান্ত, হ্যাঁ, তবে বিকল্পের চাচাতো ভাইদের অবশ্যই বেন থাকতে হবে?
ইন্ডিপেন্ডেন্ট

@ জোনাস - ঠিক আছে - উত্তরটি সংশোধন করেছেন।
দিপান মেহতা

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

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

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

6

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

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


4

প্রক্রিয়াগত কোড থেকে ওওপিটিকে প্রাকৃতিক বিবর্তনীয় পদক্ষেপ হিসাবে দেখছি:

  1. কার্যবিধি কোড: মেশিনকে A করতে বলুন, তারপরে বি করতে বলুন
  2. ওওপি: ইন্টারফেস / ইনপুট / আউটপুটগুলি সংজ্ঞায়িত করে পদ্ধতিগত নির্দেশাবলী খুব পুনরায় ব্যবহারযোগ্য অংশগুলিতে প্যাকেজ করুন। (সতর্কতা: সরলীকরণ।)

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

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


2

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

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

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

তারপরে কিছু শিক্ষাবিদ বলেছিলেন যে কার্যকরীতার সাথে এটি কাজ করা ডেটার সাথে ঘনিষ্ঠভাবে মিলিত হওয়া উচিত। তারপরে তারা বাস্তব জীবনে শ্রেণিবিন্যাসকে যৌক্তিক উপায়ে কাজ করার সাথে কোড পুনরায় ব্যবহার এবং পলিমারফিজমের উত্তরাধিকারের ধারণাগুলি যুক্ত করেছিল। এভাবে তৃতীয় প্রজন্মের প্রোগ্রামিং ভাষা এবং ওওপি জন্মগ্রহণ করে।

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