موضوع: "برنامه نویسی روبی"
یاقوت زیبای دنیای برنامهنویسی که در سال ۱۹۹۳ به دنیا معرفی شد، حالا از محبوبترین زبانها در نزد توسعهدهندگان است. همانطور که ماتسوموتو خالق ژاپنی آن به دوستی و مرام آن علاقهمند بود شعار روبی نیز، بهترین دوست برنامهنویس (a programmer’s best friend)، انتخاب شد.
ماتسموتو هدفگذاری کرده بود که روند توسعه روبی مابین دو قطب، سادگی در نگارش و قدرتمند در کارایی حرکت کند. همین توجه به نگارش تمیز و کدنویسی روان گاهی روبی را در سرعت، از دیگر نامزدان لیست بهترین زبانهای برنامهنویسی، عقب میاندازد ولی باعث بهرهوری شما هم در کدنویسی میشود که خود نوعی جبران مافات است.
کدنویسی ساده و روان یا به قولی ساختن زبان برنامهنویسی شبه محاورهای، یک مزیت فوقالعاده برای پیشرفت و گسترش یکزبان برنامهنویسی است. اگر کمی انگلیسی بدانید، در زبانهایی مانند پایتون و روبی خیلی سریعتر نتیجه میگیرید. همین مزیت باعث میشود که Ruby هم جزو بهترین انتخابها برای شروع کار برنامهنویسان مبتدی باشد؛ چراکه پیشرفت سریع و لذت از کدنویسی، شربت ویتامین کدنویسان، در حل مسائل برنامهنویسی است.
عموماً روبی با روبی آن ریلیز اشتباه گرفته میشود. ریلیز یک فریمورک بسیار محبوب است که بهمنظور طراحی وب ساختهشده است. فریمورک قدرتمند مبتنی بر زبان محبوب روبی که به کارها سرعت قابلتوجهی میدهد و باعث میشود انتخاب مناسبی برای استارتآپها هم باشد.
بهجرات میتوان گفت شغل برنامهنویسی با روبی و روبی آن ریلیز به کاری مفرح تبدیل میشود؛ ولی گستره فعالیت روبی همانند دیگر زبانهای این لیست چندان وسیع نیست. این نکتهای است که باید به آن توجه کنید؛ مگر اینکه برای شما گستره فعالیت در دیگر رشتههای کاری در درجه پایینتری از اهمیت باشد.
شاخص محبوبیت زبان برنامهنویسی در TIOBE
جمعبندی تحلیل زبان روبی از بهترین زبانهای برنامهنویسی
روبی در رشته کاری خود که توسعه وب است، یکزبان حرفهای به شمار میرود. کار کردن با آن لذتبخش است و فیش پرداخت حقوق آخر ماه، شما را خوشحالتر هم میکند؛ ولی فرصتهای شغلی آن مانند دیگر زبانهای محبوب لیست بهترین زبانهای برنامهنویسی گسترده نیست.
وضعیت محبوبیت روبی طی پنج سال گذشته
نمونه کدنویسی در زبان روبی از بهترین زبانهای برنامهنویسی
Node = Struct.new("Node", :parent, :coin, :total, :starting_coin)
def make_change(amount, coinage = [25, 10, 5, 1])
root = Node.new(nil, nil, 0, 0)
found_totals = { 0 => root }
queue = [root]
catch(:found) do
until queue.empty?
node = queue.shift
node.starting_coin.upto(coinage.size - 1) do |index|
coin = coinage[index]
new_total = node.total + coin
next if new_total > amount || found_totals[new_total]
new_node = Node.new(node, coin, new_total, index)
found_totals[new_total] = new_node
throw :found if new_total == amount
queue << new_node
end
end
end
return nil if found_totals[amount].nil?
result = []
cursor = found_totals[amount]
until cursor.coin.nil?
result << cursor.coin
cursor = cursor.parent
end
result.reverse!
end