مقاله : چرا php

Iauksh
مطالب زیرتنها عقیده و تجربه شخصی من است

من تقریبا تمام زبان های برنامه نویسی رایج را امتحان کردم.دلفی عالی بود ولی من از پاسکال خوشم نی آمد vbهم بد نبود اما زبان پروژه های بزرگ نبود خانواده cاز لحاظ نوع دستوری زبان بسیار گیرا بود زیرا کد های آن قابل فهم و رسا بود و کد نویسی در این خانواده از نظر من لذت بخش و جالب بود کم کم بعد از مدتی به این نتیجه رسیدم که باید یک شاخه را برای حرفه ای شدن انتخاب کنم اما با وجود این همه شاخه و زیر شاخه مختلف انتخاب کمی سخت بود تا این که شنیدم یاهو دارد سیستم خود را از سی به php میبرد بنابراین در مورد php کنجکاو شدم
(من اعتقاد زیادی به یاهو و سیاست ها آن دارم به طوری که در طراحی پروژه هایم تا حد ممکن یاهو و سیاست های آنرا مرجع قرار می دهم)
ابتدا php برای من یک سیستم بی سر و ته و گنگ بود اما پس از مدتی سر و کله زدن و انجام چند کار آن را فوق العاده یافتم اما چرا
1-phpتقریبا هر کاری را که تصور کنید انجام میدهد برنامه نویسی شبکه با آن ساده و لذت بخش و برنامه نویسی وب سریع و پرقدرت و امن ست

2-زبان php از لحاظ شی گرایی یک زبان شی گرا کامل است که در نسخه پنجم آن نیز این امر بیشتر شده

3-مدتی روی یک مقاله در مورد برنامه نویسی امن در وب کار می کردم و متوجه شدم که php به دلایل متنوع یک زبان فوق العاده امن است(این مقاله را به زودی در یک سایت مناسب منتشر میکنم )

4-phpسرعت فراوانی در پردازش دارد و به کمک تکنیک هایی می توان قابلیت های آنرا در این زمینه تا حد زیادی افزایش داد(در حال تهیه مقاله ای در این زمینه هستم)

5-php تقریبا با تمام بانک های اطلاعاتی می تواند به خوبی کار کند اما همان طور که می دانید mysql رایج ترین همراه php است در اینجا صحبت در باره php است و نمی خواهم بیشتر وارد بحث mysql شوم اما mysql نیز از جنبه های گوناگون یک بانک اطلاعاتی کامل است و مسئله دیگر اینکه رایگان است(که در ایران چندان مهم نیست!)انتخاب دیگر postragesqlاست که چون با آن کار نکرده ام از صحبت کردن راجع به آن خودداری می کنم و اما اوراکل که فکر نمی کنم نیازی به تعریف داشته باشد!

6-php تقریبا در تمامی سیستم های عامل کار میکند هرچند سیستم پیش فرض آن لینوکس است.نمی خواهم راجع به لینوکس صحبت کنم اما شما را به مشاهده اما رشد استفاده از آن دعوت میکنم

7-دستور زبان php بسیار شبیه java & C family است بنابر این یادگیری آن برای کسانی که با این خانواده کار کرده اند بسیار ساده است.توجه کنید که اکثر برنامه نویسان یا در دانشگاه یا هر جای دیگر یا سی آشنا شده اند

8-php به حق برای پروژه های بزرگ آفریده شده و استفاده مجدد از کدهای آن یا حتی فهم آن برای سایر برنامه نویسان پروژه بسیار ساده است

9-تا آنجا که خبر دارم php هم اکنون تنها یک تابع برای .net دارد اما به زودی در این زمینه پیشرفت فراوانی خواهد داشت

10-کسانی که با php برنامه می نویسند اکثرا فرهنگ opensource در آن ها جا افتاده است
(با یک سرچ ساده می توان این مسئله را فهمید)بنابراین جه برای یادگیری و چه حتی برای کارهای تجاری برنامه های رایگان قدرتمند و زیادی را می توان به صورت رایگان بدست آورد

11-تا آنجا که از خبر ها ناشی می شود دنیا و به خصوص اروپا دارد به سمت لینوکس می رود و میدانیم در حال حاضر اولین انتخاب از لحاظ کارایی و قیمت برای وب در این سیستم عامل phpاست.بنابراین این دلیل و مشاهده آمار php یک زبان آینده دار است(حتی با وجود .net)

و.......(ادامه دارد!)

عقاید متفاوت است و سلیفه ها نیز . من تحقیق کردم و تصمیم گرفتم تا به طور حرفه ای php و C# را دنبال کنم زیرا هردو به نظر من فوق العاده اند و همچنین زبان های آینده داری هستند
(خیلی از یرنامه نویسان حرفه حرفه ای c و pascal را دیدم که چون نتوانستند خود را با پیشرفت علوم هماهنگ کنند از درو خارج شدند )

در پایان اینکه : اگر بهترین باشید کارتان اهمیت چندانی ندارد زیرا به هر صورت موفق خواهید بود

Iauksh

Iauksh
قصد جسارت نیست . این دوستمون تجربیات شخصیش رو نوشته من هم در همون راستا نظرات خودم رو عرض میکنم .



زبان php از لحاظ شی گرایی یک زبان شی گرا کامل است که در نسخه پنجم آن نیز این امر بیشتر شده

PHP نه تنها شی گرا نیست بلکه طراحی کلاسها و تولید اشیاء مربوطه و بکارگیری اونها در پروژه های سازمان مقیاس و گسترده عملا" غیر ممکنه . فراموش نکنید توانائی تولید یک کلاس یک زبان تولید نرم افزار را " شی گرا" نمیکند ! فکر نمیکنم لزومی داشته باشه اینجا مفاهیم اولیه "شی گرائی" رو مطرح کنم ... نکته دیگر اینکه PHP اصولا هنوز نسخه 5 نداره !! :wink:


مدتی روی یک مقاله در مورد برنامه نویسی امن در وب کار می کردم و متوجه شدم که php به دلایل متنوع یک زبان فوق العاده امن است(این مقاله را به زودی در یک سایت مناسب منتشر میکنم )

بسیار مشتاقم هر چه سریعتر مقاله ت رو بخونم و در رد اون یه مقاله بنویسم . لطفا بعد از انتشارش آدرسش رو برام PM بزار .


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

اگر وسط نوشتن این مقاله هات فرصت کردی یه سرچ کوچولو بکن ! خواهی دید شکوه و شکایت از سرعت پائین پردازش PHP تا حد غیر قابل باوری بالاست و دقیقا به همین دلیله که PHP بیشتر از بقیه زبانهای تولید برنامه وب دارای بوستر های مختلف و ابزارهای افزایش پرفرمنس انجین ست ! بارها بنچ مارکینگهای مختلفی رو دیده ام که در رده بندی سرعت پردازش PHP رو بعد از امثال Perl و Jsp قرار داده بودند .


تقریبا با تمام بانک های اطلاعاتی می تواند به خوبی کار کند اما همان طور که می دانید mysql رایج ترین همراه php است در اینجا صحبت در باره php است و نمی خواهم بیشتر وارد بحث mysql شوم اما mysql نیز از جنبه های گوناگون یک بانک اطلاعاتی کامل است و مسئله دیگر اینکه رایگان است(که در ایران چندان مهم نیست!)انتخاب دیگر postragesqlاست که چون با آن کار نکرده ام از صحبت کردن راجع به آن خودداری می کنم و اما اوراکل که فکر نمی کنم نیازی به تعریف داشته باشد!

PHP فقط با یازده نوع بانک اطلاعاتی ارتباط مستقیم دارد و برای بقیه باید از ODBC استفاده کرد که این با "تمام" بانکها قدری فرق داره ! ترکیب PHP و اوراکل هم اصولا" غیر ممکنه ! اگر قدری با PHP کار کنید ( من تجریه کمی در حد یک سال و نیم دارم ) میفهمید که PHP قابلیتی بنام connection Pooling نداره ! یعنی به ازای هر رکوئست یک کانکشن با دی بی ایجاد میشه . اگر با اوراکل هم کار کرده باشی میزان لودی که ایجاد هر کانکشن روی سیستم ایجاد میکنه رو دیدی ! تو یک مقاله ء خیلی خوب خوندم چیزی حدود 5 مگ از حافظه روی NT فقط به ازای هر کانکشن کنار گذاشته میشه و از طرف دیگه اوراکل به ازای کانکشن های بیشتر از حد مجاز ( مثلا ده تا ) پول اضافی میگیره ! ترکیب این دو تا مشکل باعث شده اوراکل به هیچ وجه با PHP ( و هر زبان دیگری که از Provider و Connection Broker استفاده نمیکند ) قابل کاربرد نباشه !




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

PHP دقیقا بخاطر ماهیت تاپ داونش به درد پروژه های بزرک نمیخوره . اگر سرچ کنی ( بنده هم همین کار رو قبلا و مفصلا انجام دادم ) به کرات خواهی دید برنامه نویسان خبره و مدیران تیم های برنامه نویسی وب برای پروژه های بزرگ Jsp یا ASP . NET رو توصیه میکنند نه PHP .


میدانیم در حال حاضر اولین انتخاب از لحاظ کارایی و قیمت برای وب در این سیستم عامل phpاست

"میدانیم" ؟ از کجا ؟ بنده میتونم در اسرع وقت یک لیست مفصل و بلند بالا تهیه کنم از توانائی های دیگر محیطها ( کلد فیوژن - JSP - ASP - Python - Perl - Pyra , ... ) تهیه کنم که PHP از اونها بی بهره است . بارز ترین نمونه Search است . PHP توابع پیش ساخته بسیار کمی در مورد جستجوی متون و عبارت داره در حالیکه کلد فیوژن نه تنها دارای توابع بیشماری در این مورده ، دارای ابزاری خاصی هم هست که با بکار گیری منطق فازی و تکنیکهای هوش مصنوعی به بهترین نتیجه ممکنه در جستجو رسید .


در پایان اینکه : اگر بهترین باشید کارتان اهمیت چندانی ندارد زیرا به هر صورت موفق خواهید بود

موافقم . دقیقا همینطوره . :)

موفق باشید

Iauksh
از استادی که در حق من می کنید متشکرم
در مورد اول بله چند دقیقه پیش از یکی از اساتید در iranphp.net ایمیلی گرفتم که این موضوع را به من تذکر دادند پس من اینگونه اصلاح می کنم
php زبانی دارای امکانات شی گرایی زیاد است
در مورد دوم php5 در مرحله بتا است اما در مستندات php توابع و توضیحات آن آمده و در www.zend.com هم مقالات جالبی در مورد آن وجود دارد
طبق چیز هایی که من دیدم php در کدهای کمتر از 1000 خط از fast CGI سریعتر عمل می کند اما به چشم
درست می گویید از این که تذکر دادید ممنونم
من صد در صد قبول دارم که php از لحاظ زبانی قدرت زبانی مثل C# را ندارد اما آن قدر ها هم بد نیست
من اصلا با کلد فیوژن کار نکردم که نظر بدهم اما از این که مرا راهنمایی کردید متشکرم
و تا آنجا که می دانم توابع رشته ای در php زمان پردازش زیادی را مصرف می کنند و در این مورد perl بسیار بهتر عمل میکند زیرا با خطوط کد کمتر و زمان پردازش کمتر نسبت به php در این مورد سر است
مثال:




Perl


while (<STDIN>) {
@_ = split /:/;
$quotes{shift} = shift;
}

print map { "$_: ", reverse split //,$quotes->{$_},"\n";
} keys %quotes;

PHP

<?php

$fp = @fopen('php://stdin', 'r');
if (!$fp) {
die ('Cannot open STDIN');
}

while ($line = @fgets ($fp, 1024)){
list($name, $quote) = explode (':', $line);
$quotes[ $name ] = $quote;
}

foreach ($quotes as $name => $quote){
print "$name: ";
print implode (" ", array_reverse (preg_split ('//',
$quote)));
print "\n";
}

@fclose ($fp);

?>

در مورد مقاله هم باید بگم که بیشتر بدرد ما تازه کارها می خورد تا شما اساتید اما چشم

به هر حال خیلی ممنون که مرا راهنمایی کردید

Iauksh
آقایون بحث اینکه که PHP بهتره یا ASP یا هر چیز دیگه تمومی نداره
من خودم ابتدا به خاطر اینکه VB بلد بودم ASP رو یاد گرفتم و بعد هم برای اینکه از open source خوشم آومد رفتم طرف PHP

من معتقدم هرکسی هر چیزی بلده باید توی همون فعلیت کنه تا بشه مخ اون