چرا باید کاتلین یاد بگیریم ؟

کاتلین یک زبان برنامه نویسی امن و پراگماتیک است که بر روی ارتباط با جاوا متمرکز شده و تقریبا هر جا که جاوا هست — از برنامه نویسی آندروید گرفته تا برنامه نویسی سمت سرور — میتونید از کاتلین استفاده کنید. حجمی کدی که لازمه برای نوشتن برنامه به مراتب کمتر از جاواست و با همه کتابخونه های و فریمورک های جاوا قابل استفاده ست. اسم زبان رو از جزیره ای در روسیه و نزدیک سن پترزبورگ گرفتن که اغلب تیم طراحای زبان اونجا بودن.کاتلین هم رایگانه و هم اپن سورس و این باعث میشه جامعه گسترده ای ازش استفاده کنن.در ادامه یه سری از ویژگی های خوب زبان رو بررسی میکنیم تا بفهمیم چرا یادگیریش مهمه:انواع تارگت پلتفرم:سمت سرور — آندروید — و هرجا که جاوا اجرا میشههدف اصلی در کاتلین طراحی زبانی بوده که خیلی مختصر گو و امن باشه برای جاهایی که جاوا رو اونها اجرا میشه . و بتونه یا جایگزین جاوا بشه یا بهش کمک کنه. هرچند تمرکز اصلی رو جاوا بوده ولی کاتلین میتونه رو بسترهای مختلف مثل جاوا اسکریپت و ناتیو اجرا و حتی با موتور اینتل میتونه بر روی آی او اس هم اجرا بشهStatically Typedکاتلین هم مثل جاوا استاتیک است به این معنی که در زمان کامپایل انواع همه متغیرها و شناسه باید مشخص باشه. زبان وقتی دینامیک باشه که نوع ها زمان اجرا تعیین میشن ،حجم کدش معمولا کمتره و تو بعضی جاها منعطف تره ولی یک غلط املایی میتونه کل سیستم رو بخوابونه.تو کاتلین برای راحتی کار کامپایلر میتونه بر اساس بستر و خروجی عملیات ها خودش اتوماتیک نوع رو استنتاج یا مشخص کنه . مثلا اگر خروجی یک تابع رو میریزید تو یک متغیر لازم نیست تو تعریف متغیر نوعش رو بگید کامپایلر خودش میفهمه. و با همین ویژگی کلی حجم دستور رو کم کنه.درکنار همه نوع های که در جاوا هست در کاتلین نوع فانکشن و نوع نال هم قابل استفاده ست تا هم زبان بتونه فانکشنال باشه و نال رو مدیریت کنهمزیت های اصلی زبان استاتیک تو کارایی،قابلیت اعتماد ، نگهداری و ابزارهای خوبه.هم شی گرا و هم تابع گرازبان های تابع گرا خیلی از مشکلای نرم افزار امروزی رو حل کردن و لازمه هر پلتفرمی شدن. تو کاتلین شما هم میتونید فانکشنال برنامه نویسی کنید هم شی گرا.سه ویژگی اصلی زبان های فانکشنال شامل تعریف تابع به عنوان یک نوع و ساید افکت نداشتن و ایمیوتیبلیتی یا تغییر ناپذیریهتو تعریف کاتلین مواردی مطرح میشه که عملا فلسفه کاتلین رو شامل میشن . خود طراحای زبان این موارد رو اینطوری تعریف کردنPragmaticمعنیش ساده س یعنی زبانی که بشه باهاش مسایل دنیای واقعی رو باهاش حل کرد.این زبان از اکثر استاندارهای صنعتی پشتیبانی میکنه. شمارو مجبور به استایل خاصی از برنامه نویسی نمیکنه. ابزارهای خوبی داره و نکته مهم دیگه اینکه یک زبان دانشگاهی نیست که رو ویژگی های جدید تو حوزه زبان های برنامه نویسی متمرکز شده باشهConciseهرچند نوشتن خود مسایل خودشو داره و هرچی مختصر تر باشه بهتره اینم در نظر بگیرید که ما زمان زیادی رو هم برای خوندن کد صرف میکنیم. حالا تصور کنید که یک زبان که مختصر تر باشه چه کمکی به ما میکنه. یه مثالشو اینجا میتونید ببیندSafeوقتی صحبت از امنیت در زبان میشه منظور اینه که زبان بتونه جلوی خطاهای خاصی رو بگیره البته طبیعیه که زبان نمیتونه جلوی هر خطایی رو بگیره. گذشته از اون، این مساله هزینه داره. اینم مد نظر داشته باشید اجرا روی جی وی ام خودش تضمین کننده امنیت در حد قابل قبولیه. کاری که تو کاتلین تو این زمینه خوب انجام شده حذفخطای اشاره گر نال ه و جلوی این خطا رو همون زمان کامپایل بگیره.Interoperableاول هم گفتیم تمرکز اصلی در طراحی این زبان ارتباط با جاوا بوده و هست. شما میتونید یه پروژه رو مشترکا با هردو زبان بنویسید یا از کتابخانه های جاوا تو کاتلین و برعکس استفاده کنید. یعنی تمام امکانات جاوا رو با یه زبان دیگه هم دارید که تو بعضی از مسایل بهتر از جاوا هم هستبرای کاتلین مستندات خوبی نوشته شده که بعضیاشون اینانمستندات خود کاتلینابزار اینتراکتیو کاتلین برای آموزش کاتلین که به شما کمک میکنه تو مرورگر کد رو بنویسید و اجراش کنیدپلاگین آموزشی جت برینز که به صورت یک پلاگین رو ای دی ای نصب میشه و خیلی هم عالیهدر کنار همه اینا اگه برنامه نویس جاوا هستید یکی از بهترین راه های درک تفاوت جاوا کاتلین خود ایدیا ست . به این صورت وقتی کد جاوا رو کپی میکنید و تو یه فایل کاتلین پیست میکنید خودش به کاتلین تبدیل میکنه که تو اکثر موارد کد قابل قبولی تولید میکنه