PDA

View Full Version : ناتوانی php ؟!



Sepehr_B
دوشنبه 08 آبان 1391, 16:31 عصر
سلام ، یه سوالی چند مدتیه ذهنم رو مشغول کرده . خوندم که گوگل تو یوتیوب از python استفاده میکنه یه جا هم تو جی میلم دیدم فرمته صفحه jsp بود ، خواستم بدونم php چی از این زبونا کم داره که گوگل ترجیح داده از اینا استفاده کنه ؟ ممنون میشم کامل توضیح بدین.

farhadfery
سه شنبه 09 آبان 1391, 00:04 صبح
چه ربطی به ناتونی php داره! یک نفر هم بگه سایت قیسبوک (جالبه خودم تا به حال قیسبوک نرفتم!) با php نوشتند. یعنی ناتوانی jsp هست.!

masudafsar
سه شنبه 09 آبان 1391, 01:23 صبح
گوگل به این دلیل از python میکنه که :

شاخص نوشتاری این زبان بیشتر است.
برای ساخت برنامه های کابردی هم می توند بکار رود.
زبان نو پایی است که پیشرفت خوبی در آینده دارد.
یادگیری آن بسیار راحت و سریع است( برای نوآموزان).


البته مهمترین دلیل استفاده از Python توسط Google میتونه تولید یه ابزار اختصاصی برای تولید برنامه های تحت وب باشه. اسم این ابزار Google Web Toolkit (https://developers.google.com/web-toolkit/) هست که برای ایرانی ها در دسترس نیست!:افسرده:

در ضمن یه مقاله به زبان انگلیسی هم در این مورد برات لینک (http://curiousprogrammer.wordpress.com/2011/01/31/why-did-google-choose-python/) کردم.

eshpilen
سه شنبه 09 آبان 1391, 08:03 صبح
معمولا یک زبان برای هرجا و هر کاربرد و شرایطی بهترین، مناسب، یا حتی قابل استفاده نیست.
این حرفها مهم نیست. از همهء این زبانها داره استفاده های خوبی میشه. هرچیزی به جای خودش.
فرض کن اصلا PHP برای سایتهای خیلی بزرگ و پیچیده مناسب نباشه. فرض کن برای کاربردهای کوچکتر مناسب باشه.
همینطور فرض کن فلان زبان که برای سایتهای خیلی بزرگ و پیچیده مناسبه، برای سایتها کوچک مناسب نیست یا صرف نمیکنه.
خلاصه هرکدام سهم خودشون رو دارن.
بنده طی سالها تجربه و تحلیل به این نتیجه رسیدم که دنیا (یا شاید هم توانایی و کارهای بشر) تقریبا در هیچ زمینه ای ایدئال نیست و نباید خیلی روی این اصرار داشت که همه چیز برای همه نیاز و شرایطی کاملا بی نقص باشه. هر زبانی هم کاربرد و مزایا و معایب خودش رو داره که در شرایط و کاربردهای مختلف اهمیت اونا تفاوت میکنه.

بخش بزرگی از کاربردها هم کاربردهای کوچک و معمولی هستن. اصلا شاید بخش بزرگتری از تمام کاربردها و نیازهای بشر.

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

Sepehr_B
سه شنبه 09 آبان 1391, 16:55 عصر
اینکه گوگل تو دنیای اینترنت برای خودش قطبیه که کاملا واضحه و فکر نمیکنم همچین شرکتی بیاد انتخاب مقرضانه ای انجام بده (یه جا خونده بودم بلاگفا چون میگه php رو اسراییلی ها درست کردن از asp استفاده میکنه) ، به خاطر همین گفتم شاید php نمیتونه قسمتی (به طور مثال کار زیاد با حافظه) از نیازهای این شرکت رو برطرف کنه .

eshpilen
سه شنبه 09 آبان 1391, 18:27 عصر
هرچیزی ممکنه. ولی اولا نمیشه به این سادگی فهمید و مطمئن شد، دوما حالا فهمیدیم، بعدش چی؟ PHP رو به این خاطر بذاریم کنار؟ فکر نمیکنم کار عاقلانه ای باشه.
چیزی که هست PHP برای ما و این همه ملت زبان خوبیه (از جنبه های مختلف) و جواب میده. حالا کسی نگفته ضعفی نداره و واسه همه چیز جواب میده.
زیاد مهم نیست این چیزا واسه من و شما.
ضمنا آدم هروقت نیاز شد میتونه بره زبان و ابزار جدیدی رو یاد بگیره و استفاده کنه. در رشتهء ما این عمل غیرطبیعی و بعید و خارج از ماهیتش و وظایف یک برنامه نویس قدرتمند نیست.
منکه خودم پیشاپیش هم دات نت رو کامل مطالعه کردم و هم پایتون رو.

Sepehr_B
سه شنبه 09 آبان 1391, 21:13 عصر
هرچیزی ممکنه. ولی اولا نمیشه به این سادگی فهمید و مطمئن شد، دوما حالا فهمیدیم، بعدش چی؟ PHP رو به این خاطر بذاریم کنار؟ فکر نمیکنم کار عاقلانه ای باشه.
چیزی که هست PHP برای ما و این همه ملت زبان خوبیه (از جنبه های مختلف) و جواب میده. حالا کسی نگفته ضعفی نداره و واسه همه چیز جواب میده.
زیاد مهم نیست این چیزا واسه من و شما.
ضمنا آدم هروقت نیاز شد میتونه بره زبان و ابزار جدیدی رو یاد بگیره و استفاده کنه. در رشتهء ما این عمل غیرطبیعی و بعید و خارج از ماهیتش و وظایف یک برنامه نویس قدرتمند نیست.
منکه خودم پیشاپیش هم دات نت رو کامل مطالعه کردم و هم پایتون رو.
من قصدم از ایجاد همچین بحثی اصلا گفتن اینکه php بده یا پایتون خوبه نبود. من تو تمام پروژه های تحت وبی که انجام دادم از php استفاده کردم و هیچ وقت به جایی نرسیدم که php نتونه نیازم رو رفع کنه ، خواستم بدونم شرکتی مثل گوگل که مهمتر از همه چیز براش خروجیه چرا از همچین زبانی استفاده نکرده ؟ دونستن نقاط ضعف یا قوت زبان برنامه نویسی به منِ برنامه نویس کمک میکنه که بفهمم چه موقعی و چگونه از زبانها در کنار هم استفاده کنم تا بهترین خروجی رو به کاربرم ارائه بدم. شما جای گوگل ، زبانی کامل و سریع مثل php در اختیار داری چی باعث میشه از پایتون یا جاوا استفاده کنی ؟ آیا اونا چیزی بهتر از php دارن ؟

eshpilen
چهارشنبه 10 آبان 1391, 08:23 صبح
گفتم که، به این سادگی نمیشه بطور مطمئنی فهمید علتش رو. البته سرچ کنید به احتمال زیاد چیزهایی پیدا بشه و با مطالعهء اونا چیزهایی فهمید، ولی برای اطلاعات بیشتر باید با خود گوگل هم تماس گرفت.
من یه نگاهی کردم در بحثهای روی نت، همونطور که حدس زدم خیلی به مسائل غیرفنی و تاریخچه ای اشاره شده. مثلا نوشتن موقعی که گوگل شروع کرد از نظر منطقی تقریبا انتخاب دیگری نداشتن (اون زمان PHP نبوده یا نسبت به الان در حد بدوی بوده). به این شکل گوگل دارای برنامه نویسان پایتون زیادی شد و یکسری برنامه نویسان خوب پایتون هم جذبش شدن.
باید توجه داشت که تغییر زبان بعد از این همه سال و این همه کد و برنامه نویس، هزینهء زیادی داره و دلیلی نداره گوگل دست از پایتون برداره و بره سراغ PHP.
تعدد زبانها هم که اصلا جالب نیست.
تاجاییکه فهمیدم گوگل سه زبان رسمی داره: سی++، جاوا، پایتون.
از سی++ جاهایی استفاده میکنن که نیاز به پرفورمنس حداکثری دارن.
پایتون هم که یک زبان اسکریپتی گرچه با سرعت کمتر و مصرف منابع بیشتر، اما عوضش برنامه هاش خواناتر و کوتاهتر و راحتتر و سریعتر برای نوشتن هستن و نگهداری و گسترش اونها راحتتره.
ضمنا ظاهرا یکی دیگر از دلایل انتخاب پایتون در مقابل پرل که اون زمان از نظر کتابخانه ها و برنامه های موجود مجهزتر از پایتون هم بوده، این بوده که پایتون به نحو خیلی تمیزتر و راحتتر با سی++ یکپارچه میشده. گذشته از تبلیغات منفی ای که بر علیه پرل وجود داشته.

البته در نهایت باید بگم که بنظر میاد پایتون از نظر اصول علمی و فنی، نسبت به PHP بیشتر خوشاینده! (آخی الان دل بچه های PHP شکست :لبخند:)
مثلا حساب کنید بنظرم پایتون از خیلی قبل تر از PHP بصورت کاملا شیء گرا بوده. درحالیکه PHP تازه الان داره حرکت میکنه به سمت اینکه ساختارهای خودش رو شیء گرا کنه.
بعد اصلا PHP بنظر بنده هم اونقدری، بخصوص اون زمان شروع گوگل و در حداقل چند سال پیش، اصولی و مطمئن نبوده که بخواد انتخاب متخصص های برجستهء برنامه نویسی باشه. بخصوص که این افراد و شرکتهای بزرگ هر چیزی رو هم که لازم داشته باشن و برای اون زبان موجود نباشه، خودشون طراحی و پیاده سازی میکنن. اما برای برنامه نویسان و کاربران عادی، امکانات و کتابخانه ها و کدهای آماده خیلی مهمتره به نسبت.
اصلا این طراحان PHP یکسری اشتباهات بزرگی هم کردن. مثلا در زمینهء امنیت باگها و خطاهای بزرگی داشتن (نمونش رجیستر گلوبالز که اصلا یک چیز احمقانه ای بود و هیچ آدم متخصص برجسته و عاقلی نباید چنین طراحی ای بکنه).
یا مثلا هنوزم که هنوزه یک تابع رندوم که برای کاربردهای امنیتی و رمزنگاری مناسب باشه نداره (هرچند من خودم یکی طراحی کردم، ولی سرخود و سرراست خود PHP چیزی نداره)، و هیچوقت روی این بحث آنچنانی هم نشده و هشدار و اطلاعات بقدر کافی درموردش پیدا نمیشه.

البته الان PHP خیلی پیشرفت کرده. ولی بازم میگم که بنظر من پایتون از نظر اصولش هنوز مقداری بالاتر از پی اچ پی است.
اما این به معنای این نیست که ما الان PHP رو ول کنیم و بریم سراغ پایتون. نه همونطور که گفتم هرچیزی برای یکسری شرایط و نیازها و افراد مناسبه. بعید نیست من و شما اگر دنبال پایتون بریم اصلا پشیمان بشیم، چون احتمالا کار خودمون رو بیخودی (بدون اینکه نیاز ضروری باشه) سخت تر کردیم. PHP خب راحته و کد و کتابخانه و کامیونیتی گسترده داره و درحد کارهای عادی و بودجه و نیروی انسانی ما مناسبه. بعدم نهایت خود برنامه نویس این وسط خیلی مهمه. برنامه نویس اگر واقعا خبره و متخصص باشه، محدودیت های زبان رو جبران میکنه (حداقل تاحد زیادی/قابل قبول).

eshpilen
چهارشنبه 10 آبان 1391, 08:30 صبح
من خودم پایتون هم بلدم و ازش استفاده هایی کردم تاحالا. ولی هیچ دلیلی خاصی الان نمیبینم که بخوام برم سراغ پایتون برای برنامه نویسی وب. این کار رو بیشتر دردسر و تلف کردن وقت و انرژی میبینم.
البته من چون تاحالا برنامه بزرگ و تجاری زیاد ننوشتم و کدنویسیم تقریبا بدون شیء گرایی و MVC و اینطور استانداردهای مهندسی نرم افزاره، نمیتونم زیاد مطمئن باشم و نظر کارشناسی بدم در این مورد.
بهرحال با PHP هم کارم راه میفته.
خود آمار بالایی هم که PHP از نظر ساپورت سرور، تعداد برنامه نویسان، کتابخانه ها و کدها و غیره داره، برای من و شما یک مزیت واقعا بزرگی هست.

Sepehr_B
چهارشنبه 10 آبان 1391, 23:55 عصر
ممنون از جواب کاملتون ، من هم تا حدودی پایتون رو کار کردم به همین علت برام عجیب بود که گوگل چرا با امکانات php از زبانی مثل پایتون استفاده کرده . با این وجود نمیشه توابع و کلاس های تعریف شده ی php رو با کتابخونه های عظیمی مثل .NET مقایسه کرد ولی انعطافی که php داره باعث میشه کاربر بتونه تمام نیازهاشو رفع کنه.

Unique
پنج شنبه 11 آبان 1391, 00:35 صبح
کتابخونه های عظیمی مثل .NET

نتونستم در مورد این مطلب چیزی نگم !
من 6 سال با net. از ورژن 1 کار کرده ام و مطمئن باش نمیتونی اون را با php و حمایت عظیمی که از طرف حامیان Open source ازش میشه مقایسه کنی ! برنامه نویسان net. معمولان دستشون به سمت مامیکروسافت درازه و اگه component ی هم از شرکت دیگه ای وجود داشته باشه خیلی گرونه ! تازه از ورژن به ورژن مشکلات زیادی وجود داره که تا کسی کار نکرده باشه نمیفهمه من چی میگم !

Sepehr_B
پنج شنبه 11 آبان 1391, 01:05 صبح
نتونستم در مورد این مطلب چیزی نگم !
من 6 سال با net. از ورژن 1 کار کرده ام و مطمئن باش نمیتونی اون را با php و حمایت عظیمی که از طرف حامیان Open source ازش میشه مقایسه کنی ! برنامه نویسان net. معمولان دستشون به سمت مامیکروسافت درازه و اگه component ی هم از شرکت دیگه ای وجود داشته باشه خیلی گرونه ! تازه از ورژن به ورژن مشکلات زیادی وجود داره که تا کسی کار نکرده باشه نمیفهمه من چی میگم !
عرض کردم توابع و کلاس های موجود در خوذ php نه توابعی که حامیان نوشتند یا حتی فریمورک های موجود ، نظمی که .NET داره کجای php میشه پیدا کرد ؟ دو تا تابع که مربوط به رشته ها میشن از لحاظ ظاهری چقدر باهم تفاوت دارن ؟ مثلا تو strlen ؛ string و length هر دو خلاصه شدن و بدون هیچ جدا کننده ای بهم متصل شدن ، اما تو str_replace کلمه string خلاصه و replace کامله و دو کلمه با _ از هم جدا شدن به طور کلی نامگذاری نظم خاصی نداره ولی شما تو .NET نمیتونی چیزی پیدا کنی که از الگوی FooBar خارج باشه و از طرفیم میدونی تمام توابع کار با رشته تو کلاس string هستن یا حتی برای آپلود مقادیر تو یه صفحه ، ذخیره کوکی ها و دانلود محتوی یه صفحه دیگه تو php باید کلی کد زده شه در صورتی که کلاس WebClient در .NET اینکار رو به راحتی انجام میده یا حتی به قول eshpilen تابعی برای رمزنگاری رندوم که فکری نسبت بهش تو php نشده .

MMSHFE
پنج شنبه 11 آبان 1391, 16:41 عصر
دوستان گرامی لطفاً دوباره بحث رو به مقایسه PHP و ASPX و اینگونه بحثهای تکراری نکشونید. هرکدوم از زبانهای PHP و NET. مزایا و معایب خاص خودشون رو دارن و هیچ زبانی به خودی خود کامل نیست و قدرت بینهایت نداره. اونی که بهش قدرت میده، برنامه نویسه. مثلاً درسته که PHP تابع خاصی برای تولید عدد تصادفی امن نداره ولی درمقابل از 42 تابع رمزنگاری پشتیبانی میکنه. بعلاوه اینکه میشه تابع دلخواه خودتون رو بنویسید و حتی اگه برنامه نویس ماهری هستین، سورس کد PHP در اختیارتونه تا بتونید به دلخواه خودتون، نسخه PHP دلخواه خودتون رو تولید کنید! در طرف مقابل توی NET. مستندسازی فوق العاده ای تحت عنوان MSDN وجود داره. پس میبینید که مقایسه اینها کاملاً غیرمنطقی هست. اینکه گوگل هم یک مورد رو انتخاب کرده، همونطور که دوست خوبم eshpilen اشاره کردن، بستگی به عوامل مختلفی مثل نظر شخصی اکثریت تیم تولید، نیازهای پروژه های شرکت، تجهیزات سخت افزاری موجود، منابع سیستمی در دسترس و کلی عوامل دیگه داره و برای مثال اگه یک شرکت دو روز دیگه بیاد و برحسب نیاز خودش، از جاوا استفاده کنه، حتی اگه شرکتی در حد Sun Microsystems یا Oracle باشه، نمیشه بگیم بقیه زبانها بجز جاوا خوب نیستن یا توانایی ندارن.

Unique
جمعه 12 آبان 1391, 03:00 صبح
اصلا قصد این نیست که بحث را به مقایسه زبان ها بکشونیم اما من همیشه برام جالبه که اصلا چرا net. را با php مقایسه میکنند در حالی که net. یک framework هست و php یک زبان اسکریپتی ! مثلا چرا #C یا vb که پر طرفدارترین زبان های مربوط به net framework. هست را با php از نظر syntax و توابع مقایسه نمیکنند ! این قیاس ها اصلا درست نیستند مثل اینه vbscript را با jquery مقایسه کنیم !

من هم مثل دوستان نظرم اینه که بسته به شرایط استفاده باید زبان را انتخاب کرد و مقایسه کار بیهوده ایه !