(۱۶ اسفند ۱۳۹۴ ۱۰:۳۵ ب.ظ)sara9009 نوشته شده توسط: (11 اسفند ۱۳۹۴ ۰۳:۴۰ ب.ظ)blackhalo1989 نوشته شده توسط: من شخصا از PHP خوشم نمیاد چون زبان کثیف و شلخته ایه
سلام ،
ببخشید میشه بپرسم منظورتون از کثیف و شلخته چیه ؟؟ چون من تا به حال چنین چیزی رو درباره ی این زبان نشنیده بودم ، یا شایدم اصطلاحات مشابه ای رو شنیدم !
به نظر من توی این دوره باید توی یه زبان متخصص شد و با مابقی زبان ها نیز اشنا بود ، دیگه الان فقط نمیشه روی یه زبان مانور داد ، البته این نظر شخصی من و چیزی که توی بازار کار ایران دیدم هست .
بازم ببخشید سوالم رو اینجا مطرح کردم
پیش زمینه:
- من با زبان PHP حدودا ۲ سال پیش کار کردم (شغل تمام وقت داشتم) و با فریمورک های yii و laravel باهاش کار کردم. علاوه بر PHP با زبان های دیگری نیز کار کردم و بعضا ازشون پول هم در آوردم.
- "کثیف" و "شلخته" اصطلاحات شخصی من هستن. من خیلی وقت ها عادت دارم با کلمات روزمره در مورد برنامه نویسی صحبت کنم. البته اگه بخوام میتونم رسمی و با کلمات متداول هم صحبت کنم.
- من نظر خودمو راجع به زبان های برنامه نویسی مختلف دارم. خیلیاش نظر شخصیه. مثلا من زبان های مینیمال رو دوست دارم مثل زبان سی (نه سی++).
- تو کار فقط نظر شخصی مهم نیست بلکه پارامترهای دیگری هم مثل نیروی کار، هزینه تمام شده، هزینه پشتیبانی، پشتیبانی از طرف شرکت/جامعه مادر زبان یا تکنولوژی، میزان مستندات و ... هم دخیل هستن.
به نظر من زبان PHP به این دلایل زبان جالبی نیست:
- بزرگترین مشکل تو این زبان به نظر من include و require هست. در حین اینکه این عناصر تو زبان PHP انعطاف پذیری زیادی رو به وجود آوردن و cmsها استفاده فراوانی ازش می کنن، اما باعث شدن تا زبان PHP به یه زبان غیر کاربردی تبدیل بشه. برای من زیاد پیش میومد که میدیدم یه متغیر یهو خلق شده یعنی اصلا بالاتر تو کد نبوده و یهو به وجود اومده. در حقیقت اون متغیر از یه فایل دیگه وارد فایل فعلی شده بود. قسمت وحشتناکش اینه که کامپایلر و IDE هم علاقه ای به identifier ها ندارن و نمیتونن تشخیص بدن این متغیر از کجا اومده. این باعث میشه که شما تو طولانی مدت به حفظ کردن روی بیارید یعنی حفظ کنید که یه متغیر کاربردش چیه. به علاوه امکان refactoring رو از شما میگیره. وقتی نتونید کدتون رو refactor کنید یعنی تو تر و تمیز کردن یه "آشغال کد" (از اصطلاحات شخصی خودمه) به مشکل بر میخورید. همچنین شاید نتونید به صورت کارا از TDD استفاده کنید. برای اینکه عمق فاجعه رو درک کنید کافیه با جاوا کد بزنید. کامپایلر جاوا به شما کمک می کنه و identifier های مختلف رو نشون میده. حتی اگه یه دو تا identifier داشته باشید که هم نام باشن و یکی دیگری رو hide کرده باشه بازم کامپایلر بین این دو فرق میذاره. علاوه بر این کامپایلر جاوا کمک های خیلی بیشتری به IDEها می کنه. مثلا میتونه نشون بده در یک بلاک try دقیقه کدوم قسمت کد باعث پرتاب شدن یه exception میشه.
- شی گرایی در PHP خیلی جالب نیست. سینکتسش ظاهرا مخلوطی از سی++ و جاوا هست. (من از سی++ خیلی خوشم نمیاد. به سی++ میگم: شتر گاو پلنگ
). این زبان ابتدا به درستی از شی گرایی پشتیبانی نمی کرد و تو PHP 5 خیلی از سینتکس شی گرایی بهش اضافه شد.
- همه فایل ها تو PHP دارای یک پسوند هستن (.php). این باعث میشه با یه نگاه نتونید بفهمید یه فایل حاوی منطق یا نمایش است. به علاوه این زبان پتانسیل بالایی تو "کثافت کاری" (اصطلاح شخصی) داره. تصور کنید میتونید وسط قسمت منطق کدتون یهو echo کنید!
در هر حال من نظر مساعدی روی PHP ندارم. با این حال فریمورک laravel خیلی trendy شده.
پ.ن: این رو هم بخونید:
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمیباشید. جهت مشاهده پیوندها ثبت نام کنید.