آشنایی با تفاوت های Java و Kotlin

مقدمه

سلام به همه پی وی لرنی های عزیز!
جاوا Java یک زبان برنامه نویسی شی گرا است.
برنامه ها یا برنامه های توسعه یافته در جاوا در JVM (ماشین مجازی جاوا) اجرا خواهند شد که با استفاده از آن می توان همان برنامه را روی چندین سیستم عامل و سیستم/دستگاه اجرا کرد.
کاتلین Kotlin هم یک زبان برنامه نویسی استاتیک است.
کاتلین یک انتخاب خوب برای توسعه برنامه های سمت سرور است و به کاربران امکان می دهد کد مختصر ولی موثر کد نویسی کنند.
در این مقاله قصد داریم به آشنایی با تفاوت های Java و Kotlin بپردازیم.

آشنایی با تفاوت های Java و Kotlin

بیایید پیش از آن که به آشنایی با تفاوت های Java و Kotlin مختصری راجع به هر دو بدانیم.

جاوا چیست؟

جاوا یک زبان OOP (برنامه نویسی شی گرا) است که در سال ۱۹۹۵ روی کار آمد.
جاوا در sun microsystems ساخته شد که بعدا توسط اوراکل خریداری شد.
اگر می خواهیم یک برنامه جاوا را در مرورگر اجرا کنید، باید از اپلیکیشن های جاوا استفاده کنیم که به عنوان افزونه تعبیه نشده اند.
بنابراین جاوا بیشتر برای برنامه های مستقل یا توسعه back-end استفاده می شود.
جاوا توسط جیمز گاسلینگ طراحی شده است و اجرای اصلی آن با OpenJDK است.
توسعه برنامه های کاربردی اندروید در جاوا نوشته شده است بنابرین جاوا انتخاب اصلی بسیاری از توسعه دهندگان است.

کاتلین چیست؟

کاتلین یک زبان برنامه نویسی جدید است که توسط برنامه نویسان IDE Jet Brains ساخته شده است.
کاتلین برای نخستین بار در سال ۲۰۱۱ معرفی شد اما انتشار رسمی آن در  سال ۲۰۱۶ صورت گرفت.
کاتلین منبع باز است و با زبان برنامه نویسی با استاتیک تایپ شده مانند ++Java و C که مبتنی بر JVM (ماشین مجازی جاوا) است اما می تواند برای ساخت کد نیز در JavaScript ، Android و Native تنظیم شود.
کاتلین با stacks های جاوا کاملاً سازگار است.
جابجایی از جاوا به کاتلین بسیار آسان است زیرا فقط نیاز به نصب افزونه است.

مقایسه کلی

در ادامه آشنایی با تفاوت های Java و Kotlin جدولی را ارائه کرده ایم که می تواند در مقایسه این دو موثر باشد.

تفاوت های اساسی
JavaKotlin
Null Safe
در جاوا، NullPointerExceptions اصلاً محبوب توسعه دهندگان نیست!
NullPointerExceptions اجازه می دهد به هر متغیری به نحو صحیحی اختصاص دهد اما همین موجب دسترسی به یک مرجع شیء با null value ایجاد می کند که کاربر باید آن را کنترل کند.
در کاتلین به طور پیش فرض همه متغیرها غیر null هستند (به عنوان مثال ما نمی توانیم مقادیر null را به هر نوع متغیر / شی اختصاص دهیم).
اگر سعی کنیم مقادیر null را اختصاص دهیم یا بازگردانی نماییم، کد کاتلین در زمان کامپایل خراب می شود.
اگر واقعاً بخواهیم یک متغیر دارای مقدار null باشد ، می توانیم به صورت زیر عمل کنیم

value num: Int? = null

توابع Extension
در جاوا ، اگر بخواهیم عملکرد کلاس موجود را گسترش دهیم ، باید یک کلاس جدید ایجاد کنیم و کلاس parent را inherit نماییم.
بنابراین توابع Extension در جاوا موجود نیستند.
کاتلین توانایی توسعه کلاس موجود با قابلیت های جدید را به توسعه دهندگان می دهد.
ما می توانیم با پیشوند نام یک کلاس برای نامگذاری توابع جدید، توابع extend ایجاد کنیم.
پشتیبانی Coroutines
در جاوا ، هر زمان که ما یک شبکه طولانی کار I / 0 یا CPU Intensive را شروع کنیم ، موضوع مربوطه مسدود می شود. زیرا Android به صورت پیش فرض تک رشته ای است.
جاوا امکان ایجاد چندین موضوع در پس زمینه و اجرا را فراهم می کند اما مدیریت آنها کار پیچیده ای است.
در کاتلین، می توانیم چندین threads ایجاد کنیم تا این عملیات فشرده طولانی مدت را انجام دهیم ، اما ما دارای پشتیبانی از Coroutines ها هستیم که اجرای آن در یک نقطه خاص بدون مسدود کردن threads هنگام اجرای عملیات فشرده طولانی مدت به حالت تعلیق در می آید.
استثنائات بررسی نشده
( checked exceptions )
در جاوا ما از checked exceptions برخورداریم که استثنائات را گرفته و اعلام نمایند که این کار سبب قوی شدن کد می شود.در کاتلین checked exceptions وجود ندارد بنابراین توسعه دهندگان نیازی به اعلام یا گرفتن موارد استثنائی ندارند

کلام آخر

در این مقال به آشنایی با تفاوت های Java و Kotlin پرداختیم.
امیدوارم بعد از خواند این مطلب درک روشنی از تمایز میان کاتلین و جاوا پیدا کرده باشید.
با پی وی لرن همراه باشید.

به اشتراک بگذارید