دسته بندی :
تاریخ انتشار : ۰۲ شهریور ۱۳۹۴
گردآوری و تالیف : سعید اکبری

آغاز کارم با لینوکس و یک خط فرمان سیاه و سفید بود.بعد از 2 سال به سمت برنامه نویسی تحت وب رفتم و زبان های HTML و CSS و کار با سیستم های مدیریت محتوا رو یاد گرفتم.با زبان PHP کار میکردم که با آشنا شدن به پایتون و فریم ورک جانگو دیگه به سمت پایتون مهاجرت کردم.علاقه اصلیم هنوز همون لینوکسه وصد البته امنیت سایبری.آرزوم هم سربلندی کشورم تو عرصه فناوری اطلاعاته

با توجه به نیاز روزافزون تمامی اقشار جامعه برای داشتن وبسایتی مطابق با میلشان انکار واقعیتی که زبان های وب نویسی دیگر فقط برای مهندسین نرم افزار ساخته نشده غیرممکن است.حال با وجود این سیل عظیم زبان های ساخته شده برای ساخت وبسایت ها،سیستم های مدیریت محتوا و زبان های پویایی وب انتخاب اینکه کدام زبان برای کار مناسب است تبدیل به یکی از بزرگترین چالش های افراد نامتخصص شده.حال جدای زبان های برنامه نویسی و البته به طور صحیح تر اسکریپت نویسی وب که در قسمت هایی مثل طراحی و صورت ظاهری کاربرد دارند مانند HTML,CSS,JavaScript و ...که برای استفاده متدهای مشخصی دارند،زبان های پویا مثلPHP,ASP.Net و PYTHON که زبانی به نسبت جدید تر ولی با قدرت باورنکردنی است،هرکدام راه کارهای خود را در پیش میگیرند و انتخاب بین این موارد است که باعث سردرگمی افراد میشود.

حال در اینجا ما میخواهیم جدا از زبان ASP.Net زبان های قدرتمند PHP و PYTHON را با یکدیگر مقایسه کنیم و البته انتخاب را به عهده خود شما میگذاریم.

ویژگی های مشترک 

در هر دو زبان PHP و پایتون :

هر دو زبان های تفسیر شونده،سطح بالا و با قابلیت تایپ پویا(Dynamic) هستند

هر رو متن باز(Open Source) هستند.به جز در بعضی از محصولات شرکت Zend که توصیه به انحصاری بودن دارند.

با حمایت جامعه توسعه دهنده بسیار بزرگی همراه هستند.

بسیار راحت برای یاد گیری اند(درمقایسه با C++ و جاوا یا پرل )

مانند زبان های سطح بالا گسترش یافته اند

قابل حمل اند و در بسیاری از پلتفرم ها بدون نیاز به کامپایل دوباره کار میکنند

هر دو آنها قابلیت متوقف کردن اشیا را برای حرکت دادن آنها در شبکه ، دیسک و غیره را دارند.بعد از این قابلیت نیز میتوانند بدون تغییر باقی بمانند

PHP تمام کلاس ها و اشیا را به صورت سریالی ذخیره میکند.هنگامی که این عمل انجام میشود فقط ویژگی های کلاس ها و اشیا ذخیره میشوند و نه متد ها ولی در پایتون این عمل به صورت ذخیره ماژولی و سپس فراخوانی کردن هر کدام از آنها انجام میشود.

هر دو از ویژگی namespace پشتیبانی میکنند

هر دو از روش های زنجیره ای پشتیبانی میکنند

دارای چند IDE و debuggers های مختلف اند

تقریبا هر دوی آنها برای اولین یونیکس نیز موجوداند

هر دو ذخیره سازی به صورت Byte-Code پشتیبانی میکنند( در PHP از ورژن 5.5 به بعد)

دارای پایگاه استانداردی از API ها میباشند

از متد  GTK  و QT پشتیبانی میکنند

از  برنامه‌های کاربردی builtin lambdas و سایر ساختارهای برنامه نویسی پشتیبانی میکنند

میتوانند به صورتی برنامه نویسی اسکریپیتی و برنامه نویسی عمومی مورد استفاده قرار گیرند

و اما نقاط قوتی که PHP دارد و پایتون ندارد!!

1.       عبارت های Switch و do ... While در پایتون وجود ندارد.

2.       افزایش و کاهش متغیر ها

3.       اصلاح گرهای private و protected و  public برای ویژگی ها و توابع

4.       نوع final و abstract

5.       Interface ها: که البته می توان گفت پایتون نیازی هم به آن ندارد چون ساختار های مشابه زیادی دارد و از ارث بری چندگانه پشتیبانی می کند.

6.       آرگومان ها پیش فرض در توابع

7.         درج کدها در میان کدهای HTML

 

ضعف هایی که PHP دارد و Python ندارد!!

1.       نحو برگرفته از زبان هایی همچون C با تعداد زیادی کروشه و پرانتز و...

2.       نام های گیج کننده ی توابع

3.       بعضی عیب ها در سیستم نوع داده ها

آنچه Python دارد و PHP ندارد:

1. ایندنت گذاری و فواصل به جای پرانتز ها و کروشه های زیاد استفاده می شود: که البته باید این نکته را در نظر گرفت که همین موضوع است که ترکیبPHP و HTML را ممکن ساخته است.

2. قواعدی که باعث می شود غلط های لغوی کمتر شوند.

3. هسته ی کوچک و کم حجم

4. نحو ساده، واضع و مشخص

5. آرگومان های کلمه کلیدی ( پارامتر ها با نامشان ارسال می شوند و نه با توجه به موقعیتشان)

6. شی گرایی واقعی و بدون ایراد

7. ارث بری چندگانه

8. درون گرایی بی نظیر

9. همه چیز یک ارجاع محسوب می شود.

10. حساسیت به بزرگی و کوچکی حروف حتی در توابع

11. نحو ساده در تعریف آرایه ها

12. مدیریت استثناء ساخت یافته

13. بازنویسی عملگر ها

14. معماری چند نخی

15. ساختار with ... as

16. یک profiler عالی

17. نوع های داده ای سطح بالا به تعداد زیاد

در آخر نظر شما در مورد هر کدوم از این زبان چیه و بدونه تعصب نسبت به هر کدوم شما چه نتیجه گیری از این مقایسه  میکنید ؟ ما تنها این دو زبان رو با هم مقایسه کردیم و انتخاب یا نتیجه گیری با خود شماست .

منبع : wiki.python.org

دیدگاه های مخاطبین

ثبت دیدگاه شما
  • محمد امین

    با سلام ببخشید ولی در پایتون ما آرگومان های پیشفرض برای توابع داریم اگه میشه اصلاح کنید مثل :
    def printmassage(text = "hello world"):
    print (text)

  • محسن

    سلام.مهمترین فرق بین python و php اینه که پایتون گستره استفاده بسیار بیشتری داره. به ادعای پایتون کاران حرفه ای با پایتون تقریبا هر برنامه ای میتوان نوشت حتی نرم افزار سیستمی. حتی ادعا دارند هر برنامه ای را که شما با سی یا سی پلاس پلاس بنویسید ما با پایتون و با همان قدرت خواهیم نوشت.این ادعا کاذب نیست. من خودم عاشق سی پلاس پلاس هستم اما پایتون رو هم یاد گرفتم.زبانیست به غایت قدرتمند اما در عین حال سینتکس شسته رفته و ساده ای داره. به عنوان نمونه ای دیگر پایتون زبانی است که به شدت مورد علاقه هکرهاست زیرا با آن در سیستم قربانی همه کار میتوان کرد.php زبان قدرتمندی است اما گستره استفاده ای مانند پایتون ندارد اما در عوض ایده آل وب است زیرا اساسا برای وب ساخته شده است.

  • سیدرضا بازیار

    ممنون
    جالب بود

  • مسعود

    درسته پایتون زبان خوبیه ولی قابل مقایسه با c/c++ نیست.زبان سی بهترین زبان برای شروع برنامه نویسیه.

  • پروانه

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

    • admin

      قطعا همینطوره ، ممنون بابت نظر خوبتون

  • مهدی واعظی

    با پایتون آشنا شدم ولی نتونستم باهاش در HTML استفاده کنم!
    هنوز پایتون جاشو مثل PHP باز نکرده.
    اگه ممکنه Ruby را هم به مقایسه اضافه نمائید.

    • admin

      چشم انشالله وقت کنیم حتما این کارو هم میکنیم

  • محمود مسیح تهرانی

    این مقایسه بدرد نمی خوره!
    یعنی چی اون ایندنت داره اون کروشه!
    این که مقایسه فنی نیست
    هر زبانی ساختار خودش رو داره، چیزی که زبان ها رو از هم جدا می کنه توانمدی و سرعتشونه
    که اصلا اینجا در نظر گرفته نشده!

    • سعید

      با سلام
      اتفاقا این نوع مقایسه فنی است که از همه لحاظ دو زبان را مقایسه کند.
      همان طور که همه میدانند Syntax ها سرعت و دقت نوشتار را تغییر میدهند پس گاهی استفاده حتی از یک کروشه شاید بتواند امتیازی برای آن زبان باشد.
      فنی فقط قدرت و سرعت خود زبان نیست بلکه رابط کاربری آن با برنامه نویس نیز هست.

  • محمد صباغ

    منبعتون خیلی خیلی جالبه.
    مورد ۷ رو php نداره!!!!!!!!!!
    اون ۱۷ تا موردی که گفتید شاید ۴ یا ۵ تاش برتری باشه

    • سعید

      با سلام
      دقیقا در متن به مورد 7 اشاره شده در این جمله:embedding in HTML
      و از اون 17 تا مورد قضاوت پای شرکت ها و گروه های مشخص هست نه ما
      به همین دلیل برتری ها کاملا کارشناسی شده هستند

  • حمید

    مطلب بسیار خوب، مختصر و جامعی بود.
    من با php کار میکنم ولی python خیلی سینتکس قشگتر و مرتب تری داره.

  • ehsan

    in matalebe ghalato az koja avordid
    koja python while nadareh
    http://stackoverflow.com/questions/60208/replacements-for-switch-statement-in-python

    • admin

      دوست عزیز به نوشته ها حداقل دقت کنید گفته شده
      do .. while و جود نداره :/ نه while
      دقت نمیکنین بعد میگین مقاله اشتباس

پیشنهاد میکنیم این مطالب رو هم مطالعه کنید :