برنامه نویسی روبی را از کجا شروع کنیم؟
زبان برنامه نویسی روبی در سال 1995 توسط یک توسعه دهندهی ژاپنی به نام یوکهیرو ماتسوموتو که به نام مَتز (Matz) نیز شناخته میشود، برای اولین بار عرضه شد. زبان برنامه نویسی Ruby یا همان روبی، یک زبان کاملا شیءگرا (OPP) است. این به این معناست که در این زبان به جز بلوکها، هر چیز دیگری به عنوان یک شیء در نظر گرفته میشود. هدف از توسعهی این زبان این بود که به عنوان یک بافر بین برنامه نویسان و ماشینهای محاسباتی عمل کند. سینتکس روبی شباهت بسیاری به سایر زبانهای برنامه نویسی مانند C یا جاوا دارد. در نتیجه میتوان گفت که یادگیری آن برای برنامه نویسان زبان C یا جاوا خیلی راحت خواهد بود. این زبان تقریبا از اکثر پلتفرمها مانند ویندوز، مک و لینوکس نیز پشتیبانی میکند.
در مقایسه با سایر زبانهای برنامه نویسی مانند C یا جاوا، زبان برنامه نویسی روبی کاربرپسندتر است. یک دلیل دیگر در رابطه با یادگیری آسان این زبان هم این است که دارای نحو بصری و انگلیسی است. حتی اگر هرگز در زندگی خود حتی یک خط کد هم ننوشته باشید باز ممکن است که به لطف نحو سادهی این زبان، شیوهی کار با آن را متوجه شوید. پس میتوان گفت که اگر در برنامه نویسی تازه کار هستید، انتخاب این زبان به عنوان اولین زبان برای یادگیری میتواند گزینهی خوبی باشد.
تاریخچه زبان برنامه نویسی روبی
زبان برنامه نویسی روبی بر پایهی زبانهایی مانند پرل، لیسپ، اسمالتاک، ایفل و ادا نوشته شده است. ماتسوموتو کار روی این زبان را در اوایل دهه 90 آغاز کرد. ایدهی این زبان برنامه نویسی حین یک بحث با همکارش به ذهن متز خطور کرد. او زبانهای پرل و پایتون را به خوبی میشناخت. متز پرل را دوست نداشت و آن را به نوعی اسباب بازی میدانست. پایتون را هم دوست نداشت چرا که یک زبان شیءگرای واقعی نبود. در نتیجه تصمیم گرفت خودش یک زبان برنامه نویسی شیءگرای جدید و در عین حال ساده خلق کند. سرانجام نیز اولین نسخه از روبی را در سال 1995 و پس از ماهها آزمون و خطا معرفی کرد که بین توسعه دهندگان ژاپنی به محبوبیت بسیاری دست یافت. جالب است بدانید که هنوز هم امکان دانلود اولین ورژن از این زبان وجود دارد.
اولین ورژن پایدار زبان برنامه نویسی روبی، ورژن 1.2 بود که در سال 1998 منتشر شد. تا این زمان صرفا در ژاپن کاربرد داشت تا این که در این سال، متز یک صفحهی اصلی ساده به زبان انگلیسی هم برای آن طراحی کرد. این آغاز فراگیری جهانی زبان برنامه نویسی روبی بود. در حال حاضر حدود 25 سال از عرضهی جهانی این زبان میگذرد و در تمام آپدیتهای آن تمرکز اصلی بر روی رفع خطاها و بهبود سرعت بوده است. آخرین ورژن منتشر شده از روبی، Ruby 3.2 است که در کریسمس 2022 منتشر شد. مهمترین آپدیت این ورژن اضافه شدن پشتیبانی از WebAssembly بود. ورژن جدید با استفاده از یک رابط WASI از WebAssembly پشتیبانی میکند. همچنین تلاش شده تا سرعت عملکرد برنامه نیز بهبود پیدا کند. برخی ویژگیهای جدید مربوط به خطایابی و همچنین مواردی مرتبط با قواعد نحوی نیز در ورژن جدید اضافه شدهاند.
درباره یوکیهیرو ماتسوموتو
ماتسوموتو اهل ژاپن بوده و دانشمند علوم کامپیوتر است. او اولین ورژن روبی را در 21 دسامبر سال 1995 منتشر کرد و همچنان رهبری تیم توسعهی پیاده سازی مرجع این زبان به نام MRI را بر عهده دارد. یکی دیگر از پروژههای کاری او MRuby است که در آوریل سال 2012 آن را منبع باز کرد. MRuby یک پیاده سازی مینیمال بر پایهی ماشین مجازی او به نام retevm است و به گونهای طراحی شده که به توسعه دهندگان نرم افزار اجازه میدهد تا روبی را در برنامههای دیگر نیز جاسازی کنند ولی در عین حال حافظهی آن را کوچک نگه دارند تا عملکرد بهینهای داشته باشد.
متمایزترین ویژگیهای زبان برنامه نویسی روبی
برخی از مهمترین ویژگیهای این زبان شامل موارد زیر میشود:
- زبان برنامه نویسی روبی یک زبان سطح بالا و در عین حال، توسعهدهنده-پسند است. یکی از مهمترین دلایل این موضوع احتمالا این باشد که از ساختارهای زبان انسانی استفاده میکند.
- زبان برنامه نویسی روبی بسیار پویا است.
- روبی یک زبان برنامه نویسی تفسیری است. کدهای این زبان در زمان اجرا بدون کامپایل اولیه پردازش میشوند. این موضوع سبب افزایش استقلال پلتفرم آن شده و حجم برنامههای اجرایی را کاهش میدهد.
همچنین زبان برنامه نویسی روبی یک زبان چند منظوره و عمومی است. یعنی برخلاف برخی دیگر از زبانها که دامنهی منحصر به فرد خود را دارند، این زبان برای کاربردهای متعددی مورد استفاده قرار میگیرد. شما میتوانید از آن در بسیاری از زمینههای علوم رایانه از جمله توسعه وب و تجزیه و تحلیل دادهها استفاده کنید.
طبق صحبتهای یوکیهیرو ماتسوموتو، او قصد داشت زبانی را برای برنامه نویسی طراحی کند که خودش هم از کار کردن با آن لذت ببرد. همچنین میخواست این زبان به برنامه نویسان کمک کند تا مولد و مفید باشند و بتوانند با صرف کمترین وقت و انرژی، کارهای بیشتری انجام دهند. او سعی داشت زبانی با کمترین میزان غافلگیری طراحی کند. یعنی برنامه دقیقا همانطور رفتار میکند که برنامه نویس از آن انتظار دارد.
شروع یادگیری زبان برنامه نویسی روبی
- انتخاب کامپایلر
- قبل از شروع برنامه نویسی روبی، به یک کامپایلر برای اجرا و کامپایل کردن برنامهها نیاز دارید. کامپایلرهای آنلاین زیادی وجود دارد که میتوان از آنها برای راه اندازیروبی استفاده کرد. در صورت استفاده از آنها نیازی به نصب یک کامپایلر نخواهید داشت.
- برنامه نویسی
- یادگیری زبان برنامه نویسی روبی به دلیل شباهت زیاد آن با سایر زبانهایی که بسیاری از ما با آنها آشنا هستیم، نسبتا آسان به شمار میشود.
- برنامهها را میتوان در روبی در هر یک از ویرایشگرهای متنی پرکاربرد مانند gedit، Notepad++ و غیره نوشت. پس از نوشتن برنامهها فایل را با پسوند .rb ذخیره کنید.
مزایای زبان برنامه نویسی روبی
کدهایی که با زبان برنامه نویسی روبی نوشته میشوند معمولا کوچک و ظریف ولی در عین حال قدرتمند هستند. چرا که در تعداد خطوط کمتری نوشته میشوند. همچنین این امکان را به کاربران میدهد که با صرف کمترین میزان وقت و انرژی، بتوانند برنامههای کاربردی تحت وب ایجاد نمایند. به علاوه روبی رایگان است. در نتیجه به برنامه نویسان دیگر هم این اجازه را میدهد که در صورت لزوم دست به کپی، استفاده یا اصلاح کدهای برنامه بزنند.
در نهایت این نکته نیز شایان ذکر است که زبان برنامه نویسی روبی بسیار پویا است و هیچ قانون سفت و سختی در مورد ویژگیهای آن وجود دارد. به همین دلیل میتوان به راحتی حتی آن را مشابه زبانهای گفتاری در نظر گرفت.
معایب زبان برنامه نویسی روبی
زبان برنامه نویسی روبی نسبتا جدید است و زبان کد نویسی منحصر به فرد خود را دارد. این موضوع ممکن است سبب شود تا برنامه نویسان نتوانند به سرعت به ویژگیهای آن عادت کنند. چرا که بسیاری از توسعه دهندگان ترجیح میدهند فقط به همان دانشی بسنده کنند که تا به حال در مسیر خود در حوزهی برنامه نویسی کسب کردهاند. این در حالی است که برای یادگیری آن کافی است مدت زمان کوتاهی را به تمرین کردن بگذرانید.
یک نکتهی دیگر در مورد برنامه نویسی روبی این است که در کدهای نوشته شده به این زبان ممکن است فرآیند دی باگ و رفع خطا کمی سختتر باشد. چرا که اکثر اوقات این خطاها صرفا هنگام اجرای برنامه بررسی میشوند. به همین دلیل همزمانی فرآیند خواندن خطوط و رفع خطاها، مشکلاتی را ایجاد میکند.
همچنین باید گفت که زبان برنامه نویسی روبی یک زبان تفسیری یا scripting است. این موضوع سبب میشود تا سرعت آن نسبت به زبانهای کامپایل شده پایینتر باشد. در واقع در مقایسه با بسیاری از سایر زبانهای برنامه نویسی، کند محسوب میشود.
مهمترین کاربردهای زبان برنامه نویسی روبی
همانطور که گفته شد زبان برنامه نویسی روبی یک زبان با کاربرد عمومی و چند منظوره است و در بسیاری از زیر شاخههای توسعه نرم افزار استفاده میشود. در ادامه به بررسی مهمترین کاربردهای این زبان میپردازیم.
توسعه وب
فریم ورک ریلز (Rails) یکی از اصلیترین دلایل محبوبیت زبان برنامه نویسی روبی است. چرا که انقلابی در زمینهی توسعه وب به شمار میرود. پیش از ظهور فریم ورک ریلز در سال 2005، توسعه دهندگان زمان زیادی را صرف نوشتن کدهای تکراری boilerplate برای ساخت برنامههای تحت وب میکردند. فریم ورک ریلز سبب دگرگونی این روند شد. چرا که هر چه که یک توسعه دهنده برای ایجاد یک وب سایت مقیاس پذیر نیاز دارد را یکجا ارائه میکرد. اتوماسیون بسیاری از کدهای تکراری سبب شد تا توسعه دهندگان بتوانند به جای انجام کارهای تکراری و بیارزش، وقت بیشتری را صرف کدنویسی منطق یک برنامهی تحت وب کنند.
طراحی سایت ایستا
وقتی از یک صفحهی وب معمولی بازدید میکنید، وب سایت از کد سمت سرور استفاده میکند که محتوای HTML را به مرورگر شما ارائه میدهد. این به این معنا است که هیچ فایل HTMLی در کدهای URLی که شما از آن بازدید میکنید وجود ندارد. این نوع از تولید کدهای HTML معمولا در نظر کاربران سریعترین به نظر میآیند. استفاده از یک مولد وب سایت ایستا که به زبان برنامه نویسی روبی نوشته شده باشد میتواند در این زمینه بسیار تاثیرگذار باشد.
یک مولد وب سایت ایستا از کد برای تولید همه صفحات وب به طور همزمان استفاده میکند. سپس آن صفحات روی یک سرور باقی میمانند و به محض این که شمار از سایت بازدید میکنید، یک فایل HTML ایستا در اختیارتان قرار میگیرد. این امر سبب میشود تا وب سایتها کارآمدتر و ایمنتر شوند. یک مولد وب سایت استاتیک برای وب سایتهایی که محتوای آنها اغلب تغییر نمیکند، میتواند ایده آل باشد.
اتوماسیون
همانطور که گفته شد یکی از دلایل محبوبیت برنامه نویسی روبی، کاربرد آن در اتوماسیون است. فریم ورکهای این زبان بسیاری از مراحل تکراری و خستهکنندهی برنامه نویسی را اتوماتیک کردهاند. این موضوع سبب شده تا در وقت و انرژی توسعه دهندگان صرفه جویی شود و بتوانند وقت بیشتری را صرف کارهای مهمتر کنند.
ابزارهای کاربردی در روبی
ابزارهای مفید در برنامه نویسی روبی مکانیزمی را فراهم میکنند که با استفاده از آنها میتوانیم وقت خود را در برنامه نویسی مدیریت کرده و طولانیترین کدها را با صرف وقت و انرژی کمتر اجرا کنیم. برخی از این ابزارهای مفید را در ادامه مورد بررسی قرار میدهیم.
- Sidekiq
سایدکیک یک برنامه ریز کاری متن باز است که بر پایهی روبی نوشته شده و به هدف مدیریت انواع برنامه ریزیهای کاری استفاده میشود. سایدکیک در حالت پیشفرض کار برنامه ریزی را انجام نمیدهد. بلکه فقط به اجرای آنها کمک میکند.
- AppOptics
این ابزار در مدیریت پردازش و کارایی برنامههای روبی اهمیت زیادی دارد. با کمک این ابزار میتوانیم کارایی برنامه را در یک بازهی زمانی واقعی بررسی کرده و مدیریت کنیم. منظور از بازهی زمانی واقعی، نشان دادن فراز و نشیبها در کارایی لحظهای برنامه است.
فریم ورک های کاربردی روبی
هرچند که روبی مزایای بسیاری دارد اما به کار بردن فریم ورکهای سازگار و کاربردی، کمک میکند تا کارایی آن را هر چه بیشتر افزایش دهیم. منظور از فریم ورک (به معنی چهارچوب) ترکیبهایی از پیش تعیین شده برای ساخت نرم افزارهای مختلف است. این مجموعه ابزارها به برنامه نویسها کمک میکنند تا روی وظایف اصلی خود تمرکز کنند. علاوه بر فریم ورک ریلز که بالاتر به آن اشاره شد، فریم ورکهای دیگری هم وجود دارد که در ادامه به برخی از کاربردیترین موارد بین آنها اشاره میکنیم.
- سیناترا (Sinatra)
اگر به دنبال یک جایگزین رایگان و منبع باز برای ریلز هستید، میتوانید سراغ سیناترا بروید. سیناترا یک فریم ورک و کتابخانهی تحت وب است که در سال 2007 منتشر شد. در مقایسه با ریلز، سیناترا روی الگوهای MVC کار نمیکند. بلکه در ایجاد برنامههای کاربردی وب به صورت خودجوش کاربرد دارد.
- رودا (Roda)
رودا یکی دیگر از فریم ورکهای قابل اعتماد است که یک برنامه با ساختار قیاس پذیر ارائه میکند. این فریم ورک حافظهی کمتری مصرف میکند و کاملا سریع و وب محور است. فریم ورک رودا نسبت به ریلز، سیناترا و هانامی حافظهی اولیهی کمتری احتیاج دارد.
- کمپینگ (Camping)
کمپینگ را میتوان یکی از مهمترین فریم ورکها دانست. این فریم ورک از جمله کم حجمترینها است و طراحی تحسین برانگیزی دارد.
- راماز (Ramaze)
در بین فریم ورکهایی که شامل موتورهای قالب بندی شده میشوند، راماز یکی از بهترین موارد است. این فریم ورک به گونهای طراحی شده که راحتترین دسترسی را داشته باشد.
سخن آخر
برنامه نویسی روبی یکی از شاخههای محبوب برنامه نویسی است که کاربردهای فراوانی دارد. اگر قصد دارید یادگیری آن را شروع کنید میتوانید مطمئن باشید که با توجه به استفادهی گستردهی این زبان، به راحتی قادر به همکاری در پروژههای مختلفی خواهید بود. یادگیری این زبان برای برنامه نویسانی که به زبان C یا جاوا مسلط هستند نیز میتواند یک ستارهی دیگر در رزومه محسوب شود.
برای مطالعه مطالب بیشتر با ایران فریلنس همراه باشید.
دیدگاهتان را بنویسید