1 1 1 1 1 1 1 1 1 1 Rating 0.00 (0 Votes)

sherepПродуктивність додатків завжди викликала стурбованість у програмістів, особливо тепер, коли вона вимірюється нікчемними частками секунд.
Переклад публікується зі скороченнями, автор оригінальної статті Mohammed Ayar

Мови програмування існують вже кілька десятиліть, і кожен з них створений для задоволення визначеної потреби. На сьогоднішній день в світі налічується близько 700 відомих мов програмування, але на плаву залишитися вдалося тільки приблизно 250 з них.

Продуктивність безпосередньо залежить від швидкості, з якою еволюціонують комп'ютери, дотримуючись закону Мура:
В електроніці швидкість і продуктивність залежать від кількості транзисторів, які може мати конкретний чіп. Відповідно до закону Мура це число подвоюється кожні два роки. Хлопці з Intel і AMD відмінно справляються зі створенням потужних обчислювальних систем з точки зору швидкості, тому розробка надійних і швидких програм залежить і від нас з вами. Якщо ви намагаєтеся створити додаток, який виконував би складні завдання на зразок ігор і важких математичних обчислень, краще триматися подалі від повільних мов програмування.

Мови бувають двох різновидів: статично і динамічно типізовані.

Статично типізовані мови зазвичай компілюються, т. Е. Компілятор аналізує і перетворює весь «людський» код в асемблер, а потім створює новий файл, який, в свою чергу, виконується користувачем вручну.

Динамічно типізовані мови зазвичай інтерпретуються, т. Е. Інтерпретатор аналізує і запускає код за рядком. Більш детальну інформацію про компіляторах і інтерпретатора можна знайти в інтернеті, т. К. Цей матеріал виходить за рамки статті.

Більшості з нас подобаються динамічно типізовані мови. Вони менш схильні до помилок і легко інтерпретуються людиною, як Python, наприклад. За це доводиться жертвувати швидкістю. У статті ми розглянемо відносно повільні динамічно типізовані мови програмування, які широко поширені.

Perl
Якщо вже мали справу з UNIX, то ви знайомі зі сценаріями на Perl. Цей скриптова мова Unix був створений для спрощення завдань, з якими програмістам доводиться стикатися при написанні довгих «простирадл» на Shell. Якщо коротко, це були гори команд, поміщені в один файл і виконувані послідовно.

Що ще більш важливо, Perl прийшов, щоб полегшити завдання, які вважалися кошмаром для виконання в C і інших поширених в Unix мовами. Як це зазвичай буває, без бою і жертв не здаються - Perl сильно страждав в продуктивності.

Крім того, знайти хорошого програміста Perl в наші дні - все одно, що намагатися знайти голку в стозі сіна. На відміну від Python, наприклад, Perl чутливий до реалізації, і кожен оператор повинен бути в правильному місці, щоб мати щодо ефективну програму. Навіть з ефективними реалізаціями Perl все ще відстає від своїх високорівневих аналогів, але майбутнє у мови є - він росте, намагається розвиватися, а проблеми ефективності вирішуються одна за одною, особливо після випуску Perl 6 (з кодовим ім'ям Raku) в 2019 році.

PHP
PHP - це скриптова мова програмування для веб-розробки, який зазвичай використовується в зв'язці з HTML, CSS і MySQL при розгортанні веб-сайтів. Багато хто стверджує, ніби PHP застарів, але судячи з досліджень w3techs: «PHP використовується в 79% всіх сайтів в якості бекенда, а іноді і фронтенда».

Недавнє опитування з мов програмування, сценаріїв та розмітки, проведений StackOverflow в 2020 році, показав, що PHP - конкурентоспроможний і жива мова, що перевершує C ++ і Typescript:

Все в ньому добре: низький поріг входження, найпростіший синтаксис і дешевизна розміщення, але він страждає від браку продуктивності.

PHP неймовірно повільний через відсутність just-in-time компілятора (JIT compiler) і того факту, що це динамічно типізований мову. 26 листопада 2020 року вийшов PHP 8 з крутими функціями оптимізації продуктивності і вбудованим JIT-компілятором. Ці оновлення допомогли PHP наблизитися до мов програмування свого класу за швидкістю і продуктивності.

Ruby
Ruby - це об'єктно-орієнтована мова програмування. Все інтерпретується як об'єкт, що робить його елегантним і простим інструментом для роботи. З точки зору продуктивності Ruby - це повністю інтерпретована мова. Оскільки такі мови виконують код оператор за оператором, вони, як правило, працюють повільніше в порівнянні з використовують компілятори мовами.

Ruby просідає по швидкості з вини Global Interpreter Lock (GIL) - мова дозволяє одному потоку одночасно використовувати GIL. І останній «косяк» - Ruby також страждає від високого споживання пам'яті і повільної збірки сміття.

Python
Універсальний Python недавно зайняв 1-е місце як найбільш популярна мова програмування за даними декількох джерел, на кшталт statista і The Economist. Він широко використовується в data science, веб-розробки та кібербезпеки.

Це правда: його переваги явно переважують недоліки, але зараз у більшості «пітоністов» є питання на тему швидкості. Python і Ruby - члени однієї сім'ї. Вони обидва повільні через GIL і факту використання інтерпретатора. Основна відмінність в тому, що перший орієнтований на DS та інше «околотемное», в той час як другий більше тяжіє до веб-розробці.

Python рясніє потужними бібліотеками та функціями. Деякі з них, такі як модуль Numpy або вбудована функція Filter (), реалізовані в C ++, що призводить до значного підвищення продуктивності. Ось чому Python процвітає в наші дні, обганяючи інші подібні мови програмування.
висновок

Хоча швидкість і продуктивність є важливими факторами, які слід брати до уваги, коли справа доходить до реалізації програмного забезпечення, вина не повинна покладатися тільки на мови програмування. Дійсно, основна причина серйозних проблем зі швидкістю і продуктивністю - це погані реалізації і поганий дизайн коду.

 

1-kubx8ll-uw8jbnxiyzu7lw

1-kubx8ll-uw8jbnxiyzu7lw


В кінцевому рахунку, не дивлячись на повільність динамічно типізованих мов, вони забезпечують отримання крутого досвіду, а також підвищують продуктивність розробника - програмування ніколи не буває нудним.

Додати коментар


Захисний код
Оновити

Якщо ви помітили помилку, то виділіть фрагмент тексту та натисніть Ctrl+Enter