با پایتون چه کارهایی نمی توانیم کنیم؟

python-logo-master-v3-TM

هر زبان برنامه نویسی برای منظور خاصی طراحی شده است و نمی توان گفت این زبان از اون زبان بهتر است و باید برم اینو یاد بگیرم . باید به زمینه ای که می خواهیم کار کنیم نگاه کنیم و بعد زبان مورد نیازمان را انتخاب کنیم.

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

  1. thread در پایتون وحشتناک است و اگر می خواهید یک برنامه ی همروند خوب بنویسید باید راهتون را عوض کنید.
  2. شما نمی توانید به hardware register دسترسی داشته باشید و یا interrupt program بنویسید.
  3. شما نمی توانید برای اجزای مختلف سیستم device driver بنویسید ولی با سی پلاس پلاس به راحتی می توانید چنین کاری را انجام دهید.
  4. نوشتن برنامه ها بزرگ با زبانی مثل پایتون که run time type determination (نوع متغییر ها در زمان اجرا مشخص می شود)است بسیار سخت است و دقت بالایی می خواهد ، می شود نوشت ولی اصلا توصیه نمی شود برای این گونه برنامه ها بهتر است از compile time type ها مانند سی پلاس پلاس و … استفاده کرد.
  5. در بیشتر زمینه ها پایتون ۱۰ تا ۱۰۰۰ برابر کند تر از زبان سی پلاس پلاس است ، پس برای کارهایی که سرعت مهم است پایتون زیاد کار آمد نیست !
  6. برای محاسبات بزرگ علمی مناسب نیست.
  7. کلا کارهای نزدیک به سخت افزار را نمی توان انجام داد مثل نوشتن سیستم عامل و کار با سیستم عامل و … .
  8. اجازه ی دسترسی مستقیم به memory را بر خلاف سی پلاس پلاس نمی دهد.
  9. به دلیل شماره ی ۴ و ۵ برای نوشتن اپ ها زیاد استفاده نمی شود.

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

منبع : http://www.quora.com/What-cant-I-do-with-Python

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)

۱۸ comments

  • دوستان سلام
    هرکدوم از رفقا که میتونه کمکم کنه لطفا
    من می خواستم یه برنامه با پایتون بنویسم و گیر کردم
    چجوری میشه دلتای یه معدله رو گرفت ؟
    ممنون میشم اگه کدشو برام بفرستین

  • علیرضا افضل آقایی

    کامپایلر cython خیلی به سرعت پایتون کمک میکنه.
    اگه پروژه خیلی بزرگ شد میشه از این کمک گرفت…

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

    به هر حال پایتون در همه ی حوزه ها توکی زده 🙂 ولی در جایی حرف اول رو نمیزنه، اما امیدوارم یک زبان برنامه نویسی بسیار هوشمند برای بعدها بشه 😉

    • کلاینت مگر همون وب نیست ؟

      زبان پایتون خیلی ایده های جالبی داره خیلی از زبان ها توی استاندارد های جدیدشون ویژگی های پایتون را وارد کردند مثل جاوا اسکریپت و…

  • برنامه بزرگ یعنی چی؟
    بلندر که یک موتور سه بعدی و یک ادیتور فیلم و یک موتور بازیست با زبان پایتون نوشته شده و در مقابل رقیب c++ خود(maya) هم حجم کمتری دارد و هم حرفه ای تر عمل کرده حجم مایا حدودا ۶ گیگ است و حجم بلندر حدودا ۴۰۰ مگ و مایا موتور بازی نیست ولی بلندر موتور بازی نیز هست خب این به نظرتون برنامه بزرگی نیست؟
    میشه یه برنامه ی بزرگ نام ببرید که نمیشه با پایتون نوشت
    پینوشت::من طرفدار زبان خاصی نیستم فقط میخوام کسایی که قراره یک زبان رو برای استفادهی حرفه ای انتخاب کنند گیج نشند

  • خواهشا مطالب بدون پشتیبانی علمی قرار ندهید کی گفته با پایتون نمی شه برنامه بزرگ نوشت سیستم عامل های لینوکس وهسته این سیستم عامل ها به نظرتون با چه زبانی نوشته شده شما الان برنامه ارث گوگل با چه زبانی نوشته شده چرا ناسا از پایتون استفاده می کنه کی گفته نمی شه باهاش کدهای میکروکنتلر زد خواهشا مطالب درست و بدون نظر شخصی قرار بدین و ذهن خوانند رو منحرف نکنید

    • فرهاد دلیرانی

      سلام بر شما – زبان های اسکریپتی(که پایتون هم یکی از آن ها است ) برای نوشتن برنامه های بزرگ خوب نیستند و برای نوشتن برنامه های بزرگ باید از زبان های کامپایلری استفاده کرد ، این ویژگی فقط مختص پایتون نیست بلکه مختص زبان های اسکریپتی است.

      -بعدش هم هسته ی لینوکس رو با سی و تا حدودی با سی پلاس پلاس نوشته اند نه پایتون !

      – گوگل ارث هم با زبان های مختلفی همچون سی، سی پلاس پلاس ، جا.ا،جاوا اسکریپت و پایتون نوشته اند که که درصد استفاده ی پایتون در مقابل سی پلاس و جاوا و سی در آن اصلا قابل مقایسه نیست و بسیار بسیار کم است و همین طور که توی لینک زیر می بینید از پایتون برای نوشتن سایت گوگل ارث استافداه شده در حالی که خود گوگول ارث با سی پلاس و اوپن جی ال نوشته شده!
      http://programmers.stackexchange.com/questions/38663/programming-language-usage-at-google

      پایتون یک زبان اسکریپتی است و درست و یا به صرفه نیست که کار های یک زبان غیر اسکریپتی را با آن انجام دهیم.

  • سلام سایت و مطالبون خیلی داره وارزشمند ولی دنبال مطلبی بودم برای تقویت الگوریتم نویسی متاسفانه اصلا نمیتونم برنامه که تا حدی پیچیده میشه الگوریتم بنویسم
    خودم بیشتر فکر میکنم مال مفاهیم ریاضی همیجوری میتونم رو کاغذ مثلا یک معادله درجه دو حل کنم ولی وقتی میخوام الگوریتم بنویسم قغل میکنم ….
    حالا مباحث پایه ای تر ریاضی مشکل دارم با الگوریتم نویسیش..
    ایا کتاب یا منبع هست بتونه این مشکل حل کنه ؟!
    فکر میکنید مشکل این امر چی ؟!

    • فرهاد دلیرانی

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

  • ازنظرمن پایتون یکی از بهترین زبان های برنامه نویسی دنیا من حتی با پایتون نرم افزار نوشتم و کتابخانه ای زیادی داره

    • فرهاد دلیرانی

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

  • سلام
    پست جالبی بود
    البته دیگه اونقدرا هم داغون نیست
    پایتون کیوت قدرتش کمتر از سی شارپ نیست

  • با سلام
    چند نکته به نظرم آمد که با اجازه در میان می گذارم.

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

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

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

    سایر موارد با شما موافقم. هر چند به نظر این حقیر این دست مقاله ها غالبا کم فایده می باشند.
    پاینده باشید

    • فرهاد دلیرانی

      از نظرتون خیلی استفاده کردم ، هنگام نوشتن مطلب خودم احساس کردم بیشتر شبیه یک مطلب زرد شده است ولی متاسفانه پستش کردم.

  • Pingback: C++ or Python | برنامه نویسی و الگوریتم

Leave a Reply

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *