নতুন প্রোগ্রামিং ল্যাঙ্গুয়েজ , নতুন লেখক এবং নতুন সিরিজ !
কাদের জন্য ?
যারা সি/সি++/ জাভা অথবা যেকোন প্রোগ্রামিং ল্যাঙ্গুয়েজে ইন্টারমিডিয়েট লেভেল ভালো মতো কভার করতে পেরেছে এবং নতুন চ্যালেঞ্জ কে যারা ভয় পায় না তাঁদের জন্য এই সিরিজ ।
কেন নতুন ল্যাঙ্গুয়েজ শিখবো ?
তোমরা কখনো “the100mileman (জেসে ইটসলের) ” এর নাম শুনেছ ? এই ভদ্রলোক তার ২৫ বছরের চাকরী জীবনে একবারের জন্যেও অফিস মিস দেন নি । মজার ব্যাপার হলো এর পরেও তিনি একজন “Navy SEAL” কে হায়ার করেছিলেন তার রুটিন ঠিক করে দেয়ার জন্য । এই নিয়ে তিনি একটি বই ও লিখেছিলেন “Living with a SEAL: 31 Days Training with the Toughest Man on the Planet” । বেশ মজার একটা বই । যে মানুষ টা তার নিজের কাজ এতোটা ভালো মতো করতে পারে , তারপরও শুধু নিজেকে আরো পরিণত করার জন্য সে নতুন ভাবে , নতুন আঙ্গিকে একই কাজটা শিখতেছে !
ইংরেজিতে একটা প্রবাদ আছে “If all you have is a hammer, everything looks like a nail” – যার বাংলা করলে দাঁড়ায় ” যখন তোমার হাতে হাতুড়ী থাকবে , তখন বাকী সব তোমার কাছে পেরেক এর মতো লাগবে” । তার মানে হচ্ছে, যখন আমি একটাই মাত্র টুল নিয়ে কাজ করবো তখন আমার চিন্তা থাকবে সব কাজেই কিভাবে এই একটা টুল কাজে লাগানো যায় । কিন্তু এইটা আসলেই ভালো কোন সল্যুশন না ।আবার এমন ও না যে প্রতিটা কাজের জন্য আমরা নতুন নতুন ল্যাঙ্গুয়েজ শিখতে থাকবো ! ভিন্ন ভিন্ন প্রোগ্রামিং ল্যাঙ্গুয়েজ একই সমস্যা কে ভিন্ন ভিন্ন ভাবে সমাধান করতে পারে । সবারই আলাদা আর্কিটেকচার ,প্রয়োগ ভিন্নতা আছে । এই ভিন্নতা ব্যবহারে আমাদের “চিন্তা” এর ক্ষেত্রটা আরো বড় হবে, পারদর্শিতা বাড়বে এবং অবশই প্রোডাক্টিভিটি বাড়বে ।
আর কেনইবা এই Go শিখবো ?
এর ব্যাখ্যা আমি আস্তে আস্তে প্রতিটা পর্বে বলবো । এখন আমরা Go এর সাথে পরিচিত হই ।
Go -কে “Golang” নামেও ডাকা হয় । ২০০৭ সালে প্রথম গুগলের একটা ছোট টিম এই ওপেন সোর্স প্রজেক্ট এর উপর কাজ শুরু করে । ২০১২ সালে Go এর প্রথম ভার্সন রিলিজ হয় । গুগল তাঁদের নিজেদের প্রোডাক্ট এর জন্য সাধারণত সি++,পাইথন কিংবা জাভা ব্যবহার করে । এই ল্যাঙ্গুয়েজগুলা নিজেদের ক্ষেত্র গুলাতে বেশ ভালো কাজ করতে পারে, কিন্তু এই ল্যাঙ্গুয়েজ গুলার কোনটাতেই বাকী ল্যাঙ্গুয়েজ গুলার মিক্স ক্যারাক্টারেসটিক ছিল না যেটা গুগলের দরকার ছিল । এইজন্যই গুগল তাঁদের নিজেদের একটা প্রোগ্রামিং ল্যাঙ্গুয়েজ বানালো যার নাম দেওয়া হলো Go ।
Go এর প্রথম যে জিনিশ টা সামনে আসবে সেটা হইলো , Go হচ্ছে ” fully compiled ” ল্যাঙ্গুয়েজ , তারমানে Go এ লিখা কোড সি++ লিখা কোড এর মতো ভালো পারফরম এবং মেমোরি প্রোফাইলিং করতে পারবে । Go এর সিনট্যাক্স , ফরম্যাট খুবই সহজ এবং ব্যবহার করতে যেন মজা পাওয়া যায় , ঐরকম ভাবে রাখা হয়েছে । এই ধারনা টা নেওয়া হয়েছে পাইথন থেকে । Go ল্যাঙ্গুয়েজে মাত্র ২৫টা keyword রাখা হয়েছে , যেখানে জাভার আছে ৫০ টা keyword । Go এর জনপ্রিয়তার সবচেয়ে বড় কারণ এর “Concurrency” ধারণার কারণে । যেসব প্রোগ্রামার সিঙ্গেল থ্রেডেড স্ক্রিপ্টিং ল্যাঙ্গুয়েজ যেমন – নোডজেএস(NodeJS) , রুবি (Ruby), পাইথন অথবা যারা সি++/জাভার মতো ভারী থ্রেডের মডেল নিয়ে কাজ করেছে তাঁদের কাছে Go এর Communicating sequential processes কিংবা আরও সহজ ভাবে বললে Actor model অনেক বেশি আকর্ষণীয় । এই ধারণা গুলো আমরা আরো বিস্তর ভাবে আলাপ করবো । এখন চলো আমরা প্রথম Go প্রোগ্রামটা লিখে ফেলি –
কোডটা রান করলেই “Hello, Shoshikkha” প্রিন্ট করে দেখাবে 😀
আজকের মতো এইখানেই শেষ । এর পরের পর্বে আমরা উপরের কোডটা কিভাবে কাজ করছে সেটা নিয়ে আলোচনা করবো , নিজেদের কম্পিউটার এ কিভাবে Go সেটআপ করে সেটা দেখবো এবং Go এর ডাটা টাইপ গুলো নিয়ে আলোচনা করবো !