جاوا یا کاتلین؟ کدام یک برای ساخت اپلیکیشن اندروید مناسب است؟ این مقاله با مقایسه جاوا و کاتلین پاسخ شما را می دهد.

جاوا چیست؟

جاوا یک زبان برنامه نویسی شئ گرا است که جیمز گاسلینگ آن را ساخت و اولین بار در سال 1995 توسط شرکت سان مایکروسیستمز عرضه شد. هر روز تعداد ناشماری از وب سایت ها و اپلیکیشن ها با استفاده از جاوا ساخته می شود. جاوا، سریع، امن و قابل اعتماد است. این زبان برنامه نویسی، تقریبا روی هر پلتفرم سخت افزاری اجرا می شود؛ لپ تاپ، موبایل یا دیتاسنتر تفاوتی ندارد. جاوا رایگان است و هم اکنون توسط شرکت اوراکل منتشر می شود.

چرا اندروید از جاوا استفاده می کند؟

در زمان ساخت اندروید توسط اندی رابین، جاوا یکی از محبوب ترین و شناخته شده ترین زبان برنامه نویسی دنیا بود. این جایگاه هنوز هم برای جاوا وجود دارد، اما رقبای قدرتمندی در سالهای اخیر برای جاوا منتشر شده است. یادگیری و بکارگیری Java بسیار ساده تر از زبان های رایج مثل C و ++C بود. همچنین در آن زمان، بسیاری از تلفن های همراه از نسخه ی Java ME برای ساخت اپلیکیشن های خود استفاده می کردند؛ پس جاوا با صنعت تلفن های همراه ناآشنا نبود.

مزایای جاوا

  • یادگیری و دستور زبان ساده
  • زبان برنامه نویسی شئ گرا
  • مستقل از پلتفرم(روی هر پلتفرمی نصب و اجرا می شود)
  • امنیت بالا
  • جامعه توسعه دهنگان پر تعداد

معایب جاوا

  • عملکرد کندتر در مقایسه با زبان های C و ++C
  • مدیریت حافظه ضعیف
  • لایسنس غیر رایگان برای استفاده تجاری

مزایای جاوا آنقدر قدرتمندتر از معایب آن هستند که روی ایرادات سرپوش می گذارند. اما همین بند آخر معایب جاوا، داشتن لایسنس برای استفاده تجاری، حسابی برای گوگل و اندروید مشکل ایجاد کرده است.

دعوای گوگل و اوراکل

جاوا تعداد بسیار زیاد توسعه دهندگان، منابع یادگیری و ابزارهای کمکی دارد. اندروید، برای مقبولیت بیشتر در جامعه توسعه دهندگان، از Java استفاده کرد. اما در سال های اخیر مشکلات حقوقی و مالی زیادی که بین گوگل و اوراکل بر سر استفاده از جاوا در اندروید پیش آمده است. اوراکل که منتشر کننده و صاحب امتیاز جاوا است، از گوگل به دلیل استفاده بدون اجازه از این زبان برنامه نویسی در اندروید شکایت کرده است. گوگل مدعی است که نه از جاوا بلکه از بخشی از تکنولوژی جاوا به اسم Dalvik استفاده می کند.

دادگاه اولیه به نفع گوگل رای داد. اما دادگاه تجدیدنظر آمریکا رأی را به سود اوراکل تغییر کرد. گوگل مجددا از دادگاه عالی آمریکا درخواست ورود به پرونده را کرده است. ممکن است گوگل از اوراکل شکست بخورد. به همین دلیل، گوگل از همان ابتدا به دنبال جایگزین مناسبی برای جاوا در اندروید می گشت.

استفاده از جاوا در اندروید

کاتیلن چیست؟

کاتلین یک زبان برنامه نویسی است که در سال 2011 با حمایت شرکت JetBrains توسعه پیدا کرد. این زبان برنامه نویسی برای ماشین مجازی جاوا ساخته شد که این قابلیت را به کاتلین می دهد که تقریبا بر روی هر پلتفرمی اجرا شود.

مزایای کاتلین

  • هماهنگی با کدهای فعلی جاوا
  • توسعه و نگهداری ساده تر

معایب کاتلین

  • کمبود منابع آموزشی نبست به جاوا به دلیل جوان بودن کاتلین
  • تعداد بسیار کم نیروی متخصص
  • جاوا یک چیز دیگر است(!)

مقایسه جاوا و کاتلین در دستور زبان

کدهای کاتلین به مراتب کم حجم تر از کدهای جاوا هستند. با وجود اینکه نمی توان این ویژگی را ایراد یا مزیت در نظر گرفت، کاهش حجم کدها در کاتلین محسوس است. برای نمونه کد زیر یک خروجی را نمایش می دهد.

مقایسه دستور زبان جاوا و کاتلین؛ منبع : MLSDEV
مقایسه دستور زبان جاوا و کاتلین؛ منبع : MLSDEV

 

کاتلین یا جاوا ؛ مقایسه شاخ به شاخ

شاخص مقایسه جاوا و کاتلین جاوا کاتلین
ماجراهای Null شاید خسته کننده ترین و آزار دهنده ترین موردی که در جاوا وجود دارد، پدیده ی NullPointerExceptions است. این حالت زمانی اتفاق می افتد که توسعه دهنده مقدار Null را به متغیری نسبت می دهد. پس از آن در قسمت دیگری از برنامه آن را فراخوانی می کند و با این پدیده مواجه می شود؛ که نیازمند برطرف کردن است. اگر یک نکته طلایی در کاتلین وجود داشته باشد این است که همه ی متغیر ها در این زبان برنامه نویسی به صورت پیشفرض غیرقابل Null شدن هستند. اگر توسعه دهنده به عمد اینکار را انجام دهد، در زمان کامپایل خطا نمایش می دهد.

اگر هم هنوز اصرار به داشتن متغیری با مقدار Null داشتید، کد زیر کمک تان می کند:

value num: Int? = null

گسترش عملکرد کلاس اگر در جاوا بخواهیم عماکرد یک کلاس را گسترش دهیم، باید با ارث بری از کلاس اصلی، یک کلاس جدید بسازیم. تقریبا می توان گفت که این قابلیت در جاوا وجود ندارد. کاتلین به توسعه دهنده ها قابلیت گسترش عملکر یک کلاس بدون ساخت کلاس جدید را ارائه می کند.
چک کردن استثناها در جاوا قابلیت بررسی استثناها وجود دارد. توسعه دهنگان می توانند exception تعریف کنند که در زمان اتفاق افتادن آن کاری انجام شود. در کاتلین نمی توان استثناها را بررسی کرد. ااصلا نیازی هم به تعریف آنها ندارند. این قابلیت کاتلین می تواند مزیت یا ایراد باشد.
برنامه نویسی تابع گرا تا عرضه Java 8، برنامه نویسی تابع گرا در جاوا وجود نداشت. در حالی که در توسعه اپلیکیشن های اندروید برخی از ویژگی های Java 8 پشتیبانی می شود. کاتلین ترکیبی از برنامه نویسی رویه ای و تابع گرا را ارائه می دهد. این ترکیب تعداد زیادی متدهای کاربردی در خود جای داده است.

 

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

هنوز معلوم نیست که در انتهای دعوای گوگل با اوراکل کدام یک پیروز می شوند. نتیجه هر چیزی که باشد گوگل جایگزین نسبتا مناسبی برای جاوا پیدا کرده است. نسبت به زبان های برنامه نویسی باسابقه مثل جاوا و ++C، کاتلین جوان است. هنوز تعداد قابل رقابتی از برنامه نویسان از کاتلین استفاده نمی کنند. اما ظرفیت های کاتلین و طرز تفکر پشت آن به همراه حمایت های گوگل با وارد کردن آن به اندروید، شانس فراگیر شدن این زبان برنامه نویسی را افزایش می دهد.

نتیجه گیری

با مقایسه جاوا و کاتلین، تعریف و تمجیدها از کاتلین و حمایت تمام قد گوگل از آن، هنوز هم توسعه دهندگان اندروید برای مهاجرت از جاوا شوق ندارند. باید اعتراف کنم که برنامه نویسی با جاوا مزه ای دارد که در هیچ زبان برنامه نویسی دیگری بدست نمی آید. البته این نکته را باید در نظر بگیریم که گوگل در جال سرعت بخشی به فرایند مهاجرت از جاوا به کاتلین است. هر کدا

 

منابع

https://www.moveoapps.com/blog/java-vs-kotlin/
https://hackernoon.com/java-vs-kotlin-its-time-to-expand-android-development-f08e3d6a72b6
https://www.konstantinfo.com/blog/kotlin-vs-java/
https://www.netguru.com/blog/kotlin-java-which-one-you-should-choose-for-your-next-android-app
https://www.promptbytes.com/blog/java-vs-kotlin-the-no-nonsense-comparison-of-android-programming-languages
https://www.educba.com/java-vs-kotlin/

2 دیدگاهبستن دیدگاه‌ ها

2 دیدگاه

  • محمد نوری زاد
    ارسال شده 16 فروردین 1399 در 12:39 ب.ظ 0Likes

    سلام مقاله واقعا جامع و کامل بود. به نظرتون برنامه نویسی اندروید با زبان کاتلین بازار کار خوبی داره ؟ مخصوصا در آینده

    • ارسال شده 16 فروردین 1399 در 1:08 ب.ظ 0Likes

      سلام. متشکرم. گوگل در حال کم رنگ کردن جاوا و قدرت دادن به کاتلین هست. اما پیشنهاد می کنم اول جاوا رو یادبگیرید. این آینده ممکنه 5 سال دیگه اتفاق بیافته.

ارسال دیدگاه

عضویت در خبرنامه

آخرین پست ها و مقالات را در ایمیل خود دریافت کنید

[mc4wp_form id="517"]

ما قول می دهیم که اسپم ارسال نشود :)