از اوایل سال 2010 محبوبیت پایتون افزایش پیدا کرد و کم کم از زبان های C++, C و جاوا و جاوا اسکریپت پیشی گرفت و امروزه به عنوان محبوب ترین زبان برنامه نویسی شناخته می شود. اما این محبوبیت تا کجا ادامه پیدا خواهد کرد و سرانجام چه زبانی جایگزین پایتون خواهد شد. تعیین یک زمان مشخص برای این موضوع بسیار دشوار است. در این مقاله قصد داریم نقاط قوت پایتون را که باعث افزایش محبوبیت پایتون و نقاط ضعف آن که ممکن است در آینده باعث از رده خارج شدن آن شود را بررسی کنیم.
محبوب ترین زبان های برنامه نویسی
سایت stack Overflow بزرگترین شبکه اجتماعی برنامه نویسان با بررسی تگ های موجود در مطالب کاربران محبوب ترین زبان های برنامه نویسی را بررسی کرده است. این سایت منبع خوبی برای میزان محبوبیت زبان های مختلف است.
دلایل محبویت پایتون
رشد زبانی مثل R به صورت خطی است و بیشتر زبان ها روندی نزولی داشته اند. اما پایتون با شیب تندی در حال رشد است. تقریبا حدود ۱۴٪ سوال های پرسیده شده در این سایت با برچسب پایتون پرسیده شده اند. دلایل مختلفی برای این رشد وجود دارد.
پایتون زبانی قدیمی است این یک مزیت است یا عیب؟
پایتون از دهه نود شروع به کار کرده است. به این معنی که زمان زیادی برای رشد داشته است همچنین یک جامعه بزرگ و حمایت کننده برای پایتون بوجود امده است.
بنابراین اگر هنگام کد نویسی در پایتون مشکلی دارید ، احتمال اینکه بتوانید آن را با یک جستجوی گوگل حل کنید زیاد است. صرفاً به این دلیل که کسی قبلاً با مشکل شما روبرو شده و مطلبی مفید در مورد آن نوشته است.
مبتدی پسند
خواندن کد پایتون بسیار راحت است چون به زبان محاوره انگلیسی بسیار نزدیک است. این نکته برای مبتدیان بسیار حایز اهمیت است.
همچنین در زبان پایتون نیاز به تعیین نوع متغییر نیست. کامپایلر پایتون از نوع داده متوجه فرمت داده می شود ولی اگر با زبان های دیگر مانند C کار کرده باشید می دانید که حتما باید نوع متغییر تعیین شود. این مساله کد نویسی با پایتون را برای مبتدیان بسیار راحت می کند. و اگر تا به حال مجبور شده اید کد پایتون و ++C را کنار هم بخوانید ، می دانید که پایتون چقدر قابل فهم است. حتی اگر ++C با در نظر گرفتن زبان انگلیسی طراحی شده باشد ، در مقایسه با کد پایتون کاملا ناخوانا است.
چند منظوره است
از آنجا که زمان زیادی است که پایتون معرفی شده است توسعه دهنده ها کتابخانه های متعددی در زمینه های مختلف برای پایتون طراحی کرده اند. امروزه تقریبا در هر زمینه ای کتابخانه های قدرتمندی توسعه یافته است.
- برای کار با ماتریس ها و بردار ها کتابخانه numpy
- برای کار با مجموعه داده ها کتابخانه pandas
- برای کار در زمینه هوش منصوعی کتابخانه scikit-learn
- برای طراحی وب با فریم ورک جانگو
در هر زمنیه آماری و ریاضیات که بخواهید فعالیت کنید احتمالا چندین کتابخانه وجود دارد. یکی از دلایل رشد یادگیری ماشین و هوش مصنوعی در سال های اخیر کتابخانه های پایتون است که کار در این زمینه را بسیار راحت کرده است.
نکات منفی پایتون
با توجه به مطالب گفته شده بنظر می رسد پایتون تا سال ها در صدر بهترین زبان برنامه نویسی باشد. اما مانند هر تکنولوژی دیگری پایتون هم دارای نقاط ضعف است که ممکن است در آینده باعث شود زبان دیگری جایگزین پایتون شود.
سرعت پایین پایتون
پایتون کند است. به صورت متوسط برای انجام یک کار بین ۲ تا ۱۰ برابر دیگر زبان ها طول می کشد. دلایل زیادی برای کندی پایتون وجود دارد. در پایتون نیازی به تعیین نوع متغییر وجود ندارد. همین یعنی استفاده از حافظه بیشتر و صرف زمان پردازش بیشتر. در واقع بخشی از محاسبات در پس زمینه انجام می شود تا کامپایلر نوع داده را تشخیص دهد.
علت دیگر کندی پایتون این است که پایتون می تواند فقط یک کار را در هر لحظه انجام دهد. پایتون مطمین شود که هر متغییر در هر لحظه فقط یک نوع داده دارد. اگر به صورت همزمان این کار را انجام دهد این روند بهم می ریزد. در مقایسه مرورگر وب می تواند در هر لحظه ۱۲ فعالیت(نخ)مختلف را انجام دهد.
امروزه کامپیوتر ها بقدری سریع شده اند تفاوت سرعت قابل مشاهده نیست. برای یک کاربر تفاوتی ندارد برنامه در ۰/۰۱ ثاینه اجرا شود یا ۰/۰۰۱.
Lambda
با وجود انعطاف پذیری های موجود در پایتون استفاده از lambda بسیار محدود است. lambda فقط می تواند بصورت یک عبارت بیان شود.
مشکلات فضاهای خالی (Whitespaces) در پایتون
در پایتون ، از فضای خالی و تورفتگی برای نشان دادن سطوح مختلف کد استفاده می شود. این امر از نظر بصری کد را جذاب و زیبا می کند. زبانهای دیگر ، به عنوان مثال ++C بیشتر به پرانتزها و نقطه ویرگول ها متکی هستند. اگرچه این از نظر بصری جذاب و پسندیده نیست و برای مبتدیان سخت تر است ، اما کد را بسیار بیشتر حفظ می کند. این کار برای پروژه های بزرگتر ، بسیار مفیدتر است. زبانهای جدیدتر مانند Haskell این مشکل را حل کرده اند: هر کسی مایل باشید می تواند از هر دو حالت استفاده کند.
پایتون و توسعه موبایل
چندین سال است که کاربران موبایل و تبلت از دسکتاپ بیشتر شده است. به همین جهت توسعه برنامه های موبایل اهمیت بسیاری پیدا کرده است. اما برنامه ها موبایلی توسعه یافته با پایتون زیاد نیستند. این به معنی نیست که با استفاده از پایتون نمی توان نرم افزار های موبایلی تولید کرد. کتابخانه Kivi برای همین منظور توسعه داده شده است.
اما پایتون برای طراحی نرم افزار موبایل طراحی نشده است. بنابراین اگر کسی بخواهد نرم افزار موبایلی طراحی کند بهترین گزینه این است که از زبانی استفاده کند که برای این این کار طراحی شده باشد. React و Flutter از جمله این تکنولوژی ها هستند.
با توجه به پیشی گرفتن استفاده از موبایل در مقابل دستک تاپ می توان فهمید که پایتون در این زمینه گزینه خوبی نیست.
خطاهای زمان اجرا
کد های پایتون ابتدا کامپایل و بعد اجرا نمی شوند. در واقع هر زمان که کد ها اجرا شوند کامپایل هم می شوند. این امر منجر به عملکرد ضعیف ، مصرف زمان و نیاز به آزمایش های زیاد می شود. برای مبتندیان این ویژگی خوب است اما برای برنامه نویسان حرفه ای سخت است چون خطا یابی پایتون را دشوارتر می کند.
چه زبانی جایگزین پایتون می شود؟
چند رقیب جدید در دنیای برنامه نویسی وجود دارد که می تواند محبوبیت پایتون را دچار چالش کند.
- Rust: همان ایمنی متغییر ها را تضمین می کند یعنی امکان ندارد هیچ متغییری به صورت تصادفی رونویسی (overwritten) شود. طبق بررسی های سایت StackOverflow این زبان محبوب ترین زبان چند سال اخیر است.
- Go برای مبتدیان برنامه نویسی مانند پایتون عالی است. و آنقدر ساده است که نگهداری کد حتی راحت تر است. نکته جالب این است کخ توسعه دهندگان Go از پردرآمدترین برنامه نویسان بازار هستند.
- Julia زبان بسیار جدیدی است که به صورت مستقیم با پایتون رقابت می کند. برای محسبات ریاضی معمولا از پایتون یا Matlab استفاده می شود و اگر مقیاس بندی داده ها بسیار بزرگ باشد کتاب خانه های بسیار قوی در ++C وجود دارد. Julia این فاصله را پر می کند و به راحتی با انواع مقیاس بندی ها کار می کند.
در حالی که زبان های دیگری در بازار وجود دارد ، Rust ، Go و Julia زبانهایی هستند که نقاط ضعیف پایتون را برطرف می کنند. همه این زبان ها در فناوری های آینده بسیار پرکاربرد هستند ، به ویژه در هوش مصنوعی. در حالی که سهم بازار آنها هنوز اندک است ، همانطور که درجست و جو های کاربران در StackOverflow منعکس شده است ، روند همه آنها مشخص است: رو به رشد.
با توجه به محبوبیت همه جانبه پایتون در حال حاضر ، مطمئناً نیم دهه یا بیشتر طول خواهد کشید تا زبانی دیگر جایگزین پایتون شود.
در حال حاضر گفتن اینکه کدام یک از زبانها Rust ، Go ، Julia یا زبان جدیدی جایگزین پایتون خواهد شد دشوار است. اما با توجه به مباحث مربوط به عملکرد که در معماری پایتون وجود دارد، ناگزیر زبان دیگری جای پایتون محبوب و دوست داشتنی را خواهد گرفت.