گوگل در جریان برگزاری کنفرانس توسعهدهندگان I/O اعلام کرد از زبان برنامهنویسی Kotlin پشتیبانی خواهد کرد. کاتلین زبان برنامهنویسی آیندهداری است که از Java Virtual Machine پشتیبانی میکند. زبان برنامهنویسی فوق توسط گروهی از برنامهنویسان شرکت JetBrians ساخته شده است. تیم فوق پیش از این JetBrains IDE را برای اندروید استودیو، محیط توسعه یکپارچه ارائه شده از سوی گوگل طراحی کرده بود.
گوگل همان گونه که پیشتر اعلام کرده بود، ابزار برنامهنویسی کاتلین را بهطور پیشفرض در نگارش سوم اندروید استودیو قرار داد. این شرکت در کنفرانس توسعهدهندگان اعلام کرده بود که بهمنظور پیشرفت و توسعه زبان برنامهنویسی کاتلین تعامل بیشتری با شرکت JetBrains برقرار خواهد کرد. با توجه به آنکه کاتلین با زبان برنامهنویسی جاوا (زبان پیشفرض توسعه اندروید) سازگاری دارد، طراحان مشکل خاصی با آن نخواهند داشت. نکته جالب توجهی که در ارتباط با کاتلین وجود دارد این است که تیم توسعهدهنده سعی کردهاند آن را بهصورت چندسکویی آماده کنند. آنها بهدنبال آن هستند تا به توسعهدهندگان اجازه دهند از این زبان بهمنظور ساخت برنامههایی برای iOS و مک نیز استفاده کنند. همچنین، برای توسعه برنامههای تحت وب از طریق تبدیل کدها به جاوااسکریپت میتوان از این زبان استفاده کرد. توسعهدهندگان از این پس این توانایی را خواهند داشت از کاتلین، جاوا و هر زبان مبتنی بر روی ماشین مجازی جاوا بهمنظور ساخت برنامههای اندرویدی استفاده کنند. کاتلین بهلحاظ ساختاری شباهت زیادی به زبان جاوا دارد و جزء زبانهای برنامهنویسی شیگرا به شمار میرود. یکی از نقاط قوت زبان فوق به سازگاری این زبان با کتابخانههای جاوا بازمیگردد. این زبان مشابه به جاوا بهمنظور حل مسائل و مشکلات برنامهنویسی طراحی شده است. اما بهدلیل اینکه در مقایسه با جاوا از راهکارهای سادهای بهره میبرد، به توسعهدهندگان اجازه میدهد به بهترین شکل ممکن از قابلیتهای در دسترس استفاده کنند.
ساختار و ماهیت زبان برنامهنویسی کاتلین چگونه است؟
کاتلین یک پروژه متن باز است که نخستین بار در سال 2011 به دنیای برنامهنویسی وارد شد. این زبان تحت مجوز آپاچی 2.0 عرضه شده است. گوگل میگوید: «کاتلین یک زبان بسیار جذاب است که بهشکل بسیار زیبایی کدنویسی شده و به بلوغ کامل رسیده است. زبان کاتلین سرعت طراحی و توسعه برنامههای اندرویدی را بیش از پیش افزایش خواهد داد.» به عبارت دیگر، گوگل بر این باور است که این زبان از یک طراحی هوشمندانه و ساختیافته تبعیت میکند. نکتهای که درباره زبان کاتلین باید به آن توجه داشته باشید این است که کامپایلر کاتلین از بایتکد جاوا استفاده نمیکند. با وجود این، کاتلین و جاوا این توانایی را دارند تا به شکل قابل قبولی با یکدیگر در تعامل باشند.
کاتلین چه ویژگیها و قابلیتهای شاخصی دارد؟
کاتلین بهمنظور برطرف کردن مشکلات و نواقص زبان جاوا طراحی شده است. صرف نظر از اینکه کاتلین یک پروژه متن باز است و تعاملی خوبی با زبان جاوا دارد، ویژگیهای برجسته و شاخص نیز دارد که توسعهدهندگان را ترغیب خواهد کرد بهمنظور ساخت برنامههای اندرویدی از آن استفاده کنند. ازجمله ویژگیهای شاخص این زبان به موارد زیر میتوان اشاره کرد.
1- کاتلین یک پروژه متن باز است
نخستین و مهمترین ویژگی کاتلین به متن باز بودن این زبان برنامهنویسی بازمیگردد. این زبان برنامهنویسی ایستا از سوی JetBrains طراحی شده است. JetBrains تیم توسعهدهنده این زبان خالق IntelliJ IDE نیز هستند. اگر از ماهیت متن باز بودن این زبان صرف نظر کنیم، باید به این حقیقت مهم اشاره داشته باشیم که این زبان به سادهترین شکل و به دور از هرگونه سؤال اضافی قادر است کدهای جاوا را به کدهای کاتلین تبدیل کند. این کار تنها از طریق یک کلیک ساده انجام میشود.
2- کاتلین با جاوا سازگاری کامل دارد
سازگاری کامل و عمیق با زبان جاوا خود بهتنهایی انگیزه کافی در اختیار توسعهدهندگان قرار میدهد تا به یادگیری آن بپردازند. کاتلین روی ماشین مجازی جاوا اجرا شده است و از ابزارها و کتابخانههای آن استفاده میکند. همچنین، از نگارشهای 6 و 7 جاوا نیز پشتیبانی میکند.
3- کاتلین میتواند بایتکدهای جاوا یا JS را کامپایل کند
این ویژگی بدون شک توسعهدهندگان زبان جاوا و جاوااسکریپت را ترغیب میکند یادگیری این زبان را آغاز کنند. به گفته گوگل، برنامهنویسانی که از Garbage Collected Runtime استفاده میکنند، بیش از سایر توسعهدهندگان تمایل پیدا خواهند کرد کاتلین را مورد استفاده قرار دهند.
4- کاتلین از کلاسهای دادهای استفاده میکند
طراحان زبانهای برنامهنویسی همیشه بهلزوم وجود کلاسها در زبانهایی که طراحی میکنند آگاه بودهاند. در زبان جاوا برای اطلاع از عملکرد و کارکرد یک کلاس دادهای معمولی باید کدهای اضافی بسیاری را مورد بررسی قرار دهید تا بتوانید از یک کلاس بهشکل درست استفاده کنید. در زبان کاتلین این توانایی را دارید تا کدی با همان کارکرد را بنویسید تا وظیفه مورد نظر را برای شما انجام دهد. اما این کار را بهشکل بسیار سادهتر، کوتاهتر و خلاصهتری میتوانید انجام دهید که خود یکی از مهمترین ویژگیهای زبان کاتلین به شمار میرود. از کلاسهایی که به این شکل آماده میشوند میتوان بهمنظور نگهداری اطلاعات استفاده کرد. کلاسهایی که بدون بدنه و تکخطی تعریف میشوند(شکل 1).
شکل 1
5- پارامترهای پیشفرض
پارامترهای پیشفرض در کاتلین نقش مهمی را بازی میکنند. بهدلیل اینکه بهجای ارسال ایندکسها میتوانید از آرگومانهایی همراه با نام آنها استفاده کنید. این ویژگی زمانی کاربرد واقعی خود را نشان میدهد که شما در حال نوشتن تابعی با دهها پارامتر اختیاری هستید.
6- کاتلین اجباری به Runtime Overhead ندارد
کتابخانه استاندارد کاتلین هیچ کد اضافی ندارد. در نتیجه، به مفهومی بهنام Garbage هم نیازی ندارد. همه چیز در این زبان مختصر و بهینه طراحی میشود و مورد استفاده قرار میگیرد. بسیاری از توابع این زبان تکخطی هستند. همین موضوع باعث میشود تا برنامههای اندرویدی بسیار سریع آماده و تکمیل شوند.
7- کاتلین توسعهدهندگان را از دردسرهای Null آزاد کرده است
هدف زبان برنامهنویسی کاتلین حذف ارجاعات به Null در کدهای برنامهنویسی است. مشکلی که از آن بهنام خطای میلیارد دلاری(The Billion Dollar Mistake) نام برده میشود. در زبان برنامهنویسی جاوا ارجاع به Null باعث بروز یک استثنا میشود. در کاتلین اشیایی که مقدار Null دارند باید با پیشوند ?. مورد استفاده قرار گیرند. عملگرهایی که روی اشیای Null مورد استفاده قرار میگیرند نیز باید از سوی توسعهدهندگان بهشکل خاصی مشخص شوند. کاتلین برای کمک به برنامهنویسان عملگرهای Null-Safe را در اختیار آنها قرار داده است. عملگر ?. میتواند بهشکل ایمنی و بهمنظور دسترسی به یک متد یا خاصیتی که ممکن است یک شی Null را در اختیار داشته باشد مورد استفاده قرار گیرد. اگر شی برابر با مقدار Null باشد، متد فراخوانی نمیشود و عبارت Null برگردانده میشود. عملگر نیز ?: اغلب بهعنوان یک عملگر ارجاعدهنده مورد استفاده قرار میگیرد. فهرست 1 نحوه بهکارگیری این عملگرها را نشان میدهد.
fun sayHello(maybe : String?, neverNull : Int) {
// use of elvis operator
val name : String = maybe ?: “stranger”
println(“Hello $name”)
}
فهرست 1
8- توابع Extension
توسعهدهندگان از طریق توابع توسعهیافته در زبان کاتلین این توانایی را دارند تا بدون آنکه به تغییر کدهای اصلی نیازی داشته باشند، متدهای خود را به کلاسها اضافه کنند.
9- زبان کاتلین شبیه به زبان سوئیفت است
یکی از جالبترین ویژگیهای زبان کاتلین به تشابه ترکیب نحوی این زبان با زبان سوئیفت اپل بازمیگردد.
10- کاتلین از شما میخواهد کدهای کمتری بنویسید
(شکل 2) برعکس زبان برنامهنویسی جاوا که توسعهدهندگان را مجبور میکند برای هر چیزی کدنویسی کنند، کامپایلر کاتلین قادر است کدها را درک کند و کدهایی که ممکن است مورد نیاز باشند را خود بنویسد. این کامپایلر قادر است نوع متغیرها را براساس اعلان آنها حدس بزند. این کار بهشکل قابل توجهی در وقت توسعهدهندگان صرفهجویی میکند و بهرهوری را افزایش میدهد. این رویکرد بدون شک برنامهنویسی اکوسیستم اندروید را بیش از پیش جذاب خواهد کرد.
شکل 2
منابع آنلاین رایگانی که به شما در یادگیری این زبان کمک میکنند
اکنون که با پسزمینه طراحی این زبان و ویژگیهای کلیدی آن آشنا شدید، ممکن است کنجکاو شده باشید فراگیری این زبان را آغاز کنید. ما در ادامه به معرفی سایتهای آنلاینی میپردازیم که بهشکل رایگان در یادگیری این زبان به شما کمک میکنند.
سایت کاتلین
(شکل 3) بدون شک سایت رسمی این پروژه بهترین مکان برای یادگیری زبان کاتلین است. بخش reference این سایت به شما اجازه میدهد به مستندات، مفاهیم اصلی و قابلیتهایی که این زبان ارائه میکند دسترسی داشته باشید. بخش آموزش tutorials هر آنچه برای برنامهنویسی گام به گام با این زبان به آن نیاز دارید در اختیارتان قرار میدهد. یکی از بخشهای جالب این سایت در ارتباط با جاوا است. اگر روی گزینه Mixing Java and kotlin in one project کلیک کنید، نشان میدهد چگونه میتوانید در یک پروژه Intellij IDEA از ترکیب کدهای جاوا و کاتلین استفاده کنید. در این صفحه بهصورت بصری نحوه ادغام کدها نشان داده شده است. در بخش اندروید نیز مقالههایی در ارتباط با چهارچوبهای اندروید، تعامل کاتلین با اندروید و... قرار دارند. برای دسترسی به مجموعه غنی از ابزارهای مرتبط با کاتلین به نشانی پروژه (https://kotlinlang.org/docs/reference/) مراجعه کنید. همچنین، یک ویرایشگر کدهای کاتلین در سایت فوق تعبیه شده است که بهصورت آنلاین به شما اجازه میدهد آموزش خود را توأمان با یک ویرایشگر آماده تکمیل کنید. این ویرایشگر در نشانی https://try.kotlinlang.org قرار دارد.
شکل 3
کدیت: یادگری کاتلین توامان با طراحی یک برنامه اندرویدی
خوان ایگناسیو ساراویا در یازده بخش نحوه بهکارگیری کاتلین در ارتباط با ساخت یک برنامه اندرویدی را به شما نشان داده است. در این سایت مطالب آموزشی مختلفی در ارتباط با راهاندازی فضای توسعه، بهکارگیری رابطهای برنامهنویسی و بخش مربوط به واحد آزمایش قرار گرفته است. کدهای مربوط به این آموزش در سایت گیتهاب قرار دارند. برای دسترسی به این سایت به نشانی زیر مراجعه کنید:
https://medium.com/@juanchosaravia/learn-kotlin-while-developing-an-android-app-introduction-567e21ff9664
وبلاگ آنتونیو لیوا
(شکل 4) آنتونی لیوا مهندس نرمافزار که تخصص ویژهای در برنامهنویسی اندروید دارد، در سایت خود بهطور ویژه زبان کاتلین را مورد بررسی قرار داده است. این سایت و وبلاگ آن بهطور هفتگی آموزشها و مقالههای ارزشمندی را درباره این زبان منتشر میکند. مطالبی که به توسعهدهندگان مبتدی یا حرفهای کاتلین کمک میکند با کتابخانههای جدید آشنا شوند و از تکنیکهای مختلف برنامهنویسی در این زبان استفاده کنند. برای دسترسی به این مطالب به نشانی https://antonioleiva.com/category/blog/ مراجعه کنید.
شکل 4
وبلاگ گوگل
سایت رسمی گوگل نیز کاتلین را در قالب بخشی از اکوسیستم اندروید به رسمیت شناخته و در نتیجه مطالبی را درخصوص این زبان برنامهنویسی منتشر میکند. در این سایت قابلیتها و مزایایی که کاتلین در اختیار توسعهدهندگان قرار میدهد مورد بررسی قرار گرفته است. برای دسترسی به اطلاعات منتشر شده در این سایت به نشانی زیر مراجعه کنید:
https://android-developers.googleblog.com/2017/05/android-announces-support-for-kotlin.html
الگوهای طراحی شده در کاتلین
داریوس باسینسکی یک مخزن خوب و ارزشمند را در گیتهاب ایجاد کرده است. در این مخزن الگوهای طراحی رایجی قرار دارد که در زبان کاتلین مورد استفاده قرار میگیرند. همچنین، پروژههای مشابهی که با استفاده از زبانهای جاوا، سوئیفت، جاوااسکریپت و پیاچپی طراحی شدهاند، در این مخزن وجود دارد. در نتیجه این مخزن به غیر از توسعهدهندگان کاتلین برای برنامهنویسان این زبانها نیز مفید است. برای دسترسی به این مخزن به نشانی زیر مراجعه کنید:
https://github.com/dbacinski/Design-Patterns-In-Kotlin
Learn X in Y minutes
سایت فوق به شکلی سریع مهمترین ویژگیها و قابلیتهای ترکیب نحوی کاتلین را مورد بررسی قرار داده است تا به شما در کدنویسی بهتر در این زبان کمک کند. همچنین، نمونه کدهایی در ارتباط با کار کردن با کلاسها، حلقهها و فهرستها و نحوه برنامهنویسی کلاسیک شبیه به ساخت سری فیبوناچی در این سایت موجود است. برای دسترسی به نمونه کدها به نشانی زیر مراجعه کنید:
https://learnxinyminutes.com/docs/kotlin/
وبلاگ کاتلین
منبع ارزشمند دیگری که در اختیار شما قرار دارد، وبلاگ رسمی کاتلین است که از سوی تیم توسعهدهنده JetBrains مدیریت میشود. در این وبلاگ جدیدترین اخبار و بهروزرسانیهای مربوط به کاتلین و دهها مطلب آموزشی و تکنیکهای مورد استفاده در این زبان وجود دارد. برای دسترسی به این سایت به نشانی زیر مراجعه کنید:
https://blog.jetbrains.com/kotlin/
یادگیری کاتلین در اندروید
در این سایت مقالههای جالب و کاربردی را که تیم توسعهدهندگان گوگل در ارتباط با اندروید استودیو و تعامل آن با کاتلین، تبدیل فایلهای جاوا (.java) به فایلهای کاتلین (.kt) و یکپارچهسازی زبان کاتلین با پروژه اندروید استودیو آماده کردهاند مشاهده میکنید. همچنین، مقایسههایی در ارتباط با توابع واسط کاربری که در کاتلین و جاوا مورد استفاده قرار میگیرد، در این سایت قرار دارد. برای دسترسی به این سایت به نشانی زیر مراجعه کنید:
https://developer.android.com/kotlin/get-started.html
آزمایش اندروید با کاتلین
در این سایت مقالههای خوبی در ارتباط با نحوه نوشتن و آزمایش برنامههای اندرویدی با کاتلین قرار دارند. این سایت به شما نشان میدهد چگونه میتوانید برنامههای نوشته شده با کاتلین را مورد آزمایش قرار دهید، به نحوی که اطمینان حاصل کنید آزمایشها بهشکل درستی اجرا شدهاند. برای دسترسی به این سایت به نشانی زیر مراجعه کنید:
https://fernandocejas.com/2017/02/03/android-testing-with-kotlin/
از جاوا به کاتلین
این مخزن قرار گرفته در گیتهاب قطعه کدهای بسیار کوتاهی را در اختیار شما قرار میدهد که از طریق آنها با مفاهیمی همچون عملکردها، توابع و تعاریف مورد استفاده در جاوا و کاتلین آشنا خواهید شد. برای دسترسی به این مخزن به نشانی زیر مراجعه کنید:
https://github.com/MindorksOpenSource/from-java-to-kotlin
افزونه آموزشی کاتلین
افزونه فوق پلاگین ویژهای برای IntelliJ را در اختیار شما قرار میدهد که از طریق آن به دروس و دورههای آموزشی بیشتر دسترسی پیدا میکنید. برای دسترسی به این افزونه به نشانی زیر مراجعه کنید:
https://blog.jetbrains.com/kotlin/2016/03/kotlin-educational-plugin/
کاتلین روی سایت GitHub
کاتلین بیش از 5 سال است بهصورت متن باز توزیع شده و مخزنی روی گیتهاب در ارتباط با این زبان قرار گرفته است. در این مخزن تاریخچه تکامل این پروژه را مشاهده خواهید کرد. اگر علاقهمندید که از این زبان پشتیبانی کنید و دانش فنی لازم را در اختیار دارید، بهطور مستقیم میتوانید روی مستندات این پروژه کار کنید. برای دسترسی به این مخزن به نشانی https://github.com/jetbrains/kotlin مراجعه کنید.
آموزش کاتلین همراه با منابع غنی
فهرستی از منابع کاتلین که مشتمل بر لینکها، کتابها، کتابخانهها، چهارچوبها و ویدئوهای کاربردی است از طریق این سایت در دسترس شما قرار دارد. این فهرست بهشکل دقیقی سازماندهی شده است. برای دسترسی به این محتوای ارزشمند به نشانیhttps://github.com/KotlinBy/awesome-kotlin مراجعه کنید. برای دریافت جزئیات بیشتر درخصوص این زبان و دسترسی به منابع بیشتر به نشانی https://kotlin.link/ مراجعه کنید.
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
دیدگاهها
سلام
خیلی خوب و عالی توضیح دادین خصوصا معرفی سایت های مفید برای یادگیری کاتلین.
ممنون از مقاله ی عالیتون.