К какому виду относится язык программирования python

Отказ от ответственности: Это эссе было написано где-то в 1997 году. Это показывает его возраст. Она хранится здесь просто как исторический артефакт. —Гвидо ван Россум

Python часто сравнивают с другими интерпретируемыми языками. Такими как Java. JavaScript, Perl. Tcl или Smalltalk. Сравнение с C++, Common Lisp и Scheme также может быть поучительным. В этом разделе я кратко сравню Python с каждым из этих языков. Эти сравнения сосредоточены только на языковых вопросах. На практике выбор языка программирования часто диктуется другими реальными ограничениями. Такими как стоимость. Доступность. Обучение и предшествующие инвестиции или даже эмоциональная привязанность.

Поскольку эти аспекты сильно варьируются. Это кажется пустой тратой времени рассматривать их слишком много для такого сравнения.

Ява

Программы на языке Python, как правило, работают медленнее. Чем программы на языке Java. Но их разработка также занимает гораздо меньше времени. Программы на Python обычно в 3-5 раз короче, чем эквивалентные программы на Java. Эта разница может быть объяснена встроенными высокоуровневыми типами данных Python и его динамической типизацией. Например, программист Python не тратит времени на объявление типов аргументов или переменных. А мощные полиморфные списки и словари типов Python. Для которых богатая синтаксическая поддержка встроена прямо в язык. Находят применение почти в каждой программе Python.

Из-за типизация во время выполнения, время выполнения Python должно работать тяжелее, чем Java. Например, при вычислении выражения a+b он должен сначала проверить объекты a и b. Чтобы выяснить их тип. Который не известен во время компиляции. Затем он вызывает соответствующую операцию добавления. Которая может быть перегруженным определяемым пользователем методом. Java, с другой стороны. Может выполнять эффективное сложение целых чисел или чисел с плавающей запятой. Но требует объявления переменных для a и b и не допускает перегрузки оператора + для экземпляров пользовательских классов.

По этим причинам Python гораздо лучше подходит в качестве На самом деле. Они вместе составляют отличную комбинацию. Компоненты могут быть разработаны на Java и объединены для формирования приложений на Python; Python также может использоваться для прототипирования компонентов до тех пор. Пока их дизайн не будет Для поддержки этого типа разработки разрабатывается реализация Python. Написанная на Java. Которая позволяет вызывать код Python из Java и наоборот.

В этой реализации. Исходный код Python переводится в байт-код Java (с помощью библиотеки времени выполнения для поддержки динамической семантики Python).

Язык JavaScript

Как и JavaScript (и в отличие от Java), Python поддерживает стиль программирования. Который использует простые функции и переменные. Не занимаясь определениями классов. Однако для JavaScript это все, что есть. Python, с другой стороны. Поддерживает написание гораздо больших программ и лучшее повторное использование кода с помощью истинного объектно-ориентированного стиля программирования. Где классы и наследование играют важную роль.

Perl

Python и Perl имеют схожий фон (сценарии Unix. Которые оба давно переросли) и обладают многими похожими функциями. Но имеют другую философию. Perl подчеркивает поддержку общих прикладных задач, например. За счет встроенных регулярных выражений. Функций сканирования файлов и создания отчетов. Python подчеркивает поддержку общих методик программирования. Таких как проектирование структуры данных и объектно-ориентированное программирование. И поощряет программистов писать читаемый (и. Следовательно. Поддерживаемый) код. Предоставляя элегантную. Но не слишком загадочную нотацию.

Как как следствие, Python приближается к Perl. Но редко превосходит его в своей первоначальной прикладной области; однако Python имеет применимость далеко за пределами ниши Perl.

Tcl

Как и Python, Tcl можно использовать как язык расширения приложений. А также как автономный язык программирования. Однако Tcl, который традиционно хранит все данные в виде строк. Слаб в структурах данных и выполняет типичный код гораздо медленнее. Чем Python. Tcl также не хватает функций, необходимых для написания больших программ. Таких как модульные пространства имен.

Таким образом, в то время как Конечно, чистая разработка на Python-это очень много это быстрее. Чем писать и отлаживать компоненты на языке Си или Си++. Было сказано, что единственным спасительным качеством Tcl является инструментарий Tk. Python принял интерфейс к Tk в качестве своей стандартной библиотеки компонентов GUI.

Tcl 8.0 решает проблему нехватки скорости. Предоставляя компилятор байт-кода с ограниченной поддержкой типов данных и добавляя пространства имен. Однако это все еще гораздо более громоздкий язык программирования.

Smalltalk

Возможно, самая большая разница между Python и Smalltalk-это более

Как и Smalltalk, Python имеет динамическую типизацию и привязку, и все в Python является объектом. Однако Python отличает встроенные типы объектов от пользовательских классов и в настоящее время не допускает наследования от встроенных типов. Стандартная библиотека Smalltalk типов коллекционных данных более совершенна. В то время как библиотека Python имеет больше возможностей для работы с интернет-и WWW-реалиями. Такими как электронная почта. HTML и FTP.

У Python другая философия в отношении среды разработки и распространения кода. В то время как Smalltalk традиционно имеет монолитный

Одним из следствий этого является то. Что существует несколько вариантов подключения графического интерфейса пользователя (GUI) к программе Python. Поскольку графический интерфейс не встроен в систему.

C++

Почти все сказанное для Java также относится и к C++, только в большей степени: там. Где код Python обычно в 3-5 раз короче эквивалентного кода Java. Он часто в 5-10 раз короче эквивалентного кода C++! Анекдотические данные говорят о том. Что один программист на Python может закончить за два месяца то. Что два программиста на C++ не могут закончить за год.

Python сияет как клеевой язык, используемый для объединения компонентов, написанных на C++.

Common Lisp и схема

Эти языки близки к Python по своей динамической семантике. Но настолько различны по своему подходу к синтаксису. Что сравнение становится почти религиозным аргументом: является ли отсутствие синтаксиса Lisp преимуществом или недостатком? Следует отметить, что Python обладает интроспективными возможностями. Аналогичными возможностям Lisp. И программы Python могут создавать и выполнять фрагменты программ на лету. Обычно решающими являются свойства реального мира: Common Lisp велик (во всех смыслах), а мир схем фрагментирован между многими несовместимыми версиями. Где Python имеет единую, свободную. Компактную реализацию.