Server development with Kotlin

سلام دوستان : )
کسی تجربه کار با کتلین روی سرور رو داشته ؟؟‌
دو نمونه فریم ورک هست ک خیلی تو چشمه … یکی ktor یکیم vert.x

کتلین فانکنشنال کامل نیست . مالتی پارادایم هست … و بخوبی هم OOP ساپورت میکنه :star_struck:
اما نمیدونم شرایطی ک برای استفاده از coroutines ایجاد میکنه کاملا سیف و ایمن هستن یا باید خودمون حواسمون باشه : )

اگه علاقمند بودید یا تجربه داشتید حتما به اشتراک بزارید …

3 Likes

سلام بله کاتلین مثله سکالاس ازاین‌جهت من با ktor یک‌ api قبلا درست کردم

Javalin و spark (نه فریمورک بیگ دیتا) هم دیدم‌ولی ktor ساخته jetbrains شرکت سازنده kotlin هستش
Coroutine ها به خوبی کار می‌کنند جایی برای نگرانی نیست

3 Likes

بسیار عالی , کمک بزرگی بود . احتمالا آپشن بعدیم بعد تموم شدن پروژه تستیم روی راست . کتلین هست :relaxed:

3 Likes

من از vert.x با scala و کلوژر کار کردم. پرفرمنس خوبی داره در مقایسه با برخی از رقباش خیلی پیشنهاد می کنم یا ازش استفاده کنین یا برای الهام گرفتن یه نگاهی بهش بندازین

2 Likes

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

1 Likes

در مورد kotlin زیاد اطلاع ندارم اما منطقا باید مثل scala و کلوژر باشه. همه در نهایت به یه bytecode کامپایل می شن و فرق خیلی چشم گیری باهم ندارن.

من کلا از پلی خوشم نمیاد اگه بخوام نظر بدم جزء بدی چیزی نمی تونم بگم :smile:

2 Likes

برای اپلیکیشن تو شرایط برابر صحیح ک مثل هم هستن . اما مدل پیاده سازی و مدیریت و رندر و ریکوئست و رسپانس هرکدوم و وب سرور هاشون اصولا باید تفاوت داشته باشه . درست نمیگم ؟

1 Likes

مثلا نمیشه تامکت و جی باس رو مقایسه کرد ؟ چون جفتشون با جاوا هستن ؟؟

1 Likes

کاتلین یک سری پیچیدگی های سکالا رو نداره ولی از نظر سرعت پلی و لیفت معیار خوبی نیستند
Finatra finch fintrospect که همه بر اساس finagle تویتر خیلی سریع هستند
Http4s و colossus هم بسیار سریع هستند
Scala در زمینه server side بسیار قوی تر از کاتلین هستش
همه کتابخانه های روی jvm از جاوا سکالا کاتلین باهم کار می‌کنند

3 Likes

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

2 Likes

من هم با ktor کار کردم هم با اسپرینگ و به نظرم ktor به خاطر coroutine ها جذاب تره البته اسپرینگ واقعا خیلی امکانات داره یعنی عملا هرچی بخواین رو داره البته از یه نگاه هم ضعفه چون خیلیا ( ازجمله خودم ) ترجیح میدن یه سری لایبرری کوچیک داشته باشن یا یه فریمورک بزرگ

3 Likes

منظورم بیشتر این بود ک برای یه بلاگ و crud مینیمم رم 8 و دوتا core زئون یوقت نخواد :sweat_smile:
من الان دارم با falcon / python … روی 512mb رم با یه cpu داغون یه اپ با پرفورمنس فوق العاده هندل میکنم

1 Likes

نه آنقدر بد نیست jvm دو مشکل داره
شروع process خیلی منبع میبره
Global garbage collection pause
زمان garbage collection بعضی وقتها به صورت global انجام میشه و تمام process ها رو نگه میداره
به غیر از اینا اکثر وب سرور های وب سایت های بزرگ دنیا یا روی jvm هستند یا توی stack یک جا از jvm استفاده می‌کنند

2 Likes

اگه بشه روی Jetty دیپلویش کرد حله . خیلی کم مصرف بود موقعی ک با سرولت کار میکردم

2 Likes

بله بصورت default میشه از documentation
Ktor Application can be hosted in any servlet container with Servlet 3.0+ API support such as Tomcat, or standalone using Netty or Jetty.

3 Likes