برنامه نویس اندروید / برنامه نویس وب
یادگیری زبان جدید kotlin چقدر اهمیت داره ؟
سلام من مدتی هست که زبان برنامه نویسی جدید کاتلین را شروع کردم و زبان خوبی هست و دارم باهاش کار میکنم ولی چیزی که خیلی برام جالب بود رشد این زبان و بازار کارش بود.
اهمیت یادگیری زبان برنامه نویسی جدید کاتلین
سرپرست توسعه کاتلین آقای Andrey Breslav ، بیان کرده کاتلین طراحی شده تا زبانی صنعتی-قدرتی و شی گرا بوده و زبانی بهتر از جاوا باشد. اما هنوز پر از سازگاریهایی با کد جاوا است که اجازه داده کمپانیها مهاجرتی تدریجی از جاوا به کاتلین داشته باشند.
کاتلین یک زبان برنامه نویسی جدید است که توسط تیم جت برینز ساخته شده . نام این زبان از یه جزیره در روسیه گرفته شده چون که مقر اصلی تیم سازندش هم در سن پیترزبورگ روسیه است .
کاتلین یک زبان کراس پلتفرم ( عدم وابستگی به سیستم عامل یا پلتفرم خاص ) و کاملا شی گرا است .
زبان کاتلین روی ماشین مجازی جاوا یا jvm اجرا میگردد که به همین علت هم یکی از زبان های رسمی برنامه نویسی اندروید است ( رسمی بودن کاتلین توسط خود تیم اندرویدِ شرکت گوگل اعلام شده است ) .
ماشین مجازی درونی اندروید که کدها را اجرا میکند دالویک نام دارد و در نهایت هر کدی که نوشته شود باید به بایت کدهای جاوا تبدیل شود تا توسط این ماشین قابل درک باشد پس کاتلین در نهایت به بایت کدهایی از نوع جاوا تبدیل میشود اما در سطح بالاتر امکانات و ویژگی هایی دارد که از جاوا بهتر و بالاتر است .
یادگیری زبان کاتلین به این دلیل اهمیت دارد که از سال 2011 که برای اولین بار این زبان منتشر شده موفق عمل کرده و هر ساله تعداد زیادی از افرادی که این زبان را یاد میگیرند یا از جاوا به کاتلین کوچ میکنند رو به افزایش است .
در ادامه به آمارهای واقعی و منتشر شده در سایت های معتبر استناد میکنیم و سعی میکنم همه موارد را توضیح بدم که چرا یادگیری زبان کاتلین مهم است .
تعداد پروژه ها ، سوالات پرسیده شده ، پلاگین های استفاده شده ی کاتلین
در نمودار تصویر زیر شما میبینید که
- تعداد پروژه های اوپن سورس کاتلین در گیتهاب رو به افزایش و تعداد خطوط کاتلین در گیتهاب به ۲۵ میلیون خط تا پایان سال ۲۰۱۷ رسیده است و این رقم رو به افزایش بوده و مطمئنا تا الان که سال ۲۰۲۰ میلادی است افزایش چشم گیری داشته است .
- تعداد سوالها و بحث هایی که در stackoverflow درباره ی کاتلین انجام شده است ۶.۳ هزار عدد است
- ۲۵۰ هزار پلاگین با کاتلین استفاده شده است
یکی از چیزهای جالب در نمودار بالا این است که تا سال ۲۰۱۵ هیچ استفاده ی خاصی از کاتلین نشده است و تقریبا از سال ۲۰۱۶ نمودار استفاده از کاتلین رو به افزایش است و در سال ۲۰۱۷ یک رشد جهشی داشته
این دقیقا زمانی هست که مراسم گوگل آی/او سال ۲۰۱۷ برگزار شد و گوگل کاتلین را بصورت رسمی زبان برنامه نویسی اندروید اعلام کرد پس میشه حدس زد که بیشترین استفاده ی کاتلین تا به امروزم برای برنامه نویسی اپلیکیشن های اندرویدی بوده .
نتایج گوگل ترندز درباره ی کاتلین و جاوا
خب همه میدونیم که برای دیدن بیشترین جستجوهای گوگل نیاز به گوگل ترندز داریم . در تصویر زیر شما ترند بین جاوا و کاتلین را مشاهده میکنید و نمودار گویاست که جاوا در حال افت و کاتلین کم کم در حال رشد است ...
جاوا یک زبان قدیمی است که خیلی سن داره و کاربردش فقط برای اندروید هم نیست بلکه ده ها کاربرد دیگر در پلتفرم های دیگر هم دارد ولی خب کاتلین فقط برای اندروید هست و چند چیز دیگر که هنوز جا نیافتاده
ولی با این وجود میبینید که جاوا رو به کاهش هست یعنی افرادی که جاوا را جستجو میکنند کمتر میشن و بجاش افراد کم کم دارن کاتلین را جستجو میکنند .
کاتلین دومین زبان برنامه نویسی دوست داشتنی در stackoverflow
سایت stackoverflow بعنوان بزرگترین و بهترین انجمن پرسش و پاسخ زبان های برنامه نویسی است . این انجمن روزانه پذیرای میلیون ها برنامه نویس از سرتاسر دنیاست . هر ساله این سایت یک آماری را از کاربران خود جمع آوری میکند که بخشی به نام زبان های برنامه نویسی مورد پسند و مورد نفرت و ... وجود دارد که در سال ۲۰۱۸ کاتلین بعنوان دومین زبان دوست داشتنی یا محبوب جامعه ی stackoverflow انتخاب شده است .
تعداد برنامه نویسان زبان کاتلین ( kotlin ) رو به گسترش است
تعداد برنامه نویسان زبان کاتلین در اکتبر سال ۲۰۱۸ به ۱ و نیم میلیون نفر رسید در حالیکه این آمار یکسال پیش ۷۰۰ هزار نفر بود .
منابع غیر رسمی گویای این هستند که در سال ۲۰۱۹ تعداد برنامه نویسان کاتلین از مرز ۳ میلیون نفر هم گذشته است .
محبوبیت بیشتر = بازار کار بیشتر و درآمد بیشتر
کاتلین در بازار کار ( حقوق و استخدام و ... )
کاتلین در بازار کار رشد بسیاری داشته است بطوریکه شرکت های نوپا همگی برنامه نویس کاتلین بجای جاوا استخدام میکنند .
در کشور ایران هم تمام آگهی های مربوط به استخدام برنامه نویس اندروید پرشده است از کاتلین ...
در تصویر زیر نموداری از میزان استخدامی برنامه نویسان کاتلین در کل جهان و در بین تمام مشاغل آی تی را مشاهده میکنید که رو به افزایش است .
کاتلین فقط برای اندروید نیست
تصور اشتباه برخی از دوستان اینه که کاتلین فقط برای برنامه نویسی اندروید است در حالیکه کاتلین یک زبان کراس پلتفرم چند منظوره است . یعنی اصلا محدود به اندروید یا جای دیگری نیست
در ادامه برخی کاربردهای زبان کاتلین بغیر از برنامه نویسی اندروید را براتون مینویسم .
استفاده از کاتلین برای برنامه نویسی سمت سرور
برنامه نویسی سمت سرور یعنی کدهایی که برای وب سایت نوشته میشن ولی سمت سرور کامپایل میشن و نتیجشون به کاربر ارسال میشه زبان های سمت سرور از جمله پی اچ پی و پایتون و جاوا و ... هستند که کاتلین قابلیت کدنویسی برای اپلیکیشن های سمت سرور را داره
به دلیل اجرا شدن کد های کاتلین روی ماشین مجازی جاوا در هر سروری که بر اساس جاوا باشد میتوان کدنویسی کاتلین انجام داد
از جمله کاتلین را میتوان با فریمورک های زیر نیز استفاده کرد
Spring makes use of Kotlin's language features to offer more concise APIs, starting with version 5.0. The online project generator allows you to quickly generate a new project in Kotlin.
Vert.x, a framework for building reactive Web applications on the JVM, offers dedicated support for Kotlin, including full documentation.
Ktor is a framework built by JetBrains for creating Web applications in Kotlin, making use of coroutines for high scalability and offering an easy-to-use and idiomatic API.
kotlinx.html is a DSL that can be used to build HTML in a Web application. It serves as an alternative to traditional templating systems such as JSP and FreeMarker.
The available options for persistence include direct JDBC access, JPA, as well as using NoSQL databases through their Java drivers. For JPA, the kotlin-jpa compiler plugin adapts Kotlin-compiled classes to the requirements of the framework.
برنامه نویسی برای تقریبا هر چیزی با کاتلین
پروژه ی کاتلین / نیتیو ( kotlin/native ) با این هدف ساخته شده است که زبان برنامه نویسی کاتلین را به یک زبان نیتیو برای تولید برنامه های سیستم عامل های مختلف تبدیل کند .
هدف کاتلین/نیتیو در ابتدا به نظر میرسد سیستم عامل رقیب اندروید یعنی IOS بود که با پیشرفت پروژه سیستم عامل های دیگر نیز به آن اضافه شد .
اکنون کاتلین نیتیو سیستم های زیر را مورد هدف خود قرار داده است و از آنها پشتیبانی میکند ( یعنی میتونید با کاتلین برای اینا برنامه بنویسید ) :
- 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)
سوالی که همیشه پرسیده میشه شاید هم سوال ذهنی شما باشد :
آیا برنامه نویسی ios و تولید اپلیکیشن های ios توسط زبان کاتلین امکان پذیر است؟
پاسخ : بله . برای اطلاعات بیشتر و یادگیری این مورد به بخش کاتلین/نیتیو سایت اصلی کاتلین رجوع کنید .
آینده ی زبان برنامه نویسی کاتلین چطور است ؟
اگه از من بپرسید من میگم آینده اصلا مال کاتلینه . به احتمال خیلی زیاد پروژه های بعدی کاتلین هم موفق میشه و در هر زمینه یک سهمی برای خودش از بازار رو اختصاص میده
من پیش بینی میکنم در آینده اتفاقات زیر بیوفته :
- کاتلین بعنوان یکی از قویترین و بهترین زبان های سمت سرور شناخته بشه و بجای پی اچ پی و پایتون و ... استفاده بشه
- برای برنامه نویسی اندروید دیگه نیازی به جاوا نباشه و کلا با کاتلین انجام بگیره
- در گیتهاب بعنوان سومین یا چهارمین زبان محبوب میشه
- برای دیگر پلتفرم ها از جمله ios با کاتلین اپ تولید میکنند ( مثل الان اندروید )
- برنامه های لینوکسی با کاتلین به راحتی نوشته میشه و تعداد افراد استفاده کننده ی خانگی لینوکس روز به روز افزایش پیدا میکنه
یادگیری زبان برنامه نویسی کاتلین
بعد از بررسی ها و تمجیدهایی لازم از بان قدرتمند کاتلین میرسیم به بحث نحوه ی یاد گرفتن این زبان .
زبان کاتلین سینتکس عجیب غریبی داره البته برای همه عجیب غریب نیست برای اونایی که جاوا یا سی شارپ یا پی اچ پی کار کردن بله عجیب غریبه
چون اصلا شبیه جاوا اینجور چیزا نیست
یه سینتکس متفاوت و جدید داره که البته اگر تصور کنید مثل دیگر زبان های برنامه نویسی بگید در طول مسیر سینتکس رو یاد میگیرید اشتباه میکنید
چون سینتکس و قواعد دستوری کاتلین متفاوته بهتره اول یاد بگیردش بعد برید سراغ کدنویسی و کار کردن باهاش
حتی تمرین خالی و الکی هم ذهنیت جاوایی یا سی شارپی یا پی اچ پی شما را با سینتکس کاتلین مخلوط میکنه و در نهایت مغز شما نسبت به کدهای کاتلین احساس راحتی نمیکنه و همیشه سردرگم میشید
پس بهتره کاتلین را از ابتدا بصورت کامل بشینید یاد بگیریدش
دوره ای که من براش استفاده کردم وراضی هم بودم دوره ی آموزش کاتلین استاد نیک زاد بود. شما میتونید این محصول عالی را از اینجا تهیه کنید برای افرادی که به دنبال یادگیری عمیق و خوب کاتلین هستند توصیه میکنم و جالبش این بود بخش پروژه محور کاتلین هم داره .
و یه ویدیو دمو هم برای معرفی قراردادن که من اینجا میزارم ببینید
مطلبی دیگر از این انتشارات
Android Annotations چیست؟
مطلبی دیگر از این انتشارات
لیست کشویی در سویفت
مطلبی دیگر از این انتشارات
مجموعه تقلب مصاحبه شغلی برنامه نویس اندروید - قسمت سوم