زبان کاتلین ، مقدمه – آموزش برنامه نویسی kotlin ، زبان kotlin در jetBrains (شرکتی از Intellij IDEA) اختراع شده و از سال 2012 نیز open source شد.Kotlin تحت تاثیر زبان هایی از جمله Gosu ، Scala ، Groovy و غیره ست.
کاتلین بصورت تخصصی برای پلتفرم اندروید استفاده میشود و جالب اینکه سازگاری کامل با زبان جاوا دارد بدین صورت که میتوان یک کلاس کاتلین را با یک کلاس جاوا هماهنگ کرد که به طور کامل با هم کار کنند.بدین صورت است که میتوان بسیاری از کتابخانه های جاوا را در پروژه kotlin پیاده و اعمال کرد.
کاتلین توانایی تبدیل شدن به جاوا اسکریپت هم دارد 🙂
زمانیکه شما هدفتون از kotlin جاوااسکریپت است هر کد کاتلین در پروژه (که قابل تبدیل باشد) تبدیل به جاوا اسکریپت خواهد شد.
فایل هایی که تبدیل نمیشود مانند JDK (Java Development Kit)و هر JVM (Java Virtual Machine) یا هر فریم ورک یا کتابخانه جاوایی که استفاده شده. درواقع میتوان گفت هر فایلی که kotlin نیست طی این کامپایل ignore یا نادیده گرفته میشود.
کامپایلر کاتلین برای اهداف زیر تلاش میکند :
– فراهم کردن خروجی با سایز بهینه شده
– ارائه خروجی که قابل خواندن جاوا اسکریپت است
– سازگاری با انواع ماژول های موجود در سیستم
– و…
به چه صورت هایی میتوان از kotlin برای جاوا اسکریپت استفاده کرد؟
ساخت client-side جاوااسکریپت با کد کاتلین برای هدف تعامل با عناصر DOM Kotlin .
تعامل با گرافیک هایی مثل WebGL (شما میتوانید از kotlin برای ساخت المان های گرافیکی با استفاده از WebGL استفاده کنید)
کاتلین با هدف server-side جاوا اسکریپت
کاربا تکنولوژی سمت سرور ( شما میتوانید از kotlin برای تعامل با server-side جاوا اسکریپت استفاده کنید مثل Node.js)
میتوان گفت Kotlin/Native یک تکنولوژی برای کامپایل کد کاتلین به باینری های نیتیو که متیوانند بدون نیاز به ماشین مجازی اجرا شوند است.
پلتفرم های هدف :
تمامی پلتفرم های زیر توسط Kotlin/Native پشتیبانی میشود
iOS (arm32, arm64, simulator x86_64)
MacOS (x86_64)
Android (arm32, arm64)
Windows (mingw x86_64, x86)
Linux (x86_64, arm32, MIPS, MIPS little endian, Raspberry Pi)
WebAssembly (wasm32)
برنامه نویسی ناهمگام یا non-blocking یک واقعیت جدید است.صد درصد کارایی برنامه (دسکتاپ ، اپ ، server-side و…) به اندازه ظاهر برنامه مهم و قابل بهبود خواهد بود یکی از مهم ترین مباحث مطرح در کارایی برنامه برنامه نویسی ناهمگام است که سرعت برنامه را بصورت محسوس بهبود میدهد.به طروق مختلف میتوان این مبحث را در برنامه خود پیاده و رعایت کرد برای مثال RxJava که یک کتابخانه بشدت قدرتمند است
همچنین بخوانید: کتابخانه RxJava را کاربردی بیاموزیم
اما حالا کاتلین Coroutines رو ارائه داده که میشه باهاش بصورت کاملا asynchronous یا ناهمگام برنامه نویسی کرد (ولی جدالی ست بین RxJava و coroutines. طرفدارهای هرکدام دلایلی برای حمایت دارند که همگی هم درست و بجاست و هردو کتابخانه واقعا قدرتمندند !)
در نهایت میتوان از kotlin در زمینه های مختلفی استفاده کرد و به جرأت میتوان گفت یکی از قدرتمند ترین زبان های ارائه شده ست.
توجه:
در ادامه پست های زیادی در رابطه با آموزش kotlin برای اندروید رو خواهیم داشت پس با ما همراه باشید تا با kotlinبیشتر آشنا شیم 🙂