کدام زبان های برنامه نویسی ممکن است در آینده گوی سبقت را از پایتون بگیرند؟

4 زبان برنامه نویسی Swift، Go، Julia و R، به عنوان ۴ رقیب سرسخت برای سلطنت پایتون از نظر راحتی و چند کاره بودن به حساب می آیند. در این مقاله توضیح خواهیم داد که چطور هر یک از این زبان های برنامه نویسی به طور بالقوه می توانند پایتون را از تخت پادشاهی پایین کشند و چرا به عقیده برخی پایتون به زودی سقوط خواهد کرد. با سکان آکادمی همراه باشید.

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

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

Swift
سوئیفت زبان برنامه نویسی جدید اپل است که در اصل برای توسعه iOS ایجاد شد. البته بعدتر، این زبان برنامه نویسی اپن سورس شد و به نحوی تغییر یافت که برای توسعه ی سرور ساید هم کارآیی داشته باشد. نوشتن کد در سوئیفت بسیار ساده و بدون تکلف است، درست همانند زبان های اسکریپت نویسی همچون پایتون! سوئیفت را می توان یکی از نوادگان آبجکتیو سی (Objective-C) دانست. جایی که سوئیفت برتری خودش نسبت به پایتون را به نمایش می گذارد مربوط به سرعت اجرا است. سوئیفت مانند کامپایلر LLVM، به زبان ماشین کامپایل می شود. یعنی این که پایتون می تواند از چندنخی پشتیبانی کند، چیزی که پایتون هنوز در حال دست و پنجه نرم کردن با آن است.

در شرایطی که سرعت توسعه مهم تر از سرعت اجرا باشد، استفاده از پایتون می تواند بسیار مفید باشد. البته سوئیفت هم به تبعیت از پایتون چنین ویژگی را در خود جای داده است چرا که می توان به کمک محیط توسعه یکپارچه XCode از مد «Playground» در سوئیفت بهره برای افزایش سرعت توسعه بهره برد.

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

Go
گو زبان برنامه نویسی تحسین برانگیز، مختصر، ساده و مؤثر گوگل است که در حال حاضر از همه چیز، از Docker و پروژه های مرتبط و با آن در پایگاه داده های InfluxDB گرفته تا سیستم Ethereum blockchain و پکیج منیجر Canonical’s Snappy را پشتیبانی می کند.

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

اگر چه Go به اندازه سوئیفت جدید نیست (در سال 2009 به طور رسمی معرفی شد)، ولی در مقایسه با پایتون از تعداد کاربران و لایبرری های کمتری برخوردار است. همچنین کاربران کنونی پایتون نسبت به سینتکس های Go و روش آن برای کمک به برطرف کردن ارور ها کاملاً بیگانه و ناآشنا هستند. نتیجه آن است که احتمال تبدیل شدن کاربران پایتون به طرفداران Go چندان محتمل نیست. البته به هر حال هیچ کدام از این مواردی که ذکر کردیم مانع افزایش تعداد کاربران Go نمی شود. همچنین مواردی مانند Pyinstaller، باندل کردن اپلیکیشن های پایتون را بسیار راحت تر و سریع تر کرده اند.

Julia
جولیا در سال 2012 عرضه شد و بیشتر کاربردهای فنی مانند تحلیل داده ها و جبر خطی دارد. یکی از کاربردهای عمده زبان برنامه نویسی پایتون در دنیای امروز، به کارگیری آن برای مسائل ریاضیاتی و علمی است که به کمک لایبرری هایی مانند Numpy و فرمت تعاملی IPython notebook انجام می شود. از نظر پایگاه کاربری (Userbase)، جولیا همانند پایتون است و از نظر سرعت نیز همانند Go و Swift توانسته است از پایتون پیشی بگیرد.

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

علاوه بر این ها، برخی در مورد نحوه کنار هم چیده شدن جولیا تردید دارند. به طور مثال آرایه های جولیا به جای آن که Zero-indexed باشند، 1-indexed هستند که از این نظر نه تنها با پایتون، بلکه تقریباً با تمام زبان های برنامه نویسی دیگر متفاوت است. شاید علت این کار را بتوان مربوط به پکیج های تکمیلی مانند Mathematica که از 1-indexing استفاده می کنند دانست تا به این صورت کاربرهای آن سیستم نیز به جولیا رغبت پیدا کنند. با این حال، این تفاوت و تردیدها در مورد جولیا همچنان پای بر جا مانده اند.

R
زبان برنامه نویس R یک پروژه بلند مدت است که هم به عنوان یک محیط توسعه و هم به عنوان یک زبان برنامه نویسی برای محاسبات آماری مورد استفاده قرار می گیرد. R مزایای زیادی نسبت به پایتون دارد که از جمله آن ها می توان به اکوسیستم غنی از پکیج های Third Party نوشته شده برای این زبان برنامه نویسی اشاره کرد. R همچنین با در نظر گرفتن محاسبات کامپیوتری و برای این منظور طراحی شده است که به نظر می رسد در این زمینه نسبت به پایتون تخصصی تر عمل کرده است!

R همچنین توانسته است توجه بسیاری از شرکت های بزرگ را هم به خود جلب کند. به طور مثال، غول نرم افزاری دنیا -مایکروسافت- اقدام به خرید تیم توسعه ی یکی از ابزارهای استاندارد این زبان برنامه نویسی به منظور تکمیل سرویس های داده ابری خود کرد. Hewlett-Packard که با نام مستعار HP شناخته می شود نیز توانست نسخه یی تحت عنوان Distributed R را توسعه دهد که قادر است به طور هم زمان بر روی چندین نود اجرا شود. با این تغییر، نسخه های آینده R می توانند پایتون را از صحنه رقابت ها در زمینه کارهای آماری به در کنند.

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

درنهایت اگرچه اقداماتی که مایکروسافت بر روی R انجام می دهد برای این زبان برنامه نویسی بسیار مفید اند ولی با توجه به این که مایکروسافت به پایتون نیز کمک می کند، باید گفت که پایتون در Azure هم به خوبی قابل اجرا است.

ترجمه: سکان آکادمی

منبع: http://www.infoworld.com/article/3088165/application-development/4-languages-poised-to-out-python-python.html

 


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


یک دیدگاه

  • سلام , مهمان
  • خروج
  • ورود

    Or use one of these social networks

  • باسلام می خواستم بپرسم آیا شما با CUDA یا PyCUDA یا هر زبان برنامه نویسی مربوط به GPU کار کردید؟ من پروژم در مورد شبیه سازی دینامیک مولکولی هست. بخاطر همین برای کاره کمی سنگینتر به روش های بهتری برای موازی نویسی نیاز دارم. با سپاس فراوان

This site is protected by wp-copyrightpro.com