machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Создатель Python о том, как язык программирования учится на Type Script

Дата публикации Oct 3, 2019

Создатель Python, Гвидо ван Россум, рассказал о том, как язык программирования заимствует идеи из дополнительного JavaScript-кода TypeScript.

Ван Россум говорил на недавнем благотворительном мероприятии PuPPy в Сиэтле, где он обсудил первые дни Python, а также коснулся того, что он думает о будущем языка. В прошлом году Ван Россум отошел от того, чтобы стать «доброжелательным диктатором жизни» языка, насмешливым упоминанием его роли, определяющей развитие языка.

В ходе обсуждения PuPPy Ван Россум сказал, что полезные функции аннотации типов в Type Script вдохновляют на реализацию подобных идей в Python.

Чтобы получить глубокие знания по Python, вы можете записаться на демопитон онлайн курс

«Я обнаружил, что Type Script невероятно полезен, поэтому мы добавляем похожую идею в Python, добавляем ее немного по-другому, потому что у нас другой контекст», - сказал он.

После события Ван Россум подтвердил, что поведение Type Script, о котором он говорил, было необязательной проверкой типов, что стало возможным в Python.

Проверка типов позволяет разработчикам обнаруживать класс ошибок, которые могли бы в противном случае проникнуть в программное обеспечение, выполняя проверки перед выполняемым кодом, которые проверяют различные операции, например, имеют ли данные, передаваемые в функции и из них, правильный тип. В статически типизированных языках разработчики обычно указывают тип переменной или параметра функции, когда они объявлены, например, используя ключевое слово int для указания целого числа или str для указания строки символов, чтобы использовать два простых примера. По сравнению,

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

Однако Ван Россум сказал, что динамическая типизация не подходит для больших и сложных кодовых баз.

«Я усвоил болезненный урок, что для небольших программ динамическая типизация хороша, для больших программ вам нужно применять более дисциплинированный подход, и это помогает, если язык действительно дает вам эту дисциплину, а не говорит вам:« Ну, вы можете делать все, что угодно хочу », - сказал он.

Хотя Python по-прежнему является языком с динамической типизацией, в 2015 году в Python 3.0 появилась поддержка подсказок типов, которые позволяют разработчикам включать аннотации, позволяющие средству проверки типов, например mypy, проверять, передаются ли правильные типы в функции и из функций.

Эти аннотации являются необязательными и не выполняются, что позволяет разработчику использовать сочетание динамической и статической типизации и предназначены для того, чтобы не влиять на скорость выполнения кода. В дополнение к подсказкам типов, представленным в Python Enhancement Proposal (PEP) 484, в язык добавлен ряд других функций, которые предоставляют ловушки для работы с контролерами типов, включая PEP 526, PEP 544, PEP 561 и PEP 563.

В своем предыдущем выступлении Ван Россум сказал, что Dropbox, где он сейчас работает главным инженером, начал вводить аннотации типов в своиКод Pythonв 2015 году, а к 2018 году два миллиона из примерно шести миллионов строк кода были аннотированы.

Использование Type Hints в коде Python также было принято широким кругом фирм, включая Facebook, Quora и Lyft. Средства проверки типов, кроме mypy, теперь также используют подсказки типов для проверки типов в Python.

Как указывает Van Rossum, Type Script также предоставляет аннотации типов, которые можно проверить с помощью средства проверки типов. Эти аннотации типов являются одной из ключевых дополнительных функций, которые делают Type Script, расширенный набор JavaScript, более привлекательным выбором, чем JavaScript, для написания больших приложений.

Также, выступая на мероприятии PuPPy, Андерс Хейлсберг, создатель TypeScript, сказал, что, вопреки полученной мудрости, он полагал, что системы типов действительно «значительно» повышают производительность разработчиков.

«Я уверен, что вы все привыкли к таким вещам, как завершение операторов, рефакторинг, навигация по коду и так далее», - сказал он.

«Если подумать, то, что обеспечивает семантическое знание вашего кода, и то, что обеспечивает семантическое знание вашего кода, - это компилятор с системой типов.

«Как только вы добавите типы, вы сможете значительно повысить производительность, что в некотором смысле кажется нелогичным.

«Я думал, что к динамическим языкам проще подходить, потому что у вас нет типов, которые беспокоят это все время. Что ж, получается, что на самом деле вы можете быть более продуктивными, имея типы, если вы делаете это ненавязчивым образом и если вы усердно работаете, делая хороший вывод типов и так далее ».

Оригинальная статья

Footer decor

© machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map