নতুন প্রোগ্রামিং ল্যাঙ্গুয়েজ , নতুন লেখক এবং নতুন সিরিজ  !

Gopher

Gopher

কাদের জন্য ?

যারা সি/সি++/ জাভা অথবা যেকোন প্রোগ্রামিং ল্যাঙ্গুয়েজে ইন্টারমিডিয়েট লেভেল ভালো মতো কভার করতে পেরেছে এবং নতুন চ্যালেঞ্জ কে যারা ভয় পায় না  তাঁদের জন্য এই সিরিজ ।

কেন নতুন ল্যাঙ্গুয়েজ শিখবো ?

তোমরা কখনো “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 এর ডাটা টাইপ গুলো নিয়ে আলোচনা করবো !