چرا باید از زبان کوتلین در اندروید استفاده کنیم ؟
سلام دوستان امروز به بررسی زبان کوتلین (Kotlin) در اندروید خواهیم پرداخت کمی با زبان کوتلین در پست قبلی آشنا شدید در این مقاله به ویژگی های زبان برنامه نویسی Kotlin خواهیم پرداخت و بررسی می کنیم چرا باید از زبان کوتلین در اندروید استفاده کنیم در ادامه با ما همراه باشید.
در تاریخ 17 خرداد ماه (17th May 2017) گوگل زبان کوتلین (Kotlin) را به طور رسمی معرفی کرد و از اندروید استودیو 3.0 امکان استفاده از این زبان مهیا شد.
آیا زبان کوتلین جایگزین جاوا می شود ؟
علت این شایعات که توسط کانال ها تلگرامی در حال پخش شدن هست رو دقیقا نمیدونم چیه ! نه گوگل با Oracle دعوا داره و نه زبان کوتلین جای جاوا رو میگیره ! لطفا شایعات که دست به دست درحال چریخدن است را باور نکنید جاوا هیچوقت از اندروید حذف نمی شود چیزی که base آن جاوا است بخش اصلیش حذف می شود قضاوت با خودتان
چرا باید از زبان کوتلین Kotlin استفاده کنیم ؟
همانطور که زبان های برنامه نویسی دیگر در حال توسعه است زبان جاوا به آن گستردگی گسترش پیدا نمی کند و جاوا به نحوی در حال جا ماندن از دنیای برنامه نویسی آینده است پس نتیجه میگیریم زبان جاوا نمی تواند با زبان های برنامه نویسی بزرگ رقابت کند از این رو افرادی که با زبان برنامه نویسی کوتلین به صورت حرفه ای کار کرده باشند می تواند اپلیکیشن هایی با حجم کمتر از یک مگابایت را ایجاد کند ! و اگر به طور دقیق تر بخواهیم به ین مسئله بپردازیم جاوا 6 , 7 , 8 تمامی خواسته های برنامه نویسی را برآورده نمی کند.
ویژگی های زبان کوتلین
- حجم بسیار کم کد نویسی
- راحت بودن زبان برنامه نویسی
- کاهش حجم dex در برنامه
- فشرده سازی فوق العاده بالا
- خطا یابی در هنگان کد نویسی (به صورت پیشرفته نه همانند زبان جاوا باید تست کنید تا متوجه شوید)
- ایمن
- حدودا 7000 متود برای کتاب خانه کوتلین در اندروید قابل استفاده است (یعنی 7000 تا از متودهای جاوا برای کوتلین کامپایل شده است)
- امکان لوگ (log) گیری دز زبان کوتلین نیز وجود دارد.
شاید این سوال برای شما پیش بیاید که جاوا (Java) بهتر است یا کوتلین (Kotlin) ؟
هر زبان برنامه نویسی خوبی های و بدهای خودش را دارد و در صورت مقایسه آنها فقط شخص نظر خود را به خواننده تحمیل می کند هر دو زبان شیئ گرا هستند و از نظر برنامه نویسی زبان جاوا جز زبان High Level محسوب می شود و زبان کوتلین یک زبان native است.
شاید جالب باشد دو کلاس که با زبان جاوا و کوتلین نوشته شده است را با هم مقایسه کنیم
فکر کنید یک کلاس getter و setter داریم به نام Station
در زبان جاوا همانند زیر می شود
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | public class Station { private String id; private String address; private String city; private double latitude; private double longitude; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } } |
در زبان کوتلین همانند زیر می شود.
1 | data class Station(val id: String, val address: String, val city: String, val latitude: Double, val longitude: Double) |
همانطور که دید دیگر نیزا به تعریف getter و setter در زبان کوتلین نیست و به طور مستقیم می توان با آن ارتباط برقررا کرد.
یک مثال دیگر فکر کنید می خوایم یک Collection از نوع Integer درست کنیم
در جاوا همانند زیر می شود.
1 2 3 4 5 6 7 8 | void processList(List<Integer> list) { List<String> stringList = new ArrayList<>(); for (Integer i : list) { if (i % 2 == 0) { stringList.add(i.toString()); } } } |
در زبان کوتلین همانند زیر می شود.
1 2 3 4 | fun processList(list: List<Int>) { val stringList = list.filter { it % 2 == 0 }. map { it.toString() } } } |
شاید متوجه شده باشید که حجم کد نویسی در هر بار کمتر شد !
شاید یک سوال دیگه در ذهنتان باشد !
چرا زبان کوتلین محبوب نشد ؟
زبان کوتلین در سال 2017 به اندروید آمد همانطور که میبینید تازه به اندروید اضافه شده است استفاده از کدنویسی کوتلین باعث افزایش زمان build می شود که زیاد مهم نیست و بعضی ها اذعان کردن که باعث افزایش حجم فایل apk نیز می شود من خودم تا حالا با این مورد برخورد نکردم.
این مقاله نیز به پایان رسید.
موفق و پیروز باشید.
بالاخره بریم سراغ کاتلین یا تو همین جاوا بمونیم
جاوا بمونید ولی کوتلین زبان قوی هست و برنامه نویسی را ساده می کند.
تو رو خدا یکم بیشتر توضیح بده
ببینیم باید کوچ کنیم به این زبان با تو جاوا بمونیم
در جاوا بمانید هدف از کوتلین ساده کردن کد نویسی است.
در خصوص این که میگید Java نصبت به زبانهای دیگه زود آپدیت نمیشه:
اوراکل دیروز در پستی در وبلاگ رسمی آکواریوم خود اعلام کرد که قصد دارد نسخه سازمانی جاوا (Java EE) را به یک بنیاد متنباز واگذار کند ?
زبان جاوا مدتهاست که متنباز شده است ولی واگذاری مدیریت توسعه این پلتفرم به یک بنیاد متنباز باعث پیشرفت سریعتر و بهتر این پلتفرم خواهد شد. ۳ گزینه پیش رو یکی واگذاری به بنیاد آپاچی (Apache Foundation) دیگری واگذاری به بنیاد اکلیپس (Eclipse Foundation) و گزینه دیگر واگذاری به یک بنیاد جدید میباشد. چندی پیش اوراکل پروژه نتبینز (Netbeans) را به بنیاد آپاچی اهدا کرد و قبلتر از آن نیز میکروپروفایل در بنیاد اکلیپس تشکلیل شده بود. حال باید دید کدام بنیاد افتخار سردمداری این پلتفرم را خواهد داشت.
https://blogs.oracle.com/theaquarium/opening-up-java-ee
درست می فرمایید. منظورم من از آپدیت تغییر اساسی در بخش های مهم متود ها است این در صورتی است که شما هر ماه یکبار می توانید جاوا را آپدیت کنید. مبحث های مهمی در برنامه نویسی وجود دارد به جز کدهای basic جاوا مبحث memory leak را هرچقدر برنامه نویسی رعایت کند خود متود ها نیز باعث memory leak می شوند جاوا این بخش ها را سر و سامان نمی دهد ولی در کل اگر Apache Foundation آن را به دست بگیرد تغییراتی وسیعی در جاوا را خواهیم دید که خیلی کمک حال برنامه نویسان در آینده خواهد بود.
ممنون از اضافه کردن این مطلب.