بادانشبادانش
  • صفحه اصلی
  • محصولات
  • مقالات
  • درباره ما
  • تماس با ما
  • عضویت ورود


    Google

    ورود با حساب کاربری سایت شما

    Google

    رمز عبوررا فراموش کرده اید؟

    هنوز عضو نیستید؟همین حالا عضو شو!

    • سبد خرید

      0
    • شروع کنید
    • صفحه اصلی
    • محصولات
    • مقالات
    • درباره ما
    • تماس با ما

    برنامه نویسی

      صفحه اصلی » وبلاگ بادانش » برنامه نویسی » همه چیز درباره کاتلین؛ زبان برنامه نویسی اندروید
    همه چیز درباره کاتلین، زبان برنامه نویسی اندروید

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

    • ارسال شده توسط مرتضی سمامی
    • دسته بندی برنامه نویسی
    • نظرات ۰ نظر

    زبان برنامه نویسی کاتلین (Kotlin)، یک زبان برنامه نویسی محبوب و نسبتا جدید است که براساس پیش ببنی ترندهای برنامه نویسی سال 2020 یکی از بهترین پیشنهادها برای یادگیری است. کاتلین جوان اومده تا یک جایگزین مناسب برای جاوای پیر باشه. هدف اصلی از طراحی زبان کاتلین مختصر و بی نقص تر جاوا است تا بتونه یا جایگزین جاوا بشه یا بهش کمک کنه. هرچند تمرکز اصلی رو جاوا بوده ولی کاتلین میتونه رو بسترهای مختلف مثل جاوا اسکریپت و ناتیو هم اجرا بشه. در ایران بیشتر کاتلین برای برنامه نویسی اندروید شناخته شده، چون گوگل رسما این زبان رو به عنوان برنامه نویسی برای اندروید معرفی کرد. رشد کاتلین در چند سال اخیر فوق العاده بوده و هر روز هم تعداد توسعه دهنده‌های اون رو به افزایش هست.

     

    اگه شماهم به یکی از محبوب ترین زبانهای برنامه نویسی دنیا علاقه مند شدید و دوست دارید در مورد کاتلین بیشتر بدونید، در ادامه ما همه چیز رو در مورد کاتلین بررسی خواهیم کرد از جمله:

    • تاریخچه زبان برنامه نویسی کاتلین
    • کاتلین یا جاوا؟ کدوم برای برنامه نویسی اندروید مناسب تر هستند؟
    • ویژگی‌های زبان برنامه نویسی کاتلین
    • آیا لازمه برای یادگیری کاتلین، جاوا بلد باشیم؟
    • برنامه های نوشته شده با کاتلین
    • پیش بینی آینده کاتلین

     

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

    توسعه اولیه کاتلین، در اواسط سال 2011 در شهر زیبای سن پترزبورگ روسیه توسط تیم برنامه‌نویسی JetBrains صورت گرفته است. اسم زبان برنامه نویسی کاتلین از روی جزیره کاتلین در نزدیکی سن پترزبورگ گرفته شده است. حدود شش ماه بعد رونمایی یعنی در ژانویهٔ سال ۲۰۱۲ کاتلین به عنوان زبان ماه انتخاب شد. اولین ورژن پایدار (Stable) کاتلین در سال ۲۰۱۶ به نام ورژن 1.0 ارائه شد. در سال ۲۰۱۷ گوگل رسما این زبان را به عنوان زبان دوم برنامه نویسی برای اندروید معرفی کرد.

     

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

    این سوال خیلی هاست. توی گروه های برنامه نویسی هم در این مورد زیاد بحث شده که برای برنامه نویسی اندروید کاتلین بهتره یا جاوا؟ اگر در ابتدای راه یادگیری برنامه نویسی اندروید باشید احتمالا پاسخ این سوال برای شما خیلی میتونه مهم باشه. پس بیان باهم یک مقایسه بین جاوا و کاتلین داشته باشیم.

    از زبان سرپرست تیم توسعه دهندگان کاتلین Andrey Breslav : «کاتلین یک زبان قدرتمند و شیءگرا است که قصد دارد از جاوا بهتر عمل کند و به برنامه نویسان جاوا اجازه مهاجرت تدریجی به این زبان را بدهد.» اصلا کاتلین به وجود اومده تا زبانی بهتر از جاوا باشه، حقیقتم هم همینه چون کاتلین سینتکس بهتری نسبت به جاوا داره، کدهای کاتلین کمتر و خواناتر نسبت به جاوا است و کلی مورد بهبود یافته دیگه. پس به عبارت ساده تر کاتلین جوون اومده تا یک جایگزین شایسته برای جاوای قدیمی باشه.

    زبان برنامه نویسی جاوا، سال ها به خاطر ویژگی‌هایی مثل شی‌گرا بودن، سادگی، قابلیت انتقال و امنیت برای توسعه برنامه‌های اندرویدی مورد استفاده قرار گرفته است. اندروید هم با اتکا به جاوا، تقریبا روی هر پلتفرمی قابل اجرا بوده. جاوا هنوز هم زبان بسیار قدرتمندی برای توسعه اپلیکیشن های اندرویدی هست. اما جاوا هم مثل هر زبان کامپایلری دیگه‌ محدودیت های خودش را داره، مثل:

    • نسخه‌های قدیمی جاوا مثل Java SE 8 و Java SE 7 که از قضا اغلب برنامه‌نویس‌ها هم از اون استفاده میکنند، خطا زیاد تولید میکنه.
    • برنامه‌نویس‌هایی که از جاوا برای توسعه اندروید استفاده میکنند از نبود برخی از ویژگی‌ها مثل استریم‌ها، لامبدا، متد رفرنس و … شاکی هستند.
    • یک مشکل اساسی توی جاوا روش هندل کردن null در برنامه است. اما در کاتلین این قضیه حل شده و مقادیر null رو به خوبی هندل میشوند و به خاطر یک رشته نال، برنامه کرش نمیشه!
    • و نکته آخر اینکه برای انجام یک کار خیلی ساده توی جاوا باید کلی کد بزنید 🙂

     

    اما در کاتلین، که یک زبان برنامه نویسی متن باز، مستقل از سکو از نوع ایستا، با بررسی نوع‌ها در زمان کامپایل و قابل اجرا روی ماشین مجازی جاوا (JVM) است این مشکلات رو به خوبی حل شده و دلایل اصلی محبوبیت کاتلین هم همین است. یعنی:

    • در کاتلین کد کمتر و خواناتری نسبت به جاوا برای ایجاد یک برنامه مشابه می نویسید.
    • با کدهای جاوایی که نوشتید همخوانی داره. در نتیجه میتونید جاوا رو با کاتلین قاطی کنید.
    • اپلیکیشن هایی که با کاتلین مینویسید کمتر کرش میکنند چون مشکل NullPointerException را هندل کرده.
    • اندروید استودیو ۳، کاتلین رو ۱۰۰ درصد پشتیبانی میکنه.
    • و از همه مهمتر اینکه گوگل حامی زبان کاتلین را به عنوان زبان رسمی توسعه اندروید است.

     

    با این اوصاف اگه در ابتدای راه یادگیری برنامه نویسی اندروید هستید، بدون شک کاتلین گزینه بهتری برای شروع برنامه نویسی اندروید است. البته این اصلا به این معنی نیست که جاوا خوب نیست. جاوا همچنان زبان بسیار قدرتمندیه و بسیاری از ابزارها در حوزه‌های مختلف با این زبان توسعه داده شده که زندگی بدون آنها بسیار سخت بود!

     

    ویژگی‌های زبان برنامه نویسی کاتلین

    خب حالا که متوجه شدیم کاتلین برای برنامه نویسی اندروید گزینه فوق العاده ای هست بیان باهم ویژگی های زبان برنامه نویسی کاتلین رو بررسی میکنیم.

     

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

    همون طور که اشاره شد هدف اصلی در کاتلین طراحی زبانی بوده بهتر از جاوا که بتونه به جاوا کمک کنه یا جایگزین اون بشه، پس هرجا جاوا اجرا بشه کاتلین هم میتونه اجرا بشه. هرچند تمرکز اصلی رو جاوا بوده ولی کاتلین میتونه رو بسترهای مختلف مثل جاوا اسکریپت و ناتیو اجرا و حتی با موتور اینتل میتونه بر روی آی او اس هم اجرا بشه. کاتلین روی همه سیستم عامل ها هم قابلیت اجرا و پیاده سازی داره.

    • Windows (x86_64 only at the moment)
    • Linux (x86_64, arm32, MIPS, MIPS little endian)
    • MacOS (x86_64)
    • IOS (arm64 only)
    • Android (arm32 and arm64)
    • WebAssembly (wasm32 only)

     

    ایستاتیک (Statically Typed)

    کاتلین، مثل جاوا استاتیک است. یعنی در زمان کامپایل، نوع همه متغیرها و شناسه باید مشخص باشه. زبان وقتی دینامیک باشه، نوع ها زمان اجرا تعیین میشن، حجم کدش معمولا کمتره و تو بعضی جاها منعطف تره ولی یک غلط املایی میتونه کل سیستم رو بخوابونه.

    تو کاتلین برای راحتی کار، کامپایلر میتونه بر اساس بستر و خروجی عملیات ها خودش اتوماتیک نوع رو مشخص کنه. مثلا اگر خروجی یک تابع رو میریزید تو یک متغیر لازم نیست تو تعریف متغیر نوعش رو بگید، کامپایلر خودش میفهمه و با همین ویژگی کلی حجم دستور رو کم می کنه.

    در کنار همه نوع های که در جاوا هست در کاتلین نوع فانکشن و نوع نال هم قابل استفاده است تا هم زبان بتونه فانکشنال باشه و نال رو مدیریت کنه.

    مزیت های اصلی زبان استاتیک تو کارایی، قابلیت اعتماد، نگهداری و ابزارهای خوبه.

     

    هم شی گرا و هم تابع گرا

    زبان های تابع‌گرا خیلی از مشکلای نرم افزار امروزی رو حل کردن و لازمه هر پلتفرمی شدن. تو کاتلین شما هم میتونید فانکشنال برنامه نویسی کنید هم شی گرا. سه ویژگی اصلی زبان های فانکشنال شامل تعریف تابع به عنوان یک نوع و ساید افکت نداشتن و ایمیوتیبلیتی یا تغییر ناپذیریه.
    تو تعریف کاتلین مواردی مطرح میشه که عملا فلسفه کاتلین رو شامل میشن . خود طراحای زبان این موارد رو اینطوری تعریف کردن.

     

    عملگرا (Pragmatic)

    عملگرا به عبارت ساده یعنی زبانی باشه که بشه باهاش مسایل دنیای واقعی رو حل کرد. کاتلین از اکثر استاندارهای صنعتی پشتیبانی میکنه. شما رو مجبور به استایل خاصی از برنامه نویسی نمیکنه. ابزارهای خوبی داره و نکته مهم دیگه اینکه یک زبان دانشگاهی نیست که رو ویژگی های جدید تو حوزه زبان های برنامه نویسی متمرکز شده باشه.

     

    مختصر (Concise)

    هرچند نوشتن، مسایل خودشو داره و هرچی مختصر تر باشه بهتره اما اگه دقت کنیم میبینیم که زمان زیادی رو هم برای خوندن کد صرف میکنیم. حالا تصور کنید که یک زبان که مختصر تر باشه چه کمکی به ما میکنه. یه مثالشو اینجا میتونید ببیند.

     

    امنیت (Safe)

    وقتی صحبت از امنیت در زبان برنامه نویسی میشه، منظور اینه که زبان بتونه جلوی خطاهای خاصی رو بگیره. البته طبیعیه که زبان نمیتونه جلوی هر خطایی رو بگیره. گذشته از اون، این مساله هزینه داره. اینم مد نظر داشته باشید اجرا روی ماشین مجازی جاوا (JVM) خودش تضمین کننده امنیت در حد قابل قبولیه. کار خوبی که در کاتلین تو این زمینه انجام شده حذف خطای اشاره گر نال هست.

     

    سازگاری و تعامل (Interoperable)

    تمرکز اصلی در طراحی این زبان ارتباط با جاوا بوده و هست. شما میتونید یه پروژه رو همزمان با هردو زبان بنویسید یا از کتابخانه های جاوا تو کاتلین و برعکس استفاده کنید. یعنی تمام امکانات جاوا رو با یه زبان دیگه هم دارید که تو بعضی از مسایل بهتر از جاوا هم هست. کاتلین به طور کامل توسط اندروید استودیو هم پشتیبانی می شه.

     

    کارایی (Performance)

    کاتلین با سرعت بیشتری نسبت به جاوا اجرا می شود به خاطر استفاده از بایت کدهای ساده تر از جاوا. کاتلین از Inline function ها و Lambda پیشتیبانی می کند و Lambda اغلب از جاوا خام سرعت بیشتری دارد (البته در خود جاوا همین قضیه صادقه یعنی شما از Lambda که استفاده می کنی سرعت بالاتری داری).

     

    ویژگی Footprint

    کاتلین دارای کتابخانه Runtime بسیار کم حجم است که می میتونه از طریق استفاده از ProGuard هم بیشتر کاهش پیدا کنه.

     

    زمان کامپایل

    معمولا زمان کاپایل سریعتر از جاواست.

     

    آیا لازمه برای یادگیری کاتلین، جاوا بلد باشیم؟

    خیر! برای یادگیری کاتلین نیازی به یادگرفتن جاوا ندارید و میتونید بدون واسطه کاتلین رو یادبگیرید اما اگر از جاوا به سمت کاتلین مهاجرت می کنید،یادگیری برای شما لذت بخش تر خواهد بود.

     

    برنامه های نوشته شده با کاتلین

    شاید فکر کنید چون کاتلین یک زبان برنامه نویسی نسبتا جدید هست شرکت های بزرگ به اون اعتماد نمیکنند و نمیشه باهاش پروزه های بزرگ رو ساخت. اما جالبه بدونید شرکت های بزرگی مثل پینترست، اوبر، کورسرا، اورنوت و… برنامه هاشون رو با کاتلین مجدد بهینه کردند. پس کاتلین صد در صد قابل اعتماده و میتونید ازون در هر پروژه استفاده کنید!

    [تعداد: 3    میانگین: 5/5]
    مرتضی سمامی

    ممکن است همچنین دوست داشته باشید

    best-program-language-to-learn-2020
    بهترین زبان برنامه نویسی 2020 برای شروع یادگیری، با توجه به بازار کار ایران
    8 نوامبر, 2019
    programming tutorial for beginners
    آموزش برنامه نویسی برای تازه کارها به زبان ساده
    6 نوامبر, 2019
    best-laptop-for-programming-2019
    ویژگی های بهترین لپ تاپ های مناسب برنامه نویسی 2019
    24 سپتامبر, 2019

    نظر بدهید لغو پاسخ

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    جستجو

    آخرین مطالب بادانش

    • 20 ایده کار در خانه برای شروع کسب درآمد در منزل با مثال های واقعی ایرانی20 ایده کار در خانه برای شروع کسب درآمد در منزل با مثال های واقعی ایرا…
    • کسب و کار اینترنتی با درآمد عالی در ایران در سال 139913 کسب و کار اینترنتی با درآمد عالی در سال 1399
    • بهترین زبان برنامه نویسی 2020 برای یادگیری باتوجه به بازار کار ایرانبهترین زبان برنامه نویسی 2020 برای شروع یادگیری، با توجه به بازار کار …
    • آموزش برنامه نویسی برای تازه کارها به زبان سادهآموزش برنامه نویسی برای تازه کارها به زبان ساده
    • برای موفق شدن از کجا شروع کنیم؟برای موفق شدن از کجا شروع کنیم؟
    • 15 ویژگی مهم در خرید هاست خوب برای راه اندازی سایت15 ویژگی مهم در خرید هاست خوب برای راه اندازی سایت
    • بهترین هاست ایران - معرفی بهترین شرکت های هاستینگ سال 98بررسی بهترین شرکت های هاستینگ ایران 98 (خرید بهترین هاست برای سایت)
    • بررسی روش های کسب درآمد اینترنتیبررسی روش کسب درآمد اینترنتی + مثال های واقعی ایرانی
    • چگونه کسب و کار اینترنتی خود را راه اندازی کنیم؟ کسب درآمد از اینترنتچگونه کسب و کار اینترنتی خود را راه اندازی کنیم؟ 7 مرحله تا کسب درآمد …
    • چگونه روی خودم سرمایه گذاری کنم تا موفق بشمچگونه روی خودم سرمایه گذاری کنم تا موفق بشم
    • ویژگی های بهترین لپ تاپ های مناسب برنامه نویسی 2019ویژگی های بهترین لپ تاپ های مناسب برنامه نویسی 2019
    • راهنمای جامع برنامه نویس شدن! به زبان سادهراهنمای جامع برنامه نویس شدن! به زبان ساده
    • چگونه یک خودساخته موفق شویم؟ 15 کاری که برای موفقیت باید انجام دهیدچگونه یک خودساخته موفق شویم؟ 15 کاری که برای موفقیت باید انجام دهید
    • همه چیز در مورد زبان برنامه نویسی پایتون . چرا باید پایتون را یاد بگیریم؟همه چیز در مورد زبان برنامه نویسی پایتون
    • چگونه برنامه نویسی پایتون را یاد بگیریم؟چگونه برنامه نویسی پایتون را یاد بگیریم؟
    • بهترین روش برای یادگیری برنامه نویسی کدام است؟بهترین روش برای یادگیری برنامه نویسی کدام است؟
    • ایده های جالب و ناب ساخت اپلیکیشن جدید و پردرآمد7 ایده ناب ساخت اپلیکیشن جدید و پردرآمد
    • چرا باید برنامه نویسی اندروید را یاد بگیریم؟چرا باید برنامه نویسی اندروید را یاد بگیریم؟
    • چگونه یک برنامه نویس حرفه ای شویم؟ راهنمای کامل سایت بادانشچگونه یک برنامه نویس حرفه ای شویم؟ راهنمای کامل
    • نقطه شروع یادگیری برنامه نویسی اندروید به زبان ساده - بادانشنقطه شروع یادگیری برنامه نویسی اندروید به زبان ساده
    • چگونه برنامه نویسی را شروع کنیم؟ (راهنمای کامل و به زبان ساده) - بادانشچگونه برنامه نویسی را شروع کنیم؟ صفر تا صد آموزش برنامه نویسی
    • حل تمرین کتاب برنامه نویسی به زبان C++ جعفرنژاد قمیدانلود رایگان حل تمرین های کتاب c++ جعفرنژاد قمی +50 تمرین
    • آموزش برنامه نویسی سی شارپ به زبان ساده ؛نقطه شروع یادگیریآموزش برنامه نویسی سی شارپ به زبان ساده و بصورت پروژه محور
    • همه چیز درباره C#؛ چرا برنامه نویسی سی شاپ را یاد بگیرم؟ سایت بادانشهمه چیز درباره C#؛ چرا برنامه نویسی سی شاپ را یاد بگیرم؟
    • بهترین زبان برنامه نویسی برای یادگیری سایت بادانشبهترین زبان برنامه نویسی 2019 برای شروع یادگیری، با توجه به بازار کار …
    • دیجیتال مارکتینگ چیست؟ راهنمای گام به گام و به زبان ساده - بادانشدیجیتال مارکتینگ چیست؟ راهنمای گام به گام و به زبان ساده
    • بررسی درآمد برنامه نویسان ایرانی اندروید با مثال های واقعی سایت بادانشبررسی درآمد برنامه نویسان ایرانی اندروید 2019 + مثالهای واقعی
    • پول کجاست؟ چگونه ثروتمند شویم بادانشپول کجاست؟ رازهایی که ثروتمندان به شما نمیگویند

    محبوب ترین نوشته ها

    • چگونه روی خودم سرمایه گذاری کنم تا موفق بشم چگونه روی خودم سرمایه گذاری کنم تا موفق بشم
    • بررسی درآمد برنامه نویسان ایرانی اندروید با مثال های واقعی سایت بادانش بررسی درآمد برنامه نویسان ایرانی اندروید 2019 + مثالهای واقعی
    • کسب و کار اینترنتی با درآمد عالی در ایران در سال 1399 13 کسب و کار اینترنتی با درآمد عالی در سال 1399
    • حل تمرین کتاب برنامه نویسی به زبان C++ جعفرنژاد قمی دانلود رایگان حل تمرین های کتاب c++ جعفرنژاد قمی +50 تمرین
    • بهترین زبان برنامه نویسی برای یادگیری سایت بادانش بهترین زبان برنامه نویسی 2019 برای شروع یادگیری، با توجه به بازار کار ایران
    پاسخگوی سوالات، انتقادات و پیشنهادات شما هستیم.

    info@badanesh.com

    info@badanesh.com

    تمامی حقوق برای این سایت محفوظ می باشد.