شما احتمالا یک سری سال از جاوا استعمال کردهاید (شاید ده سالها)، طراحی اپلیکیشن در مشهد براین اساس با آن بسیار آشنا می باشید. شما کناره کناره گویش را می شناسید، و همینطور موردها مستند نشدهای وجود داراست که تنها جاواکاران کهن با سالها تجارب با آنها مواجه گردیدهاند.
بدین ترتیب زمانی لهجه جدیدی می آید و دیگر افراد به شما می گویند رایاپارس که به آن سوئیچ فرمائید، احتمالا شک وتردید خواهید داشت. اکثر عموم اینسیرتکامل میباشند، به ویژه افرادی که سالهای متعددی با جاوا عمل کرده و ارتباط صمیمانهای با آن داشتهاند.
شاید در بالا عشقای به سوئیچ کردن از جاوا به گویش دیگری را نداشته باشید، application ولی زمانی شغل با کاتلین را آغاز فرمایید متوجه تصویر بلندمرتبهتری خواهید شد، و نگرش و ذهنتان در ارتباط با آن تغییرو تحول خواهد کرد. در اینجا یکسری برهان را برای شما می آورم:
جاوا دیرین میباشد... خیلی کهن
جاوا یکیاز گویشهای قابل به کار گیری میباشد که به زمانههای خیلی پیشین بازمیشود. ولی امروزه زمانی از جاوا در اندروید به کارگیری میکنیم، حتی از مواقعی مثل لامبداها و استریمها حفاظت نمینماید.
بعضا طرق فرد ثالث برای حل برخی از این خصوصیتها با به کارگیری از ابزارهایی مثل RetroLambda، Streams backport و ThreeTenABP وجود دارااست، البته به کارگیری از آن ها عذابآور میباشد.
Android Nougat مبادرت جدیی را برای حمایت از برخی خصوصیتهای جاوا8 با استعمال از کامپایلر Jack ساخته میباشد، البته بخش اعظمی از آن ها تنها در حالتیکه قابل استعمال میباشند که شما minSdkVersion 24 را غرض قرار دهید؛ کاری که شما نباید ایفا دهید.
غلطها در جاوا
یکیاز گران قدرترین معایب جاوا روش رئیس \"null\" میباشد که باعث به NulPointerException (NPE) میشود، که تحت عنوان نادرست میلیارد دلاری شناخته گردیده است.
امروزه NPE یکی رایجترین دلایل سقوط (Crash) نرمافزارهای اندروید میباشد. درحقیقت غیر ممکن میباشد نرم افزارای سوای یک NullPointerException ساخت خواهد شد (درحالتی که شما این شغل را اجرا دادهاید به ما بگویید، ما خیلی مشتاق هستیم بدانیم چطور از آن اجتناب کردهاید).
و \"nullability\" (امکان خالی بودن) یک ایراد والا دیگر برای اندروید میباشد. Null یک طرز بسیار کارآمد و معمولی برای آرم دادن نبود مقدار میباشد و اندروید از آن در کادرورکها و APIهای خویش به کارگیری مینماید. بهتر وجود ندارد که جاوا آن را برای بسطدهندگان جهت مدیر آن بسیار مشقت بار میسازد.
اختلال سوم مرتبط با این حقیقت میباشد که اپنویسان اکثر وقت ها طرز پیادهسازی کلاسهای داخلی غیراستاتیک و کلاسهای داخلی anonymous، که مدام یک مرجع ضمنی را برای کلاسهای فرنگی نگه میداراهستند را نادیده میگیرند. با اعمال این عمل، پیشرفتدهندگان اپلیکیشنهای خویش را در معرض نشت خاطر قرار میدهند.
وقت گیرنویسی و تشریفات
مساله دیگری که وجود داراست این میباشد که گسترشدهندگان کد منزه و مختصر را دوست دارا هستند. کد کوتاه فرصت کمتر برای تایپ کردن و فرصت کمتر برای تلاوت را صرف مینماید و کمتر در معرض اشتباه میباشد. ولی با جاوا شما بایستی کد متعددی بنویسید تا حتی معمولیترین امور را ایفا دهید. در صورتیکه گسترشدهنده اندروید باشید، احتمالا آن را تجارب کردهاید.
تشریفات قابل توجهی در APIهای جاوا وجود دارااست، و اندروید حتی این مورد ها را با بدون چاره کردن بسطدهندگان برای طی کردن پروسه زیاد، با ترتیبی خاص برای ایفا شغل های گوناگون مثل دسترسی به مقر داده حادخیس میسازد.
در حالتی که بتوانید بخش اعظمی از این فرآیندها را بی آلایش فرمائید، تجربیات و سودوری خویش را تحت عنوان توسعه و گسترشدهنده اندروید به صورت قابل توجهی بهبود بخشیدهاید.
کاتلین برای رهایی از این ایرادات:
جاوا صرفا زبانی وجود ندارد که برای تشکیل داد نرم افزارهای اندروید می توانید از آن استعمال نمایید. به غیر از جاوا کاتلین یک لهجه open-source و statically-typed میباشد که بوسیله JetBrains پیشرفته میباشد.
JetBrains یک کدام از دوستداشتنیترین IDEها، IntelliJ IDEA و همچینین Android Studio را تولید نموده است که گوگل آن را تحت عنوان IDE استاندارد برای پیشرفت اندروید معرفی نموده است. JetBrains از کاتلین برای ساخت تولید ها خویش به کارگیری مینماید، بدین ترتیب بعید میباشد کهاین لهجه را ناگهان رها نماید.
کاتلین 100% با جاوا سازگار میباشد
این اولین چیزی بود که اینجانب دربارهی کاتلین دوست داشتم. شما میتوانید کد جاوا را از کاتلین و برعکس به طور یک پارچه فراخوانی فرمایید. هم کاتلین و هم جاوا bytecode مشابهی را ایجاد مینمایند، بدین ترتیب هیچ نگرانی نیست که شما چیزی را که به طور کامل با کاتلین گوناگون میباشد را جابهجا نمایید.
این بدان معناست که شما میتوانید از کاتلین در پروژههای مو جود خویش، در کنار به عبارتی جاوا سابق، به طور به طور همزمان استعمال نمائید. به عبارتیطور که استارت به شناخت با ساختار و سینتکس کاتلین میکنید، آغاز به تایپ کردن قسمتهای خرد و معمولی اپ خویش نمائید (که به هر اکنون فوقالعاده بی آلایش میباشد).
این مخلوط کد جاوا و کاتلین در پروژهها به نیکی عمل مینماید. امکان همیاری آن ها حقیقتا یک نعمت میباشد.
NullPointerExceptions کمتر
مجال سرمایهگذاری زیاد برای NPEها، جهت حفظ از کد با رسیدگی خالی نبودن در هر جایی، فعالیت مجالگیر و خستهکنندهای میباشد.
با کاتلین دیگر ما یحتاج وجود ندارد نگران NPEها باشید، چون امنیت null در سیستم کاتلین در لحاظ گرفته گردیده است. کاتلین NPEها را در طول کامپایل می گیرد به مکان آنکه آن ها را در حین انجام crash نماید.
چهگونه این فعالیت در فعالیت ایفا میشود؟ به صورت پیشفرض، تک تک متغیرها non-null می باشند. در شرایطیکه شما یک متغیر \" nullable\" را میخواهید، برای آن یک \"؟\" بگذارید.
IDE بهتر و جانبداری ابزار
شما خیلی نادر نگران امان مداوم می باشید، چون یک کمپانی خیلی دارای اعتبار پشت آن قراردارد. JetBrains کارشناس در تولید بعضی از IDEهای گزینه به کار گیری در عالم میباشد.