کاتلین

بهترین آموزش های برنامه نویسی اینجا قرار میگیرند

مقایسه ی عمیق کاتلین با جاوا

۸ بازديد
جاوا یکی از  زبان های برنامه نویسی بسیار محبوب است که سالهاست در حوزه های مختلفی از جمله توسعه وب، توسعه اپلیکیشن موبایل، اپلیکیشن های دسکتاپ و توسعه بازی استفاده می شود.
از سوی دیگر، کاتلین یک زبان برنامه نویسی نسبتاً جدید است که در سال های اخیر محبوبیت پیدا کرده است. هر دو زبان برای ساخت برنامه های کاربردی برای ماشین مجازی جاوا (JVM) استفاده می شوند، اما از نظر سینتکس، ویژگی ها و عملکرد با هم تفاوت دارند.
جاوا مدت زیادی است که وجود دارد و جامعه‌ای وسیع و کتابخانه‌های فراوانی دارد. از سوی دیگر، کاتلین یک زبان نسبتاً جدید است که ویژگی‌های معاصر و سینتکس مختصری را ارائه می‌دهد که آن را به یک گزینه جذاب برای توسعه‌دهندگان تبدیل می‌کند.
در این مقاله به بررسی تفاوت های بین کاتلین و جاوا خواهیم پرداخت.
کاتلین بهتر است یا جاوا

تفاوت بین کاتلین و جاوا


سنتکس

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

به عنوان مثال، بیایید سینتکس ایجاد یک کلاس را در هر دو زبان مقایسه کنیم:

//java

public class MyClass {
private int myField;

public MyClass(int myField) {
this.myField = myField;
}

public int getMyField() {
return myField;
}

public void setMyField(int myField) {
this.myField = myField;
}
}


و 
//kotlin

class MyClass(private var myField: Int) {
   fun getMyField() = myField
   fun setMyField(value: Int) { myField = value }
}
کاتلین یا جاوا

همانطور که مشاهده می کنید، نسخه کاتلین بسیار مختصرتر و خواناتر از نسخه جاوا است. در کاتلین، ما می توانیم کلاس و فیلدهای آن را در یک خط تعریف کنیم و getter و setter ها با دسترسی کننده های property جایگزین می شوند.
علاوه بر این، کاتلین از استنتاج نوع (type inference) پشتیبانی می کند، به این معنی که شما مجبور نیستید نوع داده یک متغیر را به طور واضح مشخص کنید.

//kotlin

val myString = "Hello, world!"

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

//java

String myString = "Hello, world!";

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

//java

public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}

کد بالا یک برنامه ساده "Hello, World!" در زبان جاوا است که عبارت "Hello, World!" را در کنسول چاپ می کند.

//kotlin

fun main() {
println("Hello, World!")
}

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

ایمنی در برابر مقادیر Null

هر دو زبان کاتلین و جاوا به بایت کد کامپایل می شوند که روی JVM اجرا می شود، بدین معنی که از نظر عملکردی شباهت هایی دارند.
اما کاتلین در موارد خاصی نسبت به جاوا از برخی برتری های عملکردی برخوردار است. به عنوان مثال، ویژگی "ایمنی در برابر مقادیر Null" در کاتلین می تواند به کاهش تعداد خطاهای زمان اجرا (runtime exceptions) و بهبود عملکرد کلی برنامه کمک کند. همچنین استفاده کاتلین از ساختارهای داده غیرقابل تغییر (immutable) نیز می تواند منجر به بهبود عملکرد شود.

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


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

//kotlin

var name: String = "John" // non-null variable
var age: Int? = null // nullable variable



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

مقایسه کاتلین با جاوا

برنامه نویسی تابعی


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

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

//kotlin
// lambda expression
val list = listOf(1, 2, 3)
val doubledList = list.map { it * 2 }

// higher-order function
fun higherOrderFunc(x: Int, y: Int, f: (Int, Int) -> Int): Int {
return f(x, y)
}
val result = higherOrderFunc(3, 4) { x, y -> x + y }

// extension function
fun Int.isEven() = this % 2 == 0
val isFourEven = 4.isEven()


نتیجه گیری

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

تمرکز کاتلین بر ایمنی در برابر مقادیر Null و پشتیبانی از برنامه نویسی تابعی، آن را برای توسعه برنامه های کاربردی مدرن مناسب می سازد، در حالی که عملکرد و اکوسیستم کتابخانه ای جاوا آن را به انتخابی خوب برای برنامه های سازمانی تبدیل می کند.

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

امیدوارم این مقاله آموزنده بوده باشد.

موفق باشید در یادگیری.

داستان اولین درآمد و اولین اپ هایی که با برنامه نویسی نوشتم :)

۶ بازديد

این داستان نقل قول یکی از برنامه نویسان موفق است که از وبلاگ ایشان کپی کردم خیلی به من انگیزه و شور برای ادامه دادن برنامه نویسی داد امیدوارم به درد شما هم بخوره . داستان درباره ی فردی هست که در یک شرایط بحرانی مالی بوده و با نوشتن اپلیکیشن به زبان برنامه نویسی کاتلین و انتشار آن در مارکت اندرویدی توانسته ماه اول مبلغ ۲۸۰ میلیون تومان کسب درآمد کنه ! برای منم اولش عجیب بود ولی وقتی به آمارهای دانلود اپ ها دقت کردم دیدم این عدد حتی خنده دارم هست.

درهرصورت هرچه هست من کپی نوشته ی وبلاگ ایشان را اینجا قرار دادم تا شما هم بخونید و لذت ببرید...

 

سلام به همگی ... این پست براتون سورپرایز دارم میخام داستان اولین درآمدی که از برنامه نویسی موبایل کسب کردم رو بگم و امیدوارم لذت ببرین ????????

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

انگیزم مالی بود ???????? چون به مبلغی نیاز داشتم و تو اینترنت چرخ میزدم تا دیدم یه آقایی تونسته با نوشتن یه اپلیکیشن ساده ده ها میلیون پول بسازه

گفتم منم میخام و داستان شروع شد ...

داستان اصلی و شروع برنامه نویسی اندروید

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

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

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

تا اینکه یک روز صبح لپتاپم روشن نشد ...

اولش فک کردم کابل برق قطع شده و باطری لپتاپ هم خالیه کلی با کابل آداپتور لپتاپ ور رفتم ولی هیچ نتیجه ای نگرفتم تا اینکه مجبور شدم فرداش لپتاپو ببرم بدم تعمیرگاه

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

یک هفته بعد شد ولی هنوز تعمیر نشده بود

تعمیرکار گفت یک قطعه ی خاصی ازش سوخته که سفارش دادم باید دستم برسه تعویض کنم گفتم باشه

یه چند روز گذشت و دوبار پیگیر شدم تعمیرکار گفت من قطعه رو عوض کردم ولی چون لپتاپ شما مشکل برق داشته زده چندتا قطعه دیگه هم سوخته باید اونا رو هم عوض کنم گفتم باشه

یک هفته دیگه گذشت خبری نشد

یک هفته شد دو هفته و من این مدت بدون لپتاپ بودم و شدیدا بهش نیاز هم داشتم البته تو این تایم با گوشی اندرویدیم هم مشغول بودم ولی خب نمیشد کارایی که با لپتاپ میکردمو با گوشی بکنم

یعنی مثل الان نبود ... خیلی از سایت ها برای موبایل مناسب نبود و تو موبایل به درستی نمایش داده نمیشد...

خلاصه که اون تعمیرکار با من تماس گرفت و گفت متاسفم لپتاپ شما دیگه درست بشو نیست ???? تا اینکه مجبور شدم برم لپتاپمو تحویل بگیرم  بیام

اون روز که رسیدم خونه به فکر این بودم که چطوری یه لپتاپ جدید خریداری کنم...

???????????? معجزه اینجا اتفاق افتاد ????????????

شب بود رفتم پیش لپتاپم و یکم دکمه پاورش رو زدم که روشن بشه ولی نشد همینطوری که داشتم باهاش بازی میکردم گفتم بزار باطریشو در بیارم ببینم چی میشه وقتی باطری را درآوردم و مستقیم به پریز زدم در کمال ناباوری لپتاپ روشن شد...

ویندوز بالا اومد و همه چی اوکی بود ( اینم بگم تعمیرکار دستمزدشو ازم گرفته بود با اینکه درستش نکرده بود )

خیلی خوشحال بودم ولی یه حس استرس داشتم فکر میکردم الانه که دوباره لپتاپ خاموش بشه و من بمونم و یه لپتاپ خاموش ....

همینجا بود که به فکرم زد از یه جایی پول در بیارم تا بتونم سریعا یه لپتاپ دیگه بخرم 

همون شب سرچ کردم که چطور میتوانم از اینترنت سریعا پولدار بشم که یه مقاله باز شد از سایت آواسام درباره ی درآمد میلیاردی از برنامه نویسی بود و با مطالعه ی اون به برنامه نویسی علاقمند شدم

خلاصه که هنوزم اون لپتاپ که باعث موفقیت های بعدی من شده بود رو نگه داشتم شاید یه روزی بزارن تو موزه ????????

عکساشم اینجا میزارم ببینید چیبوده 

لپتاپ که با آن برنامه نویسی کاتلین شروع کردم شماره ۱

لپتاپی که با آن برنامه نویسی kotlin شروع کردم شماره دو

 

لپتاپ من که با آن برنامه نویسی کاتلین شروع کردم شماره سه

لپ تاپ که با آن برنامه نویسی کاتلین شروع کرده ا

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

 

چطور برنامه نویسی اپلیکیشن موبایل به ذهنم رسید! 

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

بعد از خوندن اون مقاله با ذوق و شوق فراوان داشتم همه جای اینترنت رو میگشتم تا ببینم در زمینه ی برنامه نویسی چطور میشه سریعا به پول رسید...

یک برنامه نویس موبایل بود که اسمش یادم نیست و حتی من پیج اینستاگرامش را هم داشتم یه اپلیکیشن موبایل کمکی برای اینستاگرام نوشته بود و من با یکی از فامیل های اون ارتباط گرفتم

وقتی فهمیدم با نوشتن یک اپ موبایل و انتشار آن در مارکت کافه بازار ماهانه ۲۰۰ الی ۴۰۰ میلیون تومان درآمد داره من دیگه آرام و قرار نداشتم

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

برنامه نویسی دنیای بزرگی داره و من هم موقعی که میخاستم آموزش برنامه نویسی ببینم با دنیای بزرگی از آموزش ها روبرو بودم که باید بین آنها یکی رو انتخاب میکردم

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

درآمدهای بالا و رشد سریع اپلیکیشن های دیگه رو هم میدیدم و اتفاقا در هر گروه برنامه نویسی هم عضو شدم و مشورت خاستم برنامه نویسی موبایل رو پیشنهاد دادن 

تا اینکه رفتم سمت آموزش برنامه نویسی اندروید 

برای برنامه نویسی اندروید شما باید یکی از زبان های java یا kotlin را یاد بگیرید که البته دوران جاوا تمام شده و تقریبا kotlin بعنوان زبان اصلی برنامه نویسی اندروید در نظر گرفته میشه و اگر شما هم میخوایید برنامه نویسی اندروید یاد بگیرید حتما برید سراغ زبان برنامه نویسی کاتلین !

من در طی یک ماه برنامه نویسی کاتلین یاد گرفتم شاید غیرقابل باور باشه ولی من شدیدا تلاش میکردم و البته از دوره ی آموزشی فوق العاده ی استاد نیکزاد و کمک های ایشان هم استفاده میکردم که همینجا ازشون تشکر میکنم

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

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

 

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

به همین شیوه برنامه نویسی kotlin را ادامه دادم تا تونستم چند اپلیکیشن جالب بنویسم . فکر کنید همه را فقط در یک هفته نوشتم درسته اپ های کوچکی بودند ولی کاربردی ! 

همه ی اپلیکیشن ها را در کافه بازار منتشر کردم.

کافه بازار اپلیکیشن ها را بررسی میکرد و در صورت اینکه اوکی بودن منتشر میکرد و من اولش نگران بودم که نکنه به زبان کاتلین گیر بدن و وقتی از پشتیبانی کافه بازار درباره ی زبان برنامه نویسی کاتلین سوال کردم گفتند : 

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

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

 

اولین درآمدم واریز شد

خب خب ! انتظار ها به سر رسید ... اپلیکیشن های من نصب خوبی داشتند ... یکی از اپ های من در کمال ناباوری در شب اول ۲۰۰۰ نصب شده بود ???????? خیلی شگفت انگیز بود

من داشتم نتیجه ی زحمات شدیدی که در روزهای گذشته کشیده بودم را میدیدم

مبلغ درآمد من روزانه در حال افزایش بود و خدا خدا میکردم به مبلغی برسه که بتونم باهاش یک عدد لپتاپ بخرم ولی درآمدم حتی فراتر از مبلغ یک لپتاپ رفت ???????? ....

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

 

این میزان درآمد من بعد از دو هفته بود :‌

 

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

 

 

اینم لیست اپلیکیشن های من هست ( قسمت تعداد نصب ها و تعداد کامنت هاشون ) :

 

میزان نصب اپلیکیشن های برنامه نویسی شده توسط من

 

و اولین درآمد من به شماره شبا بانکیم واریز شد ❤️ که عکس از واریزی اون تاریخ رو براتون میزارم :‌

اولین واریزی من از کافه بازار بخاطر برنامه نویسی اپلیکیشن هام‍

 

مبلغ دقیق میشه ۲۸۳ میلیون تومان 

اونجا اولین باری بود که چنین مبلغی رو تو زندگیم حس میکردم منی که درآمد نداشتم و توخانواده ی فقیری هم بزرگ شده بودم 

حالا که پول به حسابم ریخته شد نفس راحتی کشیدم 

لپتاپم رو گذاشتم کنار و گفتم امروز یه لپتاپ اپل میخرم 

اون روز رفتیم پاساژ و دنبال لپتاپ گشتیم ولی لپتاپی که مد نظرم بود را پیدا نکردم 

گفتم اشکالی نداره از دیجیکالا میخرم

اولین تجربه ی خرید من از دیجیکالا بود و بعد از چند روز لپتاپم رو تحویل دادن خداروشکر مشکلی نداشت و با گارانتی معتبری هم بود.

الان که الانه دارم همون لپتاپ رو استفاده میکنم و این کلماتی که میخونید با همون لپتاپ داره نوشته میشه ( اگه فرصت کنم عکس میگیرم برای این لپتامم میزارم )

 

حالا نه تنها یک لپتاپ اپل نو داشتم که خیلی از قبلی بالاتر و گرونتر و سریعتر بود بلکه کلی پول هم اضافه آوردم

تازه من برنامه داشتم برای ماه های بعدی که اپلیکیشن های بیشتری بنویسم

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

چون زمانی که من با کاتلین اپ نوشتم زبان کاتلین تازه وارد عرصه ی برنامه نویسی شده بود و مشخص نبود آینده چی میشه

الان تو آینده هستیم سالها گذشته و کاتلین هر روز نسبت به قبل پیشرفت کرده 

اگه به یادگیری یک زبان برنامه نویسی مدرن و قوی و جدید فکر میکنید برید سراغ آموزش کاتلین 

از من گفتن بود ...

 

با یادگیری زبان کاتلین به چه درآمدی میرسیم ؟

این یکی از سوال هاییه که طی این سالها از من پرسیده شده من بارها تو گروه ها و انجمن های مختلف که حرف میزدم ( رفته بودم بالامنبر ) گفتم که کاتلین ( kotlin ) یک زبان برنامه نویسی آینده داری هست...

ممکنه به همین زودی بترکونه البته تو زمینه ی برنامه نویسی موبایل تا اینجاشم ترکونده منظورم دیگر زمینه ها بود

مثل هوش مصنوعی

مثل توسعه ی وب سایت

مثل بازی سازی و ...

شرکت جت برینز هر روز داره یه سری چیزهای جدیدی به کاتلین اضافه میکنه 

از زمانی که من کاتلین را شروع کردم کلی چیز به کاتلین اضافه شده و در آینده هم قراره وارد دیگر حوزه های برنامه نویسی بشه...

اما دلیل نوشتن این مقاله چیبود ؟ 

۱ - اینکه از شر سوال های پرتکرار خلاص شم باور کنید هرکسی که با من آشنا میشه سوال بعدیش چیزیه که در بالا پاسخ دادم بهش 

 

۲ - بهتون انگیزه و امید بدم من با برنامه نویس های زیادی در ارتباط بودم حالا بواسطه ی ایمیلم که زیر کارهام درج میکنم یا در انجمن های گفتگوی برنامه نویسی و ... بیشتر برنامه نویسان ایرانی بی انگیزه هستند و باور ندارند که برنامه نویسی واقعا جدی هست و اگر جدی بگیرندش صد در صد موفقیتشون تضمین میشه هم از نظر مالی و هم از منظرهای دیگه ...

 

۳ - زبان برنامه نویسی کاتلین را معرفی کنم و بهتون پیشنهاد بدم دنبال آموزش زبان کاتلین باشید. چون مطمعنم آینده ی این زبان خیلی درخشانه 

 

۴ - نویسندگی خودمو تقویت کنم ????????