# زبان های اسکریپتی > دیگر زبان های اسکریپتی > مقاله: زبان برنامه نویسی Python : هیولای خفته

## moslem-visual

در دنیای امروز کامپیوتر شاید صدها زبان برنامه نویسی وجود داره که به رغم قدرتمند بودن در نطفه خفه میشن، خیلی از این زبانها شاید در حد یه پروژه ی دانشگاهی یا حتی ابتکار یک نفره باشن اما در میان اونها زبانهایی مثل 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

سلام
نوشته جالبی بود . منبعش وبلاگ خودتونه ؟
یه چند تا مورد هست که اشاره به اونا بد نیست . تعداد واژه های کلیدی پایتون زیر ۳۰ تا هست :

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

سلام
مرسی آقای بیاضی برای این  لینک مقایسه 
مقایسه بسیار جالبی بود مخصوصا قسمت آخرش که نوشته 
Using Python and PHP together :قهقهه: 
بیشتر شبیه تحریک کردن طرفداران زبان php به استفاده بیشتر از python بود تا python vs PHP

----------


## Bayazee

سلام
خواهش می کنم . این مطلب همونطور که در بالاش هم اومده عینا از ایجا کپی شده :

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

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

----------


## moslem-visual

ممنون جناب بياضي، بله از وبلاگ خودم هست. من به شخصه هنوز اصلا نميتونم مقايسه ي PHP و Python رو قبول كنم، از هيچ نظر. زبان PHP از زماني كه معرفي شد تا امروز كارش يك چيز بوده، "وب". هنوز كه هنوزه با تمام قدرتي كه رقباي جدي اون مثل ASP.net دارند و مزايايي كه براي ساده تر شدن و در برخي موارد سريعتر شدن اجراي پروژه ها در بوق ميكنند، PHP چه از لحاظ حجم استفاده در پروژه ها و چه از لحاظ جامعه ي برنامه نويسان از همه پيش هست. اينجا نميخوام مقايسه اي با ASP.net انجام بدم، فقط خواستم بگم اون رقيب جدي و رقباي ديگه مثل Python هيچوقت نميتونن ويژگي هاي خاص PHP رو داشته باشند. اما در قدرت و توانايي Python هيچ شكي نيست و همه هم تائيد ميكنند كه اين زبان از عهده ي خيلي كارها بر مياد، كارهايي كه مثلا PHP هرگز نميتونه در سطح پايين هم انجامشون بده اما در مورد وب اينطور نيست. 

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

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

و باز هم در همين مورد، البته اينجا با هر زباني ميتونيد مقايسه كنيد :
http://shootout.alioth.debian.org/gp...thon&lang2=php

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

----------


## Bayazee

> زبان PHP از زماني كه معرفي شد تا امروز كارش يك چيز بوده، "وب". هنوز كه هنوزه با تمام قدرتي كه رقباي جدي اون مثل ASP.net دارند و مزايايي كه براي ساده تر شدن و در برخي موارد سريعتر شدن اجراي پروژه ها در بوق ميكنند، PHP چه از لحاظ حجم استفاده در پروژه ها و چه از لحاظ جامعه ي برنامه نويسان از همه پيش هست


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

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

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

----------


## moslem-visual

با نظر شما موافقم، البته اونايي كه پيكان دارند نميتونن باهاش 180 تا برن اما با PHP ميشه هر كاري كه Python در مورد وب انجام ميده رو اجرا كرد! درسته كه براي برتري PHP غير از اين محبوبيت و جامعه ي بزرگ برنامه نويس چيز خاصي رو نميشه مطرح كرد اما شما براي برتري Python و دليل استفاده از اون در وب چه دلايل قانع كننده اي ميتونيد بياريد؟ اگه واقعا چيز چشمگيري باشه چه بسا من هم به طرفش بيام اما مسائل كوچك و غير كاربردي زيادي هم در PHP و هم در Python وجود داره كه ممكنه خيلي ها به عنوان برتري ازش اسم ببرن، مهم اينه كه كدوم يكي واقعا ارزش استفاده و يادگيري رو داره، البته باز هم براي وب! يا حق

----------


## babakj

> ممنون جناب بياضي،.........
> 
> 
> و باز هم در همين مورد، البته اينجا با هر زباني ميتونيد مقايسه كنيد :
> http://shootout.alioth.debian.org/gp...thon&lang2=php


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

http://shootout.alioth.debian.org/gp4/benchmark.php?test=all〈=fbasic&lang2=python

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

----------


## Bayazee

ایجا جواب شما رو دادم :
https://barnamenevis.org/showth...t=85511&page=4

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

----------


## nima_aram

درود بر شما...

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

----------


## mahyar13652000

از تمامی بچه سپاس گزارم

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

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

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

با تشکر

----------


## rasep1983

مطمئن باش هیچی ارزشش اونقدری نیست که php رو آدم بزاره کنار   :متفکر: 

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

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

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

----------


## mehdi_ab

> در عوض پشت شی گرایی قوی اون قابلیتهای مهمی خوابیده که درکش تا وقتی وارد این زبان نشید و باهاش کار نکنید سخته [ از نوشته هاي وبلاگ ]



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

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

----------


## franchesco

> با سلام
> من فقط می خواستم بگم که زبان 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)

----------

