کاتلین (Kotlin) یاد بگیریم! (قسمت ۰)

خوب ماجرا از اینجا شروع شد که امروز صبح پیرو علاقه ام در حوزه یادگیری زبان برنامه نویسی موبایل، تصمیم گرفتم زبان برنامه نویسی کاتلین را یاد بگیرم :) بعد چون در اغلب موارد در زندگیم یک کاری را قول میدم انجام بدم - در بیشتر مواقع به خودم - بعد میرم با برف سال بعد میام؛ تصمیم گرفتم ایندفعه کلامم را اینجا اعلام کنم که روش بایستم و انجامش بدم :) این عکس شامل قوانین کپی رایت است. (Kotlin)اما پیش از شروع یکسری نکات باید بگم؛ اول برای خودم که یادم نره در طول این آموزش و بعد برای کسانی که میخونن که با هم شفاف باشیم :)من این زبان را خیلی یکدفعه ای انتخاب کردم. دلیلم هم این بود که یکم syntax اش را خوندم و دیدم میتونم باهاش ارتباط برقرار کنم. پس خیلی بحث راجع به اینکه خوبه یا بده. چرا نمیری React یا Xamarin‌ یا Cordova یا ... یاد بگیری که برای اپل و ویندوز هم اپ بنویسی ندارم :)من تا حالا آموزش ندادم به صورت کتبی و وبلاگ و اینا هم نداشتم. لذا بر خودم میبخشم و شما هم بر من ببخشید اگر اونجوری که وبلاگ نویسای خوب مینویسن من اونجوری نمی نویسم.برنامه نویسی موبایل، وب، اینترنت اشیا و در نهایت دیتا ساینتیست شدن آرزومه و لذا توی زندگیم اینها را هم دنبال میکنم. پس اگر مطلب خوبی داشتین به اشتراک بگذارید که راجع بهش بنویسیم :)و اما کاتلیناز اونجایی که من خیلی انسان ویکیپدیایی و تاریخچه ای نیستم، اگر دوست دارین بدونین این زبان از کجا میاد و الان وضعیتش چجوریه میتونین اینجا و اینجا را بخونید و خودتون دست به گوگل بشید. اما زبان برنامه نویسی کاتلین در وب سایت این برنامه اینجوری تعریف شده:یک زبان برنامه‌نویسی کامپایلری برای برنامه‌های چندپلتفورمی مدرندر واقع به زبان خودمون، کاتلین یک زبان برنامه‌نویسی کامپایلری هست که در زمان کامپایل و نه در زمان اجرا یا «Run Time» نوع‌های مختلف را بررسی و به عبارتی استفاده از اون‌ها را اجبار میکنه. یعنی بر خلاف زبان های برنامه‌نویسی غیر حساس به «نوع‌ها یا Types» مثل جاوا اسکریپت و یا زبان‌هایی مثل PHP که «نوع» را در زمان اجرا چک میکنن و خطا میدن؛ این زبان همون موقع کامپایل میگه نمیشه یک متغیر از نوع «صحیح» را بفرستی به یک تابعی که ورودی آن از نوع «رشته» هست. البته اگر با زبان‌های برنامه نویسی مثل Java یا ++C یا #C و ... کار کرده باشید با این مفهوم کاملا آشنا هستید. اگرهم نه! اشکال نداره راجع بهش حرف میزنیم حسابی :)اما اون چیزی که این زبان برنامه‌نویسی را برای من - که دوست دارم فرصتی دست بده که یک برنامه موبایل بنویسم - جذاب میکنه اینه که این زبان: ۱۰۰ درصد با Java و Android سازگار هست.یعنی یجورایی یاد گرفتن این زبان پنجره ایه به همه کارهایی که میشه با Java انجام داد. و این خیلی فوق‌العادع است. کاتلین الان نسخه ۱/۲ هست و میشه باهاش اینکارارو کرد:ساختن برنامه برای اندرویید یا آندرویید - هر کدوم که صداش میکنید اوکیه :)ساختن برنامه جاوا اسکریپتیساختن برنامه های با قابلیت اجرا روی ماشین مجازی جاوا JVMو از همه جذاب‌تر نوشتن برنامه‌هایی که بدون نیاز به هیچ نوع ماشین مجازی «VM» اجرا میشن که در اصطلاح بهشون میگن برنامه‌های Nativeراجع به هرکدوم که خواستین بیشتر بخونین لینکش شما را به صفحه توضیحات اون بخش هدایت میکنه و صد البته من در مسیر یادگیری خودم، مروری روی هر کدام از این ها خواهم کرد و چه بسا براشون کد هم نوشتیم و توی گیت هاب هم گذاشتیم :)اما مهمترین نکته اینه که چجوری میخوایم این زبان را یاد بگیریم. هرکسی روش خودش را داره، ولی چیزی که همیشه به من کمک میکنه بهتر یاد بگیرم اینه که یک پروژه درست و حسابی برای خودم ایجاد کنم و در اون مسیر یاد بگیرم.طبیعتا شما میتونین فقط درس‌ها را بخونین و یا اگر دلتون خواست با من پروژه خودتون را بیارید جلو و حتی کدهای همدیگه را بهبود بدیم :) جلسه بعد پروژه خودم را معرفی میکنم و کار را روش شروع میکنم.آخرین نکته هم اینکه من سعی میکنم هر هفته یک بخشی از این زبان را آموزش بدم و هر کدوم پروژمون را انجام بدیم و اینجوری توی یک سال یک زبان برنامه نویسی یاد گرفتیم و یک پروژه قابل ارایه هم داریم :)مطالعه کنید راجع به کاتلین و تا دوشنبه بعد :)