زبان برنامه نویسی کاتلین
1399-06-18

چرا زبان برنامه نویسی کاتلین، رقیب سرسخت جاواست؟

کاتلین، Trend روز برنامه نویسان ایرانی و جهان

امروز می‌خواهم مطلب خود را با این سوال آغاز کنم:

"آیا می‌دانید زبان برنامه نویسی کاتلین به عنوان دومین زبان برنامه‌نویسی برای اندروید از سوی گوگل معرفی شده است؟"

JetBrains در سال ۲۰۱۱، کاتلین را معرفی کرد که با استقبال خوبی از طرف برنامه‌نویسان مواجه شد. اولین ورژن پایدار آن در سال ۲۰۱۶ ارائه شد و سال ۲۰۱۷ در کنفرانس IO17 بود که گوگل رسما از این زبان پشتیبانی کرد و آن را زبان دوم برنامه‌نویسی برای اندروید معرفی کرد.

درست پس از پایان یافتن کنفرانس I/O گوگل، نمودار رشد زبان کاتلین شتاب عجیبی به خود گرفت و ناگهان بر تعداد توسعه‌‌دهندگانی که کاتلین را برای برنامه‌نویسی اندروید انتخاب کردند، افزود تا جایی که به یک رقیب سرسخت برای جاوا تبدیل شد و توانست در سال 2020 در برنامه‌نویسی اندروید از جاوا پیشی بگیرد.

البته استقبال از زبان برنامه‌نویسی کاتلین غیر منتظره نبود چرا که این زبان ذاتا کامپایل شده است و سریع‌تر از زبان‌های دیگر عمل می‌کند؛ در نتیجه اپلیکیشن‌های بهتر و قوی‌تری میتوان با آن تولید کرد. از همه مهم‌تر این است که زبان برنامه نویسی کاتلین با زبان‌های پر استفاده دیگر اندروید مانند جاوا کاملا سازگار است.

جالب است بدانید که نام کاتلین از جزیره‌ای به همین نام در اطراف سن پترزبورگ روسیه گرفته شده است. به این دلیل که بیشتر کارهای توسعه Kotlin در شعبه سن پترزبورگ JetBrains انجام شده بود.

آموزش برنامه نویسی کاتلین

فکر می‌کنید دلیل ایجاد زبان برنامه نویسی کاتلین چه بود؟


تصور کنید زبان "جاوا" اتومیبلی است که دارای موتوری سریع و قابل اعتماد است و چرخ‌هایی شگفت‌انگیز و شاسی فوق‌العاده‌ای دارد. اما ممکن است در ویژگی‌هایی دیگری چون راحتی، سیستم صدای بلند و ... کمبود داشته باشد. زبان کاتلین علاوه بر ارائه ویژگی‌های جاوا، برخی از ویژگی ‌اضافی که در بالا ذکر شد مانند سیستم صوتی عالی، صندلی راحت و غیره را دارا می‌باشد.

دلیل ایجاد زبان برنامه نویسی کاتلین


حالا چرا زبان برنامه نویسی کاتلین را انتخاب کنیم؟

چرا زبان برنامه نویسی کاتلین را اجرا کنیمبهتر است بدانید که زبان برنامه نویسی کاتلین یک زبان منبع-باز، تایپ استاتیک و همه منظوره می‌باشد که ویژگی‌های برنامه نویسی شی‌گرا و ماژولار را با هم ترکیب کرده است. اولین دلیلی که میخواهیم برای استفاده از کاتلین نام ببریم، سازگاری کامل کاتلین با جاواست. شما در هر جای پروژه که از جاوا استفاده کرده باشید، میتوانید از کدهای کاتلین هم استفاده کنید و نگران هیچ مشکلی مثل پایین آمدن سرعت اجرای پروژه خود نباشید. از طرف دیگر شما میتوانید کدهای جاوا را به کاتلین و بالعکس تبدیل کنید. 

 

 

اما چه مزیت یا ویژگی مهمی از زبان برنامه نویسی کاتیلن باعث شده که برنامه نویسان از جاوا به سمت کاتلین راغب ‌شوند؟ ویژگی زبان برنامه نویسی کاتلین

  • اولین دلیل قدیمی بودن زبان جاواست که قدمتی ۲۲ ساله دارد و ممکن است خیلی از تکنولوژی های جدید را نتواند یا با سختی و پیچیدگی فراوان آن را پیاده سازی کند.

  • جاوا ترکیبی از کدهای طولانی است.

  • کامپایل کدهای جاوا بسیار کند است.

 

 

 

 

 

کامپایل شدن کد کاتلین به کدهای جاوا اسکریپت: 

خب اگه بخواهم از شگفتی دیگر زبان برنامه نویسی کاتلین خدمت شما عزیزان بگویم، استفاده شدن کدهای کاتلین در جاوا اسکریپت است. یعنی کدهای کاتلین به خروجی ECMAScript 5.1 تبدیل می شود.

اما ویژگی‌های خروجی کدهای جاوا اسکریپت:کامپایل شدن کد کاتلین به کد جاوا اسکریپت

  • بهینه بودن خروجی کدها 

  • خوانایی بالای کدها

  • همکاری خروجی کد با کتابخانه های موجود

  • خروجی کدها به صورت استاندارد زبان برنامه نویسی


چگونه از آنها استفاده کنیم؟

 تبدیل به کدهای سمت کاربر به دو صورت انجام می‌گیرد:

  • تعامل با DOM Element: کاتلین اینترفیس‌هایی برای کار با Document Object Element فراهم می‌کند که می‌توان آنها را ایجاد و بروزرسانی کرد.

  • تعامل با کتابخانه‌های گرافیکی مثل WebGL

 در سمت تبدیل به کدهای سرور به صورت زیر است:

  • تعامل داشتن با تکنولوژی‌های سمت سرور مثل Node.js 

کاتلین می‌تواند همراه با کتابخانه‌ها و فریمورک‌های موجود مانند JQuery یا React استفاده شود. همچنین می‌توان به همراه یک API قوی، کدهای TypeScript را به Kotlin با استفاده از ابزار ts2kt تبدیل کرد و با ماژول‌های CommonJS ،AMD and UMD نیز سازگاری کامل دارد.

آیا استفاده از کاتلین به صورت محلی Kotlin/Native امکان‌پذیر است؟

آیا استفاده از کاتلین به صورت محلی Kotlin/Native امکان‌پذیر استدر پاسخ به این سوال باید بگویم بله؛ تکنولوژی Kotlin/Native به شما این امکان را می‌دهد که بدون استفاده از ماشین مجازی خاص، کدهای کاتلین را به کدهای باینری تبدیل و اجرا کنیم آن هم به وسیله‌ی کامپایلر (LLVM (Low Level Virtual Machine.

این تکنولوژی برای جاهایی که امکان اجرای هیچ VM امکان‌پذیر نیست، طراحی شده است مثل IOS یا Embedded system یا هر جایی که یک توسعه‌دهنده نیاز به اجرای یک برنامه مستقل با اندازه مناسب و نیاز به اجرای سریع داشته باشد. تکنولوژی Kotlin/Native به طور کامل با کد بومی یک سیستم‌عامل همکاری دارد و با کتابخانه‌های مختلفی همکاری میکند. مثلا می‌توان کدهای کاتلین را به زبان C خروجی گرفت. همچنین قابلیت همکاری با کد Objective-C را دارا می‌باشد.

جمع بندی:

امیدوارم از مطلب امروز لذت برده باشید اما به عنوان کلام آخر و جمع‌بندی این مطلب می‌خواهم شما را با IDEهای پشتیبانی شده از KOTLIN  و کاربردهای این زبان آشنا کنم.

Kotlin توسط تمام IDEهای اصلی Java شامل IntelliJ IDEA ،Android Studio ،Eclipse و NetBeans پشتیبانی می‌شود. 

از زبان برنامه نویسی کاتلین می‌توانید برای توسعه سمت سرور، وب، دسکتاپ و از همه مهم‌تر اندورید استفاده کنید.

در توسعه سرور به دلیل سازگار بودن کاتلین با JVM، می‌توانید از هر فریمورک موجود مانند Spring Boot ،vert.x ،JSF یا حتی فریمورک خاص این زبان به نام Ktor استفاده کنید. اما اگر می‌خواهید برای توسعه  از این زبان استفاده کنید، پیشنهاد ما استفاده از kotlin js است که نه تنها برای کدنویسی در سمت سرور، بلکه برای client نیز استفاده می‌شود و با سیستم‌های ماژولی مپل AMD و  common js  نیز همخوانی دارد.

برای توسعه دسکتاپ نیز می‌توانید از هر فریمورک رابط کاربری جاوا مانند  JavaFx ،Swing  یا ..... استفاده کنید. علاوه بر آن، فریمورک خاص Kotlin مانند TornadoFX نیز وجود دارد.

مقالات مرتبط

تفاوت dp و px در برنامه نویسی اندروید

واحد های اندازه گیری اندروید
زهرا چگینی
10

به نظر شما تفاوت dp و px در برنامه نویسی اندروید، این دو واحد اندازه گیری چیست؟ پس ما را همراهی کنید.

delegate چیست؟

Delegate ها چرا به زبان سی شارپ اضافه شدند؟
مرضیه فتاحی
15

delegate چیست؟ چه کاربردی دارد؟ چگونه و در چه موقعیت هایی باید ازآنها استفاده کرد؟ با ما همراه شوید تا تمامی این سوال ها دریابید.

اکشن (Action) در سی شارپ، راهی برای خواناتر شدن کدها

موارد استفاده ی Action در سی شارپ
زهرا چگینی
10

Action در سی شارپ از پایه و اساس Delegate ها استفاده میکند، درحقیقت همان Delegate های هستند که کار را برای ما راحت تر میکنند.

Extension method درسی شارپ، راهی برای کارایی بالا در کدها

اکستنشن (extension) درسی شارپ
مرضیه فتاحی
10

هدف ما دانستن نکات مهمextension method در سی شارپ، نحوه استفاده و همچنین کاربرد آن در کدنویسی است. پس با ما همراه شوید.

لیست کامل تگ های html که هیچ کس به شما نخواهد گفت

آشنایی با تگ های html
زهرا چگینی
15

تگ ها در html نقش مهمی دارند زیرا تمامی کارهای html با تگ انجام می‌شود. به همین دلیل ما یک لیست کامل از تگ‌های html برای شما آماده کرده‌ایم تا از آن استفاده کنید.

ویژگی های جدید asp.net core که حیرت برنامه نویسان را برانگیخت

معرفی ویژگی های جدید asp.net core از مایکروسافت
مرضیه فتاحی
10

ویژگی های جدید asp.net core چیست؟ مایکروسافت در این نسخه چه امکاناتی را برای برنامه نویسانش قرار داده است. اگر شما هم خواهان دانستن این مطالب هستید، ما را همراهی کنید.