The only way to learn a new programming language is by writing programs in it.
Dennis Ritchie
কম্পিউটার বা মেশিন মানুষের ভাষা বুঝতে পারে না। যদিও আমরা কম্পিউটার ব্যবহারের সময় বাংলা কিংবা ইংরেজিতে কাজ করি, কম্পিউটার মূলত অন্য একটি ভাষায় আমাদের কাজগুলোকে প্রসেস বা প্রক্রিয়া করে। আর সে ভাষাটি হল বাইনারি। বাইনারি হলো 2 ভিত্তিক সংখ্যা ব্যবস্থা। আমরা দৈনন্দিন জীবনে দশভিত্তিক সংখ্যাব্যবস্থা ব্যবহার করে থাকি। কিন্তু কম্পিউটার তার সুবিধার জন্য বাইনারিতে সকল কাজ করে। বাইনারিতে কেবল দুটি অংক 0 এবং 1 ব্যবহার করা হয়। এখানে এই দুটি অংক দ্বারা প্রতিটি বিটকে প্রকাশ করা হয়। কম্পিউটার হলো আসলে গণনা করার যন্ত্র। আমরা কম্পিউটার দিয়ে গান শুনি, ছবি আঁকি, গেম খেলি, যাই করি না কেন, এটি কেবল বোঝে বাইনারি অর্থাৎ 0 এবং 1 এর হিসাব। কম্পিউটার কিন্তু সব কাজই এই 0 এবং 1 এর গণনার সাহায্য করে থাকে।
কিন্তু বাইনারিতে কাজ করা মানুষের জন্য একটু কঠিন। তাই বিভিন্ন ধরনের প্রোগ্রামিং ল্যাঙ্গুয়েজের বা মেশিন ল্যাঙ্গুয়েজের সৃষ্টি হয়েছে। মানুষ প্রোগ্রামিং ল্যাঙ্গুয়েজগুলো ব্যবহার করে কম্পিউটারকে বিভিন্ন নির্দেশনা বা Instruction দেয়। প্রোগ্রামিং ল্যাংগুয়েজের কম্পাইলার Instruction-গুলোকে বাইনারিতে Compile করে কম্পিউটারের বোধগম্য করে তোলে। প্রোগ্রামিং শেখার প্রথম ধাপ হলো একটি প্রোগ্রামিং ল্যাঙ্গুয়েজের বেসিক কনসেপ্ট গুলো আয়ত্ত করা।
আমরা প্রোগ্রামিং ল্যাঙ্গুয়েজগুলোকে সাধারণ ভাষার সঙ্গে তুলনা করতে পারি। পার্থক্য শুধু এতটুকু যে, সাধারণ ভাষা ব্যবহার করে আমরা মানুষের সাথে মনের ভাব প্রকাশ করি। অপরদিকে, প্রোগ্রামিং ল্যাঙ্গুয়েজ ব্যবহার করে আমরা মেশিনগুলোর সাথে যোগাযোগ করি বা তাদেরকে বিভিন্ন ধরনের নির্দেশনা দেই। পৃথিবীতে ভাষার সংখ্যা সাড়ে তিন হাজারেরও বেশি। ভাষার মতো প্রোগ্রামিং ল্যাংগুয়েজেরও সংখ্যা অনেক বেশি। Wikipedia-র মতে, পৃথিবীতে প্রায় 700 টি প্রোগ্রামিং ল্যাঙ্গুয়েজ রয়েছে। কিছু জনপ্রিয় ও বহুল ব্যবহৃত প্রোগ্রামিং ল্যাংগুয়েজের নাম হল- পাইথন (Python), জাভাস্ক্রিপ (JavaScript), জাভা (Java), সি (C), সি++ (C++), সুইফট (Swift), পিএইচপি (PHP), রুবি (Ruby), সি-শার্প (C#), পার্ল (Perl) ইত্যাদি। এখনো কম্পিউটার বিজ্ঞানীরা নিত্যনতুন প্রোগ্রামিং ভাষা তৈরি করে যাচ্ছেন। প্রোগ্রামাররা এসব ভাষা ব্যবহার করে বিভিন্ন ধরনের প্রোগ্রাম লেখেন।
এখন চলো আমরা প্রোগ্রামিং ল্যাঙ্গুয়েজের প্রকারভেদ সম্পর্কে জেনে নিই। প্রোগ্রামিং ল্যাংগুয়েজগুলোকে কয়েকটি ভাগে ভাগ করা যায়। 1945 সাল থেকে শুরু করে এখন 2021 সাল পর্যন্ত যতগুলো প্রোগ্রামিং ল্যাঙ্গুয়েজ তৈরি হয়েছে, সেগুলোকে সর্বমোট পাঁচটি প্রজন্মের প্রোগ্রামিং ল্যাংগুয়েজে ভাগ করা যায়। প্রথম প্রজন্মকে বলা হয় মেশিন ল্যাঙ্গুয়েজ। একটা সময় ছিল যখন কেবল 0 এবং 1 অর্থাৎ বাইনারি ব্যবহার করে প্রোগ্রামিং করা হতো। 0, 1 ব্যবহার করে যে প্রোগ্রামিং করা হতো, তার জন্য যে ভাষা ব্যবহার করা হতো, তাকে বলে মেশিন ল্যাঙ্গুয়েজ। এরপর এল দ্বিতীয় প্রজন্মের এসেম্বলি ল্যাংগুয়েজ। এতে প্রোগ্রামাররা বিভিন্ন ইনস্ট্রাকশন যেমন: ADD, SUB, MUL, DIV, LOAD ইত্যাদি ব্যবহার করার সুযোগ পেল। তৃতীয় প্রজন্মকে বলা হয় হাই লেভেল ল্যাংগুয়েজ, চতুর্থ প্রজন্মের প্রোগ্রামিং ল্যাঙ্গুয়েজগুলোকে বলা হয় ভেরি হাই লেভেল ল্যাংগুয়েজ। আর বর্তমানে আমরা যে সকল প্রোগ্রামিং ল্যাঙ্গুয়েজ ব্যবহার করে প্রোগ্রামিং করে থাকি তার প্রায় প্রতিটিই হলো পঞ্চম প্রজন্মের প্রোগ্রামিং ল্যাঙ্গুয়েজ অর্থাৎ ন্যাচারাল ল্যাঙ্গুয়েজ।
এছাড়াও প্রোগ্রামিং ল্যাংগুয়েজকে দুই ভাগে ভাগ করা যায়। যেমন: High-level ল্যাংগুয়েজ এবং Low-level ল্যাংগুয়েজ। High-level ও low-level কথা দুটি দ্বারা ভালো কিংবা খারাপ প্রোগ্রামিং ল্যাংগুয়েজের কথা বলা হয়নি। low-level প্রোগ্রামিং ল্যাঙ্গুয়েজগুলো হার্ডওয়ার সম্পর্কিত। অর্থাৎ, মেশিন এই ল্যাঙ্গুয়েজগুলো ভালো বোঝে কিন্তু মানুষের বুঝতে কিছুটা সমস্যা হয়। অপরদিকে, High-level প্রোগ্রামিং ল্যাঙ্গুয়েজগুলো অত্যাধুনিক এবং মানুষের জন্য লিখা ও বোঝা সহজ। কিন্তু কম্পিউটার High-level প্রোগ্রামিং ল্যাঙ্গুয়েজ বুঝতে পারেনা। তাই কাজ করার সময় কম্পাইলার উক্ত High-level প্রোগ্রামটিকে কম্পাইল করে low-level প্রোগ্রামে নিয়ে যায়। এখন আমরা জানলাম প্রোগ্রামিং ল্যাঙ্গুয়েজ কি এবং এর প্রকারভেদ। এবার আমরা জানবো প্রোগ্রামিং ল্যাংগুয়েজের কার্যাবলী।
প্রোগ্রামিং এর সম্পূর্ণ কাজটিকে কয়েকটি অংশে ভাগ করা যায়। প্রথম অংশ হলো পরিকল্পনা করা অর্থাৎ কি বিষয়ে প্রোগ্রামটি হবে এবং কেমন হবে তা নির্বাচন করা। দ্বিতীয়ত আমাদের চিন্তা ভাবনা করে এবং যুক্তি ব্যবহার করে অ্যালগরিদম দাঁড় করাতে হবে। অর্থাৎ কাজটিকে ধাপে ধাপে বিন্যস্ত করা। এরপরের কাজটি হলো অ্যালগরিদম গুলোকে যেকোনো একটি প্রোগ্রামিং ভাষায় রূপান্তর করা, যাকে সাধারণত বলা হয় কোডিং করা। সকল প্রোগ্রামিং ল্যাঙ্গুয়েজ সব কাজের জন্য ব্যবহৃত হয় না। একেক ধরনের কাজের জন্য একেক ল্যাঙ্গুয়েজে কোডিং করা হয়। তাই আমরা এখন বেশ কিছু প্রোগ্রামিং ল্যাংগুয়েজের কার্যাবলীর ক্ষেত্রসমূহ সম্পর্কে জানব।
HTML
Html এর পূর্ণরূপ হলো হাইপারটেক্সট মার্কআপ ল্যাঙ্গুয়েজ। অনেকে HTML-কে প্রোগ্রামিং ল্যাঙ্গুয়েজ বলে ভুল করে বসে। কিন্তু HTML আসলে কোনো প্রোগ্রামিং ল্যাঙ্গুয়েজ নয়, এটি একটি মার্কআপ ল্যাংগুয়েজ, কেননা HTML-এ অন্যান্য প্রোগ্রামিং লাঙ্গুয়েজগুলোর মতো Conditionals তথা if -else statement এবং Loop কিংবা Function ব্যবহার করা যায় না। এটি ওয়েব ব্রাউজারে প্রদর্শিত বিভিন্ন পৃষ্ঠার মৌলিক কাঠামো এবং নকশা প্রণয়নের জন্য একটি স্ট্যান্ডার্ড মার্কআপ ল্যাঙ্গুয়েজ। আমরা প্রতিনিয়ত যে সকল ওয়েবসাইটে ঘুরে বেড়াই, তার সবগুলোর মৌলিক কাঠামো গড়ে উঠেছে Html এর সাহায্যে। ওয়েব ডেভেলপার হতে চাইলে তোমাদের অবশ্যই সর্বপ্রথম Html শিখতে হবে। আমাদের দেশে উচ্চ-মাধ্যমিক পর্যায়ে শিক্ষার্থীদের Html শেখানো হয়।
CSS
CSS এর পূর্ণরূপ হলো ক্যাসকেডিং স্টাইল শিট। এটিও Html এর মত কোনো প্রোগ্রামিং লাঙ্গুয়েজ নয়, বরং এটি একটি স্টাইল শিট লাঙ্গুয়েজ যা ওয়েবসাইটের নকশার কাজে ব্যবহৃত হয়। একটি ওয়েবসাইটের মৌলিক কাঠামো মূলত Html এর সাহায্যে তৈরি করা হয়, তারপর ওই ওয়েবসাইটটির নকশা করা হয় CSS এর সাহায্যে। তাই CSS-ও হলো ওয়েব ডেভেলপমেন্ট এর জন্য একটি অতি গুরুত্বপূর্ণ ল্যাঙ্গুয়েজ।
##JavaScript জাভাস্ক্রিপ্ট হলো বর্তমানে একটি অতি-জনপ্রিয় এবং বহুল ব্যবহৃত প্রোগ্রামিং ল্যাঙ্গুয়েজ। তার মূল কারণ হলো এটি Front-end এবং Back-end দুই কাজেই ব্যবহার করা যায়। এটি একটি High-level ল্যাংগুয়েজ এবং এটি Strongly-Typed। অর্থাৎ এখানে প্রতিটি অবজেক্টের টাইপ পূর্বে নির্ধারণ করে দিয়ে পরবর্তী কাজ করতে হয়। জাভাস্ক্রিপ্ট একটি Text-Based প্রোগ্রামিং ল্যাঙ্গুয়েজ যা ক্লায়েন্ট-সাইড এবং সার্ভার-সাইড উভয়ই ক্ষেত্রেই ব্যবহৃত হয় যা ওয়েবসাইটের পৃষ্ঠাগুলি ইন্টারেক্টিভ করতে সাহায্য করে। Html এবং CSS হলো এমন ভাষা যা ওয়েবসাইটের পৃষ্ঠাগুলিকে কাঠামো এবং স্টাইল দেয়, জাভাস্ক্রিপ্ট ওয়েব পৃষ্ঠাগুলিকে ইন্টারেক্টিভ উপাদান দেয় যাতে ব্যবহারকারী জড়িত থাকে। বর্তমানে প্রায় প্রতিটি ওয়েবসাইটেই ইন্টারেক্টিভ কনটেন্ট রয়েছে আর তাদের Interactivity-র পেছনের কাজ করে JavaScript বা PHP এর মতো স্ক্রিপ্টিং ল্যাঙ্গুয়েজ।
PHP
পিএইচপি হলো জাভাস্ক্রিপ্টের মতো আরো একটি স্ক্রিপ্টিং ভাষা যা বিশেষত ওয়েব বিকাশের সাথে জড়িত। PHP এর পূর্ণরূপ হলো হাইপারটেক্সট প্রিপ্রসেসর। জাভাস্ক্রিপ্টের মতো এটিও ওয়েবসাইটের পৃষ্ঠাগুলিকে ইন্টারেক্টিভ করতে ব্যবহৃত হয়। বর্তমানে পিএইচপি এর ব্যবহার কমে গেলেও পূর্বে ওয়েবসাইটগুলোকে ইন্টারেক্টিভ করতে ব্যাপক আকারে PHP ব্যবহার করা হতো এমনকি ফেসবুকের প্রাথমিক কোডিং গুলো করা হয়েছিল PHP তে।
Java
সবার প্রথমে বলে রাখি, Java এবং JavaScript দুটি সম্পূর্ণ ভিন্ন প্রোগ্রামিং ল্যাঙ্গুয়েজ। Java একটি class-based এবং object-oriented ল্যাঙ্গুয়েজ। সত্যি বলতে, যারা প্রোগ্রামিং-এর দুনিয়ায় নতুন, তাদের জন্য Java একটু কঠিন ল্যাঙ্গুয়েজ হলেও এটি অত্যন্ত শক্তিশালী ল্যাঙ্গুয়েজ এবং এর সাহায্যে প্রোগ্রামিং-এর প্রতিটি ক্ষেত্রেই কাজ করা যায়। আমরা যে সকল স্মার্টফোন ব্যবহার করি তার প্রায় প্রতিটিতেই রয়েছে অ্যান্ড্রয়েড সিস্টেম। অ্যান্ড্রয়েড সিস্টেম Java দিয়ে তৈরি।
SQL
SQL হলো একটি ডোমেন-নির্দিষ্ট ভাষা যা ডেটাবেজ ম্যানেজমেন্ট সিস্টেমে রাখা ডেটা পরিচালনা করার জন্য ব্যবহৃত হয়। এসকিউএল এর সাহায্যে ডেটাবেজের তথ্য সংরক্ষণ, বিন্যাস, প্রক্রিয়াকরণ এবং প্রয়োজন অনুসারে তথ্য সংগ্রহ করা হয়ে থাকে। যেহেতু প্রোগ্রামিং করার সময় আমাদের প্রতিনিয়ত বিভিন্ন ডেটা এবং ডেটাবেজ নিয়ে কাজ করতে হয়, তাই প্রত্যেক প্রোগ্রামারের এসকিউএল ল্যাঙ্গুয়েজের কিছু বেসিক ধারণা থাকা উচিত।
C
C হলো একটি পদ্ধতিগত কম্পিউটার প্রোগ্রামিং ল্যাঙ্গুয়েজ যা স্ট্রাকচার্ড প্রোগ্রামিং, Logical Variable Scope এবং Recursion সমর্থন করে। C প্রোগ্রামিং ল্যাঙ্গুয়েজটি অপারেটিং সিস্টেম, ল্যাঙ্গুয়েজ কম্পাইলার, নেটওয়ার্ক ড্রাইভার, ল্যাঙ্গুয়েজ ইন্টারপ্রেটার এবং সিস্টেম ইউটিলিটির ক্ষেত্রে ব্যাপকভাবে ব্যবহৃত হয়। পূর্বে C ল্যাঙ্গুয়েজ অত্যন্ত জনপ্রিয় হলেও বর্তমানে কঠিন স্ট্রাকচারের কারণে এর জনপ্রিয়তা কিছুটা হ্রাস পেয়েছে। আমাদের দেশে উচ্চ-মাধ্যমিক পর্যায়ে Html এর সাথে C ল্যাঙ্গুয়েজের কিছু বেসিক ধারণা শেখানো হয়। পৃথিবীতে বর্তমানে বহুল ব্যবহৃত অপারেটিং সিস্টেম হলো উইন্ডোজ। উইন্ডোজ-এর প্রাথমিক কোডিং করা হয়েছিল C প্রোগ্রামিং ল্যাঙ্গুয়েজে। এমনকি C++, C#, Python-সহ অনেক প্রোগ্রামিং ল্যাঙ্গুয়েজের ভিত্তি হলো C প্রোগ্রামিং ল্যাঙ্গুয়েজ অর্থাৎ এদেরও প্রাথমিক কোডিং করা হয়েছিল C এর সাহায্যে।
C++
C প্রোগ্রামিং ল্যাঙ্গুয়েজের এক্সটেনশন হিসেবে C++ ল্যাঙ্গুয়েজটি তৈরি করা হয়েছিল। সময়ের সাথে সাথে ভাষাটি উল্লেখযোগ্যভাবে প্রসারিত হয়েছে এবং আধুনিক C++ এর মধ্যে এখন low-level মেমোরি ম্যানিপুলেশন সুবিধা ছাড়াও Object-oriented, Generic এবং Functional বৈশিষ্ট্যও রয়েছে। বর্তমানে C++ ল্যাঙ্গুয়েজটি অনেক প্লাটফর্মে ব্যবহৃত হয় এবং এর জনপ্রিয়তাও অত্যন্ত বেশি। গেম ডেভেলপমেন্টে C++ এর ব্যবহার সর্বাধিক। এটি অত্যন্ত দ্রুতগতির প্রোগ্রামিং ল্যাংগুয়েজ হওয়ায় প্রতিযোগিতামূলক প্রোগ্রামিং-এ এটি জনপ্রিয়তার শীর্ষস্থান দখল করে আছে।
R
R স্ট্যাটিস্টিকাল কম্পিউটিংয়ের জন্য ব্যবহৃত একটি প্রোগ্রামিং ভাষা। পরিসংখ্যান-সংক্রান্ত কার্যাবলি এবং ডেটা বিশ্লেষণ ও বিকাশের জন্য পরিসংখ্যানবিদ এবং ডেটা মাইনারদের মধ্যে R ভাষাটি ব্যাপকভাবে ব্যবহৃত হয়। যারা নতুন প্রোগ্রামিং শিখতে চায়, তাদের জন্য R অনেক উপযোগী প্রোগ্রামিং ল্যাঙ্গুয়েজ। এর গঠনশৈলী অত্যন্ত সাবলীল। ডাটা সাইন্সে R ব্যাপক আকারে ব্যবহৃত হয়। তবে ডাটা সাইন্সে সবথেকে জনপ্রিয় প্রোগ্রামিং ল্যাঙ্গুয়েজ হচ্ছে Python.
Python
পাইথন একটি ডাইনামিক প্রোগ্রামিং ল্যাঙ্গুয়েজ যেটি জয় করেছে গুগল, ড্রপবক্স, ইনস্টাগ্রাম, ফেসবুক, অ্যামাজন, অ্যাপল ও মাইক্রোসফটসহ অনেক বড় বড় প্রতিষ্ঠান প্রকৌশলীর হৃদয়। এটি বর্তমানে সবচেয়ে জনপ্রিয় এবং বহুল ব্যবহৃত object-oriented প্রোগ্রামিং ল্যাঙ্গুয়েজ। এটিও জাভাস্ক্রিপ্টের মতো Strongly-Typed অর্থাৎ এখানে প্রতিটি অবজেক্টের টাইপ পূর্বে নির্ধারণ করে দিয়ে পরবর্তী কাজ করতে হয়। এটি একটি High-Level প্রোগ্রামিং ল্যাঙ্গুয়েজ যা মূলত Back-end এর কাজে ব্যবহৃত হয়। পাইথন এমন একটি ভাষা যার গঠনশৈলী অনন্য এবং প্রকাশভঙ্গি অসাধারণ। চমৎকার এই ল্যাঙ্গুয়েজটি তাই আজ ছড়িয়ে পড়েছে নানাদিকে- ওয়েব, ডেক্সটপ, মোবাইল, সিস্টেম অ্যাডমিনিস্ট্রেশন, ইথিক্যাল হ্যাকিং, গেম ডেভেলপমেন্ট, ক্লাউড কম্পিউটিং কিংবা আর্টিফিশিয়াল ইন্টেলিজেন্স এবং মেশিন লার্নিং - সর্বত্রই পাইথনের দৃপ্ত পদচারণা।
আরো নির্দিষ্ট করে বলতে গেলে Django, Flask, Tornado, Beautiful Soap, Requests, Web2py ইত্যাদি ফ্রেমওয়ার্ক এর মাধ্যমে ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্ট করতে চাইলে পাইথন জানা আবশ্যক। আবার গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI) সমৃদ্ধ সফটওয়্যার ডেভেলপমেন্ট এর জন্য পাইথন প্রোগ্রামিং এর জ্ঞানকে ব্যবহার করা যাবে এর PyQT মতো টুলকিট ও Tkinter এর মতো প্যাকেজ এর সাথে। এর সাথে আরো আছে Selenium ও Kivy-এর মতো লাইব্রেরি।
বর্তমানে বহুল আলোচিত এবং ভবিষ্যতের প্রযুক্তির ভিত্তি আর্টিফিশিয়াল ইন্টেলিজেন্স এবং মেশিন লার্নিং, সর্বোপরি ডাটা সাইন্স নিয়ে কাজ করতে চাইলে পাইথন হতে পারে নির্দ্বিধায় প্রথম পছন্দের প্লাটফর্ম। কারণ Scikit-learn এর মতো মেশিন লার্নিং লাইব্রেরী, Tensor Flow, Keras ও PyTorch-এর এর মতো ডিপ-লার্নিং লাইব্রেরী, Pandas এর মতো ডাটাফ্রেম ও ডাটা বিশ্লেষণের লাইব্রেরী, Numpy ও Scipy এর মতো ক্যালকুলেশন লাইব্রেরী, Matplotlib এর মতো গ্রাফিক্যাল ও ডেটা Visualization সবই আছে তার পাইথনের জন্য।
কেউ ইন্টার্নেট অফ থিংস বা IOT নিয়ে কাজ করতে চাইলে রাসবেরি-পাই, আরডুইনো এবং এরকম হার্ডওয়ার প্ল্যাটফর্মগুলোর সাথে পাইথনের কম্বিনেশন হতে পারে চমৎকার। আর গেম ডেভেলপমেন্ট এর জন্য পাইথনের Pygame, PyKyra, PyOpenGL লাইব্রেরীগুলো প্রচুর ব্যবহৃত হয়। তোমরা চাইলে Turtle বা Manim লাইব্রেরীর সাহায্যে এনিমেশনও তৈরি করতে পারো। আর তোমরা শুনে খুবই খুশি হবে যে, নতুনদের জন্য পাইথন খুবই সহজ একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ। তাছাড়া বর্তমানে পাইথন ডেভেলপারদের চাহিদা প্রযুক্তিখাতে অনেক বেশি। এখন তোমরা এখন বিভিন্ন প্রোগ্রামিং ল্যাঙ্গুয়েজ সম্পর্কে বিস্তারিত জেনে নিলে। এবার তোমাদের যেকোনো একটি প্রোগ্রামিং ল্যাঙ্গুয়েজের কিছু বেসিক ধারণা শিখে নিতে হবে। কোনো একটি প্রোগ্রামিং ল্যাঙ্গুয়েজের বেসিক শিখে নিলে, যেকোনো সময় সুবিধা অনুযায়ী অন্য ল্যাঙ্গুয়েজে খুব সহজেই Switch করা যায়।
If you like this article, please share it with your friends and follow our community on social platforms to get notified about our latest activities, events, and articles.
An article by The AS8 Organization
Credits:
- Research, Content Writing & Cover Image - Ahammad Shawki
- Editing - Arko Chowdhury