کندترین زبان‌های برنامه‌نویسی دنیا

منتشر شده در medium به تاریخ 20 ژانویه 2021
لینک منبع: The Slowest Modern Programming Languages

زبان‌های برنامه‌نویسی زمان زیادی نیست که وجود دارند. هر زبان برای برآورده کردن یک نیاز خاص ساخته شده است. تا به امروز، حدود ۷۰۰زبان برنامه‌نویسی برجسته در جهان وجود دارد. درحالی‌که تنها حدود ۲۵۰زبان زنده ماندند، بقیه توسط جامعه برنامه‌نویسی کنار گذاشته شدند(آخرین داده‌ها از ویکی‌پدیا). عملکرد همیشه یک موضوع هشداردهنده برای برنامه‌نویسان بوده است. درحالی‌که قبلاً زمان اجرا را می‌توانستید در تقویم‌ها اندازه‌گیری کنید، امروزه در کسری از ثانیه اندازه‌گیری می‌شود. دانشمندان به پیشرفت‌هایی در الکترونیک دست یافته‌اند. سرعت تکامل کامپیوترها از قانون مور پیروی می‌کند:

در الکترونیک، سرعت و عملکرد به تعداد ترانزیستورهایی که یک تراشه خاص می‌تواند داشته باشد، بستگی دارد. با توجه به قانون مور، این عدد به طرز شگفت‌انگیزی هر دو سال یک‌بار دو برابر می‌شود. به همین دلیل است که تلفن همراه دستی شما سریع‌تر از یک سوپرکامپیوتر در اندازه اتاق در دهه ۱۹۹۰است. وقتی نوبت به علم کامپیوتر می‌رسد، تفاوتی بین یک کد سریع‌تر و یک کامپیوتر سریع‌تر، و یک برنامه کند و یک کامپیوتر کند وجود دارد. من شرط می‌بندم که دوستان ما در اینتل و AMD در حال ایجاد سیستم‌های محاسباتی قدرتمند از نظر سرعت هستند. بنابراین، ایجاد برنامه‌های قوی و سریع به ما بستگی دارد.

یکی از مواردی که هنگام ایجاد نرم‌افزار باید در نظر گرفته شود، انتظارات زبانی است. هر زبان به‌صورت متفاوتی اجرا می‌شود، بنابراین هر زبان مزایای خاص خود را ارائه می‌دهد. و سرعت ممکن است در میان این محاسن نباشد. اکنون، اگر سعی دارید برنامه‌ای ایجاد کنید که وظایف دشوار مانند بازی‌ها و محاسبات سنگین ریاضی را انجام دهد، بهتر است از زبان‌های برنامه‌نویسی کند دوری کنید.

به‌طورکلی زبان‌های برنامه‌نویسی دو نوع هستند:

  • زبان‌های برنامه‌نویسی نوع آماری
  • زبان‌های برنامه‌نویسی نوع پویا

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

بیشتر ما زبان‌های پویا را دوست داریم. زبان‌هایی مانند پایتون که کم‌تر در معرض خطا هستند و به‌راحتی توسط انسان تفسیر می‌شوند. اما هزینه‌این کار بالا است: سرعت! در این پست، ما 4 زبان از زبان‌های برنامه‌نویسی کند یا به عبارتی با کم‌ترین تنوع پویایی را مشخص خواهیم کرد.

زبان برنامه‌نویسی کند: پرل (Perl)

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

علاوه بر این، پیدا کردن یک برنامه‌نویس پرل این روزها مثل پیدا کردن یک سوزن در انبار کاه است. این به این دلیل است که برخلاف پایتون، برای مثال، پرل نسبت به پیاده‌سازی بسیار حساس است و هر اپراتور باید در جای درستی قرار گیرد تا یک برنامه نسبتاً کارآمد داشته باشید. حتی با وجود کارآمدترین پیاده‌سازی‌ها، پرل هنوز هم پشت زبان‌های برنامه‌نویسی سطح بالای خود قرار گرفته است. بااین‌حال، هنوز هم در حال رشد است و مشکلات بهره‌وری یکی پس از دیگری حل می‌شوند، به‌خصوص پس از انتشار پرل ۶در سال ۲۰۱۹، که نامش راکو بود.

زبان برنامه‌نویسی PHP

زبان PHP یک زبان برنامه‌نویسی توسعه وب است و معمولاً HTML، CSS و MySQL را در توسعه وب‌سایت تکمیل می‌کند. بسیاری استدلال می‌کنند که PHP منسوخ شده است. اما حقیقت این است که این‌طور نیست! w3techs گفت: «PHP توسط ۷۹.۰٪از تمام وب‌سایت‌هایی که زبان برنامه‌نویسی سمت سرور آن‌ها را می‌شناسیم، استفاده می‌شود.»

علاوه بر این، بررسی اخیر Stackoverflow در سال ۲۰۲۰در مورد زبان‌های برنامه‌نویسی، اسکریپت نویسی و نشانه‌گذاری متن، PHP را به‌عنوان یک زبان کاملاً زنده نشان داد که هم C + + و هم Typescript را در برمی‌گرفت:

بااین‌حال، ازآنجاکه PHP یک منحنی یادگیری تدریجی دارد و میزبانی آن ارزان است، از نظر عملکرد آسیب‌پذیر است. PHP به دلیل ضعف کامپایل به‌موقع (کامپایلر JIT) و این‌که یک زبان از نوع پویا است، فوق‌العاده کند است.
خوشبختانه، در ۲۶نوامبر ۲۰۲۰، PHP8 با یک ویژگی بهینه‌سازی عملکرد بیرون آمد: یک کامپایلر JIT درونی. کامپایلر ساخته‌شده در JIT به PHP کمک کرد تا به زبان‌های برنامه‌نویسی طبقه خود از نظر سرعت و عملکرد نزدیک‌تر شود.

زبان برنامه‌نویسی کند روبی (Ruby)

یوخیرو ماتسوموتو، نویسنده رسمی روبی و معروف به ماتز در جامعه روبی گفت: « روبی برای خوشحال کردن برنامه نویسان طراحی شده است.» روبی یک زبان برنامه‌نویسی شی گرا است. همه چیز در آن به‌عنوان یک شی تفسیر می‌شود. این امر آن را به ابزاری زیبا و آسان برای کار با آن تبدیل کرده است. چوب‌دستی را تکان دهید و کار را تمام کنید.

بااین‌حال، از نظر عملکرد، روبی یک زبان به‌طورمعمول تفسیر شده ‌است. ازآنجاکه زبان‌های تفسیر شده کد را جمله به جمله اجرا می‌کنند، تمایل دارند در مقایسه با زبان‌هایی که از کامپایلر استفاده می‌کنند، آهسته‌تر عمل کنند. روبی ضربه دیگری را از نظر سرعت از قفل مترجم جهانی (GIL) می‌خورد. این بدان معنی است که این زبان در هر زمان تنها به یک رشته اجازه می‌دهد تا از GIL استفاده کند.

در نهایت، روبی از مصرف حافظه بالا و کندی نیز رنج می‌برد.

زبان برنامه‌نویسی پایتون (Python)

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

پایتون و روبی اعضای یک خانواده هستند. آن‌ها هم به خاطر GIL و هم به خاطر استفاده از یک مفسر، زبان‌های برنامه‌نویسی کند هستند. تفاوت اصلی بین این دو این است که اولی بیشتر علم داده محور است درحالی‌که دومی بیشتر به سمت توسعه وب گرایش دارد. بااین‌حال، پایتون توسط کتابخانه‌ها و عملکردهای قدرتمند خود حمایت می‌شود. و برخی از این کتابخانه‌ها و توابع، مانند مدل عددی و تابع فیلتر () درونی، در C++ اجرا می‌شوند که منجر به افزایش قابل‌توجهی از نظر عملکرد می‌شود. به همین دلیل است که پایتون این روزها در حال غلبه بر زبان‌های برنامه‌نویسی مشابه خود است.

نتیجه‌گیری

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

در واقع، دلیل اصلی مسائل سرعت و عملکرد، پیاده‌سازی‌های ضعیف و طراحی کد بد است.

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