با طعم کد!

جاوا در برابر کاتلین – قسمت پایانی

مرور کلی بر توسعه اپلیکیشن‌های مبتنی بر پلتفرم اندروید

در قسمت قبلی جاوا در برابر کاتلین که قسمت دوم از این سلسله نوشتار بود توضیح دادم که به چه علت شروع به نوشتن این مقاله کردم و پس از آن مزایا و معایبی که از نگاه یک برنامه‌نویس اهمیت بیشتری دارد را بیان کردم، در این قسمت قصد دارم همان روال را برای کاتلین نیز طی کنم.

آیا واقعا کاتلین از جاوا بهتر است؟

ممکن است که در نظر داشته باشید که به یکی از زبان های مدرن که طراحی شده اند تا قابل اجرا و کامپایل توسط JVM یا همان ماشین مجازی جاوا هستند مهاجرت کنید. در حالی که کمبودی در زبان های قابل کامپایل به بایت کد های جاوا وجود ندارد اما تعدادی از ویژگی های کاتلین، این زبان را از سایر زبان ها متمایز می‌کند، اما آیا با این همه آیا می‌توانیم کاتلین را در گذر زمان بهتر از جاوا بدانیم؟ برای پاسخ به این سوال ، نگاهی به بعضی مزایای کاتلین بیاندازیم:

  • کامپایل بهینه و سریع: در مقایسه با برنامه های پایه جاوا، کار بر روی برنامه های multithread که باید نتیجه مطلوبی داشته باشند، سرعت کامپایل کد در کاتلین حدود ۵ الی ۱۵ درصد بیشتر از جاوا است. بر این اساس عملکرد در فرایند های کد نویسی با کاتلین (کدنویسی و تست و ارزیابی) هم باید سریع تر باشد.
  • تعویض پذیری با جاوا: من به شخصه عاشق این ویژگی هستم!! :)) ، یکی از نقاط قوت کاتلین به عنوان یک جایگزین بالقوه برای جاوا، سطح بالایی از قابلیت همکاری و تطابق با جاوا است. شما می‌توانید حتی در یک پروژه، کاتلین و جاوا را در کنار هم داشته باشید و از هردوی آن‌ها برای شکل‌دهی برنامه خود استفاده کنید، در حقیقت دریک برنامه نوشته شده از آمیخته کاتلین و جاوا، کاربر نهایی قادر به تشخیص بخش های نوشته شده با جاوا از کاتلین نیست. در حقیقت این عامل برای تازه کارها بیشترین مزیت را دارد، زیرا حین انجام پروژه‌های جاوا، می‌توانید برای تمرین از کد های کاتلین استفاده کنید. به لطف این قابلیت حتی می توانید در ارتقای پروژه های از قبل نوشته شده به زبان جاوا، از کاتلین استفاده کنید و نگران قسمت های دیگر نباشید.
  • ساختار خیلی مختصر: جاوا اغلب از نظر پیچیدگی نمایش کد ها در برخی ساختار های کدنویسی ترسناک است! 🙂 کاتلین از این نظر بسیار بهتر و پیشرفته‌تر است، به عنوان مثال در بعضی موارد به ازای هر ۱۰ خط کد جاوا فقط نیاز به یک خط کد کاتلین داریم، باید این نکته را مد نظر قرار دهیم که کاتلین به جای جایگذاری مجدد همه عبارات جاوا، سعی در بهبود و پیشرفت ساختار آن دارد، بنابراین بسیاری از مهارت هایی که در طول برنامه نویسی جاوا به دست آورده اید، در پروژه های کاتلین قابل اجراست.
  • خطای کمتر در زمان برنامه نویسی و تست: توسعه دهندگانی که با کاتلین کد نویسی می‌کنند، به علت اختصار ساختار کد در حال توسعه، کمتر مستعد اشتباهاتی هستند که نمی تواند توسط کامپایلر ها شناخته شود. (بدترین اشتباهات، اشتباهاتیست که توسط کامپایلرها به خوبی شناسایی نمی‌شوند.)
  • رشد انجمن های توسعه کاتلین: به رغم جوان بودن زبان برنامه نویسی کاتلین، انجمن های توسعه کاتلین بسیار سریع در حال رشد است و شما می توانید تمامی مشکلاتتان را در این انجمن ها مطرح کنید.
  • عدم نیاز به null pointer exception: به سادگی می توان گفت که احتمال به وجود آمدن اشکالاتی مرتبط با null reference ها در کاتلین وجود ندارد.
  • استقلال پلتفرم: توسعه‌دهندگان کاتلین، نسخه نمایشی Kotlin/Native v2.0 را ماه May سال ۲۰۱۷ ارایه دادند که با توجه به این نسخه، کاتلین این توانایی را دارد که بدون ماشین مجازی کامپایل شود، این بدان معنی است که کاتلین امکان توسعه کتابخانه های مشترک برای سیستم عامل های مختلف را داراست.

آیا باید به کاتلین مهاجرت کنیم؟

برای انتخاب و تصمیم گیری فقط یک پله دیگر باقی مانده است، باید برخی از معایب و مشکلات کاتلین را مرور کنیم:

  • پیچیدگی در تفسیر کد: در زبان برنامه‌نویسی کاتلین، حتی ساختار های تک خطی، توانایی تعریف کل الگوریتم در عین اختصار مطلق را دارند که به این معنی است که یک الگوریتم پیش از توسعه بسیار پیچیده تر از زبان جاوا است (در مقدار کمی کد، اتفاقات زیادی در حال رخ دادن است).
  • عدم وجود ساختار تعریف کننده: ساختار تعریف در کاتلین محدود به سه تابع listOf ، mapOf و  arrayOf است و مشکل وقتی پیش می آید که در حال کار با ساختار های پیچیده تر از لیست های یک بعدی باشیم.
  • مشکلات استفاده از generic ها: کاتلین مانند جاوا از generic ها بهره می برد و همانطور که در مورد جاوا به آن اشاره شد، این فرایند می تواند برای بعضی افراد خیلی سخت و مشکل باشد.
  • سایز بیشتر در زمان اجرا: کاملا واضح است که افزودن هرکتابخانه به برنامه، حجم آن را افزایش می دهد، کاتلین هم در هنگام افزوده شدن به به برنامه حجمی حدود ۸۰۰ کیلو بایت به برنامه اضافه کند. (شاید برای بعضی توسعه‌دهندگان از اهمیت کمتری برخوردار باشد، اما برای من خیلی مهم است.)

کاتلین یا جاوا؟

هدف از این نوشتار مقایسه منطقی و کاملا شفاف برنامه نویسی جاوا در برابر کاتلین بود، به نظر من به عنوان یک نتیجه گیری می‌توان گفت کاتلین زبانی پیشرفته تر و جدید تر و شاید در بعضی موارد راحت تر است و در خصوص کار تیمی، اگر همه اعضای تیم با آن آشنا باشند، شاید انتخاب بهتری باشد. پیشنهاد من هم برای افرادی که قصد ورود به دنیای برنامه نویسی اندروید را دارند و هنوز بین جاوا یا کاتلین انتخابی نکرده اند،بنا به برخی دلایل فوق، کاتلین است، اما درعین حال، برای کسانی که در حال حاظر مشغول به برنامه نویسی جاوا برای اندروید هستند و خود را به آن وفادار می دانند پیشنهاد میکنم هنوز نیازی به نگرانی برای مهاجرت به کاتلین، نیست، شاید بهترین توصیه برای این افراد، آشنایی با کاتلین و استفاده از آن در کنار جاوا باشد. اما اگر تصمیم گرفتید با جاوا خداحافظی کنید می توانید “;” و findViewById را برای همیشه فراموش کنید. :))

برچسب ها
نمایش بیشتر

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

بستن
بستن