در بین معروف ترین زبان های برنامه نویسی موبایل، زبان برنامه نویسی کاتلین جز جوانترین گزینهها محسوب میشود. با این وجود در چند سال اخیر محبوبیت فراوانی در ایران و دنیا بدست آورده است. بعد از اینکه در سال ۲۰۱۹ شرکت گوگل برنامه نویسی کاتلین را به عنوان یک زبان رسمی برای توسعه اپلیکیشنهای اندروید معرفی کرد، شرکتهای بیشتری برای توسعه اپلیکیشنهای خود، از آن استفاده کردند.
در این مقاله سعی دارم که به سوالهای “زبان برنامه نویسی کاتلین چیست” و “کاربرد زبان کاتلین کجاست ”پاسخ بدهم. تا انتهای این مقاله با من همراه باشید.
مقدمات زبان برنامه نویسی کاتلین
اجازه بدهید در شروع بررسی کنیم کاتلین چیست و چطور باید برنامه هایی با کاتلین بنویسیم.
زبان برنامه نویسی کاتلین، یک زبان برنامه نویسی open-source (متن باز) است که در سال ۲۰۱۶ متولد شده است. این زبان توسط JetBrains و با هدف توسعه اپلیکیشنی که روی سیستم عامل ios و اندروید، به طور همزمان، اجرا شود، توسعه داده شد.
کاتلین بر روی ماشین مجازی جاوا(JVM ) اجرا میشود. همین مسئله باعث شده است زبان برنامه نویسی کاتلین به رقیب اصلی جاوا، با ۲۰ سال سابقه، تبدیل شود.
هردو زبان برنامه نویسی کاتلین و جاوا، در حوزههای توسعه سمت سرور، کلاینت، وب و اندروید کاربرد دارند.
به مثال زیر توجه کنید. ترکیب ویژگیهای قدرتمند و کدهای تمیز، باعث میشود برنامه نویسان زیادی جذب کاتلین شوند.
کدام شرکتها از کاتلین استفاده میکنند؟
کاتلین از ابتدای تولد محبوبیت زیادی کسب کرد. اما با مهر تایید گوگل کبیر(!) محبوبیت و شناخت کاتلین در سرتاسر دنیا به طور قابل توجهی گسترش پیدا کرد.
اگر به لیست شرکتهایی که از زبان برنامه نویسی کاتلین استفاده میکنند نگاه کنیم، با اسمهای شناخته شدهای مثل Google, Atlassian, Pinterest, Kickstarter, Uber, Netflix برخورد میکنیم.
شکی نیست که در سالهای آتی شرکتهای بیشتری به استفاده از کاتلین روی میآورند و این یعنی بازار کار خوب این زبان برنامه نویسی.
زبان برنامه نویسی کاتلین چه کاربردهایی دارد؟
کاتلین یک زبان برنامه نویسی general purpose است. به عبارت دیگر در حوزههای متفاوتی میتوانیم از کاتلین استفاده کنیم. اجازه بدهید کاربردهای متفاوت کاتلین را با هم بررسی کنیم:
توسعه اپلیکیشنهای موبایل cross-platform
یکی از دلایلی که شرکتها زبان برنامه نویسی کاتلین را برای توسعه اپلیکیشنهای موبایل انتخاب میکنند، cross-platform بودن آن است. ایده اصلی برنامههای cross-platform این است که شما برای انتقال برنامه به یک سیستم عامل جدید نیاز ندارید کل برنامه را تغییر دهید.
خالقان زبان برنامه نویسی کاتلین، توسعه دهندگان را تشویق میکنند که به صورت مرحلهای اپلیکیشن را بسازند. به عبارت دیگر با توسعه یک ماژول یا ویژگی شروع کنند و بعد از اتمام توسعه آن بخش، مرحله تست را شروع کنند.
کاتلین منطق کسبوکار و رابط کاربری را جدا کرده است. در نتیجه این امکان را به توسعهدهندگان UI(رابط کاربری- user interface) میدهد یک ظاهر بومی و یکسان برای اپلیکیشنها ایجاد کنیم. همچنین میتوان با ایجاد تغییراتی در کدهای سمت سرور، اپلیکیشن را برای اجرا بر روی ios هم آماده کرد.
چنین رویکردی در توسعه نرمافزار نتایجی از قبیل کد کمتر، خطاهای کمتر، سرعت بیشتر و هزینه کمتر را به دنبال دارد. در نهایت کمپانیها به جای ایجاد دو تیم متفاوت برای توسعه اندروید و ios ، نیاز به یک تیم توسعه دهنده کاتلین دارند. بهتره برای این موقعیت شغلی آماده باشید!
توسعه اندروید
تا قبل از سال ۲۰۱۶ تمام برنامههای اندروید با کمک جاوا نوشته میشدند. در آن زمان هیچکس تصورش را هم نمیکرد برای نوشتن اپلیکیشنهای اندورید، از زبان دیگری استفاده شود. تا اینکه کاتلین متولد شد و موافقان و مخالفان زیادی پیدا کرد.
زبان برنامه نویسی کاتلین راه جدیدی برای توسعه اپلیکیشنهای اندروید معرفی کرد. در این روش توسعه دهندگان نیازی به استفاده از جاوا ندارند، زبانی که مشکلاتی را نیز به همراه داشت.
هر چند این مشکلات در java8, java9, java10 برطرف شدند اما از محبوبیت جاوا کاسته شد.
مهمترین ویژگی زبان برنامه نویسی کاتلین، در توسعه اندروید، سازگاری آن با JDK6 است. این به آن معنا است که برنامهای که توسعه دهندگان کاتلین مینویسند، با دیوایسهای قدیمیتر هم سازگاری دارد. عملکرد بالا، کتابخانه کوچک run time و سرعت بالا در کامپایلیشن از دلایل دیگر محبوبیت کاتلین در توسعه اندروید است.
توسعه جاوا اسکریپت
همانطور که از قبل میدانید، زبان برنامه نویسی کاتلین میتواند بر روی ماشین مجازی اجرا شود. این بدان معنا است که شما میتوانید کدی را که با کاتلین پیادهسازی کردهاید را با کمک transpiler ها تغییر بدهید و به زبان دیگری تبدیل کنید.
هر چند ماشین مجازی محیطهایی مثل سیستم های تعبیه شده(embedded) و مرورگرها را پشتیبانی نمیکند. در واقع مرورگرها صرفا برنامههایی که جاوا اسکریپت نوشته شدهاند را میشناسد و اجرا میکند.
اگر نمیخواهید با دو زبان متفاوت کد بنویسید، این امکان برای شما فراهم است که کدهای کاتلین خود را کامپایل کرده و به جاوا اسکریپت تبدیل کنید. با این روش میتوانید برای نوشتن کدهای سمت کلاینت و سرور از کاتلین استفاده کنید. مرورگرها هم کاتلین تبدیل شده به جاوا اسکریپت را اجرا میکنند.
توسعه بخش سمت سرور
در بخشهای قبلی هم ذکر کردهام. زبان برنامه نویسی کاتلین صرفا در توسعه اپلیکیشنهای اندروید کاربرد ندارد. بر اساس دیتاهای JetBrains این زبان برای توسعه اندروید و کدهای سمت سرور استفاده میشود.
کمپانیهای زیادی با کمک این روش کدهای سمت سرور خود را توسعه دادهاند. کمپانیهایی مثل Google, Hexagon, Gradle .
کاتلین برای پروژههای پیچیده و بزرگ که منطق پیچیدهای دارند، بسیار خوب عمل میکند. کاتلین سعی دارد با کاهش دفعات تکرار، حجم کد را به نسبت جاوا کاهش دهد. در نتیجه روند توسعه پروژه کم هزینهتر و پشتیبانی از آن آسانتر میشود.
کاتلین در مقایسه با جاوا
سالهای زیادی زبان برنامه نویسی جاوا، به تنهایی بار مسئولیت توسعه اپلیکیشنهای اندروید را به دوش میکشید. با تولد کاتلین، موقعیت جاوا تغییر کرد( پایههای حکمرانی چندین سالهی جاوای بی رقیب، لرزید). از آن زمان طرفداران جاوا مخالفت خود با کاتلین را شروع کردند. جنگی که تا همین امروز هم ادامه دارد.
در جدول زیر به اختصار بعضی از تفاوت های این دو زبان را بیان کردهام:
Java |
Kotlin |
|
Open Source (only OpenJDK) Object-oriented programming | Object-oriented and functional programming Java to Kotlin converter Open Source |
حوزههای استفاده |
Average security |
Higher security (enabled by null safety) |
امنیت |
Boilerplate |
Highly concise |
حجم کد |
Fast (clean builds) |
Fast (incremental compilations) |
زمان کامپایل |
Huge community |
Smaller community |
اجتماع حامی زبان |
در این مقاله تمام سعیام بر این بود که با کلیات زبان برنامه نویسی کاتلین، کاربردهایش و دلایل برتری آن نسبت به جاوا آشنا شوید. امیدوارم به هدفم رسیده باشم.
اگر سوال یا نظری درباره زبان برنامه نویسی کاتلین دارید، با من و سایر خوانندگان این مقاله در میان بگذارید. اگر جز آن دسته افرادی هستید که تجربه برنامه نویسی با این زبان را دارید لطفا نظرتان را درباره بازار کار این زبان بیان کنید. تا یادم نرفته، بنظر شما مقالهی بعدی دربارهی چه موضوعی باشد؟
راستی! تلگرام چ یاب رو برای با خبر شدن از آخرین دورههای آموزشی، محصولات و تخفیف های ویژه دنبال کنید.
منابع: learn.g2
آیا از کاتلین برای توسعه اپلکیشن های IOS استفاده میشود یا نه ؟
سلام
بله البته که استفاده میشه
توی بخش “توسعه اپلیکیشنهای موبایل cross-platform” در همین صفحه، گفتیم که کاتلین کراس پلتفرمه و به همین دلیل میشه برنامهای باهاش طراحی کرد که هم توی اندروید و هم توی ios قابل استفاده باشه.
لینک زیر هم توضیحات خیلی خوبی ارائه کرده و هم اینکه دوره یادگیری ساخت اپلیکیشن برای ios است:
https://www.raywenderlich.com/7357-ios-app-with-kotlin-native-getting-started
نمیدونستم کاتلین به صورت cross platform هم کاربرد دارد.
ممنون که به قولتان عمل کردید و در مورد کاتلین نوشتید.