با توجه به پشتیبانی گوگل از زبان کاتلین برای نوشتن اپهای اندرویدی، بسیاری از دولوپرها به این زبان ابراز علاقمندی کردهاند (جهت آشنایی بیشتر با جزئیات این خبر، به مقالهٔ گوگل رسماً از Kotlin در برنامهنویسی اندروید پشتیبانی میکند مراجعه نمایید.) در همین راستا، در این مقاله قصد داریم به معرفی برخی از خاصترین ویژگیهای این زبان بپردازیم.
اپنسورس
قبل از هر چیزی خوب است بدانید که زبان کاتلین اپنسورس (متنباز) است که توسط کمپانی معروف Jetbrains، خالق نرمافزار محبوب IntelliJ، ساخته و توسعه داده میشود اما جدای از ماهیت اپنسورس بودن این زبان، قابلیت تبدیل کدهای فعلی جاوا به این زبان بدون نیاز به تغییر در سورسکد، آن را جذابتر هم کرده است به طوری که با یک کلیک، میتوانید از جاوا به کاتلین مهاجرت کنید که در ادامه بیشتر پیرامون این موضوع بحث خواهیم کرد.
سازگاری کامل با جاوا
یکی دیگر از قابلیتهای جذاب زبان کاتلین سازگاری عمیقش با زبان جاوا است و همین قابلیت بسیاری از دولوپرهای جاوا را به آموختن کاتلین تشویق میکند. در واقع، کاتلین روی ماشین مجازی جاوا (JVM) اجرا شده و از ابزارها و لایبرریهای جاوا میتواند استفاده کند (برای شروع یادگیری زبان جاوا میتوانید به دورهٔ آموزش آنلاین و رایگان جاوا در سکان آکادمی مراجعه نمایید.)
استفاده از Data Classe
الزام وجود کلاسها همیشه برای طراحان زبانهای برنامهنویسی موضوع مهمی بوده است. در جاوا برای متوجه شدن کارکرد یک Data Class، نیاز است کلی کد اضافی را بررسی کرده تا متوجه اصل کاربرد کلاس شویم اما در زبان برنامهنویسی کاتلین میتوانید کدی با همان کارکرد بنویسید که دقیقاً همان کار را برایتان انجام میدهد اما بسیار سادهتر، کوتاهتر و خلاصهتر و این یکی از بهترین ویژگیهای زبان Kotlin است.
پارامترهای پیشفرض
پارامترهای پیشفرض کاتلین بسیار کاربردیاند زیرا به جای دریافت ایندکس، خیلی راحت میتوان نام پارمتر را مورد استفاده قرار داد. در واقع، این ویژگی زمانی کاربرد خود را نشان میدهد که فانکشنی با چندین پارامتر مینویسید.
Kotlin اجباری به Runtime Overhead ندارد
لایبرری استاندارد کاتلین هیچ کد اضافی نداشته، بسیار خلاصه و مفید است و شامل افزونههای متمرکز بر لایبرری استاندارد جاوا است. همچنین بسیاری از توابع تکخطی هستند و این بهبودها کمک بزرگی به سرعت بیشتر در برنامهنویسی اندروید میکند.
رفع مشکلات مرتبط با Null
نوع متغیرها در کاتلین در پی از بین بردن مشکلات ناشی از اصطلاحاً Null Reference است که معمولاً تحتعنوان The Billion Dollar Mistake (خطای یک میلیارد دلاری) شناخته میشود. به طور مثال، در زبان برنامهنویسی جاوا رِفرنس دادن به Null باعث بروز Null Reference Exception میشود اما این در حالی است که زبان کاتلین کدهایی که باعث وجود Null شده یا نتیجهٔ Null برمیگردانند را هرگز کامپایل نمیکند.
فانکشنهایی از جنس Extension
با کمک Extension Function که در زبان کاتلین تعبیه شده است، بدون تغییر در سورسکد میتوان به کلاسها متدهای مد نظر خود را اضافه کرد (شبیه به قابلیت Implicit Method در زبان اسکالا)
شباهت با زبان سوئیفت
یکی از ویژگیهای کاتلین این است که سینتکسی مشابه زبان سوئیفت اپل دارد. به عنوان مثال داریم:
fun max(a: Int, b: Int) = if (a > b) a else b
لذا این مسئله مهاجرت دولوپرهای سوئیفت اپل به این زبان را تسهیل میکند.
بالا رفتن سرعت توسعهٔ نرمافزار
برخلاف جاوا که دولوپر را وادار به کد زدن برای همه چیز میکند، کامپایلر کاتلین کد را بررسی کرده و خودش کدهایی که باید افزوده شود را اضافه میکند (به طور مثال، کامپایلر انواع دادهها را تشخیص میدهد و کدهای لازم را اضافه میکند که این مسئله خود باعث افزایش سرعت توسعهٔ نرمافزار خواهد شد.)
پیش از این در رادیو فولاستک با محسن میرحسینی: دولوپر ارشد اندروید، که یک از دولوپرهای زبان کاتلین است، مصاحبهای صورت گرفته که برای آشنایی بیشتر با زبان کاتلین، میتوانید به این پادکست مراجعه نمایید.