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

سلامزبان برنامه نویسی جدید کاتلین چطوره ؟من یکسالی میشه که برنامه نویسی اندروید با کاتلین را شروع کردمباید بگم که من قبلا هم برنامه نویسی اندروید ( تقریبا از سال 92 که کافه بازار جون گرفت ) انجام میدادم البته زبان اصلی من زبان برنامه نویسی جاوا بود .در سال های قبل جاوا را برای تولید اپلیکیشن های اندروید در محیط ایکلیپس انجام میدادیم .اوایل برنامه نویسی اندروید خیلی سخت بود حالا سختی های برنامه نویسی با زبان جاوا و طراحی لیوت ها با XML به کنار کلنجار با باگ ها و خطاهای محیط ایکلیپس خودش دیوانه کننده بود آخه این محیط توسعه برای برنامه نویسی اندروید بهینه نشده بود .به همین علت هم بود که گوگل سالهای بعدی یک محیط جدیدی ساخت به نام اندروید استودیو و از برنامه نویسان خواست تا از محیط قدیمی ایکلیپس سریعا کوچ کنند به محیط اندروید استودیو جدید .مشکلات جدید با اندروید استودیومشکلات جدید با اندروید استودیوخب نسخه های اولیه خود اندروید استودیو هم کلی باگ داشت و مشکلات کند بودن و اشغال کردن خیلی زیاد از منابع بطوریکه من رم 8 داشتم و لپتاپم با نسخه های اولیه اندروید استودیو هنگ میکرد ...این کمی سرعت و سنگینی هم بخاطر وجود سیستم گردل در اندروید استودیو بود . ...حالا مشکل که ایکلیپس بود شده بود دوتا هم محیط جدید که مشکل داشت و کند بود هم محیط قدیمی که مشکل داشت و کم کم منسوخ میشد ... ( البته برای برنامه نویسی اندروید منسوخ میشد وگرنه هنوزم ایکلیپس جاهای دیگه کاربرد داره )یکی از روش هایی که برای حل مشکلات سرعت اندروید استودیو پیشنهاد میشه خریدن یک هارد SSD بود و ارتقا رم به بالای 8 گیگ ...البته من همه ی این کارها رو کردم ولی محیط اندروید استودیو بازم ادم رو اذیت میکردراستی یادم رفت بگم نسخه های اولیه این محیط خیلی سرد بود ادم بازش میکرد فکر میکرد یه محیط نرم افزاری مثل فتوشاپ باز کرده اصلا شبیه چیزی برای برنامه نویسی نبود :‌))))مشکلات اندروید استودیو با انتشار سریع نسخه های جدید توسط تیم گوگل بهبود پیدا کرد و رفته رفته بهتر شد و اینجا بود که من برای همیشه به ایکلیپس گفتم بای بای ... :)حالا با محیط جدید یعنی اندروید استودیو انس گرفتم ولی باز برنامه نویسی اندروید مشکلات خودش را داشتمشکلات زبان جاوا در برنامه نویسی اندرویدجاوا یک زبان قوی هست و تجربه ی خیلی زیادی داره فکر کنم یه سی سال سن داره و شاید سنش از من بیشتره جاوا همه جا کاربرد داره و یکی از زبان های قدرتمندهولی چیزی که جاوا نداره سادگی اونه کدهاش خیلی پیچیده هستن ... شاید این چیزی بود که به پایتون میدان داد تا موفق بشه پایتون برعکس جاوا سادگی داره ... کدها قابل فهم و بسیار کوتاه و ساده هستند درست برعکس جاوا که همه چی در هم برهمه و یه عالمه اسم کلاس و تابع و کدها و سینتکس های عجیب غریب و مشکلات و خطاهای برنامه نویسی که واقعا رفع کردنش صبر ایوب میخاد ...یکی از اون خطاها که بلاخره در هر برنامه نویس اندرویدی میخابه خطای معروف NullPointerException بود که اسمشو نمیدونم خطای چند میلیون دلاری گذاشته بودن ....ولی این مسئله نبود فقط کدهای جاوا برای برنامه نویسی اندروید سالم نبودند یعنی اگر در یک جایی یک هو یک متغیری مقدارش خالی میشد اپلیکیشن شما کرش میکرد ...کیفیت اپلیکیشن های اندرویدی در مقابل اپ هایی که برای رقیب اندروید یعنی IOS تولید میشدن کمتر بود اپ های اندروید بیشتر کرش میکردن و زودتر باطری رو خالی میکردن و منابع زیادی از گوشی رو میگیرفتنتا اینکه در شرکت خوب جت برینز که خود اندروید استودیویی که بالا توضیح دادم هم بر پایه ی یک محیط اوپن سورس به نام اینتلی جی که ساخته ی شرکت جت برینز هست توسعه داده شده .یعنی عملا هسته ی اندروید استودیو برمیگرده به توسعه دهندگان جت برینز ....خب از بحث دور نشیم داشتیم درمورد محصول جدید جت برینز میگفتیم بله ! تا اینکه در شرکت خوب جت برینز یک زبان برنامه نویسی جدیدی خلق شد به نام کاتلین ( kotlin ) که این زبان برنامه نویسی در ماشین مجازی جاوا اجرا میشد درست مثل خود کدهای جاوا !یعنی قابلیت این رو داشت که کدهایی با این زبان نوشته بشه و در اندروید اجرا بشه !‌تولد زبان کاتلینتولد زبانی به نام کاتلین kotlinاما کاتلین در دل اکثر برنامه نویسان اندرویدی جا باز کرد . این مسئله زمانی بود که هنوز خیلی ها نمیدونستن کاتلین چیه ولی خیلی های دیگه اپلیکیشن های خودشون رو با کاتلین مینوشتن و در نهایت خیلی از مشکلات جاوا ، دردسرهای جاوا و همچنین باگ هایی که با جاوا تولید میشد را دیگه نداشتنعملا کاتلین مزیت های زیر رو نسبت به جاوا داره :‌کدنویسی باهاش راحت ترهکد های کمتری قراره بنویسید (‌ خلاصه است )یادگیریش آسون ترهکدهای سالمی داره بخاطر وجود سیستم Null Safety که باعث میشه دیگه همینطوری متغیرها مقدار Null به خودشون نگیرن که فردا اپلیکیشن شما هزار بار کرش بکنهاپ های تولید شده منابع کمی از سخت افزار اندروید اشغال میکنندبرنامه های تولید شده باطری کمتری از دیوایس اندرویدی مصرف میکند چون مصرف منابعشون کمه طبیعیهو خیلی چیزای دیگهمزیت های کاتلین نسبت به جاوا برای برنامه نویسی اندروید را دیدیم و این رو قبل از ما تیم گوگل هم دیده و همینجا بود که تصمیم گرفتن کاتلین را بعنوان زبان رسمی برنامه نویسی اندروید معرفی کنند .کاری که قبلا سابقه نداشتخب دقیقا یادم نیست چه تاریخی بود ولی مطمئن چند سالی نمیشه که طی یک مراسمی به نام Google I/O تیم اندروید گوگل کاتلین را بعنوان زبان رسمی برنامه نویسی اندروید معرفی کرد . (‌تصویر زیر )معرفی رسمی کاتلین توسط شرکت گوگلدقیقا این تاریخ بود که یهو همه ی برنامه نویسان اندروید از سرتاسر دنیای حمله کردن به سمت کاتلین ...همگی هم تقریبا کاتلین رو پسندیدن و من کسی رو ندیدم کاتلین را یاد بگیره باهاش اپلیکیشن تولید بکنه و بعد بگه ای بابا کاتلینم شد زبان ؟ ولش کن برمیگردم سر جاوا !!!‌چنین چیزی اصلا اتفاق نیوفتادهاما من چطور برنامه نویسی کاتلین را شروع کردمتازه که کاتلین اومده بود منابع آموزشی خوب واسش واقعا وجود نداشت نه تو یوتیوب نه تو یودمی نه جای دیگه !حتی استک اورفلو هم سوال های کاتلین بی جواب میموند چون اونطور متخصص خوب براش نبود ... خب طبیعیه جاوا ده ها سال قدمت داشت کاتلین دو سه ساله هم نبود ...این زبان نو پا تلاش کرد و کم کم رشد کردکم کم آموزش ها یکی یکی واسش دراومد ...من قبل از اینکه اموزش های ویدیویی ببینم سعی میکردم همه چی را از مستندات سایت اصلی زبان کاتلین یاد بگیرم ولی باور کنید مستنداتش خوب نبودن حتی برای یادگیری آرایه دو بعدی یک هفته علاف شدم و آخرش نفهمیدم مستندات کاتلین داره چی میگه ( هنوزم همونطوره گنگه )‌ولی آموزش های ویدیویی خوبی پیدا کردم اوایل خوب دنبال انگلیسی بودم و باور هم نمیکردم آموزش خوب وقتی برای زبان انگلیسی وجود نداره برای زبان فارسی باشه !ولی با تعجب به یک دوره رسیدم که در 99 جلسه ... فکر کنم نصف دوره کل سینتکس این زبان جدید را یاد میداد و همش در محیط Intellij بود و مدرس خودش میگفت برای یادگیری سینتکس اصلی کاتلین بهتره با محیط اینتلی جی کار کنید و بعد که خوب یاد گرفتید برید سراغ اندروید استودیو و برنامه نویسی واقعی برای اپلیکیشن اندرویدی ...نصف بعدی این دوره پروژه محور بود یه گیم توش میساخت و دو تا اپلیکیشن که سورس کدهاش هم کنارش بود خیلی عالی بودن یعنی نکات داخلش انقدر روان و خوب گفته شده بودن که من مسائلی که هفته ها درگیرش بودن تازه فهمیدم عه چقدر ساده بودن ولی من منبع خوبی نداشتمدوره را اقای مهندس نیک زاد تهیه کردن واقعا دستشون درد نکنه همینجا تشکر میکنم ازشونمن هنوزم دورشون رو دارم و از سایت آواسام تهیه کرده بودممن یه فرهنگ خوب در سایت های خارجی دیدم که مثلا یکی یه محصولی رو میخره اگر کیفیت خوبی داشت تعریف کردن و معرفی اون محصول به دیگران را وظیفه و مسئولیت خودش میدونه و این خلی جالبهمنم خب از این محصول راضی ام چرا دروغ بگم قیمتشم نسبت به دیگه دوره های فارسی فوق العاده بوداین کاوره محصول آموزشی کاتلین که میتونید استفادش کنید و من شدیدا توصیه میکنم حتما تهیه اش کنید :‌دوره ی آموزش کاتلین استاد نیک زاد برای تهیه این دوره هم به لینک زیر بریددوره ی آموزش کاتلین استاد نیک زادامیدوارم مقالم مفید بوده باشه