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