Почему я люблю языки с сильной системой типов, проверяемой статическим анализом кода — хорошо написанная программа является своей собственной спецификацией и позволяет выражать через язык программирования законы существования предметной области.
Когда-то давно я писал на ActionScript. Там была система типов, но вот десериализация JSON'ов по-умолчанию была в какой-то общий Object, к полям которого нужно было обращаться ["по_строковому_имени"]. В один момент мне потребовалось написать что-то на C#, который я совсем не знал, я стал гуглить, как десериализовать JSON, и с удивлением обнаружил кучу советов заранее объявить класс со всеми нужными полями и десериализовать в него.
"Какой ужас!", — подумал я тогда, — "Это же дико неудобно! А если я не знаю полей JSON? А если их много? Отвратительный язык!"
Теперь то я прекрасно понимаю, что JSON это контракт, и что правильная десериализация только такая и должна быть, и что в хорошем API в одном поле никогда не бывает данных принципиально разных типов, и так далее.
Нет, если вы набиваете вечерами пет-проект или сидите бессонную ночь на хакатоне, нет ничего плохого в том, чтобы взять простой язык с динамическими типами вроде JavaScript или Python, не требующий описывать данные. Но вот в энтерпрайзе, особенно когда над одним проектом работает много людей (а бывает это очень часто) — хорошее использование системы типов убережёт разработчиков от огромного количества ошибок, будет бить их по рукам, когда они пытаются сделать что-то не то, и будет подсказывать, когда они не уверены в чём-то.
С помощью статической типизации можно на уровне кода обозначить правила, по которым ведёт себя предметная область вашей программы в реальном мире. Разработчику не только будет сложно их нарушить, но он ещё и станет узнавать какие-то вещи, которые мог не знать раньше.
Например, если мы делаем медицинскую CRM, и больница заводит новых пациентов только тогда, когда знает их группу крови, мы можем объявить тип "Пациент" (или, если точнее, "Карта пациента") и запретить создавать экземпляры этого типа, не передав в конструктор группу крови (которая, в свою очередь, тоже является типом, вероятнее всего ValueObject'ом). Если новый программист пришёл в проект, он, во-первых, не сможет записать в БД некорректную карту пациента. Понятно, мы не учитываем случаи, когда новый программист переделывает модели предметной области — это будет хорошо видно на кодревью. А, во-вторых, даже если ему никто не сказал, что пациенты должны быть с группой крови, он узнает это из кода. И уже будет понимать, что в тех процессах реальной жизни, которые он описывает кодом, карта пациента создаётся только при наличии группы крови. А, значит, нужно искать какой-то способ сначала эту группу крови получить, и только потом создавать карту. Программирование моделирует реальный процесс.
В настоящей работе даже на языках с типами, конечно, без должного контроля можно написать что угодно. Нужна управленческая воля, компетентность руководства, понимание опасности техдолга, в идеале отдельные должности для архитекторов, опытные лиды и старшие разработчики. Но когда всё это есть, можно отсекать много проблем ещё на старте и проще погружать новичков.
#dev
В основном конкурсе предстоящих Канн 12–23 мая будут участвовать:
«Минотавр» / Minotaur, Андрей Звягинцев. Драма о руководителе крупной российской компании, у которого рушатся работа и личная жизнь. В ролях: Анатолий Белый, Варвара Шмыкова.
«Возлюбленная» / El Ser Querido (The Beloved), Родриго Сорогойен. Семейная драма о знаменитом режиссере и его дочери-актрисе, которые снова встречаются на съемочной площадке. В ролях: Хавьер Бардем, Виктория Луэнго, Марина Фоис.
«Мужчина, которого я люблю» / The Man I Love, Айра Сакс. Нью-Йорк конца 1980-х: театральный артист, живущий со СПИДом, получает, возможно, последнюю большую роль. В ролях: Рами Малек, Ребекка Холл.
«Отечество» / Fatherland, Павел Павликовский. Историческая драма о Томасе Манне и его дочери Эрике Манн, которые в 1949 году едут через послевоенную Германию. В ролях: Ханнс Цишлер, Сандра Хюллер.
«Мулен» / Moulin, Ласло Немеш. Биографическая драма о деятеле французского Сопротивления Жане Мулене. В ролях: Жиль Леллуш, Ларс Айдингер.
«Праздник дня рождения» / The Birthday Party, Леа Мисиюс. Триллер о семейном празднике, вокруг которого начинают происходить все более тревожные события. В ролях: Хафсия Эрзи, Бенуа Мажимель, Моника Беллуччи.
«Фьорд» / Fjord, Кристиан Мунджиу. Драма о семье, переехавшей в норвежскую деревню и оказавшейся под подозрением. В ролях: Себастиан Стэн, Ренате Рейнсве.
«Наше спасение» / Notre Salut, Эмманюэль Марр. История человека, который в 1940 году пытается встроиться в режим Виши. В ролях: Сванн Арло.
«Нежный монстр» / Gentle Monster, Мари Кройцер. Драма о знаменитой пианистке, чья жизнь начинает трещать после переезда за город. В ролях: Леа Сейду, Катрин Денев.
«Заметки Наги» / Nagi Notes, Кодзи Фукада. История художницы Ёрико в сельской Наги, которая не может пережить прежнюю любовную связь. Актерский состав пока не раскрыт.
«Надежда» / Hope, На Хон Чжин. Научно-фантастический триллер о загадочном открытии на окраине удаленного портового городка. В ролях: Алисия Викандер, Майкл Фассбендер, Тейлор Расселл.
«Барашек в коробке» / Sheep in the Box, Хирокадзу Корээда. Фильм заявлен в конкурсе, но подробный синопсис и актерский состав пока не раскрыты.
«Неизвестная» / The Unknown, Артюр Арари. Психологическое фэнтези, частично вдохновленное графическим романом Le cas David Zimmerman. В ролях: Леа Сейду, Нильс Шнайдер.
«Все внезапно» / All of a Sudden, Рюсукэ Хамагути. Драма о руководительнице дома престарелых в пригороде Парижа, которая встречает смертельно больную японскую драматургиню. В ролях: Виржини Эфира, Тао Окамото.
«Воображенное приключение» / Das Geträumte Abenteuer, Валеска Гризебах. Драма о женщине, которая в пограничной зоне между Болгарией, Грецией и Турцией соглашается помочь старому знакомому в незаконном деле.
«Горькое Рождество» / Amarga Navidad, Педро Альмодовар. Трагикомедия о женщине, переживающей смерть матери, и о превращении личной жизни в автофикшн. В ролях: Барбара Ленни, Леонардо Сбаралья.
«Параллельные истории» / Parallel Tales, Асгар Фархади. Драма с несколькими переплетающимися сюжетными линиями. В ролях: Изабель Юппер, Венсан Кассель, Виржини Эфира, Катрин Денев.
«Жизнь женщины» / A Woman’s Life, Шарлин Буржуа-Таке. Подробный синопсис пока не раскрыт. В ролях: Леа Дрюкер, Мелани Тьерри, Лоран Лафитт.
«Черный шар» / La Bola Negra, Хавьер Кальво и Хавьер Амбросси. Драма о трех мужчинах, связанных желанием, болью и семейным наследием в разные эпохи. В ролях: Пенелопа Крус, Гленн Клоуз.
«Трус» / Coward, Лукас Донт. Военная драма о бельгийском солдате в окопах Первой мировой. Актерский состав пока не раскрыт.
«Другой день» / Another Day, Жанн Эрри. История молодой актрисы, проходящей через тревогу, переезды и нарастающую зависимость. В ролях: Адель Экзаркопулос.
Еще интересно, что в секции Un Certain Regard заявлен фильм «UĻA» латвийского режиссера Виестурса Кайришса. В синопсисе говорится, что это история о старообрядцах и о баскетболистке Ульяне Семёновой.
на фото Шэрон Тейт на съёмках «Долина кукол», 1967
#cannes
В 1957 году Франсуа Трюффо приехал в Канны в качестве молодого критика, представляющего Cahiers du Cinéma. Всего через год, в 1958 году, его запретили приглашать на фестиваль и обвинили в нападении на основы французского кино
В 1959 году он совершил триумфальное возвращение — на этот раз в качестве режиссёра с фильмом «400 ударов», став лучшим режиссёром этого выпуска
#cannes
78-й Каннский фестиваль подвёл итоги и список победителей получился на редкость разносторонним. Ниже —фильмы, о которых будут говорить всё лето:
Золотая пальмовая ветвь — «Простая случайность», реж. Джафар Панахи
Триллер о бывшем политзаключённом, который сталкивается с человеком, похожим на его бывшего палача, и решает выяснить правду. Фильм исследует темы мести и справедливости
Гран-при — «Сентиментальная ценность», реж. Йоаким Триер
Драма о напряжённых отношениях между отцом, режиссёром в упадке, и его дочерью, актрисой. Фильм исследует темы семейных конфликтов и искусства
Лучший режиссёр — Клебер Мендонса Фильо, «Тайный агент»
Политический триллер, действие которого происходит в Бразилии 1970-х годов, во времена военной диктатуры. Фильм исследует темы диктатуры и сопротивления
Приз жюри — «Сират», реж. Оливер Лаше
История отца, который вместе с сыном отправляется в Марокко на поиски пропавшей дочери
Приз жюри — «Звук падения», реж. Маша Шилински
Эпическая сага, охватывающая столетие, о четырёх девушках, живущих на немецкой ферме в разные эпохи
Лучший сценарий — «Молодые матери», реж. Жан-Пьер и Люк Дарденны
Реалистичный портрет пяти подростков, ставших матерями, и их жизни в приюте. Фильм поднимает вопросы социальной поддержки и личной ответственности
Лучшая женская роль — Надя Меллити, «Младшая сестра»
История молодой женщины, дочери алжирских иммигрантов, которая сталкивается с конфликтом между традициями и своей идентичностью
Лучшая мужская роль — Вагнер Моура, «Тайный агент»
Вагнер Моура исполняет роль агента в политическом триллере, действие которого происходит во времена военной диктатуры в Бразилии
Специальный приз — «Воскрешение», реж. Би Гань
Визуально насыщенное и метакинематографическое путешествие, исследующее историю кино и человеческую память через онейрическую призму
«Золотая камера» за лучший дебют — «Президентский торт», реж. Хасан Хади
Иракская история о детях, которые готовят торт для президента во времена режима Саддама Хусейна, отражая жизнь под диктатурой
Лучший короткометражный фильм — «Я буду рад, если ты сейчас умрешь», реж. Тауфик Баром
Короткометражный фильм, исследующий темы агрессии и абсурда в офисной среде
Все победители Канн 2025 ТУТ
#cannes
Blackout — целый день все в Каннах и окрестностях без электричества. Французские власти называют это актом саботажа: был подожжён трансформатор и повреждён пилон линии электропередачи
Фестиваль не растерялся — переключился на генераторы, и показ «Звука падения» в зале Агнес Варда возобновился через 20 минут после темноты и аварийного освещения. Церемония закрытия кинофестиваля идет своим чередом
Следствие уже начато, но власти пока не утверждают, что целью атаки стал сам фестиваль
Пока прокуратура ищет виновных, полицейские вручную регулируют движение на перекрёстках, а туристы хлопают в ресторанах, когда наконец возвращается свет
#cannes
На «Неделе критики» в Каннах главный приз получил фильм A Useful Ghost о женщине, погибшей от загрязнения воздуха, которая возвращается в этот мир… в виде пылесоса. Героиня борется за право быть полезной даже после смерти — изгоняет призраков на семейной фабрике, налаживает отношения с роднёй и, видимо, очень хорошо убирается, потому что Канны аплодировали стоя
Метафоры — густые, как смог над Бангкоком: капитализм, классовое неравенство, токсичные родственники и пыль, под которой прячется всё. В главных ролях: актриса, актёр, пылесос
«A Useful Ghost» получил высокие оценки критиков за свою оригинальность, глубокий смысл и смелость в освещении острых социальных тем. Фильм был отмечен как «смелая и независимая работа, которая сочетает в себе юмор, политический комментарий и глубокую человечность»
#cannes