পাইথন প্রোগ্রামিং ল্য়াংগুয়েজ-১ - SMH Amiri

সর্বশেষ লিখাসমূহ

পাইথন প্রোগ্রামিং ল্য়াংগুয়েজ-১


পাইথন প্রোগ্রামিং ল্য়াংগুয়েজ:

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

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

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

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

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

পাইথন সাধরণ উদ্দেশে(general-purpose) ব্যবহৃত একটি শক্তিশালী প্রোগ্রামিং ভাষা। সুতরাং ওয়েব ডেভেলপমেন্ট(যেমন-Django এবং Bottle) থেকে শুরু করে বৈজ্ঞানিক ও গাণিতিক হিসাব-নিকাশ(যেমন-Orange, SymPy, NumPy) এবং এমনকি ডেস্কটপ গ্রাফিক্যাল ইউজার ইন্টারফেসেও(যেমন-Pygame, Panda3D) এটার ব্যপক ব্যবহার রয়েছে।

গঠন(Syntax) খুবই স্বচ্ছ এবং কোড এর দৈর্ঘ্যও ছোট হয়। ফলে পাইথন-এ কাজ করা আপনার কাছে কিছুটা মজাদার কৌতুকের মত মনে হবে। কেননা এটি আপনাকে কোডের গঠনের দিকে নজর না দিয়ে সমস্যা নিয়ে চিন্তা করতে সহায়তা করবে।


নামকরণ:

পাইথন প্রোগ্রামিং ভাষার নামকরণ করা হয়েছে ব্রিটিশ রম্য অনুষ্ঠান "মন্টি পাইথন ফ্লাইং সারকাসের" নামে।


পাইথন সৃষ্টির নেপথ্যে:

১৯৮০ দশকের পরে গুইডো ভ্যান রাসম আমিবা ডিস্ট্রিবিউটেড অপারেটিং সিস্টেম গ্রুপের সাথে কাজ করছিলেন। তিনি ABC(ABC এর সিনট্যাক্স খুবই সহজ এবং বোধগম্য)-এর মত ইটারপ্রেটেড(Interpreted) ভাষা ব্যবহার করতে চাইলেন যা আমিবা সিস্টেম কলকে এক্সেস করতে পারবে। তাই তিনি নতুন একটি ভাষা তৈরির দিদ্ধান্ত নিলেন যেটা হবে সমপ্রসারনযোগ্য । এটাকে কেন্দ্র করেই নতুন একটি ভাষার সূত্রপাত হলো এবং পরবর্তীতে এটার নাম রাখা হলো পাইথন।

পাইথন এর বিভিন্ন ভার্সন এবং প্রকাশকাল

ভার্সনপ্রকাশকাল
পাইথন 1.0 (প্রথম স্টান্ডার্ড প্রকাশনী)১৯৯৪ এর জানুয়ারি
পাইথন 1.6 ( শেষ মাইনর ভার্সন)২০০০ সালের ৫-এ সেপ্টেম্বর
পাইথন 2.0 (লিস্ট-list এর সূচনা)২০০০ সালের ১৬ই অক্টোবর
পাইথন 2.7 (শেষ মাইনর ভার্সন)২০১০ সালের ৩-এ জুলাই
পাইথন 3.0 (ডেপ্রিকেটেড কন্সট্রাক্ট এবং মডিউল রিমুভে জোর প্রদান )২০০৮ সালের ৩-এ সেপ্টেম্বর
পাইথন 3.5 (নিরাপত্তা সংশোধন)২০১৫ সালের ১৩-ই সেপ্টেম্বর
পাইথন 3.6 (শেষ আপডেট ভার্সন )২০১৬ সালের ২৩-এ ডিসেম্বর

ইতিহাস:

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

১৯৯১ সালে ভ্যান রস্যিউম পাইথনের কোড প্রকাশ করেন (ভার্শন ০.৯.০)। পাইথন ডিজাইনের এই ধাপেই ক্লাস ইনহেরিটেন্স, এক্সেপশন হ্যান্ডলিং, ফাংশন, ও প্রধান ডাটা টাইপ list, dict, str প্রভৃতি সংযুক্ত ছিল। এই প্রাথমিক প্রকাশে ছিল মডুলা-৩ থেকে ধার করা মডিউল সিস্টেম; ভ্যান রোসাম এই মডিউলকে "পাইথনের মূল প্রোগ্রামিং ইউনিটের একটি" আখ্যায়িত করেছেন। পাইথনের এক্সেপশন মডেলটিও অনেকটা মডুলা-৩'র মত যাতে কেবল অতিরিক্ত else যুক্ত হয়েছে। ১৯৯৪ সালে পাইথনের প্রধান ফোরাম comp.lang.python গঠিত হয়, এবং পাইথনের ব্যবহারকারীদের জন্য তা মাইলফলক হিসেবে চিহ্নিত হয়।

১৯৯৪ সালের জানুয়ারি পাইথন ১.০ সংস্করনে প্রবেশ করে। এই সংস্করনে যে প্রধান বিষয়াদি যুক্ত হয় তা হলো ফাংশনাল প্রোগ্রামিং টুলস lambda, map, filter ও reduce। ভ্যান রস্যিউম বলেন "পাইথন lambda, reduce(), filter() ও map() অধিকার করেছে, (আমি বিশ্বাস করি) একজন লিস্প হ্যাকারের কাছ থেকে যে নিজেকে এগুলো থেকে বঞ্চিত মনে করছিল এবং কর্মক্ষম প্যাচগুলো সরবরাহ করেছে।" এর প্রধান অবদানকারী ছিলেন অমৃত প্রেম; এবং এর প্রকাশ নোটে সে সময় কোন লিস্প প্রোগ্রামের উত্তরসূরী হওয়ার উল্লেখ করা হয়নি।

সিডব্লিউআই থেকে প্রকাশিত সর্বশেষ সংস্করন হচ্ছে পাইথন ১.২। ১৯৯৫ সালে ভ্যান রস্যিউম ভার্জিনিয়ার কর্পোরেশন ফর ন্যাশনাল রিসার্চ ইনিশিয়েটিভস (সিএনআরআই) প্রতিষ্ঠান থেকে পাইথনের ওপর তার কাজ চালিয়ে যেতে থাকেন এবং এখান থেকে সফটওয়ারটির কয়েকটি সংস্করন বের করেন।

১.৪ সংস্করনের মধ্যে পাইথনের কিছু নতুন বৈশিষ্ট্য যোগ করা হয়। এর মধ্যে উল্লেখযোগ্য হলো মডুলা-৩ থেকে উদ্বুদ্ধ হয়ে গ্রহণ করা নতুন কিওয়ার্ড আর্গুমেন্ট (keyword argument) (যা কমন লিস্প এর কিওয়ার্ড আর্গুমেন্টের সাথে অনেকটা মেলে), এবং জটিল সংখ্যার জন্য অভ্যন্তরীন সমর্থন। এছাড়া তথ্য লুকানোর জন্যও একটি বিশেষ ব্যবস্থা ছিল, যদিও তা তেমন কঠিন কিছু ছিলনা। 

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

২০০০ সালে পাইথনের মূল উন্নয়নকারী দল বিওপেন.কম এর সাথে যুক্ত হয়ে যৌথভাবে বিওপেন পাইথনল্যাবস গঠন করে। সিএনআরআই পাইথনের একটি সংস্করন ১.৬ প্রকাশের অনুরোধ করেছিল যা মূলত এ পর্যন্ত সিএনআরআইতে পাইথনের যেটুকু উন্নয়ন হয়েছে তার সম্মিলিত প্রকাশ। একারণে পাইথনের ১.৬ ও ২.০ সংস্করনের মধ্যে অনেক বিলম্ব ঘটেছিল। পাইথন ২.০ ছিল বিওপেন.কম থেকে প্রকাশিত প্রথম ও একমাত্র পাইথন ডিস্ট্রিবিউশন। পাইথন ২.০ প্রকাশিত হওয়ার পর গুইডো ভ্যান রোসাম ও অন্যান্য পাইথনল্যাবস কর্মীরা ডিজিটাল ক্রিয়েশন্‌স এ যোগ দেন।

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

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

পাইথন ১.৬.১ আসলে শুধুই পাইথন ১.৬ যাতে কিছুটা ত্রুটি মুক্ত করা হয়েছে এবং নতুন জিপিএল-সঙ্গতিপূর্ণ লাইসেন্স রয়েছে।


সিনট্যাক্স বর্ণায়িত পাইথন কোড:

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

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

পাইথনের স্ট্যান্ডার্ড লাইব্রেরি ও সিনট্যাক্টিক্যাল ব্যবহার জাভা থেকে অনুপ্রাণিত হয়েছে। কোন কোন ক্ষেত্রে যেমনঃ logging প্যাকেজ,[১৫] যা যুক্ত হয় ২.৩ ভার্সনে, স্যাক্স পার্সার যা ২.০ সংস্করনে যুক্ত হয় এবং ডেকোরেটর সিনট্যাক্স যা @ ব্যবহার করে এবং ২.৪ সংস্করনে যুক্ত হয় added in version 2.4 ইত্যাদি।


ব্যবহার:

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

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


ইন্‌ডেন্‌টেশন:

পাইথন কোডের একটি ব্লক বোঝাতে ব্রাকেট বা কীওয়ার্ডের পরিবর্তে হোয়াইটস্পেস ইন্‌ডেন্‌টেশন ব্যবহার করে। এই ব্যবস্থাটিকে অফ-সাইড নিয়ম বলা হয়। কোন একটি ব্লক বোঝাতে ইন্‌ডেন্‌টেশন বেশি করা হয়। আবার চলতি ব্লক শেষ বোঝাতে কম ইন্‌ডেন্‌টেশন করা হয়।


স্টেট্‌মেন্ট এবং কন্ট্রোল ফ্লো:

পাইথনে যেসব স্টেট্‌মেন্ট আছে তার মধ্যে অন্যতম হল-

if স্টেট্‌মেন্ট যা else এবং elif (else if এর সংক্ষিপ্ত রূপ) এর সাথে কোডের একটি ব্লক শর্তের উপর ভিত্তি করে এক্সিকিউট করে।

while স্টেট্‌মেন্ট যা কোডের একটি ব্লক এক্সিকিউট করে যতক্ষণ পর্যন্ত এর শর্ত পূরণ হতে থাকে।

def স্টেট্‌মেন্ট যা একটি ফাংশন অথবা মেথড লেখার জন্য ব্যবহৃত হয়।

yield স্টেট্‌মেন্ট যা একটি জেনারেটর ফাংশন থেকে মান পাঠায়। পাইথন ২.৫ থেকে yield কে অপারেটর এর মধ্যেও অন্তর্ভুক্ত করা হয়েছে। এটি করা হয়েছে মূলত কোরুটিন বাস্তবায়নের জন্য।


পাইথন প্রোগ্রামিং এর উদাহরণ

'Hello world' লেখার প্রোগ্রামঃ

print('Hello, world!')


ধনাত্মক সংখ্যার গৌণিক নির্ণয়ের প্রোগ্রামঃ

n = int(input('Type a number, and its factorial will be printed: '))

if n < 0:

 raise ValueError('You must enter a positive integer')

fact = 1

i = 2

while i <= n:

 fact *= i

 i += 1

print(fact)


অন্যান্য সুবিধাদি:

সিপাইথন এর মিথষ্ক্রিয়/interactive মোড,যা IDLE এর মাধ্যমে ব্যবহার করা হচ্ছে

পাইথনের নিজস্ব বহু মডিউল ও লাইব্রেরি থাকা সত্বেও বিশেষ ধরনের কাজের জন্য বিশেষভাবে তৈরি বিভিন্ন প্যাকেজ পাওয়া যায়। যেমনঃ বায়োইনফর্মেটিক্স বিষয়ক কাজের জন্য রয়েছে BioPython, গ্রাফিকেল ইন্টারফেস প্রোগ্রামিং এর জন্য PyGTK, ইমেজ প্রসেসিং এর জন্য OpenCV ইত্যাদি।


বাস্তবায়ন:

পাইথনের মূলধারার বাস্তবায়ন, যা সিপাইথন নামেও পরিচিত,সেটিকে লেখা হয়েছে সি প্রোগ্রামিং ভাষাতে, এবং এটিকে বণ্টিত করা হয়েছে একটি বৃহৎ স্ট্যান্ডার্ড লাইব্রেরির সাথে যা লেখা হয়েছে সি ও পাইথনে উভয়ের মিশ্রণের মাধ্যমে।


স্ট্যান্ডার্ড লাইব্রেরি:

পাইথনের একটা বড় স্ট্যান্ডার্ড লাইব্রেরি রয়েছে যেটা দিয়ে বিভিন্ন ধরনের কাজ সম্ভব। পাইথনের অনেক দর্শনের মধ্যে একটা হচ্ছে "অালাদা ব্যাটারির দরকার নাই"। পাইথনের স্ট্যান্ডার্ড লাইব্রেরির মডিউলগুলো C বা Python দিয়ে পরিবর্ধিত মডিউল তৈরী করা সম্ভব।

পাইথনের স্ট্য়ান্ডার্ড লাইব্রেরি বিশেষভাবে ইন্টারনেটমুখী এপ্লিকেশন উপযোগী। এখানে রয়েছে বিভিন্ন ফর্মাট এবং প্রটোকল যেমন(মাইম, এইচটিটিপি) এর সাপোর্ট।


প্রোগ্রামিং দর্শন

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


পাইথন ভাষার বৈশিষ্ট্যসমূহ

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


এটি একটি সাধারণ ভাষা যা শেখা খুবই সহজ।

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

প্রোগ্রামিং জগতে আপনি যদি নতুন হোন তাহলে পাইথন দিয়ে যাত্রা শুরু করাই হবে আপনার পছন্দের মধ্যে অন্যতম।


 ফ্রি এবং ওপেনসোর্স

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

এছাড়া পাইথন এর রয়েছে বিশাল এক কমিউনিটি যা প্রতিনিয়ত চক্রবৃদ্ধিহারে বেড়েই চলেছে।


 বহনযোগ্যতা(Portability)

আপনি পাইথন প্রোগ্রামকে এক প্লাটফর্ম থেকে অন্য প্লাটফর্ম-এ নিতে পারবেন এবং কোনো ধরণের পরিবর্তন ছাড়াই রান করাতে পারবেন।

এটি অধিকাংশ প্লাটফর্ম(যেমন- উইন্ডোজ, লিনাক্স এবং ম্যাক ওএস) এ নিজস্ব এপ্লিকেশনের মতই রান করে।


সম্প্রসারণ এবং সংস্থাপনযোগ্য(Extensible and Embeddable)

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

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


হাই-লেভেল এবং ইন্টারপ্রেটেড ভাষা

এটি C/C++ এর মত না। ভীতিকর বিষয় যেমন মেমোরি ম্যানেজমেন্ট(memory management), গার্বেজ কালেকশন(garbage collection) এবং পয়েন্টার(Pointer) ইত্যাদি বিষয় নিয়ে আপনাকে কোনো দুঃচিন্তা করতে হবে না।

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


 সাধারণ সমস্যা সমাধানের জন্য অনেক বড় লাইব্রেরী

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

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


 অবজেক্ট ওরিয়েন্টেড(Object-oriented)

পাইথনে সবকিছুই অবজেক্ট। অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ব্যবহার করে নিজস্ব জ্ঞান দ্বারাই জটিল জটিল সমস্যার সমাধান করতে পারবেন।


পাইথন ভাষার ব্যবহার

কম্পিউটার এর সকল ক্ষেত্রেই পাইথন এর পদচারণা সুদীপ্ত এবং এটার বিস্তৃতি প্রতিনিয়ত বেড়েই চলছে। নিম্নে পাইথন ভাষা প্রয়োগ এর কিছু ক্ষেত্র তুলে ধরা হলোঃ

ওয়েব এপ্লিকেশন(Web Application)
পাইথন দ্বারা গঠিত বিভিন্ন ফ্রেমওয়ার্ক এবং CMS(কন্টেন্ট ম্যানেজমেন্ট সিস্টেম ) ব্যবহার করে আপনি সম্প্রসারণযোগ্য(scalable) ওয়েব এপ্লিকেশন তৈরি করতে পারবেন। ওয়েব এপস্‌ তৈরির জন্য পাইথনের রয়েছে অসংখ্য জনপ্রিয় প্লাটফর্ম। যেমন- Django, Flask, Pyramid, Plone, Django CMS ইত্যাদি।
বিভিন্ন সাইট যেমন-Mozilla, Reddit, Instagram, PBS ইত্যাদি ওয়েব এপ্লিকেশন পাইথন দিয়ে লেখা।

বৈজ্ঞানিক এবং গাণিতিক হিসাব-নিকাশ(Scientific and Numeric Computing)
বৈজ্ঞানিক এবং গাণিতিক হিসাবনিকাশের জন্য পাইথনে অনেক লাইব্রেরী আছে। কিছু লাইব্রেরী যেমন-SciPy এবং NumPy ব্যবহার করে সাধারণ হিসাবনিকাশ করা হয়। আরও কিছু লাইব্রেরী যেমন- পৃথিবী বিজ্ঞানের জন্য EarthPy, জ্যোতির্বিজ্ঞান এর জন্য AstroPy ইত্যাদি। উপরোক্ত ক্ষেত্র ছাড়াও মেসিং লার্নিং, ডাটা মাইনিং এবং ডিপ লার্নিং- এও প্রচুর পরিমাণে পাইথন ব্যবহৃত হয়।


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


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