রুবি প্রোগ্রামিং ল্যাঙ্গুয়েজের অনেক প্র্যাকটিক্যাল ব্যবহার রয়েছে।
কিন্তু বিষয়টি হলো…
অনেক মানুষ রুবির প্রতি আকৃষ্ট হয় রুবি অন রেলসের কারণে। রেলস একটি ফ্রেমওয়ার্ক। একটি ফ্রেমওয়ার্ক হলো টুলসের একটি সেট যা আপনাকে ওয়েবসাইট বা ওয়েব অ্যাপ্লিকেশন বানাতে সহজ ও দ্রুত করে, স্ক্র্যাচ থেকে শুরু করার চেয়ে।
এটিঠিক আছে।
কিন্তু রুবি নিজে একটি সুন্দর প্রোগ্রামিং ল্যাঙ্গুয়েজ, এবং আপনি এর সাথে কিছু সময় বিতাতে পারলে আপনি এর সাথে ভালোবাসা করবেন!
এখন প্রশ্ন হলো…
কি রুবি রেলস যা করতে পারে সেটির সাথে সীমাবদ্ধ?
না!
একদম নয়।
রুবি একটি জেনারেল প্রোগ্রামিং ল্যাঙ্গুয়েজ।
তথ্যতে, আপনি তত্ত্বাবধানে রুবি দিয়ে যা চান তা বানাতে পারেন।
এখন:
কিছু বানাতে কতটা কঠিন সেটা আরেকটি গল্প।
এটি নির্ভর করে কোন জেম এবং লাইব্রেরি উপলব্ধ কারণ এই জেমগুলো আপনার জন্য অনেক ভারী কাজ করে দেয়।
রুবি দিয়ে আপনি যা তৈরি করতে পারেন
আপনি যদি অনুপ্রেরণা দরকার হয় তবে এখানে কিছু উদাহরণ:
- ফুল-স্ট্যাক ওয়েব ডেভেলপমেন্ট
- ওয়েব স্ক্র্যাপিং এবং ক্রলিং
- স্ট্যাটিক ওয়েবসাইট জেনারেটর
- কমান্ড-লাইন মিডিয়া প্লেয়ার (FFI + libVLC ব্যবহার করে) এবং অন্যান্য কমান্ড-লাইন টুলস
- অটোমেশন, ব্যাকআপ এবং DevOps টুলস
- সার্ভার
- পার্সিং, ডেটা ক্লিনিং এবং ফিল্টারিং
- API ক্লায়েন্ট (যেমন Twitter API বা Github API)
- রিপোর্ট জেনারেটর (PDF, HTML, CSV)
এটি একটি ভালো তালিকা!
আপনি এই সব জিনিস প্রোডাকশন লেভেলে বানিয়ে ডেলিভার করতে পারেন।
কম প্র্যাকটিক্যাল, কিন্তু এখনো করা সম্ভব:
- গেমস (gosu / Ruby2D)
- ডেটা সায়েন্স
- মেশিন লার্নিং এবং AI
এগুলো আপনি অধিকাংশ পারসোনাল প্রজেক্ট এবং ফানের জন্য করতে পারেন।
বাকি সব?
আপনি এগুলোও করতে পারেন, অবশ্যই, কিন্তু এতে অনেক বেশি কাজ, কোড এবং ডোমেইন নলেজ লাগবে।
জনপ্রিয় ওপেন-সোর্স রুবি প্রজেক্ট
আমি আপনাকে রুবি দিয়ে বানানো প্রজেক্টের একটি তালিকা দিতে চাই যাতে আপনি অনুপ্রেরণা পান এবং নিজে দেখেন কী কী সম্ভব।
এই প্রজেক্টগুলোর সবার ৪k+ গিটহাব স্টারস আছে।
রেলস অ্যাপস:
- https://github.com/postalhq/postal (ইমেইল ইনবক্স)
- https://github.com/huginn/huginn (ইভেন্ট নোটিফিকেশন)
- https://github.com/discourse/discourse (ফোরাম সফটওয়্যার)
- https://github.com/gitlabhq/gitlabhq (ওয়েব-বেসড গিট ইন্টারফেস, গিটহাবের মতো)
নন-রেলস অ্যাপস:
- https://github.com/puma/puma/ (Rack অ্যাপ্লিকেশন সার্ভার)
- https://github.com/hashicorp/vagrant (ভার্চুয়াল মেশিনের মাধ্যমে ডেভেলপার এনভায়রনমেন্ট)
- https://github.com/sparklemotion/nokogiri (HTML / XML পার্সিং)
- https://github.com/opal/opal (রুবি দিয়ে জাভাস্ক্রিপ্ট লিখুন)
- https://github.com/Homebrew/brew (macOS প্যাকেজ ম্যানেজার)
- https://github.com/fluent/fluentd (লগিং ইউনিফিকেশন টুল)
রুবি দিয়ে হাজার হাজার প্রজেক্ট তৈরি হয়েছে, কিন্তু এই গুলো আপনাকে একটি ধারণা দেবে আপনি এই প্রোগ্রামিং ল্যাঙ্গুয়েজ দিয়ে কী কী করতে পারেন।
সারাংশ
আপনি যদি পাই নম্বরের ডিজিট (৩.১৪১৫৯….) কতটুকু দ্রুত কাঙ্ক্ষিত পারফরম্যান্স পেতে চান এবং আপনার হার্ডওয়্যার থেকে সর্বোচ্চ পারফরম্যান্স নিতে চান, আপনি রুবি ব্যবহার করবেন না।
কিন্তু আপনি অন্য কোনো ইন্টারপ্রেটেড ল্যাঙ্গুয়েজও সেই টাস্কের জন্য ব্যবহার করবেন না।
যেমন PHP বা পাইথন।
কারণ তারা একই সীমাবদ্ধতার অনেক শেয়ার করে।
আপনার পারফরম্যান্স ম্যাক্স আউট করতে হলে আপনাকে হতে পারে অ্যাসেমবলি ল্যাঙ্গুয়েজ (Assembly Language) পর্যন্ত যেতে, যা ১ এবং ০ দিয়ে আপনার কম্পিউটারের সাথে কথা বলার সবচেয়ে কাছাকাছি।
বিষয়টি হলো…
সব জিনিসের জন্য একটি ট্রেডঅফ রয়েছে।
আপনি যদি ইজ অফ ইউজ এবং প্রোগ্রামার ফ্রেন্ডলিনেস চান, আপনাকে কিছু পারফরম্যান্স দিয়ে চুকাতে হবে।
এটি এড়ানো সম্ভব নয়।
এটি মনে রেখে, আপনি যদি একটি ফুল ওয়েবসাইট বানাতে চান, যেকোনো ধরনের হেল্পফুল টুল যেমন ব্যাকআপ অটোমেশন, রিপোর্ট জেনারেটর, ক্রলার, সব ধরনের ক্যালকুলেটর, API ক্লায়েন্ট, ইত্যাদি… অথবা শুধু প্রোগ্রামিং জগতে শুরু করতে চান এবং অনেক মজা করতে চান।
তবে রুবি আপনার জন্য পर्फেক্ট!
এটি সক্রিয়ভাবে ডেভেলপ হচ্ছে, শিখা সহজ এবং আপনি আটকে যাওয়া হলে সবসময় সাহায্য পাবেন।
তো কেন না একবার ট্রাই করুন?
আপনি রুবি দিয়ে যে চমৎকার প্রজেক্টগুলো বানাবেন সেগুলো দেখতে আমি আগ্রহী!