زبان برنامه نویسی PHP قادر به بقاء خواهد بود ؟

زبان برنامه نویسی PHP قادر به بقاء خواهد بود ؟

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

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

ابتدای برنامه نویسی برای سیستم عامل اندروید با زبان native آن یعنی java شروع شد و سپس سایر فریمورک های دیگر شروع به ظهور در این شاخه از توسعه دهندگی کردند مانند bas4 ، react native , flutter و حتی برنامه نویسی برای آن توسط یکی از فریمورک های  CPP امکان پذیر بود و کلی فریمورک های دیگر اما چرا این زبان ها و فریمورک ها در اوایل آمدن اندروید محبوب شده بودند و به تدریج کنار گذاشته شدند ؟

جواب این سوال کاملا مشخص است به دلیل اینکه تمامی موارد ذکر شده ( فریمورک ها ) ، تماما ابزار هستند و برای برهه ای از زمان نوشته شده تا کار راه انداز باشند . بنابراین شما به عنوان یک برنامه نویس باید این چالش را بپذیرید که با توجه به نوع پروژه و استراتژیک کسب و کار خود یک ابزار را انتخاب کرده و با استفاده از آن شروع به توسعه دهندگی کنید اما این آخر راه است ؟ خیر قطعا و صد در صد ( for sure ) این آخر راه نیست بلکه شما تازه قدم صفرم را برداشته اید .

به چه دلیل ؟ به دلیل اینکه اگر هر یک از فریمور ک های مذکور را به نادرستی انتخاب کنید در طولانی مدت باعث ضرر رساندن به کسب و کار خواهید شد. مثال : فرض کنید بنابه به استراتژیک شرکت به شما گفته میشود که صرفا یک prototype اولیه از یک محصول را راه اندازی کنید حال با تغییر اولویت ها پروژه ی جاری شرکت به اولویت دوم تبدیل شده و شما باید به عنوان یک توسعه دهنده وقت خود را برروی اولویت اول شرکت که پروژه نرم افزاری دیگری است قرار دهید ، بعد از مدت ها ( چند ماهه ) به پروژه ی قبلی یعنی prototype برگشته ولی تازه متوجه خواهید شد که چه اشتباه بزرگی کرده اید به دلیل آنکه حال باید این پروژه را گسترش دهید ولی با کمبود مستندات و عدم پاسخگویی با نیاز های بزرگتر و پیچیده تر پروژه از طرف آن فریمورک روبرو می شوید .

بنابراین باید مستندات لازم برای یک زبان برنامه نویسی را در نظر بگیرید که در ادامه راه دچار مشکل نشوید در غیر اینصورت باعث ضربه خوردن به اعتبار شغلی و از همه مهمتر آینده شغلی چند نفر دیگر خواهید شد و استرس های ناشی از آن باعث از بین رفتن روح و جسم شما خواهد شد .اما چرا آن همه framework برای android وجود دارد ؟

به دلیل آنکه در ابتدا راه هر یک از فریمورک های نامبرده و حتی نامبرده نشده توسط افراد متخصص و حرفه ای بنا به نیاز شرکت ثالث ایجاد شده و بعد ها تصمیم به release آن به صورت public بر روی سرویس اشتراک سورسی نظیر github گرفته اند و حال شما دسترسی به استفاده از آن دارید و از طرف دیگر همان فریمورک release شده توسط سایر افراد متخصص توسعه پیدا کرده و به اصطلاح برای خود نام در کرده است یا نامی شده است . بنابراین اینگونه است که یک framework مطرح می شود . در ادامه به صورت تخصصی ابزار هایی را برای شما مطرح می کنم که این مثال برای شما بیشتر آشکار شود .

آیا در استفاده از سرویس ها یا framework ها شما درگیر سیاست کاری شرکت ها می شوید ؟

جواب بله است . کامل برای شما این بحث را باز می کنم .لازم به ذکر است شما به عنوان یک برنامه نویس وظیفه دارید ذهن تحلیل گرانه ای داشته باشید و ساده انگارانه به قضایا نگاه نکنید چون با bold شدن یک قضیه سیاست های کاری در جهت پیشرفت یا براندازی یک پروژه از طرف شرکت های مطرح جهانی ایجاد میشود و شما را ناخواسته همراه با خود می کند که دست به تغییرات اساسی گرفته و آینده ی پروژه را تغییر دهید . به مثال زیر با دقت توجه کنید :

در ابتدای توسعه دهندگی سیستم عامل اندروید خبری از دیگر فریمورک های مطرح برنامه نویسی نظیر react native و flutter نبود و تنها با استفاده از java این امر صورت می پذیرفت اما به مرور زمان با پررنگ شدن نقش سیستم عامل اندروید بر روی گوشی های هوشمند و رقابت خود با سیستم عامل ios ، تصمیم بر آن شد تا زبانی دیگر با نام Kotlin را روانه حرفه ی توسعه دهندگی کنند اما روند پیشرفت این پروژه با کندی پیش می رفت و بنیاد javaScripte تصمیم به پررنگ کردن نقش خود برای ورود به بازار اندروید را گرفت

با ارائه و bold کردن framework ای با نام  react  native  به دلیل آنکه با این کار عملا زبان js تبدیل به یک زبان cross platform میشد و همچنین حداقل نیاز های لازم را برای ورود به دنیای اندروید را نیز داشت چون سایر فریمورک های قدرتمندی نظیر nodjs را در رزومه ی خود داشت  و این مورد کمک شایانی به رواج زبان js می کرد . اما شرکت Google در این باب احساس خطر کرد و فریمورک flutter را bold کرد که هم جلوی پیشرفت REACT NATIVE را گرفته باشد و نیز زبان برنامه نویسی kotlin عملکرد یا به اصطلاح prformance لازمه را پیدا کند . بنابراین با توضیحات گفته شده سیاست کاری Google برای شما نمایان شد .

اما چرا google زبان برنامه نویسی kotlin را جایگزین java کرد ؟ به دلیل شکایت های مطرح شده از طرف oracle و اینکه google در استفاده از java حق امتیاز oracle را پرداخت نکرده و لایسنس آن را زیرپا گذاشته در نتیجه با بالا گرفتن دعوا ها میان google و oracle نتیجه بر آن شد که google زبان اندرویدی جدیدی با performance بالاتری با نام kotlin  را ایجاد کند تا از این کشمکش رهایی یابد .

با این وجود آیا می توان به بقای زبان php امیدوارد بود ؟

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

آیا زبان php کارایی لازم را خواهد داشت ؟

در دنیای برنامه نویسی زبان خوب یا بد نداریم بلکه برنامه نویس خوب یا بد داریم . یک برنامه نویس با تجربه با هوش خود می تواند با توجه به نیاز های پروژه نیاز سنجی کرده و بهترین گزینه را برای پیشبرد پروژه اتخاذ کند اما این تنها جواب نخواهد بود ، به دلیل آنکه از زبان هایی نظیر php که پدر خوانده ی این راه شده اند به جهت ایجاد زبان بهینه تر و سطح بالاتر با performance و کارایی بالایی استفاده می کنند

شاید خیلی از دوستان زبان php را به واسطه wordpress شناخته اند ، اما آیا wordpress می تواند به بقای php کمک کند ؟

اساسا سیستم مدیریت محتوای wordpress  برای ارائه سرویس وبلاگ دهی ایجاد شده بود که تدریجا توسعه پیدا کرد و plugin های فروشگاه سازی نظیر wecompress نیز به آنها اضافه شد ه و همچنین plugin های متفاوت دیگری نیز برای آن وجود دارد که توسط برنامه نویسان سایر کشور ها توسعه داده شده است و در واقع plugin نویسی به یکی از راههای کسب درامد برای wordpress تبدیل شد .

با توجه به توضیحات ارائه شده در اول مقاله و جدال میان قول های نرم افزاری نظیر google  و oracle بر سر زبان برنامه نویسی java به این نتیجه رسیده باشید که به احتمال خیلی بالا زبان های برنامه نویسی دیگری نظیر ruby , phyton , lua و ... به جدال با wordpress خواهند رفت و هم اکنون که این مقاله برای شما نوشته شده است این اتفاق افتاده است . همچنین اگر پیگیر اخبار wordpress بوده باشید متوجه آن خواهید شد که محبوبیت wordpress در حال کاهش است به دلیل به وجود آمدن سرویس های فروشگاه ساز آنلاینی که به صورت خیلی جدی مورد استفاده قرار گرفته اند و هر روزه شاهد پیشرفت آنها هستیم .

شاید از خود بپرسید با این وجود آیا نیازی به استفاده از سرویس های مدیریت محتوایی نظیر wordpress وجود دارد ؟

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

یک بحث دیگری که مطرح می شود استفاده از سرویس Q&A یا forum می باشد ؟

cms هایی نظیر wordpress با استفاده از plugin هایی این قابلیت را در اختیار شما قرار می دهند اما چرا شاهد آن هستیم که بعضی از برنامه نویسان اقدام به طراحی سرویس پرسش و پاسخ خود می کنند؟ یک از دلایل می تواند تولید سورس کدهای طولانی و اضافی برای سرویس مذکور باشد در واقع این مشکل به دلیل چند لایه ای بودن ارتباط با cms مذکور است که این ویژگی باعث زیر سوال بردن ویژگی real time می شود که با پررنگ تر شدن نقش NodJS و socket io این مشکل در حد نیاز رفع شده است .در این مرحله می خواهیم دو نمونه از سرویس های پرسش و پاسخ مطرح جهان را به تفصیل مورد بررسی قرار دهیم :

reddit

 در واقع از آن به social news یا media aggregation یاد می کنند که به منظور اجتماع محتواهای مختلف از سطح اینترنت عمل می کند . که ابتداٌ بر پایه ی زبان برنامه نویسی Lisp نوشته شده بود که بعد ها با زبان برنامه نویسی python پیاده سازی مجدد شد که در حال حاضر به صورت open source نیز قابل دریافت است .

در حال حاضر از نظر Hosting and servers روی سرویس Amazon سوار است و نیز از پایگاه داده PostgreSQL به عنوان datasotre اصلی خود استفاده می کند و به تدریج در حال کوچ کردن به سرویس Apache Cassandra می باشد  (  cassandra نوعی پایگاه داده NoSQL می باشد که برای مدیریت داده های حجیم استفاده می  شود   )  و برای پردازش های آفلاین خود از RabbitMQ استفاده می کند که در واقع یک نوع AMQP است یعنی برای پردازش آنلاین از حالت پردازش صف بندی پیام ها به صورت پیشرفته استفاده می شود و همچنین اپلیکیشن موبایل خود را در سال 2016 بر پایه reacte وارد اپ استور های معروف کرد .

Discourse

به عنوان یک سرویس پرسش و پاسخ open source ارائه شده است ، البته اینکه گفته می شود این سرویس به صورت open source در دسترس است،  تنها بخشی از سورس کد های آن این ویژگی را دارند و قابلیت custome کردن را دارا می باشند بسته به زبان مقصد آن کشور . همچنین برای توسعه سرویس خود از زبان Ruby و framework مطرح خود یعنی Ruby on Rials و Ember.js که یکی از فریمورک های js است استفاده نموده لازم به ذکر است app موبایل خود را برای دو سیستم عامل ios و android بر پایه react native توسعه داده است . از پایگاه داده PostgreSQL استفاده کرده و همچنین این سرویس اصطلاحا Docker-based طراحی شده است .لازم به ذکر است هر یک از سرویس های Q&A مطرح شده در طول زمان دچار تغییراتی شده اند به طور مثال برای reddit در مقطعی از زمان به دلیل نیاز سنجی نادرست ابزار ها توسعه دهندگی خود را متوقف و سپس با رفع و نیاز سنجی مجدد اقدام به توسعه زیرساخت های نرم افزاری خود نمود .

حال نظر شما چیست ؟ آیا میتوان به آینده php اطمینان داشت ؟

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

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

 

2 نظر
فهیم

مطالب مفیدی بود

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

حسن  سهرابیان

خیلی ممنون ، حقیقتا من سرم رو خیلی شلوغ کردم و سعی می کنم اینکار رو تا حد امکان انجام ولی اینکه بخوام در رابطه با همه فریمورک ها اینکار رو انجام بدم نیاز به تحقیقات داره . ولی من برای شما یک پیشنهاد دارم : اگر میخواین حین وب گردی متوجه بشین که چه فریمورک ها و چه زبان هایی بیشتر رایج هست و یا اینکه خودتون تحقیقات رو انجام بدین حتما افزونه wappalyzer رو نصب کنید . افزونه نامبرده شده برای مرورگر های firefox و chrome موجود هست .

از نظر من زبان های برنامه نویسی و فریمورک های مربوطه رو نمیشه به صورت ساختار درختی مورد بررسی قرار داد و بهتر این هست که زبان ها با هم مقایسه بشن و مثلا nodjs رو با php مقایسه کنید و از این دست مسائل به خاطر اینکه از این طریق شما اطلاعات زیادی بدست میارین که به تجربه ی شما چندین برابر اضافه می کنه .

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره پاییزه می تونی امروز ارزونتر از فردا خرید کنی ....