پنجشنبه، 4 اردیبهشتماه 1382

مزیت PHP بر CGI حتی به زبان Perl

ببینید اصولا زبان Perl بر PHP در حالتی که Web ای در کار نباشد و شما بخواهید صرفا مثلا در محیط Shell برنامه نویسی کنید برتری قابل ملاحظه ای در سرعت دارد . یعنی واقعا Perl زبان سریعی هستش به تنهایی . اما مشکل Perl از جایی شروع می شه که شما می خواهید برنامه نویسی تحت Web کنید . Perl اصولا برای برنامه نویسی تحت وب ساخته نشده اما امکاناتی دارد که می توان توسط آنها تحت وب به صورت CGI برنامه نویسی کرد و انصافا امکانات خوبی دارد . اما PHP وضعیت متفاوتی دارد . در حقیقت PHP اصلا برای برنامه نویسی تحت وب ایجاد شده است با اینکه امکاناتی دارد که می تواند خارج از آن هم کار کند اما طراحی این زبان برای برنامه نویسی تحت وب بوده است . ( دقیقا عکس Perl ) به همین خاطر برتری های قابل ملاحظه در برنامه نویسی تحت وب نسبت به Perl که به صورت CGI اجرا می شود دارد :
1- احتیاجی به اجرا شدن برنامه در یک Proccess جداگانه و در یک shell جداگانه ندارد . در حقیقت Module اجرا کننده PHP در هنگام اجرای سرویس وب داخل حافظه بارگذاری می شود و برای اجرای دستورات PHP نیازی به صدا کردن برنامه دیگری برای اجرا کردن این دستورات در یک Proccess دیگر نیست که این خودش باعث تفاوت فاحش Load شدن صفحات برای بازدید کننده می شود .
2- به عنوان یک Module برای Web server دسترسی به ساختارها و برنامه های داخلی Web Server از قبیل قسمت کنترل دسترسی ( Authentication ) و یا Redirection دارد و به همین خاطر دست برنامه نویس برای کار به این ابزار داخلی Web Server باز است .
3- در زبان Perl که صورت CGI نوشته می شود در صورتی که برنامه ای باشد باید خروجی های این برنامه که به صورت HTML هستند همگی توسط دستور Print و یا هر دستور دیگری در خود زبان Perl که خروجی صادر می کنند برای کاربر نمایش داده شوند در صورتیکه در PHP تنها مواردی که در برنامه باشد شامل چنین قاعده ای هستند و شما می توانید قسمتهای ثابت ( Static ) صفحات خود را بدون هیچ دستور خاصی همانند خود صفحات HTML در لابلای برنامه خود داشته باشید . این در حالی است که هیچ Proccess ای بر روی آنها اعمال نمی گردد و برای همین سرعت بالا می رود .
4- در حالی که زبان Perl توسط CPAN بسیاری از Module های مختلف برای بیشتر کردن امکانات این زبان را منتشر می کند که شما باید آنها دریافت و نصب نمایید ( همانند دسترسی به بانک اطلاعاتی، XML و Sessions ) در زبان PHP همه اینها و بسیاری امکانات دیگری به صورت پیشفرض در زبان وجود دارند و نیازی به نصب برنامه اضافی برای فعال شدن آنها نیست .
5- و در آخر به نظر می آید که syntax زبان PHP بسیار نزدیکتر از زبان Perl به C می باشد . به این خاطر که در PHP همه چیز به صورت تابع هستش و از کلاس پشتیبانی می کند که این نزدیک بودن باعث می شود که یادگیری آن راحت تر و debug کردن آن نیز ساده تر باشد .
البته این تفاوتها و برتری ها در حالتی است که شما از زبان Perl به صورت CGI استفاده کنید . برنامه نویسان زبان Perl بعدها با درست کردن یک Module برای Web Server به نام Mod_Perl تا حد زیادی خیلی از این مشکلات را حل کردند که شاید بعدا در مورد Mod_Perl هم مطلب نوشتم .
در هر صورت سرویسهای Iranetsol هم PHP را پشتیانی می کند و هم Perl را به دو صورت CGI و Mod_Perl پشتیبانی می کند .
راستی در اینجا یک مقاله به صورت ترجمه شده به نوع دیگری همین مطلب را که من گفتم بیان کرده است .

[ پنجشنبه، 4 اردیبهشتماه 1382، 2:08 صبح ]

بشنو و باور نکن ! یا اینکه اینجایی که می گه خیلی وضعش خرابه و یا اینکه کلا Access خواندن داشته و setting سایت درست نبوده . به هر حال کسی که تا حالا نمی دونسته shell چیه نمی تونه ادعا کنه که hack کرده . البته در سرویسهای iranetsol اصلا به کل این مشکل وجود ندارد و هر کس /var/ و /home/ و ... خودش را دارد :) خیلی سیستمش کامل تر از این حرفاس :) نگران این چیزا نباش :)

[ حمید هاشمی ] | [ پنجشنبه، 4 اردیبهشتماه 1382، 9:35 بعدازظهر ]

ببخشید شما در ÷یش دانشگاهی امام حسین درس نمی خواندید؟

[ saleh ] | [ جمعه، 5 اردیبهشتماه 1382، 0:31 صبح ]

آقا خيلي ممنون از لطفت --- ميدونم خيلي بچه بازي در آورده طرف --- اينجوري ضايع شد رفت

[ redhat ] | [ جمعه، 5 اردیبهشتماه 1382، 10:34 صبح ]

نه والا . من اصلا نظام قدیم بودم پیش دانشگاهی نخوندم :)

[ حمید هاشمی ] | [ جمعه، 5 اردیبهشتماه 1382، 1:18 بعدازظهر ]

alan ba .NET platform mitooni perl ro ham bedoon e niyazi be CGI biyari roo web

[ manteghi ] | [ سه شنبه، 9 اردیبهشتماه 1382، 5:52 صبح ]

جناب استاد هاشمی عزیز:
shell نبوده. بلکه phpshell بوده است و من نخواستم اسم کاملش را بگم بلکه تنها به گفتن shell اکتفا کردم.
باور کردن نداره! یک account از هوستینگ خودتان به من بدهید. تا برایتان نشان دهم. حاظرم در حضور دیگران هم باشد.
موفق و شاد و پیروز باشین.

[ ناصر عزتی ] | [ پنجشنبه، 1 خردادماه 1382، 8:16 بعدازظهر ]

اقول على تراب انت وياه

شيعة آخر زمان تبن في وجهكم يا عيال القحبة

سلام

[ علي ناصر ] | [ چهارشنبه، 5 شهریورماه 1382، 7:27 بعدازظهر ]

آقا جون ما تحقیق مون راجع به پرل بود و مقایسش از شما هم کمک گرفتیم

[ saber ] | [ چهارشنبه، 24 دیماه 1382، 10:28 بعدازظهر ]

بسیارعالیه

[ سیامک ] | [ جمعه، 8 اسفندماه 1382، 2:51 بعدازظهر ]

Thanks for the link to this page

[ Aly ] | [ یکشنبه، 18 مردادماه 1383، 11:38 صبح ]

خوب باید در مورد این مطالبی که نوشتی بگم که مقدار زیادی در اشتباهی بهتره یک کم در مورد Yahooو Slashdot, Mod-perlو Template-toolkit و CPAN تحقیق بیشتری بکنی یه سری هم به Flickr و IMDB, غیره بژن

[ محسن بصیرت ] | [ جمعه، 5 آبانماه 1385، 8:09 بعدازظهر ]
ارسال نظرات









اطلاعات شما را بیاد داشته باشم ؟