শুরুর আগে

Python has been an important part of Google since the beginning, and remains so as the system grows and evolves. Today dozens of Google engineers use Python, and we're looking for more people with skills in this language. - Peter Norvig, Director of Search Quality, Google, Inc.

পাইথন কি?

পাইথন মানে অজগর, ঠিক আছে। কিন্তু এই বইয়ে আমরা যে পাইথন নিয়ে কথা বলছি, তা হল একটা অবজেক্ট-অরিয়েন্টেড হাই-লেভেল ল্যাঙ্গুয়েজ। ১৯৯১ সালে গুরুদেব শ্রী শ্রী গুইডো ভ্যান রস্যিউম এটি প্রথম প্রকাশ করেন। আর মোটেই এটি অজগরের নামে নামকরণ করা হয়নি, বরং মন্টি পাইথন ফ্লাইং সার্কাসের নামে এর নামকরণ করা হয়েছে। গুরুদেবের ভাষায় -

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

আরেকভাবে বলতে গেলে, পাইথন হল একটি হাই-লেভেল, ইন্টারপ্রিটেড, ইন্টারেক্টিভঅবজেক্ট-অরিয়েন্টেড স্ক্রিপ্টিং ল্যাঙ্গুয়েজ। আমরা সি বা সি++ এর কথা হয়ত জানি, এগুলো কম্পাইলড ল্যাঙ্গুয়েজ। রান করার সময় কম্পাইলার পুরো কোড পড়ে, তারপর সেটাকে কম্পাইল করে। ফলে কোডের কোন অংশে সামান্য একটা ভুল থাকলেই পুরো কোড বেকার হয়ে বসে থাকে, কাজ করে না। এদিক থেকে পাইথন একেবারেই আলাদা। পাইথন ইন্টারপ্রিটার লাইন-বাই-লাইন কোড পড়ে আর ইন্টারপ্রিট করে। আর যেখান থেকে ভুল খুঁজে পায় কেবল সেখান থেকেই কোড বেকার। আরেকটা কথা, ইন্টারপ্রিট করা মানে কিন্তু অনুবাদ করা। কিন্তু পাইথন ইন্টারপ্রিটার কোড কিসে অনুবাদ করে আর কার জন্যই বা অনুবাদ করে?

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

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

পাইথন কেন?

I estimate that Python makes our coders 10 times more productive than Java programmers, and 100 times more than C programmers. - Curt Finch, CEO, Journyx

আমরা প্রোগ্রামিং শিখব। এটা তো বেশ ভাল কথা। কিন্তু ল্যাঙ্গুয়েজ হিসাবে কেন পাইথনকে বেছে নেব? কেন আমরা পাইথন শিখব? চলুন, দেখে নেয়া যাক সেই কারণগুলো।

ওপেনসোর্স

পাইথন ওপেনসোর্স। পাইথনে লেখা স্ক্রিপ্ট বা সফটওয়্যার আমরা বিনা বাঁধায় ডিস্ট্রিবিউট করতে পারি, এমনকি বাণিজ্যিকভাবে বাজারজাতও করতে পারি। এই উদারতা পাইথনকে করেছে অনন্য।

জেনারেল-পার্পাজ ল্যাঙ্গুয়েজ

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

বিগিনার ফ্রেন্ডলি

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

কমিউনিটি সাপোর্ট

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

ক্যারিয়ার

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

Python is fast enough for our site and allows us to produce maintainable features in record times, with a minimum of developers. - Cuong Do, Software Architect, YouTube.com.

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

অ্যাঞ্জেললিস্টে পাইথন মোস্ট ডিমান্ডেড স্কিল লিস্টে দ্বিতীয়। আর পাইথন প্রোগ্রামারদেরই দেয়া হয় হাইয়েস্ট অ্যাভারেজ স্যালারি।

পাইথন ২ নাকি ৩?

Python 2.x is legacy, Python 3.x is the present and future of the language.

এতক্ষণে হয়ত বুঝে ফেলেছি আমরা - খোলা বাজারে পাইথনের মেজর দুইটা ভার্সন পাওয়া যায় – পাইথন-২, পাইথন-৩। এবং পাইথন ২ নাকি ৩ এই প্রশ্নে মোটামুটি সব পাইথনিস্টই মুখে ফেনা তুলে ফেলেন। সুখের বিষয় হল, ভার্সন দুইটার ভিতরে মেজর পার্থক্য যথসামান্য। আর দুঃখের বিষয় হল, আসছে ২০২০ সালে পাইথন-২ এর জীবনাবসান ঘটবে। সুতরাং পাইথন-৩ হল পাইথনের বর্তমান ও ভবিষ্যত। এখন কেউ পাইথন শেখা শুরু করলে তার জন্য বুদ্ধিমানের কাজ হবে পাইথন-৩ শেখা। আর সত্যিকথা বলতে গেলে, পাইথন ২ ও ৩ এর ভিতর পার্থক্য যথসামান্য। যেহেতু পাইথন-৩ লেটেস্ট জিনিস তাই এটা শেখায় কোন সমস্যা তো নাই। নাকি! তাছাড়া, এই বইয়ে আমরা পাইথন-৩ নিয়েই চিল্লাপাল্লা করব। আমাদের মধ্যে কেউ যদি একেবারেই মনস্থির করে ফেলেন যে পাইথন-২ই শিখবেন। তাহলে আর কী করার? যাহোক, ‘পাইথন-২’ ও ‘পাইথন-৩’-এর পার্থক্য সম্পর্কে বিস্তারিত জানতে আমাদের পাইথনের অফিশিয়াল উইকি (https://wiki.python.org/moin/Python2orPython3) ফলো করতে হবে।

উইন্ডোজ, ম্যাকওএস নাকি লিনাক্স ডিস্ট্রো?

আপাতদৃষ্টিতে প্লাটফরম একটা সমস্যা হয়ে দেখা দিতে পারে। আমরা চাইলে যেকোন একটা ব্যবহার করলেই চলে। আমরা এই বইয়ে লিনাক্স ডিস্ট্রো (উবুন্টু) ব্যবহার করব। তাই সাজেস্ট করব সবাই লিনাক্সের (উবুন্টু-১৬.০৪ হলে ভাল হয়) কোন ডিস্ট্রো ব্যবহার করুন। আসলে পাইথনে নিশ্চিন্তে প্রোগ্রামিং করার জন্য লিনাক্স একটা আদর্শ প্লাটফর্ম। তবে আপনি যদি উইন্ডোজ বা ম্যাকওএস ইউজার হয়ে থাকেন তাহলে বদলানোর কোন দরকার নাই। আপনার রানিং প্লাটফর্মেই আপনি নিরিবিলি প্রোগ্রামিং করতে পারেন।

আমরা ইতিমধ্যেই জেনে ফেলেছি যে, পাইথন একটি ইন্টারপ্রিটেড ল্যাঙ্গুয়েজ আর একে রান করানোর জন্য দরকার পাইথন ইন্টারপ্রিটার। তো এই ইন্টারপ্রিটার কই পাব?

না, না ভাই। এরজন্য সারা বঙ্গদেশ ওলট-পালট করতে হবে না। পাইথনের অফিসিয়াল ওয়েব সাইট (https://www.python.org/downloads/) - এ গেলেই দেখা মিলবে পাইথন ইন্টারপ্রিটারের। উইন্ডোজ, ম্যাকওএস, লিনাক্স সব মেজর প্লাটফর্মের জন্যই পাওয়া যাচ্ছে একেবারে বিনামূল্যে। আমরা লেটেস্ট পাইথন-৩.x বিল্ডটা ব্যবহার করব। উল্লেখ্য, এই বইটা লেখার সময় পাইথন 3.5.2 ব্যবহার করা হয়েছে। তবে আমরা চাইলে 3.4.x, 3.5.x, 3.6.x যেকোনটাই ব্যবহার করতে পারি, অসুবিধা নাই। তবে একেবারে লেটেস্টটা ব্যবহার করাই উত্তম।

উইন্ডোজ

উইন্ডোজ ইউজার হলে ৩২-বিট বা ৬৪-বিট অনুসারে আপনার জন্য আদর্শ .exe ভার্সনটা ডাউনলোড করে নিব। ডাউনলোড শেষ হলে ফাইলের উপর ডাবল ক্লিক করে ইন্সটলেশন প্রসেস শুরু করব। চক্ষের সামনে পাইথন সেটাপ উইন্ডো ওপেন হলে "Add Python 3 to PATH" এ টিক দিয়ে দেব। তারপর নরমাল সফটওয়্যার ইন্সটল করার মত করে "Install Now" তে ক্লিক করে ইন্সটল করব।

উইন্ডোজে পাইথন ইন্সটলেশন, ছবি ইন্টারনেট থেকে সংগৃহীত

ইন্সটলেশন প্রসেস শেষ হলে উইন্ডোজের কমান্ড প্রম্পট ওপেন করে python -V কমান্ড দিয়ে ভার্সন চেক করে দেখব।

পাইথন শেল, ছবি ইন্টারনেট থেকে সংগৃহীত

All Apps > Python 3 > IDLE এ গেলে আমরা পাইথনের IDLE পাব। IDLE সম্পর্কে একটু পরেই আমরা জানব।

পাইথন IDLE, ছবি ইন্টারনেট থেকে সংগৃহীত

লিনাক্স

লিনাক্সের ক্ষেত্রে অলরেডি পাইথন-৩ ইন্সটল থাকার কথা। আমরা শুধু টার্মিনাল ওপেন করে কমান্ড দিব python3 আর দেখব পাইথন ইন্টারেক্টিভ শেল (সংক্ষেপে পাইথন শেল) ওপেন হয় কিনা! হলে ঠিক আছে। না হলে, প্রয়োজনীয় ইন্সটল কমান্ড দিয়ে ইন্সটল করে নিব। উবুন্টুর ক্ষেত্রে নিচের কমান্ডটা দিলেই চলে:

sudo apt-get install python3 python3-dev python3-pip

ইন্সটল হয়ে গেলে টার্মিনাল ওপেন করে কমান্ড দিব python3 আর দেখব নিচের মত পাইথন ইন্টারেক্টিভ শেল ওপেন হয়ে গেছে।

পাইথন শেল, উবুন্টু

ম্যাকওএস

ম্যাকেওএসের ক্ষেত্রে ৩২-বিট বা ৬৪-বিট অনুসারে .pkg ফাইলটা ডাউনলোড করে এর উপর ডাবল ক্লিক করে ইন্সটলেশন প্রসেস শুরু করব। স্ক্রীনে ওপেন হওয়া গ্রাফিকার ইন্টারফেস ফলো করে পাইথন ইন্সটল করে ফেলব। তবে চাইলে শুধু টার্মিনালে বসেই আমরা পাইথন ইন্সটল করতে পারব।

এজন্য প্রথমেই আমরা অ্যাপল স্টোর থেকে Xcode ইন্সটল করব। তারপর Xcode এর কমান্ডলাইন টুলস ইন্সটল করার জন্য টার্মিনালে নিচের কমান্ড দেব।

xcode-select --install

এর ফলে একটা পপ-আপ উইন্ডো ওপেন হবে। সেখান থেকে আমরা কমান্ড লাইন টুলস ইন্সটল করে নেব। এরপর আমরা Homebrew ইন্সটল করব। এজন্য টার্মিনালে নিচের কমান্ডটা দেব:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

ইন্সটল শেষ হলে ~/.bash_profile ফাইলে export PATH=/usr/local/bin:$PATH লাইনটা যোগ করে দেব। তারপর টার্মিনাল ক্লোজ করে আবার ওপেন করব। এবার পাইথন ইন্সটল করার জন্য কমান্ড দেব।

brew install python3

ইন্সটল শেষ হয়ে গেলে ভার্সন চেক করে দেখব।

python3 --version

কোড কোথায় লিখব?

এখন প্রশ্ন আসতে পারে, কোড কোথায় লিখব? লিনাক্স ও ম্যাকওএসের ক্ষেত্রে টার্মিনাল ওপেন করে python3 কমান্ড দিই। পাইথন ইন্টারেক্টিভ শেল চালু হবে। উইন্ডোজের ক্ষেত্রে কমান্ড প্রম্পট (cmd) ওপেন করে কমান্ড দিই python। তাতেই দেখতে পাব একটা চমৎকার পাইথন ইন্টারেক্টিভ শেল চালু হয়ে গেছে। আমরা চাইলে আরেকটু সুন্দর জায়গায় প্রোগ্রামিং করার জন্য IDLE (ইন্টিগ্রেটেড ডেভেলপমেন্ট এন্ড লার্নিং এনভায়রনমেন্ট) ব্যবহার করতে পারি। এটা হল পাইথনের বেসিক IDE (ইন্টিগ্রেটেড ডেভেলপমেন্ট এনভায়রনমেন্ট)। আপাততই কোন বড়সড় IDE ব্যবহার করার দরকার নাই আমাদের। তবে একান্তই মন চাইলে Eclipse এর সাথে PyDev প্লাগিন ইউজ করতে পারি। অথবা জেটব্রেইনসের PyCharm ব্যবহার করতে পারি। পাইচার্মের দুইটা ভার্সন আছে। একটা কমিউনিটি এডিশন যেটা ফ্রীতে পাওয়া যায়। আরেকটা হল প্রো ভার্সন, এটা ব্যবহার করতে পয়সা লাগে। তবে আমরা স্টুডেন্ট হলে ১ বছরের জন্য বিনামূল্যে পেতে পারি। যতদিন স্টুডেন্ট থাকব ততদিন লাইসেন্স রিনিউ করে ফ্রীতেই ব্যবহার করতে পারব। আর কোড এডিটরের কথা চিন্তা করলে Atom আর Sublime Text এর কথাই বলতে হবে। প্রথমটা ওপেনসোর্স ও ফ্রী, শেষেরটার লাইসেন্স পয়সা দিয়ে কিনতে হবে আমাদের।

ধরা যাক, যেকোন একটা কোড এডিটরে test.py ফাইলে কিছু পাইথন কোড লিখলাম। পাইথন ফাইলের শেষে সবসময় .py থাকবে। যাহোক, এখন test.py ফাইলটা রান করার জন্য টার্মিনালে (ফাইলটা যেই ডিরেক্টরিতে আছে সেখানে ঢোকার পর) কমান্ড দেব:

python3 test.py

তাহলেই এই ফাইলে থাকা কোড এক্সিকিউট হয়ে আউটপুট দেখাবে আমাদের।

অবশ্য, আমরা চাইলে এত হাঙ্গামা না করে সরাসরি অনলাইনেই আমাদের প্রোগ্রাম রান করতে পারি। চমৎকার দুইটা অনলাইন কোড এডিটর:

আমরা এই বইয়ের শুরুর দিকে কমান্ডলাইন বা টার্মিনালে পাইথন ইন্টারেক্টিভ শেল ব্যবহার করব। তবে কেউ চাইলে IDLE এর পাইথন শেলটাও ব্যবহার করতে পারি। কিন্তু কয়েকটা চাপ্টারের পর থেকে যখন আমাদেরকে তুলনামূলকভাবে বড় বড় প্রোগ্রাম লিখতে হবে তখন থেকে আমরা IDLE ব্যবহার করব। তবে এবার আর শেল নয়। File থেকে New File যাব আমরা। নতুন একটা ফাইল ওপেন হবে। এই ফাইলেই আমরা কোড লিখব। কোড লেখা শেষ হলে File থেকে Save এ গিয়ে ফাইলটা সেইভ করব। প্রয়োজনবোধে, ফাইল সেইভ করার সময় ফাইলের নামের শেষে .py এক্সটেনশন দেব। আর সবশেষে Run থেকে Run Module ক্লিক করে প্রোগ্রাম রান করাব। এক্ষত্রে নতুন একটা উইন্ডো ওপেন হয়ে আউটপুট দেখাবে। পরে চাইলে এই নতুন উইন্ডোটা আমরা ক্লোজ করে দিতে পারি।

সহজ ভাষায় পাইথন ৩

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

results matching ""

    No results matching ""