انتخاب زبان و فریمورک مناسب برای توسعه وب


#1

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

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

البته یکسری معیار دارم که میخوام فریمورک مورد نظر این موارد رو داشته باشه:
۱. سرعت پاسخ‌دهی بالایی داشته باشه. یعنی قادر باشه ریکوئست‌های زیادی رو در کمترین زمان پاسخ بده و هندل کنه
۲. آپشنال: مبتنی بر زبانهای مفسری نباشه!!! بلکه مثل rust، go، crystal و غیره کامپایلری باشه
۳. پکیج‌ها، ابزارها و api کافی و غنی داشته باشه
۴. جامعه برنامه نویسان فعالی داشته باشه
۵. تیم توسعه فعالی داشته باشه. توسعه‌اش یک خط در میان تق و لق نباشه
۶. آپشنال: حتی المقدور مدرن باشه. یعنی بر پایه زبان‌هایی باشه که امکانات جدید و جالبی دارند. مثل دیتا کلاس‌های کاتلین و اسکالا و سایر امکاناتی که در این چند سال اخیر ظهور کردن و باعث تسریع در کدنویسی میشه

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

پیشاپیش مرسی از توجه و راهنماییتون :tulip::tulip::tulip:


#2

شما چه زبانی را خوب بلدی؟


#3

سلام.
هم خدا و هم خرما؟! :slightly_smiling_face:

با توجه به requirement های بی رحمانه شما، اینجور چیز بسیار کاملی وجود نداره!

شما چه framework هایی رو کار کردی تا حالا؟


#4

سی شارپ و تا حد متوسط جاوا


#5

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


#6

اگر کاتلین کار می‌کنیم http4k یا ktor گزینه های خوبی هستند اگر سکالا http4s
Finatra یا finch


#7

از کاتلین چقدر در حوزه وب استفاده میشه؟ می دونم چون رو jvm استفاده میشه تو وب هم می تونه کاربرد داشته باشه. اما منظورم اینه که آیا مرسوم هست از کاتلین در وب استفاده کنن یا نه؟


#8

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


#9

اینها زبان هستن، منظورم framework این زبان ها بود.
سرعت بالا در handle کردن request ها یه مطلبه و تعداد request ها یه مطلب دیگه.

من فرض رو بر این میزارم که framework برای Backend میخوای (نه Frontend)، من فکر میکنم اینها جالب باشه برات :

  • Phoenix برای زبان Elixir و سرعت response بسیار بالا و تمیزی و زیبایی!

  • Django برای زبان Python و سادگی

  • Ruby on Rails برای زبان Ruby و زیبایی!

پول هم خوب درمیاد با اینها! (البته Elixir خیلی کمتر).

مورد های دیگه هم مثل Yesod برای Haskell هستن که دیگه وارد دنیای عجایب میشی!


#10

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


#11

چرا در اکثر بنچمارک‌ها حرفی از الکسیر زده نمیشه؟ :thinking:


#12

دوستان نظرتون درباره rust و go چیه؟


#13

والا من به benchmark ها اصلا توجهی ندارم.

ولی خبر دارم که Elixir میلیونی response میده!

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

مگه اینکه وبسایتت بشه مثل facebook که نیاز به اونجور چیز بسیار سریعی پیدا کنی!


#14

Rust هم که خیلی عالیه، هم از نظر خود زبان هم سرعت، اگه وقت بزاری و روش ماهر بشی حتما در آینده نه چندان دور خبر های خوبی میشنوی.


#15

آیا استفاده از راست در وب رو به گسترشه یا نه؟


#16

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


#17

چرا که نه.

  • Whatsapp
  • Goldman Sachs با سرویس بسیار پیچیده انالیز بازارش و غیره.
  • AdRoll
  • Bet365
  • Pinterest
  • IBM Cloudant
  • Lonely Planet
  • USwitch
  • Grindr

اینها همه سایت هایی هستن که حجم request های بسیار بالایی دارن، چندین میلیون، خیلی خیلی بیشتر از ۹۹.۹۹٪ سایت ها.
البته اینها فقط چند تاست، خیلی بیشتر از اینها شرکت داریم که از Elixir و Erlang استفاده میکنن.

ولی آیا من و شما واقعا به این چنین سرعت و قدرتی نیاز داریم؟
بستگی به پروژه داره ولی در اکثر مواقع خیر.
البته کار کردن با Elixir بسیار لذت بخش هم هستش.


#18

این داستان ریکوئست های میلیونی اصلا مهم نیست. شما با هر زبانی می تونین به اون مرحله برسین و تقریبا با هر زبان و فریمورکی یه سری وب سایت تو اون لول هست. اما نکته اصلی اینه که زبان و فریمورکی استفاده کنین که برای مشکل شما بهترین راه حل باشه.


#19

مهم که هستش ولی شاید نه برای من و شما!
من شرکت میشناسم که وقتی به Elixir منتقل کرده وبسایتش رو، تعداد سرور هاش از ۱۰۰ به ۵ رسیده!! و این یعنی کاهش بسیار زیاد هزینه ها، که خیلی مهم هستش در این روز ها.
ولی هر وبسایت و به قول شما هر مشکلی به این نیاز نداره و به قول شما تقریبا هر زبانی برای اکثر مواقع more than enough هستش.


#20

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