Lesson পড়তে ৫ মিনিট লাগবে

সি# (C#) কেন শিখবেন?

গেম, এন্টারপ্রাইজ অ্যাপ এবং এর মাঝের সবকিছু — .NET এর শক্তিতে

মাইক্রোসফটের সবচেয়ে বড় গোপন হাতিয়ার (যা সবাই ব্যবহার করে)

সি# (C# - উচ্চারণ 'সি শার্প') হলো জাভার বিপরীতে মাইক্রোসফটের জবাব — এবং অনেক দিক দিয়ে এটি এর উন্নত সংস্করণ (better version) হয়ে উঠেছে। ২০০০ সালে অ্যান্ডারস হেজলসবার্গ (Anders Hejlsberg — যিনি টাইপস্ক্রিপ্ট এবং টার্বো প্যাসকেলেরও পেছনের কারিগর) কর্তৃক নির্মিত এই ভাষাটি প্রথম দিন থেকেই শক্তিশালী, চমৎকার এবং আধুনিক হিসেবে ডিজাইন করা হয়েছিল।

তবে মজার ব্যাপার হলো: সি# এখন আর কেবল একটি "মাইক্রোসফট ভাষা" নয়। .NET ওপেন সোর্স এবং ক্রস-প্ল্যাটফর্ম হওয়ার কারণে সি# এখন উইন্ডোজ, ম্যাক, লিনাক্স, আইওএস, অ্যান্ড্রয়েড এবং এমনকি ওয়েবঅ্যাসেম্বলি (WebAssembly) ব্যবহার করে ব্রাউজারেও চলে। আর হ্যাঁ — এটি হলো পৃথিবীর সবচেয়ে জনপ্রিয় গেম ইঞ্জিন ইউনিটি (Unity)-এর মূল ভাষা।

ইউনিটি (Unity) ইফেক্ট

আপনি যদি গেম তৈরির স্বপ্ন দেখে থাকেন, তবে সি# (C#) হলো আপনার সেই জগতে প্রবেশের টিকিট। ইউনিটি (Unity) — হলোো নাইট (Hollow Knight), কাপহেড (Cuphead), পোকেমন গো (Pokémon Go), অ্যামং আস (Among Us) এবং আরও হাজার হাজার গেমের পেছনের ইঞ্জিন — স্ক্রিপ্টিং ভাষা হিসেবে সি# ব্যবহার করে। সব মোবাইল গেমের ৫০%-এরও বেশি গেম এবং বড় সংখ্যক ইনডি এবং ভিআর (VR) গেম ইউনিটি ব্যবহার করে তৈরি করা হয়।

সি# শেখা মানে শুধু গেম ডেভের দরজা খোলাই নয় — বরং இது আপনাকে তার মাস্টার কি (master key) ধরিয়ে দেয়।

হ্যালো ওয়ার্ল্ড — পরিচ্ছন্ন এবং আধুনিক

// C# 12 — টপ-লেভেল স্টেটমেন্টস, কোনো বয়লারপ্লেট (boiler-plate) দরকার নেই
string playerName = "Alex";
int score = 42;
bool isAlive = true;
Console.WriteLine($"Player: {playerName}");
Console.WriteLine($"Score: {score}");
Console.WriteLine($"Alive: {isAlive}");
Output
Player: Alex
Score: 42
Alive: true

সি# দিয়ে আপনি কী বানাতে পারবেন?

  • গেমস — মার্কেট শেয়ারের দিক থেকে ইউনিটি ১ নম্বর গেম ইঞ্জিন। সি# হলো এর প্রধান ভাষা।
  • ওয়েব অ্যাপ্লিকেশন — ASP.NET কোর (Core) অত্যন্ত দ্রুত, আধুনিক এবং পারফরম্যান্স বেঞ্চমার্কে Node.js এর সাথে পাল্লা দেয়।
  • ডেস্কটপ অ্যাপস — ক্রস-প্ল্যাটফর্ম ডেস্কটপ অ্যাপ্লিকেশনের জন্য ডব্লিউপিএফ (WPF), উইনইউআই (WinUI) এবং মাউই (MAUI)।
  • মোবাইল অ্যাপস — .NET MAUI (আগে যার নাম ছিল জ্যামারিন বা Xamarin) মাত্র একটি সি# কোডবেস দিয়ে নেটিভ আইওএস এবং অ্যান্ড্রয়েড অ্যাপ তৈরি করতে পারে।
  • ক্লাউড ও মাইক্রোসার্ভিসেস — অ্যাজিউর ফাংশনস (Azure Functions), জিআরপিসি (gRPC) সার্ভিস এবং এন্টারপ্রাইজ এপিআই (API)।
  • এআর/ভিআর (AR/VR) — হোলোলেন্স (HoloLens) ডেভেলপমেন্ট সি# এবং ইউনিটির মাধ্যমেই হয়। মেটা কোয়েস্টের ভিআর গেমগুলোও এতে তৈরি হয়।
  • এন্টারপ্রাইজ সফটওয়্যার — ব্যাংক, স্বাস্থ্যসেবা ব্যবস্থা এবং বিভিন্ন সরকারি প্ল্যাটফর্ম।

একটি আধুনিক, প্রতিনিয়ত উন্নত হওয়া ভাষা

সি# (C#) খুব দ্রুত নিজেকে উন্নত করে — প্রতি বছর আসলেই কাজে লাগে এমন সব নতুন ফিচার নিয়ে এর নতুন সংস্করণ বের হয়। এটি কিছু এন্টারপ্রাইজ ভাষার মতো অতীতে আটকে নেই। সাম্প্রতিক সংযোজনগুলোর মধ্যে রয়েছে:

  • টপ-লেভেল স্টেটমেন্টসclass Program { static void Main() { } } এর মতো বিশাল বয়লারপ্লেট কোড লেখার দিন শেষ।
  • রেকর্ডস (Records) — এক লাইনেই ইমিউটেবল (immutable) ডেটা টাইপ তৈরি করা যায়।
  • প্যাটার্ন ম্যাচিং — সুইচ এক্সপ্রেশন (Switch expressions) যা ম্যাজিকের মতো কাজ করে।
  • নালঅ্যাবল (Nullable) রেফারেন্স টাইপস — সম্ভাব্য নাল (null) ক্র্যাশের বিষয়ে কম্পাইলার আপনাকে আগেভাগেই সতর্ক করে দেয়।
  • লিংক (LINQ) — কোনো ডেটাবেসের মতোই কালেকশনগুলোর মধ্যে খোঁজা যায়। একবার লিংক (LINQ) ব্যবহার করলে আপনি আর কখনও পেছনে ফিরে যেতে চাইবেন না।

লিংক (LINQ) — ডেটাবেসের মতো যেকোনো কিছু খুঁজুন

int[] scores = { 85, 92, 47, 73, 95, 61, 88 };
// 80 এর ওপরের সব স্কোর খুঁজে বের করা, এবং বড় থেকে ছোট আকারে সাজানো
var topScores = scores
.Where(s => s > 80)
.OrderByDescending(s => s)
.ToList();
foreach (var s in topScores)
Console.Write(s + " ");
Output
95 92 88 85
Note: ওপর ওপর দেখলে সি# এবং জাভা দেখতে অনেকটা একই রকম লাগে — এবং আসলে এভাবেই এদের ডিজাইন করা হয়েছিল। জাভা থেকে ব্যাপকভাবে অনুপ্রাণিত হয়ে সি# এর জন্ম। কিন্তু ল্যাঙ্গুয়েজ ফিচারের দিক থেকে সি# জাভাকে ছাড়িয়ে গেছে: প্রপার্টিজ, ইভেন্টস, লিংক (LINQ), অ্যাসিনক/অ্যাওয়েট বা async/await (যা সি# তে জাভার কয়েক বছর আগেই ছিল), প্যাটার্ন ম্যাচিং এবং ভ্যালু টাইপের কারণে সি# এর প্রকাশক্ষমতা অনেক বেশি।

সি# এ ক্যারিয়ার বা জবের বাজার

দুটি বিশাল ইন্ডাস্ট্রিতে সি# ডেভেলপারদের অনেক চাহিদা রয়েছে:

  • গেম ডেভেলপার — এক্ষেত্রে ইউনিটি হলো আদর্শ। আপনি যদি গেম তৈরি করতে চান, তবে সি# শিখুন।
  • ব্যাকএন্ড / ফুল-স্ট্যাক ডেভেলপার — এন্টারপ্রাইজ এপিআই তৈরির ক্ষেত্রে ASP.NET Core শীর্ষ পছন্দের একটি।
  • এন্টারপ্রাইজ ডেভেলপার — মাইক্রোসফট ব্যবহারকারী সব কোম্পানি (যাদের সংখ্যা বিশাল) C#/.NET এর ওপর নির্ভর করে।
  • ক্লাউড ইঞ্জিনিয়ার — অ্যাজিউর (Azure) দারুণভাবে সি# সমর্থন করে। যেমন, অ্যাজিউর ফাংশনস (Azure Functions), কসমস ডিবি (Cosmos DB) ইত্যাদি।
  • এক্সআর (XR) ডেভেলপার — ইউনিটি ও সি# ব্যবহার করে এআর/ভিআর (AR/VR) ডেভেলপমেন্ট এখন বেশ সম্ভাবনাময় একটি ক্ষেত্র।

কারা সি# ব্যবহার করে?

  • মাইক্রোসফট — স্বাভাবিকভাবেই! অ্যাজিউর, ভিজ্যুয়াল স্টুডিও এবং তাদের নিজস্ব বিভিন্ন টুলের জন্য।
  • ইউনিটি টেকনোলজিস — গেমিং ইন্ডাস্ট্রির অর্ধেক যার ওপর নির্ভরশীল।
  • স্ট্যাক ওভারফ্লো (Stack Overflow) — সি# এবং ASP.NET দিয়ে তৈরি করা।
  • জিই হেলথকেয়ার (GE Healthcare) — মেডিকেল ইমেজিং এবং রোগ নির্ণয়ের সফটওয়্যারের জন্য।
  • অ্যাকসেঞ্চার ও ডেলয়েট (Accenture & Deloitte) — এন্টারপ্রাইজ কনসালটিং প্রতিষ্ঠানগুলো .NET দিয়ে কাজ করে।
  • হাজার হাজার গেম স্টুডিও — ইউনিটি ব্যবহার করা ইনডি ডেভেলপার থেকে শুরু করে বড় বাজেটের (AAA) স্টুডিও পর্যন্ত।

ছোট কুইজ

কোন গেম ইঞ্জিন স্ক্রিপ্টিংয়ের জন্য প্রাথমিক ভাষা হিসেবে সি# (C#) ব্যবহার করে?

পড়া চালিয়ে যান

Variables & Data Types