امروز : سه شنبه، 24 فروردین 1400

چرا پایتون زبان برنامه نویسی آینده نیست؟

تعداد بازدید: 9

چرا پایتون زبان برنامه نویسی آینده نیست؟

حتی اگر چند سال دیگر تقاضای زیادی داشته باشد. چرا پایتون زبان برنامه نویسی آینده نیست؟

چند دهه طول کشید تا جامعه برنامه نویسان از پایتون قدردانی کنند. اما از اوایل سال 2010 ، آن رونق گرفته است - و در نهایت از محبوبیت C ، C # ، Java و JavaScript فراتر رفته است.

اما تا کی این روند ادامه خواهد داشت؟ چه زمانی سرانجام زبانهای دیگر جایگزین پایتون خواهند شد ، و چرا؟

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

آنچه باعث محبوبیت پایتون در حال حاضر می شود

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

در حالی که R در چند سال گذشته به صورت تقریباً ثابت در آمده است و بسیاری از زبانهای دیگر به طور مداوم در حال کاهش هستند ، رشد پایتون غیر قابل توقف است. تقریباً 14٪ از کل سوالات StackOverflow با عنوان "پایتون" برچسب گذاری شده اند و روند رو به افزایش است. و دلایل مختلفی برای آن وجود دارد.

قدیمی است

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

بنابراین اگر هنگام کد نویسی در پایتون مشکلی دارید ، احتمال اینکه بتوانید آن را با یک جستجوی گوگل حل کنید زیاد است. صرفاً به این دلیل که کسی قبلاً با مشکل شما روبرو شده و مطلبی مفید در مورد آن نوشته است.

پایتون مبتدی پسند است

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

برای شروع ، نیازی به تعیین نوع داده نیست. شما فقط یک متغیر را اعلام می کنید. پایتون از زمینه می فهمد که آیا این یک عدد صحیح است ، یک مقدار شناور ، بولی یا چیز دیگری. این یک امتیاز بزرگ برای مبتدیان است. اگر تا به حال مجبور به برنامه نویسی در ++ C شده اید ، می دانید که برنامه شما کامپایل نمی شود زیرا شما یک float را برای یک عدد صحیح عوض کرده اید.

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

همه کاره است

از آنجا که پایتون مدت زیادی است که وجود دارد ، توسعه دهندگان پکیجی را برای هر منظور تهیه کرده اند. این روزها تقریباً برای همه موارد می توانید پکیجی پیدا کنید.

می خواهید اعداد ، بردارها و ماتریس ها را خرد کنید؟ NumPy انتخاب شماست.
آیا می خواهید محاسبات مربوط به فناوری و مهندسی را انجام دهید؟ از SciPy استفاده کنید.
آیا می خواهید در دستکاری و تجزیه و تحلیل داده ها بزرگ عمل کنید؟ به پانداها برو
می خواهید کار خود را با هوش مصنوعی آغاز کنید؟ چرا از Scikit-Learn استفاده نکنید.

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

نکات منفی پایتون - و اینکه آیا کشنده خواهند بود

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

سرعت

پایتون کند است. مثل ، خیلی آهسته. به طور متوسط ​​، برای انجام یک کار با Python بیش از هر زبان دیگر ، تقریباً 2 تا 10 برابر بیشتر نیاز خواهید داشت.

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

دلیل دیگر این است که پایتون می تواند همزمان فقط یک کار را اجرا کند. این نتیجه انواع داده های انعطاف پذیر است - پایتون باید اطمینان حاصل کند که هر متغیر فقط یک نوع داده دارد و فرایندهای موازی می توانند آن را بهم بریزند.

در مقایسه ، مرورگر وب متوسط ​​شما می تواند همزمان دوازده موضوع مختلف را اجرا کند. و برخی از نظریه های دیگر نیز وجود دارد.

اما در پایان ، هیچ یک از مسائل سرعت مهم نیست. رایانه ها و سرورها آنقدر ارزان شده اند که ما در مورد کسری از ثانیه صحبت می کنیم. و کاربر نهایی اهمیتی نمی دهد که برنامه وی در 0.001 ثانیه یا 0.01 ثانیه بارگیری شود.

محدوده یا scope

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

مشکل اسکوپینگ پویا این است که هر عبارتی باید در هر زمینه ممکن آزمایش شود - که خسته کننده است. به همین دلیل است که بیشتر زبانهای برنامه نویسی مدرن از scoping ثابت استفاده می کنند.

پایتون سعی کرد به حوزه استاتیک برود ، اما آن را بهم ریخت. معمولاً محدوده های داخلی - به عنوان مثال توابع درون توابع - می توانند دامنه های خارجی را ببینند و تغییر دهند. در پایتون ، محدوده های داخلی فقط می توانند دامنه های بیرونی را مشاهده کنند ، اما آنها را تغییر نمی دهند. این منجر به سردرگمی زیادی می شود.

لامبدا

با وجود تمام انعطاف پذیری های موجود در پایتون ، استفاده از Lambdas بسیار محدود است. Lambdas فقط می تواند عباراتی در پایتون باشد و جمله ای نباشد.

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

این تمایز بین عبارات و عبارات کاملاً دلخواه است و در زبانهای دیگر وجود ندارد.

فضاهای سفید

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

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

زبان های جدیدتری مانند Haskell این مشکل را حل می کنند: آنها به فضای سفید اعتماد می کنند ، اما یک نحو جایگزین برای کسانی که مایل به زندگی بدون آن هستند ارائه می دهند.

توسعه موبایل

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

اما بسیاری از برنامه های تلفن همراه با پایتون در حال توسعه نیستند. این بدان معنا نیست که نمی توان آن را انجام داد - برای این منظور یک بسته پایتون به نام Kivy وجود دارد.

اما پایتون با توجه به موبایل ساخته نشده است. بنابراین حتی اگر ممکن است نتایج قابل قبولی برای کارهای اساسی ایجاد کند ، بهترین شرط شما استفاده از زبانی است که برای توسعه برنامه تلفن همراه ایجاد شده است. برخی از چارچوب های برنامه نویسی به طور گسترده ای برای موبایل شامل React Native ، Flutter ، Iconic و Cordova هستند.

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

خطاهای زمان اجرا

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

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

چه چیزی می تواند جایگزین پایتون در آینده شود - و چه زمانی

چند رقیب جدید در بازار زبان های برنامه نویسی وجود دارد:

Rust همان نوع ایمنی را که پایتون دارد ارائه می دهد - هیچ متغیری به طور تصادفی قابل رونویسی نیست. اما این مسئله عملکرد را با مفهوم مالکیت و استقراض حل می کند. طبق StackOverflow Insights این زبان همچنین محبوب ترین زبان برنامه نویسی چند سال گذشته است.
Go برای مبتدیانی مانند پایتون عالی است. و آنقدر ساده است که نگهداری کد حتی راحت تر است. نکته جالب: توسعه دهندگان Go از پردرآمدترین برنامه نویسان بازار هستند.
جولیا زبان بسیار جدیدی است که به صورت مستقیم با پایتون رقابت می کند. خلا محاسبات فنی در مقیاس بزرگ را پر می کند: معمولاً می توان از Python یا Matlab استفاده می کرد و همه چیز را با کتابخانه های C ++ که در مقیاس بزرگ لازم هستند ، وصله می کرد. اکنون ، می توان از جولیا به جای شعبده بازی با دو زبان استفاده کرد.

در حالی که زبانهای دیگری در بازار وجود دارد ، Rust ، Go و Julia زبانهایی هستند که وصله های ضعیف پایتون را برطرف می کنند. همه این زبان ها در فناوری های آینده بسیار برجسته هستند ، به ویژه در هوش مصنوعی. در حالی که سهم بازار آنها هنوز اندک است ، همانطور که در تعداد برچسب های StackOverflow منعکس شده است ، روند همه آنها روشن است: رو به بالا.

سید خلیل حسینی


  • برنامه نویس فول استک پی اچ پی و لاراول
  • پلاگین نویسی وردپرس