تفاوتهای کاتلین (Kotlin) و جاوا (Java)
تمامی¬ی ما به صورت حتم خبرهایی از تکنولوژی را دایم دنبال می کنیم و میبینیم عالم روز آپ تو دیت در موضوع¬های متعدد طراحی سایت فروشگاهی تکنولوژی رو به رویش و گسترش میباشد. گویش¬های نرم افزار¬نویسی جزیی از این تکنولوژی می باشند که دراین مراحل در حالا بسط می باشند. هر نرمافزار¬نویسی مدام پیرو آپدیت شدن اطلاعاتش میباشد و ممکن میباشد با گویش¬های گوناگون اپلیکیشن¬نویسی آشنا خواهد شد. یکیاز پلتفرم هایی که گسترش دهندگان آن را دنبال می¬نمایند، اپ¬نویسی سیستم استدلال اندروید میباشد که برای ساخت و ساز نرمافزار اندروید آیتم استعمال قرار می گیرد.
برای تایپ کردن قابل انعطاف¬افزار برای سیستم استدلال اندروید گویش¬های مختلفی وجود داراست. شخصی که بصورت رشته¬ای بخواهد این مسیر را آغاز نماید می بایست همه گویش ها یا این که دست کم پرکاربردترین لهجه های گزینه استعمال جهت گسترش قابل انعطاف¬افزار های پلتفرم مدنظر را آیتم ارزیابی و مطالعه قرار دهد و آنگاه گویش خویش را گزینش نماید. درین وب لاگ به دو لهجه نرم افزار نویسی برای سیستم برهان اندروید، کاتلین (Kotlin) و جاوا (Java)، میپردازیم. علاوه بر معرفی این دو گویش، در باب تفاوت¬های این دو نیز سخن خواهیم کرد.
تاریخچه کاتلین (Kotlin Programming Language) :
گسترش اولین ورژن این گویش، در شهر سن پترزبورگ روسیه بوسیله کمپانی Jet brains ارائه شدهاست. از امکان های آن می شود به ایستا (Statically typed) و همگیمنظوره (General- Purpose) بودن برای ماشین مجازی جاوا (JVM)، اندروید و مرورگر (Browser) میباشد. معرفی آن در سال 2011 به وسیله شرکت Jet brains بود و اولین نسخه استوار(Stable) آن در سال 2016 به اسم نسخه 1.0 ارائه شد و با استقبال متعددی از نرم افزار¬نویسان اندروید مواجه شد.
در سال 2017 گوگل به طور رسمی این گویش را به تیم گویش های بسط اپلیکیشن های سیستم ادله اختصاص یافته خویش برای موبایل اضافه کرد. گوگل فعلا این گویش را تحت عنوان یک کدام از شایسته ترین گویشهای نرم افزارنویسی برای گسترش نرم افزارهای اندرویدی اعلام نموده است.
یک کدام از مهم ترین مزایای آن این میباشد که کاملا با جاوا رابطه برقرار میکند و همینطور به طور تقریب از تمامی¬ی کتابخانه¬های آن پشتیبانی می¬نماید.
تاریخچه جاوا (Java Programming Language) :
گویش نرمافزار نویسی جاوا (JAVA) در 23 مه 1995 بوسیله آقای جیمز گاسلینگ (James Gosling) پباده سازی شدهاست و اولی توشه به وسیله کمپانی Sun Microsystems در سال 1995 منتشر شد.یکی دلایلی که سبب ساز شد این گویش آوازه بخش اعظمی پیدا نماید خصوصیت شی گرا بودن آن میباشد امروزه لوگوی جاوا به طور فنجان قهوهای که از آن بخار میدمد، به نشانه جهانی اپنویسی تبدیل شدهاست. یک کدام از مهمترین مزایای کدنویسی جاوا این میباشد که یادگیری آن سهل می¬باشد.
بعضی تفاوت های این دو لهجه نرم افزار نویسی:
در اختیار گرفتن استثناها (Checking Exceptions):
• استثناها (Exceptions) یک کدام از مواقعی میباشد که در جاوا اختلال ساختوساز میکنند و در بیشتر مواقع برنامه نویس ها را سرگرم مینمایند؛ ولی کاتلین به خیر این خلل را رئیس نموده است. این گویش همگی اکسپشنها در دست گرفتن کرده و برنامه نویس ها، دیگر نیازی به مدیر این مورد ها در کدهای خویش ندارند.
تهی¬پذیری ( NullPointerException) :
• یکیاز خطاهایی که معمولا در جاوا وجود دارااست مقادیر Nullاست و زمانیکه بسط¬دهندگان از این مقادیر استعمال می¬نمایند ممکن میباشد با خطای NullPointerException روبرو شوند. بصورت پیش¬فرض همگی متغیرها در کاتلین non-null می باشند و چنانچه به یک متغیر مقدار null را تخصیص دهند، کد در هنگام کامپایل مردود می¬گردد.
بسط توابع (Extension Functions):
• در کاتلین برای توسعه دادن تابع¬های کلاس، می توانید پیشوند نام (name) کلاس به نام تابع نو را تغییرو تحول دهید البته در جاوا برای اینکه سعی کلاس جان دار توسعه و گسترش پیدا نماید می بایست یک کلاس نو ساخته گردد و از کلاس مامان (parent class) ارث¬بری (inherit) نماید.
کلاس¬های داده (Data Classes):
• در جاوا برای اینکه داده¬هایمان را حفظ کنیم به یک کلاس نیاز داریم. از این رو ما می بایست توابع تولیدکننده (Constructors)، متغیرهای ذخیره کننده داده، متدهایgetter و setter، توابع hash) code)، (to String) و (equals) را تعریفوتمجید کنیم. در گویش کاتلین هم برای محافظت داده¬ها به یک کلاس نیاز داریم البته با این تفاوت که یک کلاس با کلیدواژه data تشکیل شده آنگاه کامپایلر به طور خودکار کل توابع ما یحتاج مانند تابع تولیدکننده و غیره را تولید خواهد کرد.
اسمارت کَست (Smart Cast):
• در گویش جاوا می بایست نوع متغیر و Cast را مطابق با عملیات مربوطه چک کنیم. اسمارت کست در کاتلین با کلیدواژه is-checked کل مقادیر تغییر و تحول ناپذیر(Immutable Values) را آیتم نظارت قرار داده و کستینگ غیر بی واسطه (Implicit Casting) را نیز انجام خواهد بخشید.
استنتاج تایپ (Type Inference):
• در گویش جاوا، تایپ هر متغیر را می بایست به طور بدون واسطه (Explicit) مشخص و معلوم گردد. برنامه نویس ها لهجه کاتلین بدون چاره نیستند که تایپ هر متغیر را به طور بدون واسطه و بر پایه ی وظایفشان گزینش نمایند. ولی قابلیت معلوم کردن تایپ به طور بدون واسطه نیز به عهده¬ی برنامه نویس ها می باشد.
با کل تفاوت¬هایی کهاین دو گویش با یکدیگر داراهستند دیدنی میباشد بدانید نوعی سازش و هماهنگی در بین این دو میباشد؛ آن هم این میباشد که فولدر جاوا قابلیت و امکان تبدیل شدن به پوشه کاتلین را داراست. بهاین شکل میباشد که پس از نصب کردن افزونه، پوشه جاوای کهن به آن داده می¬خواهد شد و با کلیک کردن روی آن، آن پوشه را به فولدر کاتلین مساوی تبدیل میکند.
بنظر اینجانب هر اپلیکیشن¬نویسی مجموع همت خویش را می¬نماید که علاوه بر اینکه اعتنا کافی در کد نویسی خویش داشته باشد، به نحو احسنت از مقطع خویش به کار گیری نماید و حتیدر مقدار وقتی که صرف می¬نماید صرفه جویی نماید. با دقت به مقایسه¬ای که در بین گویش¬های کاتلین و جاوا داشتیم میتوانیم این مسئله را متوجه شویم که کامپایلرِ کاتلین بطور خودکار میتواند پروسه استنتاج نوع متغیرها را به نیکی انجام دهد کهاین قضیه منجر می¬گردد در مقدار برهه زمانی مصرفی صرفه جویی گردیده و نیز فایده¬وری را ارتقاء ¬دهد و این نکته می تواند دلیلی باشد برای پرطرفدار شدن کاتلین. علاوه بر همگی¬ی این موضوعات، یادگیری کاتلین سهل و آسان میباشد. همان طور که گفتیم یادگرفتن جاوا ریلکس می¬باشد و هرکسی بتواند با آن فعالیت نماید قادر است به راحتی با کاتلین نیز عمل نماید.