Язык Perl нацелен на создание быстрых программ во время выполнения? - PullRequest
6 голосов
/ 31 августа 2010

У меня недавно был друг, скажите мне

"видите, Perl никогда не был предназначен, чтобы быть быстрым"

  • Это правда?

Соответствующую информацию, которую я могу найти, можно найти в Wikipedia :

Язык предназначен для практического использования (прост в использовании,эффективный, полный), а не красивый (крошечный, элегантный, минимальный).

Но это напрямую не говорит о скорости.Я думаю, что со всей необходимой обработкой текста скорость выполнения действительно важна для такого языка, как Perl.И со всем странным синтаксисом элегантность никогда не была целью, я согласен.

  • Была ли высокая скорость исполнения одной из целей разработки Perl?

Ответы [ 5 ]

9 голосов
/ 31 августа 2010

Есть один важный аспект, который необходимо учитывать: алгоритмы. Секретное оружие Perl - это алгоритмы, поддерживающие определенные языковые функции и библиотеку CPAN.

Хорошие алгоритмы превосходят необработанную скорость выполнения для нетривиальных задач. Обычно требуется больше усилий для выбора и реализации алгоритмов на C-подобных языках, чем в Perl. Это означает, что при полдневном кодировании небольшого инструмента Perl-версия часто превосходит C-версию, потому что было проще создавать хорошие структуры данных с хешами и с использованием функций, предоставляемых в языке и библиотеках.

8 голосов
/ 31 августа 2010

Как только скрипт Perl запускается (т.е. после загрузки и компиляции всего), он может быть очень быстрым. Это тот отвратительный компилятор, который каждый раз немного неприятен.

Однако я считаю, что людям не нужно беспокоиться о том, насколько быстрым может быть Perl. Они тратят все свое время на реализацию глупых проектов, которые выполняют гораздо больше работы, чем нужно, недопонимание ключевых технологий или просто головокружение. Я нередко помогаю кому-то ускорить процесс, просто настраиваясь в нужных местах. Это не особенно относится к Perl. У людей есть такая проблема с каждым языком.

7 голосов
/ 31 августа 2010

Perl всегда стремился к практичности, а не к чему-то (даже близко) к какой-то чистоте башни из слоновой кости, где нескольким целям присваивается абсолютный приоритет, а другие игнорируются (полностью или почти полностью).

Поэтому я считаю разумным сказать, что поддержание разумной скорости выполнения всегда считалось важным для Perl, но есть и другие факторы (особенно такие, как гибкость и простота использования), которые как правило, больше важно, поэтому, если нужно сделать выбор между одним из них и скоростью выполнения, другой фактор, как правило, победит, если только влияние на скорость выполнения не будет действительно серьезным.

3 голосов
/ 31 августа 2010

Я бы сказал, что язык, который разработан для оптимальной производительности во время выполнения, не будет иметь конструкций, позволяющих компилировать во время работы.Так что нет, возможно.

1 голос
/ 31 августа 2010

Начиная с версии Perl 5.0 это стало целью проекта.Но имейте в виду, что он по-прежнему интерпретируется, поэтому он быстр для интерпретируемого языка.

...