Skip to main content

Programming with Python 01: শুরুর আগের কথামালা

একটি নৈবর্ক্তিক প্রশ্নঃ
হাই গুড পিপল, হ্যা আপনাদেরই বলছি। যারা পাইথনে একেবারে নতুন। কি মনে হচ্ছে আপনাদের, পাইথন জিনসটা কি? চলেন আপনাদের কিছু অপশন দেইঃ
পাইথন একটাঃ
  1. সাপ।
  2. একটা সার্কাস দল।
  3. একটা প্রোগ্রামিং ল্যাঙ্গুয়েজের নাম।
  4. উপরের সবকটি।
এরকম প্রশ্নের উত্তর না জানা থাকলে আমরা ছোটবেলা থেকেই "উপরের সবকটি" আপশনটা দাগিয়ে আসি। হলে হবে না হলে নাই। যাই হোক, যদি আন্দাজে "উপরের সবকটি" অপশন বাছাই করে থাকেন তাহলে কংগ্রেচুলেশন্স! আপনার উত্তর সঠিক!
তবে আমার ব্লগে আমি যা আলোচনা করব তা হচ্ছে পাইথন প্রোগ্রামিং ল্যাঙ্গুয়েজ। যেটা শিখতেই আসলে আপনারা এখানে এসেছেন। চলেন তার আগে একটু ইতিহাস ঘেটে আসি...

গুগল থেকে কপি করা ছবি

Python-এর ইতিহাস...
প্রোগ্রামিং ভাষার নাম পাইথন এসেছে সাপ থেকে নয়, যদিও Mark Lutz এর পাইথনের উপর বইটিতে কভার পেজে সাপেরই ছবি দেয়া। জানিনা ভদ্রলোকের কি খেয়াল। যাই হোক, মূলত পাইথন নামটি এসেছে একটি সার্কাস+কমেডি দলের শো এর নাম থেকে। মন্টি পাইথন বা দ্যা পাইথন্স নামক একটা সার্কাস দলের দ্বারা পরিচালিত টিভি শো "Monty Python's Flying Circus" থেকে ইউরেকা নিয়ে ১৯৯১ সালে ডাচ প্রোগ্রামার Guido van Rossum পাইথন প্রোগ্রামিং ভাষার মোরক উন্মোচন করেন। যাত্রা শুরু হয় পৃথিবীর অন্যতম সহজ এবং শক্তিশালী প্রোগ্রামিং ল্যাঙ্গুয়েজ, পাইথনের।
যদি ইতিহাস নিয়ে আরও ঘাটাঘাটির ইচ্ছে থাকে তাহলে গুগল মামা তো আছেই! সব কিছুর শেষ সমাধান, আমাদের গুগল মামা

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

Python কেন শিখব?
এটা একটা জাতীয় প্রশ্ন। আর প্রশ্ন থাকাটাই স্বাভাবিক। আপনি একটা জিনিস শিখবেন তার পেছনে আমি মনে করি দুটো জিনিস জানা বাধ্যতামূলকঃ
  • আপনার সেই বিষয়টির উপর প্যাশন আছে কি না।
  • জিনিসটা শেখার পর আউটপুট ভালো আসবে কি না।
যদিও প্রথম পয়েন্টটাই মুখ্য। যাই হোক, Python হচ্ছে একটা ওপেন সোর্স ল্যাঙ্গুয়েজ। ওপেন সোর্স কনসেপ্টটা যদি ক্লিয়ার না থাকে তাহলে একটু বলি, ওপেন মানে উন্মুক্ত আর সোর্স মানে সৃষ্টি বা উৎপত্তিস্থল। ওপেন সোর্স কোন প্রোডাক্ট-এর সোর্স কোড থাকে উন্মুক্ত। চাইলে আপনি নিজেও নিজের মতন করে সেগুলো ডেভেলপ করতে পারেন। অনেকের ধারণা ওপেন সোর্স মানে ব্যাবহারে টাকা পয়সা লাগেনা। ব্যাপারটা সম্পুর্ন সত্য না। অনেক ওপেন সোর্স প্রোডাক্ট পে করে ব্যাবহার করতে হয়। তবে এটা ঠিক, পাইথন ব্যাবহারে কোন টাকা পয়সা লাগে না। হাহা! বরং পাইথন ওপেন সোর্স হওয়াতে প্রতিনিয়ত পৃথিবীর বড় বড় প্রোগ্রামারগণ পাইথনের ডেভেলপে কাজ করে যাচ্ছেন, নতুন নতুন লাইব্রেরি আর ফ্রেমওয়ার্ক বানিয়ে যাচ্ছেন। অন্যান্য প্রোগ্রামিং ল্যাঙ্গুয়েজের তুলনায় পাইথনের সিনট্যাক্স অনেক বেশি সহজ। পাইথন দিয়ে কি না করা যায়! সাধারণ শিক্ষাতে পাইথনের কদর তুঙ্গে। পাইথন এখন Programming Contest Language হিসেবে বিভিন্ন অনলাইন জাজে ব্যাবহার করা হয়। তাছাড়া অনেক বিশ্ববিদ্যালয়ের কারিকুলামেও ইদানিং পাইথনের ব্যাবহার হচ্ছে। চলুন দেখি পাইথনের অন্যান্য কিছু কাজ এবং কিছু টুলকিট ও ফ্রেমওয়ার্কের নামঃ
  • ওয়েব ডেভেলপমেন্টঃ Django, Pyramid, Flask ইত্যাদি।
  • ডেটা সাইন্স এবং নিউমেরিক ক্যালকুলেশনঃ SciPy, Pandas, IPython ইত্যাদি।
  • ডেস্কটপ এপ্লিকেশনঃ WxWidgets, Kivy, Qt ইত্যাদি।
  • সফটওয়্যার ডেভেলপমেন্টঃ SCons, Buildbot, Roundup ইত্যাদি।
  • গেম ডেভেলপমেন্টঃ PyGames
  • ই-কমার্স সিস্টেম ম্যানেজমেন্টঃ Oodo, Tryton ইত্যাদি।
তো কেন শিখবেন না পাইথন? নিজের পছন্দের যায়গাটুকু খুঁজে নিন পাইথনের সাথে।
Happy Coding!



Comments

Popular posts from this blog

How to Read Research Papers - কীভাবে রিসার্চ পেপার পড়া যেতে পারে

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