جنگو یا فلسک؟! کدام در سال 2023 بهتر است؟
اگر دوست دارین وارد حوزه طراحی وبسایت و بک اند بشین و میخواین با پایتون این کار رو انجام بدید احتمالا این سوال براتون پیش اومده که میون این همه فریمورک وب پایتونی، کدوم رو انتخاب کنیم بهتره؟ اگر یه سرچ ساده بزنید میبینید که از بین این همه فریمورک و کتابخونه که برای توسعه وب توی پایتون هست مثل bottle، cherry py و… در مورد جنگو و فلسک بیشتر صحبت شده. پس به این نتیجه میرسیم که جنگو و فلسک از همشون بهتر و کاربردی ترن. حالا سوال اینه که بین این دو تا کدوم بهتره؟!
جنگو و فلسک هر دو یه سری شباهت ها به هم دارن و البته یه سری جاها هم راهشون از هم جدا میشه؛ که همین باعث میشه این مقایسه بین جنگو و فلسک خیلی جنجالی و جذاب باشه! اگر شما هم مثل من مشتاقین که این مقایسه رو ببینید ادامه این پست رو توی آی کد آکادمی با من همراه باشید. اما قبل از هر چیزی بذارین به صورت این دو تا فریمورک رو بیشتر بشناسیم:
جنگو
جنگو از سال 2005 منتشر شده و یک فریم ورک فول استک شناخته میشه. (در مورد اینکه چی باعث میشه یک فریم ورک، فول استک باشه بعدا حرف میزنیم!) جنگو سنگینه! پس خیلی منطقی نیست پروژههای کوچیک رو باهاش کار کنیم! شاید به عقیده برخی ها جنگو سخته! چون خیلی از چیزا توسط خود جنگو ساخته میشن و این شاید باعث گنگ بودن مفاهیمش میشه! ولی خب همین میتونه نقطه قوت جنگو هم باشه چون توی جنگو شما از پرداختن به جزئیات معافید! و فقط باید منطق پروژه خودتون رو پیادهسازی کنید. جنگو باقی کارها رو براتون انجام میده. حالا میریم جلوتر و بیشتر در مورد جنگو صحبت میکنیم…
ویژگی های جنگو به صورت خلاصه:
- یک فریمورک همه کاره!
- امن!
- مخصوص پروژه های بزرگ
- کمی سخت!
فلسک
در سمت دیگه ما فلسک رو داریم! فلسک 5 سالی از جنگو جوون تره و توی سال 2010 منتشر شده. یک فریمورک سبک وزن! (light-weight) که فقط موارد لازم رو با خودش به همراه داره… ولی! شما اگر بخواین ویژگی دیگه ای بهش اضافه کنید میتونید با افزونههایی که وجود داره این کار رو انجام بدین! فقط کافیه افزونه مورد نظر رو نصب کنید و ازش توی فلسک استفاده کنید. به این قابلیت فلسک میگن extensible. شما توی فلسک همه چیز رو از صفر خودتون بالا میارین و این یعنی حس بک اند کار کردن رو بیشتر درک میکنید! یادتونه گفتم توی جنگو به جزئیات کمتر پرداخته میشه؟! (چون توسط خود جنگو ساخته و مدیریت میشه) اما توی فلسک شما باید روی جزئیات هم کار کنید و ساده بگم! پروژه فلسک کلش دست شماست! خیلیا متعقدن که فلسک یک فریمورک شناخته نمیشه و بیشتر یک میکرو فریمورکه! اما به هر حال! به نظر من اونقدری هست که رو به روی جنگو واستاده و داره باهاش سرشاخ میشه! مگه نه؟!
ویژگی های فلسک به صورت خلاصه:
- کنترل کامل روی تمام فایل های پروژه
- راه اندازی و استفاده آسان
- دارای سرور داخلی و دیباگ سریع
- مخصوص پروژه های کوچیک تا بزرگ!
نکته: نکته ای که باید توی مقایسه جنگو و فلسک دقت کنید اینه که هم با جنگو و هم با فلسک میتونید پروژههای بزرگ کار کنید! اینطوری نیست که بگیم چون فلسک راحت تره پس حتما بچگانه تره! نخیر! در واقع برای اینکه این ثابت کنم در ادامه وبسایت هایی که با جنگو ساخته شده و وبسایت هایی که با فلسک ساخته شده رو آوردم…
>_ وبسایت هایی که با جنگو ساخته شده:
Instagram | Spotify | YouTube | BitBucket | DropBox | Mozilla | Pinterest
>_ وبسایت هایی که با فلسک ساخته شده:
Red Hat. Fedora | Airbnb | Netflix | PythonAnywhere | Reddit
تمام این وبسایتها متعلق به کمپانیهای بزرگن. پس اگر میگم فلسک برای پروژههای کوچیکتر مناسبتره، به این معنی نیست که فلسک برای پروژههای بزرگ مناسب نیست! بلکه منظورم اینه که جنگو برای پروژههای کوچیک مناسب نیست! اونم فقط به خاطر اینکه اضافه کاری میشه! در هر صورت هم با جنگو و هم با فلسک میتونید هر نوع وبسایتی (فروشگاهی، سیستم ثبت، بلاگ و…) رو بسازین.
خب حالا بیاین مقایسه رو انجام بدیم!
(جنگو): جنگو یک فریمورک کامله که رویکردهایی مثل batteries-included رو داخل خودش داره.
(فلسک): فلسک یک فریم ورک سبکه که ویژگیهای مینیمالی رو همراه خودش داره.
(جنگو): توسعه توی جنگو به خاطر اینکه خیلی از بخشها از قبل وجود داره، سریع تره.
(فلسک): توی فلسک شما تمام بخشهای پروژه رو باید خودتون بنویسید و این کمی زمان بره.
(جنگو): جنگو همراه خودش یک پنل مدیریتی ادمین هم داره که میتونید شخصی سازیش هم بکنید.
(فلسک): فلسک به شکل پیشفرض پنل مدیریتی نداره.
(جنگو): دارای موتور داخلی برای template ها هستش که زمان توسعه رو خیلی کم میکنه.
(فلسک): موتور template توی فلسک Jinja2 هستش که براساس جنگو ساخته شده.
(جنگو): توی جنگو میتونید یک پروژه رو به چند تا پروژه کوچکتر بشکنید تا توسعه راحت تر بشه.
(فلسک): توی فلسک این ویژگی نیست. اگر چه میتونید به شکل دستی خودتون یه سری کارا بکنید!
(جنگو): با سیستم ORM توی جنگو میتونید از هر دیتابیسی استفاده کنید و بدون نوشتن کوئری های بلند و کشنده! به هدف خودتون برسین.
(فلسک): توی فلسک هم سیستم ORM داریم و همچنین میتونید با ابزار SQLAlchemy کوئری های sql رو بنویسید.
(جنگو): به محض اینکه جنگو رو نصب کنید آماده اینه که پروژه تون رو توش پیاده سازی کنید!
(فلسک): برخی معتقدن که فلسک single-threaded هستش و توی پروژههای سنگین کم میاره!
(جنگو): جنگو محبوبیت بیشتری داره چون کلی از ویژگی ها رو به شکل پیشفرض در خودش داره.
(فلسک): اگر توی حوزه وب مبتدی هستین، فلسک بهترین گزینه اس چون با تمام مفاهیم آشنا میشید.
(جنگو): جنگو برای یک پروژه ساده که قرار باشه در آینده پیشرفته بشه، مناسب نیست! (یا پیشنهاد نمیشه!)
(فلسک): با فلسک میتونید یک پروژه رو ساده رو بعدها ویژگیهای دیگه هم بهش اضافه کنید و پیشرفته ترش کنید.
(جنگو): ماژولهایی که توسط جنگو ارائه میشن قابلیت تغییر پذیری کمتری دارن.
(فلسک): برای فلسک کلی افزونه و پلاگین هست که هر کدوم رو خواستین میتونید نصب کنید.
(جنگو): جنگو برای پروژههای بزرگ که به قابلیتهای زیادی نیاز دارند، مناسبه و برای پروژههای کوچیک ممکنه جنگو زیاد از حد باشه!
(فلسک): برای فلسک مهم نیست پروژه کوچیک باشه یا بزرگ! میتونید کارتون رو شروع کنید!
(جنگو): جنگو به شما تضمین میکنه شما از بهترین الگوها برای طراحی وبسایتتون استفاده میکنید.
(فلسک): با فلسک اگر بلد نباشید ممکنه به بیراهه کشیده بشین و از الگوهای خوبی استفاده نکنید!
(جنگو): امنیت توی جنگو به بهترین شکل ارائه میشه.
(فلسک): توی فلسک هم امنیت داریم ولی باید به شکل دستی امنیت رو تامین کنید.
(جنگو): در یک پروژه مشابه، جنگو 2 برابر خط کد بیشتری نیاز داره.
(فلسک): فلسک خط کد کمتری برای یک کار ساده نیاز داره!
بازار کار جنگو بهتر است یا فلسک؟!
با یه سرچ ساده میتونید به چند تا عدد برسین که من اینجا براتون سرچ میزنم و کنار هم قرار میدم و خودتون نظر بدین:
جنگو: برای جنگو چون شناخته شده تر هستش توی ایران، آگهی استخدامی بیشتره و حتی خیلیاشون مبلغ حقوق رو هم زدن! (خیلیا هم نزدن)
استخدام Senior Back-end Developer (Django)
>> حقوق دریافتی: بین 30 تا 35 میلیون
استخدام Senior Software Engineer(Django)
>> حقوق دریافتی: بین 30 تا 35 میلیون
استخدام برنامه نویس جنگو در Technical Lead
>> حقوق دریافتی: بین 16 تا 21 میلیون
استخدام توسعهدهنده جونیور جنگو Back-end
>> حقوق دریافتی: بین 6 تا 9 میلیون
به شکل میانگین درآمد دلاری و یا کار توی خارج به عنوان برنامهنویس جنگو به صورت سالانه بین 60 هزار دلار تا 120 هزار دلار هستش. (دیگه خودتون حساب کنید به تومان چقدر میشه!) البته دقت کنید این مبلغ در سال هستش! در ماه بخواین حساب کنید باید تقسیم بر 12 کنید
فلسک: برای فلسک استخدامی توی ایران داریم ولی متاسفانه حقوق دریافتی رو نزدن! و تنها یه مورد پیدا کردم که این بود:
استخدام برنامهنویس Python (فلسک جونیور)
>> حقوق دریافتی: بین 5 تا 8 میلیون
ولی برای کار به صورت دلاری و فریلنسری و درآمد یک برنامه نویس فلسک در خارج از کشور به شکل سالانه از 100 هزار دلار شروع میشه و تا 130 هزار دلار هم ادامه داره! و اگر خیییلی حرفه ای باشین توی فلسک ممکنه درآمدتون تا 170 هزار دلار در سال هم بالا بره که این خیلی عالیه! (فقط دیگه بازم میگم دقت کنید اینا سالانه اس!)
منحنی یادگیری برای جنگو و فلسک:
یادگیری فلسک راحتتره. با تمام اینکه شما کل پروژه رو باید کنترل کنید و بیارین بالا، بازم فلسک راحت تره! از طرفی چون تمام کارها رو خودتون انجام میدین، یه دید شفاف و واضحی از روند جلو بردن پروژه و کلا اینکه پروژه چطور کار میکنید، دارید و این هضم پروژه رو براتون راحت تر میکنه. اما اینطورم نیست که یادگیری جنگو بمب هوا کردن باشه! جنگو هم راحته. فقط به تمرین بیشتری نیاز داره. اگر بخوام مقایسه کنم، جنگو مثل ریاضی میمونه! نیاز به تمرین و درک بیشتر داره و فلسک مثل زیست میمونه! باید بخونید و بخونید و بخونید..!
به عنوان آخرین نکته و تجربه شخصی باید بگم اگر شما مبتدی هستین، اگر از فلسک شروع کنید خیلی کارتون راحت تر و بهتره و با مفاهیم وب بیشتر آشنا میشین و حتی در آینده اگر برین سراغ جنگو خیلی بهتر میفهمید دارید چیکار میکنید!
پس نگران نباشید! اینطور نیست که یه فریمورک رو انتخاب کنید و برای همیشه مجبور باشین با همون کار کنید. شما توی دنیای پایتون هستین! از هر ابزاری میتونید در هر لحظه استفاده کنید
>> اگر دنبال بهترین منابع برای یادگیری جنگو یا فلسک هستین اینجا کلیک کنید.
جمع بندی:
خب با مقایسه ای که انجام شد اینطور میشه نتیجه گرفت که بهترین فریم ورک وجود نداره! بلکه برای بهترین فریمورک برای یک پروژه خاص میشه گفت جنگو برای پروژههای بزرگه، برای کارهای جدی! فقط پروژههای تجاری بزرگ! ولی فلسک برای کارهای کوچیک هم مناسبه. درآمدشون تقریبا یکسانه (بلکه فلسک بیشترم هست!) حالا شما بگین جنگو یا فلسک؟! از کدوم استفاده کردین؟ و اگر تجربه ای دارین با من توی بخش کامنتها به اشتراک بذارین. مرسی
مطالب زیر را حتما مطالعه کنید
بهترین زبانهای برنامهنویسی برای بازیسازی در سال ۲۰۲۴
معرفی کتابخانه mtrx در پایتون
10 راه برای اینکه برنامهنویس بدی باشیم!
یادگیری چند زبان برنامه نویسی یا یک زبان برنامه نویسی؟
کتابخانههای مهم وب اسکرپینگ در پایتون
چطور نصب بودن کتابخانههای پایتون رو چک کنیم؟ (و اگه نصب نبودن، خودکار نصبشون کنیم)
4 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
Diet is another important factor that may affect the estrobolome buy priligy usa Clin Ther 2004; 26 1320 3
Fantastic beat ! I wish to apprentice at the same
time as you amend your web site, how could i subscribe for a blog website?
The account aided me a applicable deal. I were a little bit familiar of this your
broadcast provided bright transparent concept
Hello outstanding website! Does running a blog like this require
a great deal of work? I’ve no knowledge of coding however I had been hoping to start
my own blog soon. Anyway, should you have any recommendations or
techniques for new blog owners please share. I understand this is off topic but I simply wanted
to ask. Thanks a lot!
I was extremely pleased to discover this site. I wanted to thank you for your time just for this wonderful read!! I definitely enjoyed every bit of it and i also have you saved as a favorite to look at new stuff on your blog.