Производительность.
По производительности в большинстве тестов, реализующих типичные наборы операций бэкэнда (обработка запросов, генерация веб-страниц), Go превосходит Python на величину от нескольких раз до нескольких порядков. Это неудивительно ввиду статического характера языка и того, что программы на Go компилируются непосредственно в код целевой платформы. В системах, где основное затрачиваемое время уходит на выполнение запросов к БД или передачу информации по сети, это несущественно, но в высоконагруженных системах, обрабатывающих большое число запросов, преимущество Go бесспорно. Также на разницу в производительности Go- и Python-программ влияют отмеченные выше различия в реализации параллелизма.
Perl[править | править код]
Оба языка являются интерпретируемыми, компилируются в промежуточное представление, которое затем отправляется на исполнение. В случае Python генерируется промежуточный байт-код, а компилятор Perl генерирует синтаксическое дерево. Управление памятью в обоих языках автоматическое, а сами языки используются как скриптовые и хорошо подходят для написания веб-приложений. Подход в написания кода Python предполагает лучшее понимание листинга программы в ущерб производительности, тогда как в Perl больше свободы в синтаксисе, что может привести к тому что программы на Perl становятся нечитабельны для программистов, не работающих с данным языком[131].
Lua[править | править код]
Lua — простой язык, исходно разработанный для встраивания в ПО и использования для автоматизации сложных операций (таких, как поведение ботов в компьютерных играх). Python также может применяться в этих областях, ещё он конкурирует с Lua в написании скриптов автоматизации управления компьютером и операционной системой и в непрофессиональном программировании «на себя». В последние годы оба языка стали встраиваться в мобильные устройства, например, в программируемые калькуляторы.
Оба языка являются динамическими, интерпретируемыми, поддерживают автоматическое управление памятью, имеют стандартные средства взаимодействия с ПО, написанным на других языках (главным образом C и C++). Среда исполнения Lua компактнее и требует для работы меньше ресурсов, чем Python, что даёт Lua преимущество при встраивании. Как и Python, Lua поддерживает компиляцию исходного текста в исполняемый виртуальной машиной байт-код. Существует реализация JIT-компилятора для Lua.
Lua проще, чем Python, и имеет более классический паскалеподобный синтаксис. В языке всего восемь встроенных типов данных, а все структурированные типы (структуры, перечисления, массивы, множества) моделируются на основе единственного встроенного типа «таблица», который фактически является гетерогенным словарём. ООП реализуется на таблицах и строится по прототипной модели, как в JavaScript. Python предоставляет больше возможностей, а его структурированные типы данных имеют каждый свою реализацию, что повышает производительность. Возможности ООП в Python существенно шире, что даёт преимущество при написании сложных программ, но мало влияет на качество и производительность простых скриптов, на которые ориентирован Lua.
Do'stlaringiz bilan baham: |