با عرض سلام و وقت بخیر خدمت تمام دوستان
امروز در حال خواندن مقاله ای بودم تحت عنوان : نبرد میان زبانهای برنامه نویسی PHP, Python , Ruby
با لینک : https://roocket.ir/articles/the-battle-of-web-programming-languages
در این لینک هیچگونه دیدگاهی ننوشتم ، چون فکر میکردم این بحث باید بین تمام برنامه نویسان باز بشه و فیدبک هاش رو ببینیم.
مقاله ای که لینکشو گذاشتم ، به شدت ضعیف و غیر واقعی بود !
راجع به Ruby مطالعه چندانی نداشتم ؛ ولی همونطور که واضحه فریم ورک laravel پی اچ پی از ruby on rails الگو برداری کرده که هرچند از اون هم پیشی گرفته ! منتها بازار Ruby به هر دلیلی نتونسته به اندازه ی php موفق باشه.
از لحاظ performance هم اگر از سایت هایی که بر خلاف مقاله ی فوق بدون جهت گیری عمل کرده اند ، خواهید دید که رقابت تنگاتنگی روی الگوریتم های تعریف شده دارد.
اما php و python !!!
چرا این همه تعصب ؟! چیزی که واضح هست ، performance پی اچ پی بر اساس الگوریتم های شناخته شده 3 برابر قوی تر از python هستش ؛ ولی تو دنیای وب !
زبان python خودشو نخود هر آشی کرده ؛ اما واقعا آشه دهن سوزی میشه ؟! بله میتونه باشه ! ولی روی مسائلی همچون هوش مصنوعی ، machine learning ، Data و امثالهم.
برخی از دوستان هم جهت گیری دارند و میگن : مگر php زبان برنامه نویسیه ؟!
باید بگم که توی صنعت برنامه نویسی هرکس تعصبی به موضوعی نگاه میکنه ، قطعا از این دنیای بزرگ و پهناور محکوم به حذف خواهد بود . به نظرم باید هممون چشمامونو بشوریم و بدون تعصب به هرچیزی نگاه کنیم
من خودم php نویسم و عاشقشم ! اما همونطور که php ضعف های خاص خودشو داره ( مث نداشتن چندریختی ، پلی مورفیسم و چند مورد دیگه ) ، قدرت های خاص خودشو هم داره که باعث مطرح شدنش در سطح جهانی است.
اما دلیل نمیشه که python بدرد نخوره !! ( از دیدگاه برنامه نویسان python ، فقط خودشون خوبن )
حرف آخر : همونطور که هر گلی یه بویی داره ، هر زبان برنامه نویسی هم کاربرد خاص خودشو داره
خوشحال میشم نظرتون رو در این باره بدونم ؛ و اگرم درباره ی هرکودوم از این زبان ها اطلاعاتی دارید ، خوشحال میشم که در میان بگذارید. ( همچنین راجع به زبان هایی مثل Go یا Java هم اگر نظری دارید یا کارکردید خیلی خوب میشه که فیدبک هاتونو بنویسید )
@hesammousavi ممنون میشم این مقالهی بی پایه و اساس رو از سایت حذف کنید
باتشکر
@mrhamid
سلام.
به نظر من این ها همگی ابزار هایی برای برنامه نویس ها هستند. عملا برنامه نویس می تونه نسبت به شرایطی که داره، از هر زبانی استفاده کنه.
به نظر من نمیشه بررسی دقیق بین دو زبان برنامه نویسی داشته باشیم مگر این که دقیقا هر دو دقیق مثل هم عمل کنند. برای مثال اگر قراره PHP رو با یک زبان دیگه مقایسه کنیم، باید با زبانی که دقیقا مثل PHP فقط برای توسعه وب هستش بررسی کنیم نه زبانی مثل Python که هزاران کار و میشه باهاش انجام داد.
برنامه نویس محدودیتی در استفاده از زبان نداره و نسبت به نیاز های یک پروژه می تونه هر زبانی یا حتی چندین زبان رو در کنار هم استفاده کنه.
برای مثال یک پروژه رو با PHP میزنم و هیچ مشکلی ندارم. در یک قسمت از پروژه نیاز به یک پردازش و تحلیل داده دارم، پس در اون بخش میام از Python استفاده می کنم. و در یک بخش دیگه از برنامه که قراره درخواست های در لحظه زیادی برای اون بیاد، از Go استفاده میکنم. و برای یک قسمت دیگه از همون پروژه که چت بین مدیران هستش، میام از node.js استفاده میکنم.
من توی این مثال تقریبا مطرح ترین ها رو در کنار هم قرار دادم. پس واقعا اگر یک برنامه نویس واقعی باشی، نمی ** زبان x یا زبان y بهترینه!
یک برنامه نویس حرفه ای سعی می کنه از ابزار های مختلف در جاهای مناسب استفاده کنه.
ببینید بحث زبان برنامه نویسی، اولین چیزی نیست که یک برنامه نویس باید بهش فکر کنه.
ابتدا باید معماری نرمافزار رو در نظر گرفت..
سپس با توجه به نیازهای پروژه و بعضا بر اساس نوع معماری
پارادایم های برنامه نویس مشخص میشه
و در نهایت یک یا چند زبان برای پروژه در نظر گرفته میشه.
زبان های برنامه نویسی همه یک کار انجام میدهند.. => اون کاری که ما ازشون میخواهیم
حالا جدا از اینکه هر کدوم سینتکس و نقاط ضعف و قوت خود رو دارند.
PHP اولین زبان توسعه وب در سمت سرور هست که طی سالیان ضعف های زیادی داشته.. از باگ های امنیتی و پرفرمنس و مموری لیک و .... بگیر تا پشتیبانی نکردن از شئ گرایی در نسخه ۴ و توابع عجیب که هر چند وقت یکبار deprecate میشند.
اما به قول شاعر: عیب می جمله چو گفتی هنرش نیز بگو!
در واقع اگر مراحل تفسیر کدها و ارتباط با وبسرور رو حذف کنیم.. PHP سرعت خیلی بالایی هم داره.
ما همونطور که php ضعف های خاص خودشو داره ( مثل نداشتن چندریختی ، پلی مورفیسم و چند مورد دیگه )
Polymorphism رو در PHP داریم و طریقه پیاده سازیش هم در لینک زیر هست..
Polymorphism in PHP
پایتون تونسته در زمینه های زیادی عملکرد خوبی از خودش نشون بده و عملا یک زبان همه کاره هست.
و حتی امسال 2020 دومین زبان دوست داشتنی در استک اورفلو شناخته شد.. (با وجود اینکه زبان نسبتا قدیمی هم هست...)
و این محبوبیت بی دلیل نیست.. با پایتون عملا هر کاری میشه کرد:
عملا خیلی ها با این ایده و دید به سمت این زبان میرند که: ۱ زبان رو یاد میگیرم و کارهای مختلفی میتونم باهاش انجام بدم. و یا احتیاج به کتابخونه های خوبش برای هوش مصنوعی و یادگیری ماشین دارند.
حالا اگر قرار باشه خصوصیات زبان های دیگه رو هم بررسی کنیم..
میبینید که هر زبان در یک حیطه هایی بهتر و در جاهای دیگه ضعیفتره
مثال خوبش هم C و ++C هست. زبان های دیگه در پرفرمنس به پای این دو هم نمیرسند (البته زبان Rust جدید داره باهاشون رقابت میکنه). اما مدیریت حافظه در این زبان ها، در پروژه های بزرگ کار نسبتا سختی هست..
کاری که مایکروسافت سالها داره انجام میده و بعد از این همه سال هنوز مشکل مموری لیک داره و هر چند وقت یکبار یه آپدیت منتشر میکنه (چون در سورس کدهاشون که اکثرا با ++C نوشته شده، مدیریت حافظه انقدر مشکله که باگ های ناخواسته به وجود میاد... حتی در مایکروسافت)
زبان C گاربج کالکتور نداره
وقتی متغیری رو تعریف میکنید، باید مقدار حافظه ای که قراره اون متغیر استفاده کنه رو مشخص کنی
و وقتی کارت باهاش تموم شد، باید اون حافظه رو دستی آزاد (free) کنی
درود بر شما اینکه مقاله متاسفانه ضعیف کار شده رو خودم بعد از بررسی دقیقش قبول دارم ولی خوب باعث چنین بحثهای هم شده که جالبه وجود داشتنش و صحبت کردن دوستان با هم در مورد این مطلب
این مطلب رو به زودی از سایت بر میداریم
@mrhamid
ببینید پایتون یک زبان همه فن حریفه که اگه شما اونو یادبگیرید تقریبا هر کاری می تونید بکنید.اما خب توی همه زمینه ها نمی تونید بهترین باشید. به نظرم هر زبانی باید توی جای خودش قرار بگیره . مثلا شما با php هم می تونی برنامه دسکتاپ بنویسی اما قطعا به اندازه #C و ... نمی تونه نیاز های شما رو برآورده کنه. خب پایتون برای machine learning و هوش مصنوعی و ... خیلی خوبه ولی قطعا به اندازه php نمی تونن توی زمینه وب خوب باشه.اصلا فلسفه ساخته شدن جنگو به خاطر این بوده که بشه از این قدرتش استفاده کرد .با این تفاسیر اگه قصد ساخت چنین برنامه های رو ندارید سراغ پایتون ندارید. پس نتیجه می گیریم که هر زبانی رو باید در جای خودش استفاده کرد
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟