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

SalarJalali
SalarJalali
جاوا یا کاتلین ؟ جواب این سوال به صورت مختصر اینه که : قطعا کاتلینتوی این ویدیو قراره بررسی کنیم ببینیم این سوال باستانی که ...
جاوا یا کاتلین ؟ جواب این سوال به صورت مختصر اینه که : قطعا کاتلین
توی این ویدیو قراره بررسی کنیم ببینیم این سوال باستانی که جاوا بهتره یا کاتلین جوابش چیه؟ بزارید مسیر رو با مطرح کردن چند تا سوال راحت کنیم.
سوال اول : پیشنهاد خود گوگل ، انتخاب کدوم یکیشونه ؟
باید بگم که پیشنهاد گوگل در حال حاضر انتخاب کاتلین هست به عنوان زبانی که برای توسعه اپلیکیشن های اندرویدی استفاده میشه .
اما بیایم برگردیم به 10-11 سال قبل یعنی سال 2011 این سال سالی هست که کاتلین به صورت رسمی معرفی شده ، توی این زمان اپ های اندروید با java توسعه داده میشدند اما یه مشکلی از همون سالهای ابتدایی اندروید با توسعه دهنده ها بوده و اون مشکل این بود که نسخه های جدید تر جاوا همیشه دیر به توسعه دهنده های اندروید میرسید. البته تاکید میکنم به توسعه دهنده های اندروید.
سال 2011 نسخه ای از java که برای توسعه روی اندروید ازش استفاده میشد نسخه 6 جاوا بود که توی اون سال این نسخه در واقه 5 ساله بود
سال 2013 و با معرفی نسخه شماره 19 ابزار توسعه اندروید بالاخره استفاده از نسخه 7 جاوا ممکن شد اما باز هم با 2 سال تاخیر
در حال حاضر هم اگر بخواید میتونید از نسخه 8 جاوا استفاده کنید که اون هم سال 2014 معرفی شده
اما با استفاده از کاتلین ، به این علت که شما از موتور مجازی جاوا استفاده میکنید که اسمش هست jvm و همینطور به هسته اصلی خود کاتلین هم دسترسی دارید وقتی قابلیت جدید به این زبان اضافه بشه شما بلا فاصله میتونید که از اون قابلیت استفاده کنید و همزمان هم از قابلیت های جاوا
اما این jvm چیه؟
jvm بستری هست که به کامپیوتر یا دستگاه موبایل شما اجازه میده نرم افزاری هایی که با زبان جاوا نوشته شدن و  یا حتی  بریم جلو تر نرم افزار هایی که با زبان دیگه ای نوشته شدن و میتونن کد هاشون رو به بایت کد های جاوا تبدیل کنن رو اجرا بکنه.

اما سوال دوم : از چه زمانی کاتلین برای توسعه اپ های اندرویدی اضافه شده ؟
سال 2017 سالی بود که گوگل برای اولین بار کاتلین رو معرفی کرد به عنوان زبان برنامه نویسی دوم برای توسعه دهنده های اندروید
و سال 2019 کاتلین به عنوان انخاب اول گوگل برای توسعه اپ معرفی شد
خب با این تفسیر سوال سوماینه که
که آیاهنوز هم از جاوا برای توسعه اپ اندروید استفاده میشه؟؟
در جواب باید بگم که بله ، هنوز خیلی از نرم افزار هایی که در گذشته ایجاد شدن روی جاوا دران توسعه داده میشن و حتی ممکنه نرم افزار های جدید هم روی جاوا ساخته بشن پس همچنان توی بازار توسعه اپ اندروید با جاوا داره انجام میشه
اما به عقیده من استفاده از جاوا در حال حاضر برای ایجاد اپ های جدید توجیه نداره
اما سوال بعدی اینه که آیا گوگل بیخیال جاوا میشه؟؟
راستش نمیدونم که کاملا ساپورتش رو از روی جاوا برداره یا نه اما چیزی که در حال حاضر واضحه اینه که امکانات و ابزار های جدیدش رو داره روی کاتلین توسعه میده و این مسئله به مرور زمان ممکنه جاوا رو از این بازی خارج بکنه
سوال بعد اینکه آیا کاتلین برای توسعه اندروید کافیه؟؟نیازی نیست که قبلش جاوا رو هم یاد بگیریم؟؟
بزارید یه جواب قاطعانه به این سوال بدم یه بله بزرگ ،کاتلین همه نیاز های شمارو برطرف میکنه و در مقابل ابن جاوا هست که بعضی از قابلیت هارو با خودش نداره پس قطعا کاتلین به تنهایی کافیه ، برای یادگیری کاتلین هم صرفا نیازی به دونستن جاوا نیست ولی بابد بگم دونستن جاوا برای فهم بهتر کاتلین و اتفاق هایی که داره حین برنامه نویسی و اجرای اپ میوفته میتونه به شدت کمک کننده باشه و سرعت یادگیری شما رو بالاتر ببره اما بازهم به صورت قطعی نیاز نیست شما برای یاد گیری کاتلین از جاوا چیزی بدونید
نکته بعدی راجب دونست جاوا اینه که شما به عنوان یه توسعه دهنده موبایل توی بازار کار ممکنه بخواید جایی روی یه پروژه قدیمی تر که با جاوا نوشته شده کار بکنید که اینجا دونستن جاوا قطعا براتون اهمیت پیدا میکنه
من هم توی آموزش هایی که قراره از همین کانال منتشر بشه یه دوره جاوا صرفا برای آشنایی شما قرار میدم چون به نظر من میتونه کمک بزرگی برای شما باشه  روی یادگیری کاتلین که هدف اصلی این کانال هست

خب از این سوالات عبور کنیم و ببینیم که کاتلین چه مزایایی نسبت به جاوا داره
• مزیت اول که قبلا هم بهش اشاره کردم به روز بودن کاتلین و دسترسی سریع به همه قابلیت های جدیدش هست
• مزیت بعدی کاتلین اینه که میشه ازش برای ساخت اپلیکیشن های کراس پلتفرم( که هم روی اندروید و هم روی ios) اجرا بشن استفاده کرد
با استفاده از قابلیت kmm که یک رابط نرم افزاری هست برای توسعه روی هر دو پلتفرم اندروید و ios شما میتونید اپ هایی بسازید که هم از کاتلین استفاده کنه هم از swift که زبان برنامه نویسی برای محصولات اپل هست و یه سری از بخش هارو هم به صورت مشترک پیاده سازی کنید که خیلی اتفاق بزرگیه
• مزیت بعدی کاتلین استفاده از تکنولوژی های جدیدیه که با جاوا نمیتونید کاری براش انجام بدین مثل Compose که برای طراحی ظاهر اپتون  میتونید ازش استفاده بکنید برای ظواهری که مدرن تر هستن و پیاده سازی رو واقعا راحت تر میکنه
• و در آخر هم باید به قابلیت های خود زبان کاتلین اشاره بکنم مثل :
nullSafty
Coroutienes
خلاصه تر بودن سینتکس
و data class  ها
و البته یه عالمه مورد دیگه که وقتی توی آموزش ها پیش بریم قطعا باهاشون آشنا میشین

همه توضیحات ...