পাইথন (প্রোগ্রামিং ভাষা): সংশোধিত সংস্করণের মধ্যে পার্থক্য

বিষয়বস্তু বিয়োগ হয়েছে বিষয়বস্তু যোগ হয়েছে
InternetArchiveBot (আলোচনা | অবদান)
১টি উৎস উদ্ধার করা হল ও ০টি অকার্যকর হিসেবে চিহ্নিত করা হল।) #IABot (v2.0
NahidSultanBot (আলোচনা | অবদান)
বট নিবন্ধ পরিষ্কার করেছে। কোন সমস্যায় এর পরিচালককে জানান।
২৮ নং লাইন:
}}
 
'''পাইথন''' (Python) একটি বস্তু-সংশ্লিষ্ট (object-oriented) [[উচ্চস্তরের প্রোগ্রামিং ভাষা]]। ১৯৯১ সালে গুইডো ভ্যান রস্যিউম এটি প্রথম প্রকাশ করেন।<ref name="svn-history">{{ ওয়েব উদ্ধৃতি | titleশিরোনাম = HISTORY | urlইউআরএল = http://svn.python.org/view/*checkout*/python/trunk/Misc/HISTORY | workকর্ম = Python source distribution | publisherপ্রকাশক = Python Foundation | accessdateসংগ্রহের-তারিখ = 2007-03-21 | আর্কাইভের-ইউআরএল = https://web.archive.org/web/20160217132249/http://svn.python.org/view/*checkout*/python/trunk/Misc/HISTORY | আর্কাইভের-তারিখ = ২০১৬-০২-১৭ | অকার্যকর-ইউআরএল = হ্যাঁ }}</ref> পাইথন নির্মাণ করার সময় প্রোগ্রামের পঠনযোগ্যতার উপর বেশি গুরুত্ব দেয়া হয়েছে।<ref>{{ ওয়েব উদ্ধৃতি | urlইউআরএল = http://www.python.org/doc/essays/blurb/ | titleশিরোনাম = What is Python? Executive Summary | publisherপ্রকাশক = Python Foundation | workকর্ম = Python documentation | accessdateসংগ্রহের-তারিখ = 2007-03-21 }}</ref> এখানে প্রোগ্রামারের পরিশ্রমকে কম্পিউটারের চেয়ে বেশি গুরুত্ব দেয়া হয়েছে। পাইথনের কোর সিনট্যাক্স ও সেমান্টিক্‌স খুবই সংক্ষিপ্ত, তবে ভাষাটির স্ট্যান্ডার্ড লাইব্রেরি অনেক সমৃদ্ধ। পাইথন প্রোগ্রামারদের সমাজ থেকে [[পাইথন দর্শন]] এর সূচনা হয়েছে।
 
পাইথন একটি [[বহু-প্যারাডাইম প্রোগ্রামিং ভাষা]] ([[ফাংশন-ভিত্তিক প্রোগ্রামিং ভাষা|ফাংশন-ভিত্তিক]], [[বস্তু-সংশ্লিষ্ট প্রোগ্রামিং ভাষা|বস্তু-সংশ্লিষ্ট]] ও [[নির্দেশমূলক প্রোগ্রামিং ভাষা|নির্দেশমূলক]]) এবং এটি একটি পুরোপুরি [[চলমান প্রোগ্রামিং ভাষা]] যার স্বনিয়ন্ত্রিত মেমরি ব্যবস্থাপনা রয়েছে। এদিক থেকে এটি [[পার্ল]], [[রুবি (প্রোগ্রামিং ভাষা)|রুবি]] প্রভৃতি প্রোগ্রামিং ভাষার মত।
৩৯ নং লাইন:
== ইতিহাস ==
[[চিত্র:Guido van Rossum.jpg|thumb|upright|পাইথন এর উদ্ভাবক, [[গুইডো ভ্যান রস্যিউম]]]]
[[১৯৮০]] দশকের শেষের দিকে পাইথনের জন্ম দেন [[নেদারল্যান্ড|নেদারল্যান্ডের]] [[ন্যাশনাল রিসার্চ ইনস্টিটিউট ফর ম্যাথমেটিকস অ্যান্ড কম্পিউটার সায়েন্স|সিডব্লিউআই'র]] গবেষক [[গুইডো ভ্যান রস্যিউম]]।<ref name="venners-interview-pt-1">{{ওয়েব উদ্ধৃতি|urlইউআরএল = http://www.artima.com/intv/pythonP.html|titleশিরোনাম = The Making of Python|accessdateসংগ্রহের-তারিখ = 2007-03-22|publisherপ্রকাশক = Artima Developer}}</ref> মূলত [[এবিসি (প্রোগ্রামিং ভাষা)|এবিসি'র]] উত্তরসূরী হিসেবে পাইথনের আবির্ভাব হয়েছে যা এক্সেপশন হ্যান্ডলিং করতে এবং [[অ্যামিবা ডিস্ট্রিবিউটেড অপারেটিং সিস্টেম|অ্যামিবা অপারেটিং সিস্টেমের]] সাথে কাজ করতে সক্ষম ছিল।<ref name = "faq-created">{{ ওয়েব উদ্ধৃতি | urlইউআরএল = http://www.python.org/doc/faq/general/#why-was-python-created-in-the-first-place | titleশিরোনাম = Why was Python created in the first place? | publisherপ্রকাশক = Python FAQ | accessdateসংগ্রহের-তারিখ = 2007-03-22}}</ref> ভ্যান রস্যিউম পাইথনের প্রধান লেখক এবং বর্তমানে পাইথনের উন্নয়নে তিনিই প্রধানত নেতৃত্ব দিচ্ছেন। তাঁকেতাকে পাইথনের আজীবন পরিচালক হিসেবে সম্মান দেয়া হয়েছে।
 
১৯৯১ সালে ভ্যান রস্যিউম পাইথনের কোড প্রকাশ করেন (ভার্শন ০.৯.০)।<ref name="svn-history" /> পাইথন ডিজাইনের এই ধাপেই ক্লাস ইনহেরিটেন্স, এক্সেপশন হ্যান্ডলিং, ফাংশন, ও প্রধান ডাটা টাইপ <code>list</code>, <code>dict</code>, <code>str</code> প্রভৃতি সংযুক্ত ছিল। এই প্রাথমিক প্রকাশে ছিল ''মডুলা-৩'' থেকে ধার করা ''মডিউল সিস্টেম''; ভ্যান রোসাম এই মডিউলকে "পাইথনের মূল প্রোগ্রামিং ইউনিটের একটি" আখ্যায়িত করেছেন।<ref name="venners-interview-pt-1" /> পাইথনের এক্সেপশন মডেলটিও অনেকটা মডুলা-৩'র মত যাতে কেবল অতিরিক্ত <code>else</code> যুক্ত হয়েছে।<ref name = "faq-created" /> ১৯৯৪ সালে পাইথনের প্রধান ফোরাম [news://comp.lang.python comp.lang.python] গঠিত হয়, এবং পাইথনের ব্যবহারকারীদের জন্য তা মাইলফলক হিসেবে চিহ্নিত হয়।
 
১৯৯৪ সালের জানুয়ারি পাইথন ১.০ সংস্করনে প্রবেশ করে। এই সংস্করনে যে প্রধান বিষয়াদি যুক্ত হয় তা হলো ফাংশনাল প্রোগ্রামিং টুলস <code>[[ল্যাম্বডা ক্যালকুলাস|lambda]]</code>, <code>map</code>, <code>filter</code> ও <code>reduce</code>। ভ্যান রস্যিউম বলেন "পাইথন lambda, reduce(), filter() ও map() অধিকার করেছে, (আমি বিশ্বাস করি) একজন [[লিস্প (প্রোগ্রামিং ভাষা)|লিস্প]] হ্যাকারের কাছ থেকে যে নিজেকে এগুলো থেকে বঞ্চিত মনে করছিল এবং কর্মক্ষম প্যাচগুলো সরবরাহ করেছে।"<ref>{{ওয়েব উদ্ধৃতি|urlইউআরএল = http://www.artima.com/weblogs/viewpost.jsp?thread=98196|titleশিরোনাম = The fate of reduce() in Python 3000|authorলেখক = Guido van Rossum|accessdateসংগ্রহের-তারিখ = 2007-03-22|publisherপ্রকাশক = Artima Developer}}</ref> এর প্রধান অবদানকারী ছিলেন অমৃত প্রেম; এবং এর প্রকাশ নোটে সে সময় কোন লিস্প প্রোগ্রামের উত্তরসূরী হওয়ার উল্লেখ করা হয়নি।
 
সিডব্লিউআই থেকে প্রকাশিত সর্বশেষ সংস্করন হচ্ছে পাইথন ১.২। ১৯৯৫ সালে ভ্যান রস্যিউম [[ভার্জিনিয়া|ভার্জিনিয়ার]] [[কর্পোরেশন ফর ন্যাশনাল রিসার্চ ইনিশিয়েটিভস]] (সিএনআরআই) প্রতিষ্ঠান থেকে পাইথনের ওপর তার কাজ চালিয়ে যেতে থাকেন এবং এখান থেকে সফটওয়ারটির কয়েকটি সংস্করন বের করেন।
 
১.৪ সংস্করনের মধ্যে পাইথনের কিছু নতুন বৈশিষ্ঠ্যবৈশিষ্ট্য যোগ করা হয়। এর মধ্যে উল্লেখযোগ্য হলো [[মডুলা-৩]] থেকে উদ্বুদ্ধ হয়ে গ্রহণ করা নতুন ''কিওয়ার্ড আর্গুমেন্ট'' (keyword argument) (যা [[কমন লিস্প]] এর কিওয়ার্ড আর্গুমেন্টের সাথে অনেকটা মেলে), এবং [[জটিল সংখ্যা|জটিল সংখ্যার]] জন্য অভ্যন্তরীন সমর্থন। এছাড়া তথ্য লুকানোর জন্যও একটি বিশেষ ব্যবস্থা ছিল, যদিও তা তেমন কঠিন কিছু ছিলনা।<ref>{{ওয়েব উদ্ধৃতি|urlইউআরএল=http://www.amk.ca/python/writing/12-14|titleশিরোনাম=LJ #37: Python 1.4 Update|accessdateসংগ্রহের-তারিখ=2007-04-29|আর্কাইভের-ইউআরএল=https://web.archive.org/web/20070501080219/http://www.amk.ca/python/writing/12-14|আর্কাইভের-তারিখ=২০০৭-০৫-০১|অকার্যকর-ইউআরএল=হ্যাঁ}}</ref>
 
সিএনআরআই তে থাকাকালীন ভ্যান রস্যিউম [[কম্পিউটার প্রোগ্রামিং ফর এভরিবডি]] (সিপি৪ই) উদ্যোগ গ্রহণ করেন, যাতে আরো অনেক মানুষ কম্পিউটার প্রোগ্রামিং এর সুবিধা গ্রহণ এবং অল্প মৌলিক প্রোগ্রামিং জ্ঞানের (ইংরেজি ও গণিতের জন্য সাধারণ যে জ্ঞান থাকা প্রয়োজন) মাধ্যমে ছোটখাট সমস্যা সমাধান করতে পারে। পাইথন এক্ষেত্রে কেন্দ্রীয় ভূমিকা পালন করেছে যার মূল কারণঃ এর পরিষ্কার সিনট্যাক্সের প্রতি মনোযোগ, এর ব্যবহার উপযোগিতা এবং সিপি৪ই এর লক্ষ্যের সাথে পাইথনের পূর্বসূরী এবিসির লক্ষ্যের মিল। এই প্রকল্পের অর্থায়ন করে [[:en:DARPA|DARPA]]।<ref>{{ওয়েব উদ্ধৃতি|urlইউআরএল = http://www.python.org/doc/essays/cp4e.html|authorলেখক = Guido van Rossum|titleশিরোনাম = Computer Programming for Everybody|accessdateসংগ্রহের-তারিখ = 2007-03-22|আর্কাইভের-ইউআরএল = https://web.archive.org/web/20090223101648/http://python.org/doc/essays/cp4e.html|আর্কাইভের-তারিখ = ২০০৯-০২-২৩|অকার্যকর-ইউআরএল = হ্যাঁ}}</ref> এই ২০০৭ সাল পর্যন্ত সিপি৪ই প্রকল্প নিস্ক্রিয় রয়েছে এবং অন্যদিকে পাইথন সাধারণ মানুষের জন্য সহজে শিখার মত প্রোগ্রামিং ভাষা তৈরির লক্ষ্য থেকে অনেকটাই দূরে সরে গেছে। এটা এখন আর পাইথনের জন্য সক্রিয় বিবেচ্য নয়।<ref>{{ওয়েব উদ্ধৃতি|urlইউআরএল = http://www.python.org/cp4e/|titleশিরোনাম = Computer Programming for Everybody|accessdateসংগ্রহের-তারিখ = 2007-03-22|publisherপ্রকাশক = Python Software Foundation|আর্কাইভের-ইউআরএল = https://web.archive.org/web/20070312152257/http://www.python.org/cp4e/|আর্কাইভের-তারিখ = ২০০৭-০৩-১২|অকার্যকর-ইউআরএল = হ্যাঁ}}</ref>
 
২০০০ সালে পাইথনের মূল উন্নয়নকারী দল [[BeOpen.com|বিওপেন.কম]] এর সাথে যুক্ত হয়ে যৌথভাবে বিওপেন পাইথনল্যাবস গঠন করে। সিএনআরআই পাইথনের একটি সংস্করন ১.৬ প্রকাশের অনুরোধ করেছিল যা মূলত এ পর্যন্ত সিএনআরআইতে পাইথনের যেটুকু উন্নয়ন হয়েছে তার সম্মিলিত প্রকাশ। একারণে পাইথনের ১.৬ ও ২.০ সংস্করনের মধ্যে অনেক বিলম্ব ঘটেছিল।<ref name="newin-2.0">{{ওয়েব উদ্ধৃতি|urlইউআরএল = http://www.amk.ca/python/2.0/|titleশিরোনাম = What's New in Python 2.0|authorলেখক = A.M. Kuchling and Moshe Zadka|accessdateসংগ্রহের-তারিখ = 2007-03-22|আর্কাইভের-ইউআরএল = https://web.archive.org/web/20091214142515/http://www.amk.ca/python/2.0|আর্কাইভের-তারিখ = ২০০৯-১২-১৪|অকার্যকর-ইউআরএল = হ্যাঁ}}</ref> পাইথন ২.০ ছিল বিওপেন.কম থেকে প্রকাশিত প্রথম ও একমাত্র পাইথন ডিস্ট্রিবিউশন। পাইথন ২.০ প্রকাশিত হওয়ার পর গুইডো ভ্যান রোসাম ও অন্যান্য পাইথনল্যাবস কর্মীরা [[:en:Digital Creations|ডিজিটাল ক্রিয়েশন্‌স]] এ যোগ দেন।
 
পাইথন ২.০ তার বিভিন্ন বৈশিষ্টের অনেকাংশই ধার করেছে [[ফাংশনভিত্তিক প্রোগ্রামিং]] ভাষা [[হ্যাস্কেল (প্রোগ্রামিং ভাষা)|হ্যাস্কেল]] থেকে। হ্যাস্কেলের লিস্ট ও পাইথনের মধ্যে অনেক মিল রয়েছে যদিও হ্যাস্কেল যতিচিহ্নকে বেশি গুরুত্ব দেয় আর পাইথন গুরুত্ব দেয় বর্ণভিত্তিক কিওয়ার্ড এর উপর। পাইথন ২.০ তে [[গারবেজ কালেকশন (কম্পিউটার বিজ্ঞান)|গারবেজ কালেকশন]] ব্যবস্থা যুক্ত হয়েছে যা নিয়মিত ভাবে মেমরি পরিষ্কার করতে সক্ষম।<ref name="newin-2.0" />
৫৭ নং লাইন:
এই দ্বৈত প্রকাশের পর ও ভ্যান রস্যিউমের সিএনআরআই ত্যাগ করে বাণিজ্যিক সফটওয়ার নির্মাতাদের সাথে যুক্ত হবার পর পরিষ্কার হয়ে যায় যে, [[জিপিএল]] লাইসেন্সের অধীনে পাইথন সফটওয়ারের ব্যবহারের খুবই প্রয়োজনীয়। সে সময় যে লাইসেন্স ব্যবহৃত হত তা ছিল '''পাইথন লাইসেন্স'''। এতে একটি সংযুক্তি ছিল যাতে বলা থাকে এই লাইসেন্স ভার্জিনিয়া রাজ্যের নিয়ন্ত্রনাধীন যারা এটা তৈরি করেছে। [[ফ্রি সফটওয়ার ফাউন্ডেশন|ফ্রি সফটওয়ার ফাউন্ডেশনের]] (এফএসএফ) আইনজীবিদের মতে এই লাইসেন্স [[গনু জিপিএল|গনু জিপিএলের]] সাথে সঙ্গতিপূর্ণ নয়। সিএনআরআই ও এফএসএফ একত্রিত হয়ে পাইথনের লাইসেন্সে পরিবর্তন আনেন যাতে এটা জিপিএলের সাথে সঙ্গতিপূর্ণ হয়। একই বছর (২০০১) ভ্যান রোসামকে '''এফএসএফ অ্যাওয়ার্ড ফর দ্য অ্যাডভান্সমেন্ট ওব ফ্রি সফটওয়ার''' পুরস্কার দেয়া হয়।
 
পাইথন ১.৬.১ আসলে শুধুই পাইথন ১.৬ যাতে কিছুটা ত্রুটি মুক্ত করা হয়েছে এবং নতুন জিপিএল-সঙ্গতিপূর্ণ লাইসেন্স রয়েছে।<ref name="lib-history">{{ওয়েব উদ্ধৃতি|urlইউআরএল = http://www.python.org/doc/2.5/lib/node951.html|titleশিরোনাম = History of the software|workকর্ম = Python Library Reference|accessdateসংগ্রহের-তারিখ = 2007-03-22|আর্কাইভের-ইউআরএল = https://web.archive.org/web/20070329061639/http://www.python.org/doc/2.5/lib/node951.html|আর্কাইভের-তারিখ = ২০০৭-০৩-২৯|অকার্যকর-ইউআরএল = হ্যাঁ}}</ref>
 
[[চিত্র:Python add5 syntax.svg|thumb|360px|সিনট্যাক্স বর্ণায়িত পাইথন কোড]]
 
পাইথন ২.১ তৈরি করা হয়েছে পাইথন ১.৬.১ ও পাইথন ২.০ এর উপর ভিত্তি করে। এর লাইসেন্সের নাম পরিবর্তন করে রাখা হয় '''পাইথন সফটওয়ার ফাউন্ডেশন লাইসেন্স'''। পাইথন ২.১ এর প্রকাশের পর এগুলোর সমস্ত কোড, ডকুমেন্টেশন ও স্পেসিফিকেশন [[পাইথন সফটওয়ার ফাইন্ডেশন]] (পিএসএফ) এর অধীনে চলে আসে। অলাভজনক প্রতিষ্ঠান হিসেবে পিএসএফ গঠন করা হয় ২০০১ সালে। এটির ব্যবস্থাপনা ও গঠন [[অ্যাপাচি সফটওয়ার ফাউন্ডেশন|অ্যাপাচি সফটওয়ার ফাউন্ডেশনের]] আদলে করা হয়।<ref name="lib-history" /> এই ভার্শনে স্ট্যাটিক স্কোপিং নিয়মাবলী (যেটির মূল প্রবক্তা হচ্ছে [[স্কিম (প্রোগ্রামিং ভাষা)|স্কিম]] নামে একটি প্রোগ্রামিং ভাষা) যোগ করা হয়, যদিও প্রথম দিকে এটি বাধ্যতামূলক ও সাধারনভাবে সক্রিয় ছিল না।<ref>{{ওয়েব উদ্ধৃতি|urlইউআরএল = http://www.python.org/dev/peps/pep-0227/|titleশিরোনাম = Statically Nested Scopes|authorলেখক = Jeremy Hylton|accessdateসংগ্রহের-তারিখ = 2007-03-22}}</ref>
 
পাইথন ২.২ এর একটি প্রধান উদ্ভাবন হচ্ছে পাইথনের বিভিন্ন টাইপ (সি তে লেখা টাইপসমূহ) ও ক্লাসের (পাইথনে লেখা টাইপসমূহ) একই গঠনের আওতায় নিয়ে আসা। এর ফলে পাইথনের অবজেক্ট মডেল অনেক স্থিতিশীল ও প্রকৃত অবজেক্ট ওরিয়েন্টেড হয়েছে।<ref>{{ওয়েব উদ্ধৃতি |শিরোনাম=সংরক্ষণাগারভুক্ত অনুলিপি |ইউআরএল=http://www.python.org/doc/2.2.3/whatsnew/sect-rellinks.html |সংগ্রহের-তারিখ=১৬ ফেব্রুয়ারি ২০০৭ |আর্কাইভের-ইউআরএল=https://web.archive.org/web/20070202232633/http://www.python.org/doc/2.2.3/whatsnew/sect-rellinks.html |আর্কাইভের-তারিখ=২ ফেব্রুয়ারি ২০০৭ |অকার্যকর-ইউআরএল=হ্যাঁ }}</ref> এতে আরও যুক্ত করা হয়েছে [[জেনারেটর (প্রোগ্রামিং ভাষা)|জেনারেটর]] যেটি [[আইকন (প্রোগ্রামিং ভাষা)|আইকন]] নামে একটি ভাষায় প্রথম ব্যবহৃত হয়েছে।<ref>http://www.python.org/doc/2.2.3/whatsnew/node5.html</ref>
১৯৮ নং লাইন:
পাইথনের একটা বড় স্ট্যান্ডার্ড লাইব্রেরি রয়েছে যেটা দিয়ে বিভিন্ন ধরনের কাজ সম্ভব। পাইথনের অনেক দর্শনের মধ্যে একটা হচ্ছে "অালাদা ব্যাটারির দরকার নাই"। পাইথনের স্ট্যান্ডার্ড লাইব্রেরির মডিউলগুলো C বা Python দিয়ে পরিবর্ধিত মডিউল তৈরী করা সম্ভব।
 
পাইথনের স্ট্য়ান্ডার্ড লাইব্রেরি বিশেষভাবে ইন্টারনেটমুখী এপ্লিকেশন উপযোগী। এখানে রয়েছে বিভিন্ন ফর্মাট এবং প্রটোকল যেমন([[মাইম]], [[এইচটিটিপি]]) এর সাপোর্ট।
 
== প্রোগ্রামিং দর্শন ==
২৬৩ নং লাইন:
* {{dmoz|Computers/Programming/Languages/Python/|Python}}
* [http://video.google.com/videoplay?docid=-6459339159268485356&q=engedu Google Tech Talk: Python 3000] - Video recorded 21 July 2006, spoken by Guido van Rossum
-->পাইথন একটা মাল্টি প্য়ারাডাইম প্রোগ্রামিং ল্য়াংগুয়েজ। পাইথন প্রোগ্রামারদের কোন নির্দিষ্ট স্টাইল গ্রহনেগ্রহণে বাধ্য় করে না। এটা বেশ কিছু স্টাইল অনুমোদন করে যেমন: [[অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং]], কাঠামোবদ্ধ প্রোগ্রামিং ইত্য়াদি। পাইথন বর্তমানে [[ফাংশনাল প্রোগ্রামিং]] এর কিছু জিনিস সমর্থন করে। <!-- wtf is aspect oriented programming? -->এছাড়া এক্সটেনশন ব্য়বহার করে অন্য়ান্য় প্য়ারাডাইম সমর্থন করা সম্ভব: যেমন: [http://www.nongnu.org/pydbc/ পাইডিবিসি], এবং [https://andreacensi.github.io/contracts/ পাইকন্ট্রাক্ট] ব্য়বহার করে কন্ট্রাক্ট প্রোগ্রামিং সম্পাদনা করা।
 
== তথ্যসূত্র ==