توسعه دهنده نِیتیوْ(Native) موبایل ( اندروید/آی او اس(کنارگذاشته شده)) Moeindeveloper.ir
کاتلین یا جاوا؟ مسئله این است.

مدت ها بحث و جدل در مورد برتری زبان کاتلین نسب به جاوا و یا برعکس در جامعه برنامه نویسان مخصوصا برنامه نویسان اندروید مطرحه. اما دوست دارم یک بار برای همیشه به این بحث خاتمه بدم!
توضیحاتی در مورد کاتلین:
زبان کاتلین به طور خلاصه یک زبان استاتیک تایپ، کراس پلتفرم است که در سال ۲۰۱۱ توسط شرکت جت برینز JetBrains از آن رونمایی شد و در سال ۲۰۱۶، نسخه ۱ استیبل آن رونمایی شد. توضیحات بیشتر
در کنفراس گوگل I/O سال ۲۰۱۷، کاتلین به عنوان زبان رسمی توسعه اندروید معرفی شد و رسما تحت حمایت گوگل قرار گرفت.
شایعات، خرافات و تعصبات الکی:
اگه در گروه های تلگرامی توسعه دهندگان ایرانی عبارت کاتلین رو جستجو کنید، با انواع حرف ها و نظراتی در مورد کاتلین روبرو می شوید. نمونه:




خب اینا نمونه هایی از پیام هایی هستن که با اونا مواجه میشید?
حل مسئله
در اینجا به یک سری از سوالات جواب می دهیم.
آیا کاتلین از جاوا بهتر است و بلعکس؟
خیر!نه!No!لا!?
هردو زبان ویژگی هایی دارن و از یکسری قوانین و توابع پیروی میکنن ولی طبق گفته توسعه دهندگان کاتلین، هدف آنها از خلق این زبان، تولید زبانی بهتر از جاوا بوده پس در این صورت باید بگم که بله یکجورایی کاتلین سینتکس بهتری نسبت به جاوا داره و کدهای خواناتری نسبت به جاوا داره?
نکته قابل توجهی که در مورد کاتلین وجود داره اینه که مقادیر null رو به خوبی هندل میکنه و مثلا به خاطر ی رشته نال، برنامه شما کرش نمیکنه!(در اینجا قرار نیست که به صورت تخصصی توضیح بدیم)
در اینجا یک نمونه کد را در جاوا و کاتلین باهم مقایسه می کنیم:
public class ClearBridge {
public static double calculate (double a, String op, double b) throws Exception { switch (op) { case “add”: return a + b; case “subtract”: return a - b; case “multiply”: return a * b; case “divide”: return a / b; default: throw new Exception(); }
}
}کد بالا در کاتلین:
fun calculate (a: Double, op: String, b: Double): Double {
when (op) {
“add” -> return a + b
“subtract” -> return a - b
“multiply” -> return a * b
“divide” - > return a / b
else -> throw Exception()
}
}قضاوت با شما?
آیا لازمه برای یادگیری کاتلین، جاوا بلد باشیم؟
خیر! برای یادگیری کاتلین نیازی به یادگرفتن جاوا ندارید و میتونید بدون واسطه کاتلین رو یادبگیرید اما اگر از جاوا به سمت کاتلین مهاجرت می کنید،یادگیری برای شما لذت بخش تر خواهد بود.
آیا جاوا در اندروید کنار گذاشته میشه؟
جواب قطعا خیر! اگه برنامه نویسی آی او اس کار کرده باشید، هنگام ساخت پروژه میتونید انتخاب کنید که زبان پروژه آبجکتیو سی باشه یا سویفت و در صورتی که سویفت محبوبیت زیادی داره، بازم آبجکتیو سی کنار گذاشته نشده و برنامه نویسان زیادی ازون استفاده میکنن! پس روال برای اندروید هم به اینصورت خواهد بود.
در حال حاضر کدام زبان را یادبگیرم؟
درحال حاضر، برای یادگیری برنامه نویسی اندروید بهتره از کاتلین شروع کنید.
در پروژه های بزرگ از کاتلین استفاده نکنیم؟
باور اشتباهی که هنوز خیلی از دوستان به اون اعتقاد دارن اینه که کاتلین چون زبان جدیدی هست نمیشه به اون برای پروژه های بزرگ اعتماد کرد! باید بگم خیر! کاتلین صد در صد قابل اعتماده و میتونید ازون در هر پروژه استفاده کنید!
نکته: کاتلین کاملا با جاوا سازگاره و از کتابخانه های جاوا در پروژه های کاتلین استفاده کنید!
نکته ۲: شما میتوانید از کد جاوا درون کاتلین استفاده کنید و به مشکلی بر نمیخورید! البته کاتلین شمارو از این کار بی نیاز میکنه.
جمع بندی کلی:
تعصب در هیچ موضوعی خوب نیست و امیدوارم که با این مقاله توجه شما رو به کاتلین جمع کنم و خواهشم از دوستانی که تا حالا کاتلین کار نکردن اینه که قبل از انتقاد کورکورانه، حتما این زبان رو امتحان کنند که باعث گمراهی افراد تازه کار در این حوزه نشوند!
منابع:
پی نوشت: یادگیری جاوا هم اجتناب ناپذیره و ممکنه شرایط برای شما پیش بیاد که مجبور باشید جاوا هم یادبگیرید( کد های آماده توسط شرکت به شما محول میشود). پس در نتیجه برای توسعه دهنده بهتری بودن، بهتره که هر دو ابزار رو در جعبه خودتون داشته باشید!
از وقتی که بابت خواندن این مقاله گذاشتید ممنونم و دوست دارم نظرات شما رو بدونم! و اگه سوالی دارید در همینجا بپرسید که در مقاله قرار بدم.
مطلبی دیگر از این انتشارات
لی اوت در اندروید ۱۱ : آشنایی با ConstraintLayout
مطلبی دیگر از این انتشارات
پنج مهارت برتر برای یک برنامهنویس موفق
مطلبی دیگر از این انتشارات
مفهوم thread و برنامه نویسی نا همزمان در اندروید