چرا باید اسکالا یاد بگیریم ؟

by مجتبی بنائی - یکشنبه 06 مهر 1393 - گروه : تخصصی - مشاهده : 17
برچسب‌ها: #تخصصی‌نرم‌افزار #اسکالا #تجربیات #تخصصی

s: اسکالا | تجربیات | تخصصی چندی پیش به یک مقاله برخوردم با عنوان اینکه چرا باید زبان اسکالا را یاد بگیریم ؟ مقاله را کامل خواندم و بسیار علاقه مند شدم که این زبان را که یک زبان قدرتمند روی بستر جاوا هست را یاد بگیرم. البته قبل از آن هم در مورد این زبان زیاد شنیده بودم، بخصوص زبانی که اسپارک با آن نوشته شده و در حوزه پردازش کلان داده یکی از گرایشات نوین دنیاست . در دو سال گذشته بنده از پی اچ پی و سی شارپ و جاوا به سمت پایتون اومدم به خاطر سهولت و راحتی برنامه نویسی و واقعا بعد از شانزده سال برنامه نویسی زبانی برایم مهم و ارزشمند خواهد بود که با توجه به فرصت کوتاهی که معمولاً دارم بتوانم کارم را سریع با آن پیش ببرم . از طرفی بتوانم روی سرورهای لینوکس هم به راحتی آنرا اجرا کنم. انتخاب پایتون در یکی دوسال گذشته به همین دلیل توسط بنده انجام گرفت. به عنوان شاهدی بر این مدعا و اینکه سهولت و سرعت تولید نرم افزار ، یکی از پارامترهای مهم انتخاب زبان و فریمورک برنامه نویسی خواهد بود، امروز با یکی از دانشجویان سال گذشته دانشگاه که فارغ التحصیل شده بود و الان وارد بازار کار طراحی وب هم شده است صحبت می کردم و خلاصه کلام ایشان هم دقیقا همین بود . میگفت بعد از پروژه ای که در دانشگاه با بنده روی زبان روبی (Ruby) داشت، الان بیشتر کارهای طراحی وبی که انجام می دهد را با این زبان و فریمورک ریل (Rails)انجام میدهد و پروژه های حرفه ای متوسط را نهایتاً با دو هفته می تواند آماده کند در صورتیکه با asp.net ممکن است این فرآیند یک یا دوماه ماه طول بکشد و این راحتی و سهولت روبی باعث شده که کاملاً سایر زبانها را کنار بگذارد . اسکالا هم یک زبان ساده و جمع و جور است و به نسبت جاوا، گرامر ساده تر و امکانات بسیار بیشتری را در اختیار شما می گذارد به طوری که اکثر نیازهای یک برنامه نویس را به صورت توابع و امکانات پیش ساخته درون خود گنجانده است . کدهایی که با جاوا حدود ده پانزده خط میشود در این زبان گاهی با دو سه خط قابل پیاده سازیست (مقاله معرفی شده در ابتدای بحث را مطالعه کنید تا مثالها را به وضوع ببینید) از طرفی کاملا با جاوا تعامل دارد و از تمام کتابخانه ها و برنامه های نوشته شده با جاوا هم می توان در آن استفاده کرد . از طرفی یک زبان تابعی (Functional) است. امکانی که در سایر زبانهایی که تا الان با آنها کار کرده ام به این قدرت وجود نداشته است . توضیح اینکه زبان تابعی، زبانی است که در آن با توابع هم مانند متغیرها عمل میشود و شما می توانید همانطور که مثلا ورودی های توابع پا رامترهای عادی هستند ، توابع را هم به عنوان ورودی یک تابع دیگر ارسال کنید یا اینکه یک تابع را مشابه یک متغیر عادی مقدار دهی کنید. مثلا فرض کنید دو عملیات فیلتر کردن و مرتب سازی را روی لیستی از دانشجویان می خواهید اعمال کنید کافیست تابع فیلتر و مرتب سازی مورد نظر را جداگانه بنویسید و بعد در تابع اصلی که قرار است لیست دانشجویان را به کاربر نمایش دهد این دو تابع را به عنوان ورودی تابع اصلی ارسال کنید . امکاناتی از این قبیل که باعث شده است این زبان به یک زبان قدرتمند تبدیل شود و امروزه به عنوان یک جایگزین جاوا از آن نام برده میشود و گرایشات جهانی به سمت آن بسیار بالاست . بخصوص فریمورک Play برای طراحی وب که با این زبان کار می کند، سرعت پاسخگویی بسیار سریعی دارد . در هر صورت تصیمیم گرفته ام این ترم درس طراحی شی گرا را برای بچه های ناپیوسته کامپیوتر با اسکالا کار کنم و به سایر دوستانی هم که به صورت حرفه ای با دنیای برنامه نویسی کار می کنند هم توصیه اکید می کنم این زبان زیبا و قدرتمند را زودتر فرابگیرند. پی نوشت : چند تا مطلب مهم درباره اسکالا یادم رفته بود که تصمیم گرفتم در ادامه همین مقاله آنها را بیان کنم . نکته اول اینکه اسکالا (Scala) برای پردازش های موازی و مقیاس پذیری در حجم بالا طراحی شده است و خود اسکالا هم مخفف Scalable Language یا زبان مقیاس پذیر است که این امر بواسطه تاکید فراوان این زبان به استفاده از متغیرهای پایدار و Immutable است که باعث می شود بتوان بدون ایجاد تداخل و اثرات جانبی به افزایش سطح همروندی برنامه پرداخت . نکته بعدی استفاده سایتهای مهم دنیا از این زبان در توسعه برنامه ها و قابلیت هایشان است . توئیتر و لینکدین دو تا از معروف ترین این سایتها هستند به طوری در مقالات آموزشی اسکالا هم ذکر شده که توئیتر کار خود را با زبان روبی شروع کرد و بواسطه مشکلاتی که برایش پیش آمد به زبان اسکالا مهاجرت کرد و امروزه هم زبان برنامه نویسی اصلی این شرکت را تشکیل میدهد. نکته سوم در مورد تجربه کار با این زبان بود که توصیه می کنم از محیط جذاب و حرفه ای IntelliJ و پلاگین اسکالا استفاده کنید که بعد از دانلود و نصب Scala SDK می توانید به آزمایش این زبان بپردازید . یکی از مزایای این زبان مشابه پایتون محیط تعاملی (REPL) آن است که می توانید با اجرا دستور Scala وارد محیط تعاملی آن شوید و بدون ایجاد فایل شروع به کار با آن کنید . آخرین نکته هم اینکه یکی از مزایای دیگر این زبان وجود کتابخانه و چهارچوب برنامه نویسی توزیع شده Akka در کنار این زبان است که اجازه تولید برنامه هایی را با قابلیت اجرا روی تعداد زیادی کامپیوتر به صورت توزیع شده را به ما می دهد. بخصوص می توان در فریمورک Play درخواستها را به صورت توزیع شده به وب سرور ارسال کرد که مدیریت تعداد بالای درخواستهای همزمان را به صورت خودکار انجام میدهد.

Comments