PDA

View Full Version : مقاله: زبان برنامه نویسی Python : هیولای خفته



moslem-visual
شنبه 02 آذر 1387, 10:21 صبح
در دنیای امروز کامپیوتر شاید صدها زبان برنامه نویسی وجود داره که به رغم قدرتمند بودن در نطفه خفه میشن، خیلی از این زبانها شاید در حد یه پروژه ی دانشگاهی یا حتی ابتکار یک نفره باشن اما در میان اونها زبانهایی مثل Python ( پایتون - پیتون ) آهسته و بی سر و صدا منتظر هستند تا در فرصت مناسب به رقبا حمله ور بشوند!

از زبان Python مثل سایر همنوعانش در میان زبانهایی مثل Java یا C++ یا مثلا زبانهای سطح بالای مایکروسافتی خیلی کم نامی برده میشه. اگر سراغ زبانهای تحت وب بریم هم PHP با قدرت در بهترین موقعیت از لحاظ رواج و پشتیبانی قرار گرفته و پس از اون هم ASP.net مایکروسافت با حمایت چنین غولی راه رو برای رقبا بسته است. اما Python قابلیتهایی رو داره که شاید بسیاری از اونها در هیچ زبان دیگه ای تجربه نشده باشن، یک زبان “همه کاره”.

Python از جامعه ی کد باز است، زبانی که گوگل به عنوان یکی از اصلی ترین ابزارهای توسعه از اون استفاده میکنه و همینطور یاهو. برنامه های Python مثل PHP قابلیت اجرا روی هر پلاتفرمی رو دارند، ویندوز، لینوکس،… و حتی پلی استیشن! اگه طرفدار سادگی باشید Python یه سینتکس تقریبا شبیه گفتار ساده ی انگلیسی داره، مثل PHP با حدود ۶۰ واژه ی کلیدی جزو ساده ترینهاست. این زبان به تمام معنا از شی گرایی پشتیبانی میکنه، بهتر از هر زبان دیگه ای. Python خیلی از سنتهای سینتکسی زبانهای برنامه نویسی رو شکسته، از شکل شمایل C-Like محبوب خیلی کم به ارث برده، مثلا بلاکها دیگه با آکولاد مشخص نمیشن یا آخر خطوط سیمی کالن گذاشته نمیشه، در زمینه ی کنترلی هم چنین هنجار شکنی هایی رو داره، مثلا در این زبان چیزی به نام Switch وجود نداره!

در عوض پشت شی گرایی قوی اون قابلیتهای مهمی خوابیده که درکش تا وقتی وارد این زبان نشید و باهاش کار نکنید سخته، Python همونطور که گفتم همه جا کاربرد داره،‌ برنامه های رومیزی خط فرمان و یا با GUI قوی که با یک زبان مفسری نوشته میشن تجربه ی جدیدی برای خیلی هاست. در رابطه با توسعه ی وب هم این زبان طرفداران بسیار پر و پا قرصی داره، کافیه یه گوگل انجام بدید. برای خود من همین قابلیتهای مربوط به وب هست که مهمه و البته حداقل تا دو سال آینده و تا وقتی که خوب با Python آشنا نشدم قصد تغییر زبان ندارم، فعلا PHP به اندازه کافی قدرتمند هست که چنین عجله ای رو نداشته باشم! اما در آینده حتما مقاله ای رو در این رابطه همینجا منتشر میکنم.

خب، فقط خواستم یه جرقه ای زده باشم برای مباحث بعدی، البته اینجا خیلی محدود در موردPython بحث میکنیم، نمیخوام زیاد وبلاگم فنی بشه! دست آخر اینکه Python یه زبان خاص هست، یعنی نمیشه به هر کسی توصیه کرد که کارش رو رها کنه و بیاد دنبالش، چه در برنامه نویسی وب و چه برنامه نویسی رومیزی (چه اصطلاح مسخره ای! فعلا همین به ذهنم میرسه) چون یه زبان کاملا “قانونمند” هست، شاید خیلی وقتها نتونید سادگی رو به اون معنای درش پیدا کنید. بیشتر فکر میکنم رقابت Python به عنوان یه زبان چند منظوره با زبانهایی مثل ++C#، Java ، C و Fortran باشه تا حوزه ای خاص مثل توسعه ی وب.

خیلی ها دیوانه وار از این زبان حمایت میکنند، مثلا توی یه وبلاگ خارجی یه نفر کامنت زده “PHP is kidding”، آخه با چه منطقی؟! یا نمونه ی چنین متلکهایی رو به Java میپرونن، اکثرا هم به صورت دیوانه وار عصبانی هستند!!! به شخصه فکر میکنم قابلیتهایی که میشه خیلی روشون مانور داد اولا کراس پلاتفرم بودن و دوما قابلیتهای مناسب مشترک در وب و رومیزی هست که امکان نوشتن کامپوننت های مشترک رو به برنامه نویس میده، پشتیبانی فوق العاده از شی گرایی (OO) و یونیکد هم میتونه مهم باشه. [ از نوشته هاي وبلاگ ]

Bayazee
دوشنبه 04 آذر 1387, 13:37 عصر
سلام
نوشته جالبی بود . منبعش وبلاگ خودتونه ؟
یه چند تا مورد هست که اشاره به اونا بد نیست . تعداد واژه های کلیدی پایتون زیر ۳۰ تا هست :


and assert break class continue
def del elif else except
exec finally for from global
if import in is lambda
not or pass print raise
return try while

در مورد سادگی و سهولت خواندن کد پایتون و شفافیت ساینتکس پایتون خیلی معروف هست و از PHP هم آسون تر هست . جذابیت پایتون در این هست که در عین راحتی و سادگی برنامه نویسی قدرت فوق العاده زیادی داره و پیچیده ترین کارهارو در کوتاهترین زمان و کمترین میزان کد و به بهترین نحو انجام می ده . این هست که وقتی کسی بطور کامل با این زبان آشنا بشه ممکنه زبانهای دیگه براش خیلی ابتدایی یا مشکل دار به نظر برسه .
این هم یک مقایسه بین php و python :
http://wiki.python.org/moin/PythonVsPhp

shahriyar3
سه شنبه 05 آذر 1387, 22:17 عصر
سلام
مرسی آقای بیاضی برای این لینک مقایسه
مقایسه بسیار جالبی بود مخصوصا قسمت آخرش که نوشته

Using Python and PHP together:قهقهه:
بیشتر شبیه تحریک کردن طرفداران زبان php به استفاده بیشتر از python بود تا python vs PHP

Bayazee
چهارشنبه 06 آذر 1387, 13:01 عصر
سلام
خواهش می کنم . این مطلب همونطور که در بالاش هم اومده عینا از ایجا کپی شده :

http://wiki.w4py.org/python-vs-php.html

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

moslem-visual
یک شنبه 10 آذر 1387, 09:40 صبح
ممنون جناب بياضي، بله از وبلاگ خودم هست. من به شخصه هنوز اصلا نميتونم مقايسه ي PHP و Python رو قبول كنم، از هيچ نظر. زبان PHP از زماني كه معرفي شد تا امروز كارش يك چيز بوده، "وب". هنوز كه هنوزه با تمام قدرتي كه رقباي جدي اون مثل ASP.net دارند و مزايايي كه براي ساده تر شدن و در برخي موارد سريعتر شدن اجراي پروژه ها در بوق ميكنند، PHP چه از لحاظ حجم استفاده در پروژه ها و چه از لحاظ جامعه ي برنامه نويسان از همه پيش هست. اينجا نميخوام مقايسه اي با ASP.net انجام بدم، فقط خواستم بگم اون رقيب جدي و رقباي ديگه مثل Python هيچوقت نميتونن ويژگي هاي خاص PHP رو داشته باشند. اما در قدرت و توانايي Python هيچ شكي نيست و همه هم تائيد ميكنند كه اين زبان از عهده ي خيلي كارها بر مياد، كارهايي كه مثلا PHP هرگز نميتونه در سطح پايين هم انجامشون بده اما در مورد وب اينطور نيست.

اما مقايسه ها ادامه داره، با اينكه هنوز دليل قوي و محكمي براي رها كردن زبان PHP وجود نداره،

اما در مورد قدرت محاسباتي Python :
http://www.digital39.com/programming/python-vs-php/2006/08/

و باز هم در همين مورد، البته اينجا با هر زباني ميتونيد مقايسه كنيد :
http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=python&lang2=php

همينطور نگاهي بندازيد :
http://www.davidcramer.net/code/121/php-vs-python.html

Bayazee
دوشنبه 11 آذر 1387, 11:53 صبح
زبان PHP از زماني كه معرفي شد تا امروز كارش يك چيز بوده، "وب". هنوز كه هنوزه با تمام قدرتي كه رقباي جدي اون مثل ASP.net دارند و مزايايي كه براي ساده تر شدن و در برخي موارد سريعتر شدن اجراي پروژه ها در بوق ميكنند، PHP چه از لحاظ حجم استفاده در پروژه ها و چه از لحاظ جامعه ي برنامه نويسان از همه پيش هست

سلام
php کاربران بسیاری داره . درصد بسیار بالایی از وب سایت های موجود رو با استفاده از این زبان نوشتند . و هنوز هم داره استفاده می شه . برنامه نویسان بسیاری داره و یک جامعه قوی و فعال . اما هیچ یک از این موارد نمی تونه مزیت و برتری یک زبان رو در حال و لحظه کنونی نشون بده ! یه مثال خیلی ساده . الان تو ایران همه جا پر هست از پیکان !! آیا پیکان ماشین خوبی هست که خیلی ها انتخابش می کنند ؟ همه جا تعمیر کار داره و ... ؟ قصدم برابر دونیستن php با پیکان نیست !! نمی خوام php رو هم زیر سوال ببرم . کلی می گم . بعضا این مورد در خیلی از بخث ها دلیل بر برتری مطلق چیزی شمره می شه . مثلا می گه بالای ۸۰٪ کاربرای خونگی از ویندوز استفاده می کنند ! پس ویندوز بهتر از لینوکس هست !! بدون اینکه زمینه مقایسه مشخص بشه . میزان استفاده نمی تونه فاکتور و پارامتر مناسبی برای برای برتری یک چیزی باشه .

در مورد php و ادامه بحث پست قبلیم :

http://wiki.rubyonrails.com/rails/pages/Framework+Performance
http://www.mellowmorning.com/2008/08/27/django-vs-symfony/
و بسیاری پست و بحث دیگه که یه گوگل بکنید فراونه ..

moslem-visual
دوشنبه 11 آذر 1387, 14:26 عصر
با نظر شما موافقم، البته اونايي كه پيكان دارند نميتونن باهاش 180 تا برن اما با PHP ميشه هر كاري كه Python در مورد وب انجام ميده رو اجرا كرد! درسته كه براي برتري PHP غير از اين محبوبيت و جامعه ي بزرگ برنامه نويس چيز خاصي رو نميشه مطرح كرد اما شما براي برتري Python و دليل استفاده از اون در وب چه دلايل قانع كننده اي ميتونيد بياريد؟ اگه واقعا چيز چشمگيري باشه چه بسا من هم به طرفش بيام اما مسائل كوچك و غير كاربردي زيادي هم در PHP و هم در Python وجود داره كه ممكنه خيلي ها به عنوان برتري ازش اسم ببرن، مهم اينه كه كدوم يكي واقعا ارزش استفاده و يادگيري رو داره، البته باز هم براي وب! يا حق

babakj
دوشنبه 09 دی 1387, 22:44 عصر
ممنون جناب بياضي،.........


و باز هم در همين مورد، البته اينجا با هر زباني ميتونيد مقايسه كنيد :
http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=python&lang2=php




چه جالب
پس حتما این مقایسه رو هم انجام بده یکمی جالب تر بشه

http://shootout.alioth.debian.org/gp4/benchmark.php?test=all〈=fbasic&lang2=python (http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=fbasic&lang2=python)

عجیبه که FREE BASIC از پایتون سریعتره :متعجب:

Bayazee
سه شنبه 10 دی 1387, 17:24 عصر
ایجا جواب شما رو دادم :
http://barnamenevis.org/forum/showthread.php?t=85511&page=4

عجیب نیست و کاملا هم طبیعی هست . هرچی امکانات و ویژگی های یک زبان کم باشه و سطح پایین باشه سرعت اجراش هم بیشتر هست .

nima_aram
چهارشنبه 18 دی 1387, 11:46 صبح
درود بر شما...

من مقداری با پرل آشنا هستم. میخواستم ببینم کدوم بهتر وقویتره و آینده متعلق به کدام خواهد بود؟ رو پایتون سرمایه گذاری کنم یا پرل و حرفه ای دنبال کدومشون برم؟ لطفآ دلیلتون رو برای من بیان کنید. با تشکر...
nima.aram@yahoo.com

mahyar13652000
پنج شنبه 15 اسفند 1387, 10:15 صبح
از تمامی بچه سپاس گزارم

اینجا مطالب جالبی در مورد پایتون خوندم و کلی به اطلاعاتم افضوده شد.

من php کار میکنم البته در سطح نیمه متوسط من هم این سوال رو دارم که آیا پایتون ارزش داره

که من php رو رها کنم و به طرف پایتون برم؟

با تشکر

rasep1983
پنج شنبه 11 تیر 1388, 11:58 صبح
مطمئن باش هیچی ارزشش اونقدری نیست که php رو آدم بزاره کنار :متفکر:

اما با پایتون و php کنار هم قدرت بیشتری داری :شیطان:

اما در کل پایتون به تنهایی هیچ شانسی جلوی پی اچ پی نداره

پایتون زبان template نیست و به سادگی php نمیشه کنارش کدهای html رو استفاده کرد
php استرینگ پروسسینگ به مراتب بهتری داره
داکیومنتشن php راحتر تر و واضح تره و خیلی قابل فهمتره (برای عام)
گذشته ازینا php متغیرهای مفیدی داره که بی نظیره مثل HTTP , SERVER و ...

mehdi_ab
جمعه 01 مرداد 1389, 19:07 عصر
در عوض پشت شی گرایی قوی اون قابلیتهای مهمی خوابیده که درکش تا وقتی وارد این زبان نشید و باهاش کار نکنید سخته [ از نوشته هاي وبلاگ ]


با سلام
من فقط می خواستم بگم که زبان Python زبان شی گرایی هست ، اما Full object-oriented نیست . برای مثال در این زبان امکان تعریف متغیرها به صورت Private , Public , protected وجود ندارد و همه اعضای یک کلاس به صورت Public هستند . البته برای این کار برخی افراد یک سری تکنیک هایی به کار برده اند که در عمل درست جواب می دهد .

ولی در عین حال تعجب میکنم که چرا عنصر مهم Switch-case در این زبان وجود نداره . خیلی ها گفتن که به جاش از if...else استفاده کنید ، در حالی که بازدهی switch از if خیلی بیشتره .

franchesco
شنبه 02 مرداد 1389, 08:01 صبح
با سلام
من فقط می خواستم بگم که زبان Python زبان شی گرایی هست ، اما Full object-oriented نیست . برای مثال در این زبان امکان تعریف متغیرها به صورت Private , Public , protected وجود ندارد و همه اعضای یک کلاس به صورت Public هستند . البته برای این کار برخی افراد یک سری تکنیک هایی به کار برده اند که در عمل درست جواب می دهد .

ولی در عین حال تعجب میکنم که چرا عنصر مهم Switch-case در این زبان وجود نداره . خیلی ها گفتن که به جاش از if...else استفاده کنید ، در حالی که بازدهی switch از if خیلی بیشتره .

result = {
'a': lambda x: x * 5,
'b': lambda x: x + 7,
'c': lambda x: x - 2
}[value](x)