Я пишу ПО уже больше двадцати лет и с каждым днём всё больше убеждаюсь, что сильная статическая типизация — это не просто хорошая идея, но и почти всегда верный выбор.
Рубрика «типизация»
Я до последнего буду защищать сильную статическую типизацию
2023-10-05 в 5:46, admin, рубрики: вывод типов, компиляция, статическая типизация, типизацияRust моей мечты — несостоявшийся язык
2023-06-11 в 7:24, admin, рубрики: c++, Rust, Исследования и прогнозы в IT, Компиляторы, Программирование, типизацияВ одном недавнем подкасте о том, кто сейчас главный в Rust, вновь всплыл вопрос о том, кому быть BDFL (великодушным пожизненным диктатором), и Джереми Соллер сказал (это был чемпионский заход на приз «за преуменьшение века»): «Я считаю, Грейдон забраковал бы некоторые вещи, которые всем нам сейчас нравятся». Этим он вторит другой дискуссии на redditЧитать полностью »
Когда типизация делает тебе больно: как у нас появился статический анализатор
2023-05-16 в 9:11, admin, рубрики: pycharm, python, Блог компании Selectel, Программирование, статический анализатор, типизация, язык программированияУдобство процесса разработки напрямую влияет на скорость работы и на количество ошибок при написании кода. Что делать, если среда разработки почему-то отказывается использовать автодополнение во всю силу? Правильно, искать обходные пути и изобретать велосипеды.
Язык программирования Python в силу своей динамичности может легко создать ситуацию, когда статический анализатор не может вывести типы и, как следствие, часть проверок отключается. В статье я подробно расскажу о проблеме в разработке системы управления выделенными серверами, которую мы сами себе создали, а затем героически решили. В примерах используется интерпретатор Python 3.10, а средой разработки выступает PyCharm 2022.2.4.
Текст будет интересен тем, кто хочет узнать новые стороны Python, и кому любопытно, с какими проблемами можно столкнуться, если использовать все модные фичи языка.
Читать полностью »
Сказка о типизации
2023-03-25 в 6:47, admin, рубрики: generics, java, ненормальное программирование, типизация, Читальный зал, юморВ некотором царстве, в некотором государстве жил был царь. Как-то раз объявил царь всему народу - "Кто решит три моих задачки, тот сам сможет царём стать". И даже контракт метода опубликовал, всё честь по чести.
public interface ЦарёвУказ1844 {
interface РешилВсеЗадачи {}
void setЦарь(Человек<? extends РешилВсеЗадачи> новыйЦарь);
Человек<?> getЦарь();
}
Пришёл к царю кузнец, в разных делах дока, и говорит: "Давай свои задачки"
Царь руки потирает и говорит: "Ну что ж, изволь. Вот моя первая задачка"
Задача о боровиках
Почему я начал использовать аннотации типов в Python – и вам тоже советую
2022-02-25 в 7:09, admin, рубрики: python, аннотации, Блог компании Издательский дом «Питер», ооп, Программирование, рефакторинг, Совершенный код, типизацияС появлением подсказок типов (type hints) в Python 3.5+ добавилась опциональная статическая типизация – поэтому эти подсказки так мне нравятся. Теперь я аннотирую ими все мои проекты.
Сага о типизации и тайпчекинге для JavaScript
2021-02-09 в 8:16, admin, рубрики: c++, Cpp, javascript, kotlin, TypeScript, Блог компании Яндекс, команда яндекс.маркета, типизацияПривет! Хочу поделиться своими мыслями по, казалось бы, простой теме — типизации. В частности, поговорить о тайпчекинге в JavaScript.
Часто люди воспринимают типизацию как эдакую серебряную пулю, которая защищает от всех проблем. Но это не так, часто ожидания от типизации неоправданны, а простота таких инструментов, как TypeScript, обманчива и слишком переоценена.
Это не типичная статья из серии «Изучаем TypeScript», а, как мне кажется, фундаментальная история. Мы начнем с основ, поговорим о данных, о способе их хранения, а затем перейдем к типизации и посмотрим, как она влияет на работу программы.
C++ в Практикуме. Как обучить студентов плюсам, не отпугивая
2021-01-26 в 10:44, admin, рубрики: c++, Cpp, Блог компании Яндекс.Практикум, Карьера в IT-индустрии, обучение, обучение программированию, Программирование, типизация, учебный процесс, Учебный процесс в ITКачественное образование — это не просто формальный диплом именитого вуза или парочка сертификатов о пройденных курсах. Это прежде всего новые навыки и уверенное желание применять их на практике. Такое возможно, если человек на самом деле хорошо учился и если его хорошо учили. Ведь даже самую интересную дисциплину можно преподавать так, что студентам будет откровенно скучно.
Типы в инженерных задачах
2020-12-27 в 16:27, admin, рубрики: PL/1, Компиляторы, отладка, Программирование, Софт, типизация, трансляцияВведение
Зарегистрирована партия нового типа.
Личность типа выясняется.
Старая шутка.
Вот уже 38 лет мне приходится решать разнообразные задачи путем составления соответствующих программ. За все эти годы диапазон таких задач получился весьма большим: от программирования контроллера AT90S2313 до программы автоматического обращения русско-немецкого технического словаря в немецко-русский, и от расчета оптимального сечения стрингера до рисования вида земной поверхности из иллюминатора с орбиты методом обратной трассировки лучей.
Rust глазами Python-разработчика
2020-12-21 в 7:33, admin, рубрики: mypy, python, Rust, Блог компании Rambler Group, типизация
Привет! Мы – часть команды разработки «Рамблер/Медиа» (портал «Рамблер»). На протяжении трех лет мы поддерживаем и развиваем несколько больших python-приложений. Чуть больше года назад перед нами встала задача написать еще одно большое приложение – API к основному хранилищу новостей, и мы сделали это на Rust.
В статье мы расскажем о том, что заставило нас отойти от привычного стека технологий, и покажем, какие плюсы по сравнению с Python есть у Rust.
Мы не ответим на вопрос, почему выбор пал именно на Rust, а не Go, например, или на какой-либо другой язык. Также мы не будем сравнивать производительность Python- и Rust-приложений – эти темы достойны отдельного обсуждения.
Устройство CPython. Доклад Яндекса
2020-07-22 в 7:00, admin, рубрики: cpython, python, Блог компании Яндекс, генераторы, интерпретатор, исключения, память, Программирование, Промышленное программирование, словари, типизация, типы, управление памятьюМы публикуем конспект вступительной лекции видеокурса «Бэкенд-разработка на Python». В ней Егор Овчаренко egorovcharenko, тимлид в Яндекс.Такси, рассказал о внутреннем устройстве интерпретатора CPython.
— Если кратко, какой у нас будет план? Сначала мы поговорим о том, почему будем изучать именно Python. Затем посмотрим, как работает интерпретатор CPython более глубоко, как он управляет памятью, как устроена система типов в Python, на словари, генераторы и исключения. Я думаю, это займет примерно час.
Читать полностью »