داستان از اینجا شروع میشه که توی دهه 90 میلادی، برنامه نویسها با زبانهای برنامه نویسی پیچیده ای سر و کار داشتن که هر خط کدشون کلی وقت و انرژی میبرد. در همین حین، یه برنامه نویس ژاپنی به اسم یوکیهیرو ماتسوموتو (Yukihiro Matsumoto)، معروف به ماتز، تصمیم گرفت یه زبانی بسازه که هم قوی باشه و هم استفاده ازش لذت بخش باشه. اینطوری بود که Ruby به دنیا اومد.
Ruby اولین بار در سال 1995 توسط ماتز معرفی شد. اون با ترکیب بهترین ویژگیهای زبانهای مختلفی مثل پرل، Smalltalk و Lisp، روبی رو به وجود آورد. هدف اصلی ماتز، ایجاد زبانی بود که هم قدرتمند باشه و هم خوانا و زیبا.
روبی یه زبان برنامه نویسی پویا، تفسیری و شیءگراست که همان طور که گفتیم، اواسط دهه 1990 توسط یوکیهیرو ماتسوموتو (ماتز) ساخته شده. اسم این زبان از یه نوع جواهر سرخ و قیمتی گرفته شده. Ruby به عنوان یه زبان متن باز به برنامه نویسها اجازه میده تا به راحتی و با لذت کد بزنن. ماتز هدفش این بود که زبانی بسازه که هم از برنامه نویسی شیءگرا استفاده کنه و هم سرعت مناسبی داشته باشه، و نتیجه ش یه زبان با نحو ساده و کاربردی شد که امروز به عنوان Ruby میشناسیم.
حالا بریم سراغ Ruby on Rails که بدون اون صحبت کردن درباره Ruby کامل نیست. Rails یه فریمورک توسعه وبه که Ruby رو واقعاً معروف و محبوب کرد. Rails از کدهای از پیش نوشته شده Ruby استفاده میکنه و کارهای پیچیده مثل ارتباطات، مدیریت فایل، و اتصالات دیتابیس رو راحتتر میکنه.
یکی از اصول مهم این فریمورک، DRY (Don't Repeat Yourself) هست که باعث میشه کدهای تکراری کمتر باشه و بهره وری بیشتر. این چارچوب با استفاده از الگوی MVC (Model-View-Controller) ساختار کد رو منظمتر و قابل نگهداریتر میکنه.
حالا بیا یه نگاهی به مقایسه Ruby و Ruby on Rails بندازیم.
ویژگی | Ruby | Ruby on Rails |
چی هست؟ | یه زبان برنامه نویسی شیءگرا و متن باز | یه فریمورک توسعه وب بر پایه Ruby |
الهام گرفته از | Perl و Smalltalk | Django |
نوشته شده با | C | Ruby |
برای چی استفاده میشه؟ | ساخت اپلیکیشنهای دسکتاپ، وب سایتهای استاتیک، ابزارهای خودکارسازی و خدمات پردازش داده | توسعه اپلیکیشنهای وب مبتنی بر دیتابیس و بازارگاهها (Marketplaces) |
ویژگیهای اصلی | پویا، تفسیری، خوانا و ساده | استفاده از الگوی MVC، اصل DRY، بهره وری و خوشحالی برنامه نویس |
این جدول به خوبی تفاوتها و ویژگیهای کلیدی بین Ruby و Ruby on Rails رو نشون میده. با استفاده از Ruby میتونی اپلیکیشنهای مختلفی بسازی، ولی با اضافه کردن Rails به Ruby، توسعه وب اپلیکیشنهای پیچیده خیلی راحتتر و سریعتر میشه.
حالا که متوجه شدی روبی چیه بیا ببینیم چه کاربردهایی داره و کجاها ازش استفاده میشه.
یکی از معروفترین کاربردهای Ruby توی توسعه وبه. با استفاده از چارچوب محبوب Ruby on Rails، توسعه دهندهها میتونن به سرعت اپلیکیشنهای وب بسازن. Rails همه چیز رو برای ساخت یه اپلیکیشن وب فراهم میکنه. از زمان انتشارش توی 2005، Rails باعث شد توسعه وب خیلی سریعتر و کارآمدتر بشه. با ای فریمورک میتونی ساختار پروژه ت رو با استفاده از کنوانسیونها تعریف کنی و کدهایی که نیاز داری رو با دستورات ساده تولید کنی. این ویژگیها باعث شدن Rails انتخاب محبوبی برای استارتاپها باشه.
برخی از سایتهای معروفی که از Ruby on Rails استفاده میکنن شامل GitHub، Shopify، Kickstarter، Twitch، Instacart، Zendesk، SoundCloud، Ask.fm، Hulu، و Square هستن.
بیشتر وب سایتها از کدهای سمت سرور برای تولید HTML و ارسالش به مرورگر استفاده میکنن، اما سایتهای استاتیک اینطوری نیستن. یه تولیدکننده سایت استاتیک با استفاده از کد، تمام صفحات وب سایت رو یه باره تولید میکنه. این صفحات بعداً روی سرور قرار میگیرن و وقتی یه آدرس رو بازدید میکنی، یه فایل HTML ثابت دریافت میکنی. سایتهای استاتیک سریع، کارآمد، امن و راحت برای استقرار هستن. Jekyll، اولین و محبوبترین تولیدکننده سایت استاتیک، با Ruby نوشته شده و به عنوان راه پیش فرض برای انتشار محتوا روی GitHub توسط یکی از بنیان گذاران GitHub، تام پرستون-ورنر، ساخته شده.
Ruby به طور گسترده ای توی DevOps، خودکارسازی و استقرار وب سایتها استفاده میشه. Heroku یه پلتفرم معروف برای استقرار اپلیکیشنهای وبه که اول فقط از Ruby پشتیبانی میکرد و باعث شد استارتاپها به سمتش بیان چون استقرار اپلیکیشنها رو بدون نیاز به مهندس DevOps انجام میداد. Vagrant، یه ابزار برای مدیریت ماشینهای مجازی از خط فرمان، با Ruby نوشته شده. این ابزار به توسعه دهندهها اجازه میده تا پروژه هایی که برای یه سیستم عامل خاص ساخته شدن رو روی هر سیستم عاملی اجرا کنن.
Chef و Puppet دو ابزار دیگه هستن که مهندسای DevOps برای خودکارسازی و مدیریت پیکربندی اپلیکیشنها و سرورها ازشون استفاده میکنن. با استفاده از این ابزارها، میتونی محیطهای اپلیکیشن رو با یه فایل پیکربندی ساده تعریف کنی و بدون هیچ قدم دستی، اونا رو روی هر پلتفرمی اجرا کنی.
با Ruby میتونی سرورهای وب هم بسازی. سرورهای وبی مثل Passenger، Unicorn و Puma با Ruby نوشته شدن. این سرورها درخواستهای HTTP ورودی رو پردازش میکنن، اونا رو به اپلیکیشنهای وب مربوطه میفرستن و پاسخهای HTTP رو مدیریت میکنن.
Ruby همچنین یه زبان عالی برای پردازش، تمیز کردن و فیلتر کردن داده هاست. توابع داخلی Ruby مثل map، reduce و select ابزارهای قدرتمندی برای حل مشکلات پردازش داده ارائه میدن.
Ruby بستههای زیادی داره که استخراج داده از صفحات وب رو خیلی راحت میکنن. کتابخونه هایی مثل Vessel برای کراول و دانلود صفحات وب استفاده میشن و Nokogiri، یه کتابخونه محبوب دیگه برای پردازش HTML، به کار میره تا بخشهای خاصی از صفحه رو به صورت ساختاریافته استخراج کنه و برای تحلیل دادهها آماده کنه.
می تونی برنامههای دسکتاپی بسازی که روی سیستم عاملهای مختلف اجرا بشن. این یعنی با یه بار نوشتن کد، میتونی برنامه ت رو روی ویندوز، مک و لینوکس اجرا کنی.
حالا که متوجه شدی Ruby چطور به وجود اومد و چرا اینقدر مهمه، بیا نگاهی به مزایا و معایب استفاده از این زبان بندازیم.
"روبی برای شادی برنامه نویسان ساخته شده، چون اگه برنامه نویسان خوشحال باشن، کدهای بهتری مینویسن." - یوکیهیرو ماتسوموتو
هنوز با ما هستی؟ عالیه!😉 الان میخوایم بهت بگیم که چه شرکتها و پروژههای مشهوری از Ruby استفاده میکنن و چطور میتونی کدهای خودت رو با این زبان بنویسی.
خیلی از شرکتها و پروژههای بزرگ از Ruby و Ruby on Rails استفاده میکنند. اینجا به برخی از معروفترین هاشون اشاره میکنم.
این شرکتها فقط نمونه هایی از موارد استفاده ی گسترده Ruby و Ruby on Rails در صنعت تکنولوژی هستن. محبوبیت و کارایی این زبان و فریمورک Rails باعث شده تا کسب وکارهای بزرگ و کوچک زیادی به سمتش بیان و ازش برای توسعه محصولات و خدمات خودشون استفاده کنن.
برای شروع به کار با Ruby، ابتدا باید این زبان رو نصب کنی. سپس میتونی اولین برنامه خودت رو بنویسی. در اینجا چند مثال ساده برای شروع کار آورده شده.
برای نصب Ruby، میتونی از ابزارهایی مثل RVM یا rbenv استفاده کنی. این ابزارها بهت اجازه میدن تا نسخههای مختلف Ruby رو مدیریت کنی.
بیایید با یه برنامه ساده شروع کنیم. برنامه ی معروف "Hello, World!" رو با Ruby بنویسیم.
# This is a simple Ruby program to print "Hello, World!"
puts 'Hello, World!'
در این مثال، برنامه ای رو مینویسیم که مجموع اعداد یک آرایه رو محاسبه میکنه. این کد با استفاده از متد reduce، که به هر عنصر آرایه یک مقدار اولیه (اینجا صفر) اضافه میکنه و نتیجه رو با جمع کردن هر عنصر بعدی به دست میاره.
# This Ruby program calculates the sum of an array of numbers
numbers = [1, 2, 3, 4, 5]
sum = numbers.reduce(0) { |total, num| total + num }
puts "The sum of the array is: #{sum}"
در این کد:
این برنامه بررسی میکنه که آیا یک عدد اول هست یا نه. عدد اول عددی ست که تنها به خودش و 1 بخش پذیر باشه.
# This Ruby program checks if a number is prime
def prime?(num)
return false if num <= 1
(2...num).each do |i|
return false if num % i == 0
end
true
end
number = 7
puts "Is #{number} a prime number? #{prime?(number)}"
در این کد:
این برنامه اطلاعات کاربران رو به صورت یک لیست چاپ میکنه.
# This Ruby program prints user information
users = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 30 },
{ name: 'Charlie', age: 35 }
]
users.each do |user|
puts "Name: #{user[:name]}, Age: #{user[:age]}"
end
در این کد:
متد reduce یکی از متدهای پرکاربرد توی Ruby هست که بهت اجازه میده تا یه عملیات تجمعی روی عناصر یه مجموعه (مثل آرایه) انجام بدی. توی مثال محاسبه مجموع اعداد، reduce از یه مقدار اولیه (0) شروع میکنه و هر عنصر آرایه رو به این مقدار اضافه میکنه.
حلقه each یکی از روشهای معمول برای پیمایش عناصر توی یه مجموعه در Ruby هست. این متد بهت اجازه میده تا یه بلاک کد رو برای هر عنصر توی مجموعه اجرا کنی. توی مثال نمایش اطلاعات کاربران، each هر هش توی آرایه users رو پیمایش میکنه و اطلاعاتش رو چاپ میکنه.
متد prime? برای بررسی عدد اول از یه روش ساده استفاده میکنه: اگه عدد کمتر یا مساوی 1 باشه، عدد اول نیست. بعد از عدد 2 تا عدد مورد نظر پیمایش میکنه و اگه عدد به هر کدوم از این اعداد بخش پذیر باشه، عدد اول نیست. اگه نه، عدد اول هست.
خب، حالا که با Ruby آشنا شدی، شاید برات سوال پیش بیاد که این زبان چه تفاوت هایی با Python داره. بیایید با هم این دو زبان محبوب رو مقایسه کنیم.
اول از همه، بذار یه نگاه کلی به شباهتهای این دو زبان بندازیم:
حالا نگاهی به تفاوتهای بین Ruby و Python بندازیم:
ویژگی | Ruby | Python |
---|---|---|
فلسفه طراحی | تاکید بر سادگی و زیبایی کدها | تاکید بر سادگی و وضوح کدها |
استفاده اصلی | توسعه وب (Ruby on Rails) | علم داده، یادگیری ماشین، توسعه وب (Django و Flask) |
سرعت اجرا | معمولاً کمتر از Python | معمولاً کمی سریعتر از Ruby |
کتابخانهها و ابزارها | کتابخانهها و Gemsهای زیاد برای توسعه وب | کتابخانههای گسترده برای علم داده و یادگیری ماشین |
جامعه و منابع آموزشی | جامعه فعال و منابع آموزشی زیاد | جامعه فعال و منابع آموزشی زیاد |
هر دو زبان Ruby و Python ویژگیهای خاص خودشون رو دارن و انتخاب بین این دو زبان بستگی به نیازها و ترجیحات شخصی تو داره. اگه به دنبال توسعه وب هستی و میخوای با یه چارچوب قوی کار کنی، Ruby on Rails میتونه انتخاب خوبی باشه. اما اگه به علم داده، یادگیری ماشین یا اتوماسیون علاقه داری، Python میتونه گزینه بهتری باشه. هر دو زبان عالی هستن و یادگیری هر کدومشون میتونه به توسعه دهندهها کمک کنه تا پروژههای جذابی بسازن.
Ruby یه زبان ساده و قدرتمنده که بهت اجازه میده تا به سرعت و به راحتی برنامههای کاربردی رو توسعه بدی. جامعه ی فعال و منابع آموزشی فراوان، یادگیری این زبان رو خیلی آسون میکنه.
Ruby on Rails یه چارچوب توسعه وبه که بر پایه Ruby ساخته شده. این چارچوب بهت اجازه میده تا به سرعت وب سایتها و اپلیکیشنهای پیچیده رو بسازی.
Ruby و Python هر دو زبانهای پویا و شیءگرا هستن، اما Ruby بیشتر به خاطر سادگی و خوانایی کدهاش معروفه، در حالی که Python بیشتر به دلیل سادگی و کارایی در علم دادهها و یادگیری ماشین شناخته میشه.
بله، Ruby به دلیل سادگی و خوانایی کدهاش، یه زبان عالی برای مبتدی هاست. منابع آموزشی زیادی هم برای کمک به یادگیری این زبان وجود داره.
برای دیپلوی کردن پروژههای Ruby، میتونی از سرویس هایی مثل Heroku، AWS یا DigitalOcean استفاده کنی. این سرویسها ابزارهای مختلفی برای مدیریت و دیپلوی کردن پروژههای Ruby فراهم میکنن.
Ruby یه زبان برنامه نویسی قدرتمند و انعطاف پذیره که بهت اجازه میده تا به سرعت و به راحتی برنامههای کاربردی رو توسعه بدی. خوانایی و سادگی کدها، جامعه ی فعال و منابع آموزشی فراوان، و ابزارها و کتابخانههای متنوع از جمله مزایای این زبان هستن. با استفاده از Ruby میتونی به سرعت به یه توسعه دهنده حرفه ای تبدیل بشی و پروژههای جذاب و کاربردی بسازی.
امیدوارم این مقاله برات مفید بوده باشه و تو رو به یادگیری Ruby تشویق کرده باشه. اگه سوالی داری یا نیاز به راهنمایی بیشتر داری، حتماً با ما در میان بذار.
دوره الفبای برنامه نویسی با هدف انتخاب زبان برنامه نویسی مناسب برای شما و پاسخگویی به سوالات متداول در شروع یادگیری موقتا رایگان شد: