Uncategorized

পাইথন প্রোগ্রামিং এর ইতিহাস !

python2

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

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

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

ইতিহাসঃ 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ব্যবহারঃ 

geekswipe-python-twitter-bot-source-photo-by-karthikeyan-kc

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

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

 

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

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

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

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

  • if স্টেট্‌মেন্ট যা else এবং elif (else if এর সংক্ষিপ্ত রূপ) এর সাথে কোডের একটি ব্লক শর্তের উপর ভিত্তি করে এক্সিকিউট করে।
  • while স্টেট্‌মেন্ট যা কোডের একটি ব্লক এক্সিকিউট করে যতক্ষণ পর্যন্ত এর শর্ত পূরণ হতে থাকে।
  • def স্টেট্‌মেন্ট যা একটি ফাংশন অথবা মেথড লেখার জন্য ব্যবহৃত হয়।
  • yeild স্টেট্‌মেন্ট যা একটি জেনারেটর ফাংশন থেকে মান পাঠায়। পাইথন ২.৫ থেকে yield কে অপারেটর এর মধ্যেও অন্তর্ভুক্ত করা হয়েছে। এটি করা হয়েছে মূলত কোরুটিন বাস্তবায়নের জন্য।

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

CPython’s interactive mode, used via IDLE

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

 

 

Advertisements
Uncategorized

এখন পুলিশ ক্লিয়ারেন্স সনদ পাওয়া যাবে অনলাইনে

police-ict-news.jpg

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

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

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

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

নতুন এই কার্যক্রম সম্পর্কে অনুষ্ঠানে জানানো হয়, বিদেশগামী বা বিদেশে বসবাসকারী বাংলাদেশি নাগরিকেরা দেশে বা দেশের বাইরে যেকোনো জায়গায় pcc.police.gov.bd ঠিকানায় অথবা বাংলাদেশ পুলিশের ওয়েবসাইটে (www.police.gov.bd) গিয়ে পুলিশ ক্লিয়ারেন্স মেন্যুতে ক্লিক করে অনলাইনে আবেদন করতে পারবেন। আবেদনের সঙ্গে প্রয়োজনীয় কাগজপত্র ও সরকারি ফি পরিশোধের চালান স্ক্যান করে আপলোড করতে হবে। আবেদনের জন্য আবেদনকারীর ব্যক্তিগতভাবে থানায় যাওয়ার প্রয়োজন হবে না।

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

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