مقدمه ای بر زبان برنامه نویسی کاتلین
کاتلین یک زبان برنامه نویسی همه منظوره از نوع ایستا است که توسط شرکت JetBrains توسعه یافته است. این شرکت خالق IDE هایی با سطح کاربری جهانی همچون IntelliJ IDEA و PhpStorm و Appcode و … می باشد.
این زبان برای اولین بار توسط Jetbrain در سال 2011 به عنوان یک زبان جدید بر پایه JVM معرفی شد. کاتلین یک زبان برنامه نویسی شی گرا است که بر زبان جاوا برتری دارد اما همچنان با زبان جاوا سازگار است.
کاتلین توسط گوگل حمایت شده و در سال 2017 به عنوان یکی از زبان های رسمی برای توسعه برنامه های اندویدی معرفی شده.
نمونه کد کاتلینی:
fun main()
{
println("Hello Geeks");
}
ویژگی های کلیدی کاتلین
1) استاتیک بودن
استاتیک بودن زبان برنامه نویسی به ان معناست که نوع تمام متغیر ها و عبارت ها در زمان کامپیایل مشخص و شناخته می شود.
حال اینکه استاتیک بودن کاتلین سبب می شود شما نیاز نداشته باشید نوع تمام متغیر ها را در زمان تعریف متغیر ، تعیین نیز بکنید.
2) کلاس های داده
در کاتلین کلاس های داده ای وجود دارد که از تکرار کد های تکراری مانند نوشتن مجدد متد های equalsو hashCode toString و getters/setters و… جلوگیری میکند.
برای مثال کد زیر را در نظر بگیرید که با زبان جاوا است :
class Book {
private String title;
private Author author;
public String getTitle()
{
return title;
}
public void setTitle(String title)
{
this.title = title;
}
public Author getAuthor()
{
return author;
}
public void setAuthor(Author author)
{
this.author = author;
}
}
در حالی که در کاتلین تنها یک خط کافیست تا کلاس بالا را تعریف کنیم:
data class Book(var title:String, var author:Author)
3) مختصر بودن
کاتلین به شدت کد اضافیی که در زبان های دیگر وجود دارد را کاهش می دهد.
4) امن بودن در برابر NullPointerExceptions
این زبان ، از خطای NullPointerExceptions که یکی از آزار دهنده ترین خطاهاست با پشتیبانی از پوچ بودن (nullability) به عنوان یک بخش از سیستم ، جلوگیری میکند.
هر متغیری در کاتلین به طور پیش فرض غیر پوچ است.
String s = "Hello Geeks" // Non-null
اگر تلاش کنیم به متغیر s مقدار پوچ (null) را نسبت دهیم آنگاه با خطای زمان کامپایل برخورد میکنیم.
s = null // compile time error
برای آنکه فرضا به یک رشته مقدار null نسبت دهیم باید آن null شدنی (Null-able)تعریف شود.
String nullableStr? = null // compiles successfully
همچنین متد length() روی رشته های null غیر فعال شده است.
5) قابلیت همکاری داشتن با جاوا
کاتلین روی ماشین مجازی جاوا اجرا می شود بنابراین به طور کامل می تواند با جاوا همکاری کند. ما به راحتی میتوانیم به کد معادل جاوا و یا کاتلین ، در زبان دیگر دسترسی داشته باشیم.
6) توانایی های عملکردی و شی گرایی
کاتلین مجموعه ای غنی از متد های مفید را داراست ،که شامل توابع درجه بالاتر ، عبارت ها لامبدایی ، اورلود کردن اپراتور ها ، لیزی اولوشن (lazy evaluation)و … می باشد.
توابع درجه بالا توابعی هستند که میتوانند توابع دیگر را به عنوان ورودی بگیرند ، تابعی را به عنوان خروجی بدهند و یا هر دو را با هم انجام بدهند.
نمونه ای از توابع درجه بالا (High Order functions)
fun myFun(company: String,product: String, fn: (String,String) -> String): Unit {
val result = fn(company,product)
println(result)
}
fun main(args: Array){
val fn:(String,String)->String={org,portal->"$org develops $portal"}
myFun("JetBrains","Kotlin",fn)
}
7) تبدیل نوع هوشمند
کاتلین به طور ضمنی مقادیر غیرقابل تغییر را به قالب امن آن کست میکند.
در ضمن اگر ما تلاش کنیم بدون تبذیل نوع هوشمند به یک رشته پوچ (null) دسترسی پیدا کنیم ، یک خطای زمان کامپایل ایجاد می کند.
fun main(args: Array){
var string: String? = "BYE"
print(string.length) // compile time error
}
}
8) زمان کامپایل کمتر
کاتلین عملکرد بهتر و سریع تری را برای کامپایل دارد.
9) دوستدار ابزار
این زبان پشتیبانی عالیی از ابزار دارد. هر کدام از محیط های توسعه ی جاوا ، مانند IntelliJ IDEA ، Eclipse ، Android Studio میتوانند با کاتلین کار کنند همچنین ما میتوانیم برنامه های کاتلینی را از خط فرمان (cmmand line) نیز اجرا کنیم.
مزایای زبان کاتلین
- یادگیری آسان – مباحث پایه تقریبا شبیه جاوا است ، اگر کسی قبلا با زبان جاوا کار کرده باشد ، بدون صرف زمان زیادی میتواند کد های کاتلینی را متوجه شود.
- کاتلین چند پلتفرمی است – کاتلین توسط تمام محیط های توسعه ی جاوایی پشتیبانی می شود ، بنابراین شما میتوانید کد خود را بنویسید و اجرا کنید روی هر دستگاهی که از ماشین مجازی جاوا (JVM) پشتیبانی می کند.
- این زبان بسیار امن تر از جاوا است.
- کاتلین به شما اجازه می دهد تا به وسیله فریمورک های پیشرفته در پروژه های جدید خود از فریمورک ها و کتابخانه های جاوا بدون نیاز به ایجاد تغییرات اساسی در پروژه ، استفاده کنید.
- زبان برنامه نویسی کاتلین شامل کامپایلر ، کتابخانه ها و به طور کلی همه ابزار هایی است که به طور رایگان عرضه شده اند و به صورت متن باز بر روی گیت هاب در دسترس هستند. (برای مشاهده به این لینک مراجعه شود https://github.com/JetBrains/kotlin)
کاربرد های زبان کاتلین
- شما میتوانید از زبان کاتلین برای ساخت برنامه های اندرویدی استفاده کنید.
- همچنین کد کاتلینی می تواند در JavaScript ترجمه شود و برای بخش فرانت اند مورد استفاده قرار بگیرد.
- به علاوه این زبان به گونه ای طراحی شده که بتوان از ان در توسعه وب و سمت
3 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
سلام
این مقاله کمی کوتاه بود، انتظار داشتم مطالب بیشتری ببینم.
سلام خیلی عالی و بینقص توضیح دادهاید.
سلام
از این مقاله خیلی چیزها یاد گرفتم سپاسگذارم.