মেককোডের মাধ্যমে জাভাস্ক্রিপ্ট এর বেসিক শিখুন!



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

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



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

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





এছাড়াও মেককোডে ফিজিক্যাল কম্পিউটিং এর জন্য কিছু বোর্ড সাপোর্ট সিস্টেম রয়েছে। এদের মধ্যে BBC micro:bit, Adafruit's Circuit Playground Express, the Chibi Chip, SparkFun's SAMD21 dev board ইত্যাদি রয়েছে। তবে এদের মধ্যে অধিকাংশ বোর্ডগুলোই বেটা সিস্টেমে রয়েছে। আর তাদের মধ্যে micro:bit হচ্ছে বেস্ট সার্পোটেড বোর্ড। এই ক্ষুদ্রাকৃতির পাওয়ারহাউস ধরণের বোর্ডে রয়েছে ৫x৫ এলইডি ম্যাট্রিক্স, বিল্ট ইন এক্সেলোমিটার (শেইক এন্ড মুভমেন্ট), ম্যাগনেটোমিটার (কম্পাস এন্ড মেটাল ডিটেক্টর), দুটি বাটন, লাইট এন্ড টেম্পেচার সেন্সর এবং ব্লু-টুথ লো এনার্জি রেডিও! এই সকল জিনিস দিয়ে অনেক ধরণের প্রজেক্ট বানানো যেতে পারে!

কোড তৈরি করা:



তো চলুন এবার টেস্টে নামা যাক! প্রথমে makecode.com সাইটে চলে যান এবং যে ধরণের বোর্ড আপনি ব্যবহার করতে চান সেটি সিলেক্ট করে নিন। এই টিউনে আমি উদাহরণ স্বরুপ micro:bit বোর্ডকে ব্যবহার করে দেখাবো। নতুন প্রজেক্ট ওপেন করা হলে আপনার সামনে একটি সহজবোধ্য ইন্টারফেস চলে আসবে যেখানে বামে আপনি একটি simulated dev board, মাঝখানে কমান্ড লিস্ট এবং ডানে প্রথম দুটি ব্লক সমৃদ্ধ একটি কোড উইন্ডোজ আসবে। এই দুটি স্টার্টআপ ব্লকগুলো যারা আগে যদি কখনো কোনো Arduino প্রোগ্রামিং করে থাকেন তাহলে তার সাথে এগুলোর হালকা মিল খুঁজে পেতে পারেন। এখানে “Start" এবং “Forever" হচ্ছে মেককোডের “Start" এবং "Loop" এর সাংস্কৃতিক ভাষা। যেকোনো এপ্লিকেশনের বেইস হলো এই দুটি ফাংশন। “start" ব্লকে কোনো কোড প্রবেশ করানো হলে উক্ত কোডটি ডিভাইসটি চালু করার সময়, রিস্টার্ট হবার সময় কিংবা রিসেট হবার সময় execute হবে। এই পদ্ধতিতে আপনার জন্য একবার ব্যবহারের উদ্দেশ্যে কোড প্রদান করা সহজ হয়ে যাবে। আর এর পরবর্তী ব্লক “Forever" এর কোডগুলো ডিভাইসটি চলমান অবস্থায় একের পর এক পুনরায় ভাবে চলতে থাকবে। আর এটি ডিভাইসটি বন্ধ হবার পর কোডিং বন্ধ হয়ে যাবে।




এই দুটি ব্লকে কোড যুক্ত করা হলো ড্রাগ এন্ড ড্রপ এর মতোই সহজ। কোড উইন্ডো এবং সিমুলেশনের মাঝে আপনি এপ্লিকেশন তৈরি করার জন্য যাবতীয় কমান্ড লিস্ট পাবেন। এই কমান্ড লিস্ট গুলো বিভিন্ন বিভাগে ভাগ করা থাকবে। যেমন micro:bit বোর্ডের কমান্ড লিস্টগুলো Basic, Input, Music, LED, Radio, Loops, Logic, Variables, Math ইত্যাদি বিভাগে ভাগ করা রয়েছে। এগুলোকে আপনি আপনার নিজের প্রয়োজন অনুযায়ী এক্সপ্লোর করে নিয়েন। তবে আপনি যদি আপনার পছন্দসই কোডটি গ্রুপ বিভাগে খুঁজে না পান তাহলে “more“ অপশনে ক্লিক করতে ভূলবেন না যেন!





এছাড়াও micro:bit এ আপনি LED array তে বিভিন্ন উপয়ে একসেস করে বহু কাজ বের করে নিতে পারবেন। আপনি প্রতিটি LED কে আলাদা করে টুগেল করা ছাড়াও এদের মেট্রিক্স জুড়ে আপনি ফুল ওর্য়াডস, সেনটেন্স এবং আইকনও শো করতে পারবেন। এ সবকিছুই আপনি বাফার ক্রিয়েট কিংবা প্রতিটি LED আলাদা ভাবে কনট্রোল করা ছাড়াই করতে পারবেন।

ব্লকগুলোকে স্ট্যাক করা:



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

পরিশিষ্ট:



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

Comments