В сентябре 2026 года мы приветствуем Кена Уайтселла в качестве участника месяца DSF! ⭐
Кен уже давно является частью сообщества Django, много лет помогая на форуме Django и являясь лауреатом мемориальной премии Малкольма Трединика. Он уже более десяти лет является волонтером на конференции DjangoCon US. Он является членом DSF с сентября 2017 года!
Вы можете узнать больше о Кене, посетив блог Кена и его профиль на GitHub.
Давайте уделим немного времени тому, чтобы получше узнать Кена!
Не могли бы вы немного рассказать о себе? (хобби, образование и т. д.)
Всем привет! Я на пенсии уже чуть больше года. После 45 лет работы в разработке программного обеспечения я теперь свободен тратить свое время на то, что мне интересно. (Можно сказать, что то, что раньше было моим хобби, теперь стало моей профессией.) В настоящее время я живу в горах примерно в 60 милях к юго-востоку от Питтсбурга.
Я в основном считаю себя настольщиком. Настольные игры были моим серьезным увлечением уже более 50 лет и стали одной из движущих сил моего личного развития как программиста. Не с точки зрения программирования или разработки игр, а с точки зрения анализа. Мне нравится изучать вероятности и закономерности, которые могут существовать в определенных играх. В меньшей степени у меня начинает развиваться интерес к использованию ИИ для создания компьютерных противников.
Мое образование было преимущественно неформальным. В старшей школе у меня был урок BASIC, а также немного Fortran и COBOL. Колледж прошел не так гладко — я бросил учебу примерно в середине первого семестра. (Думаю, я бы сказал, что был действительно не готов к этому на нескольких разных уровнях.)
Примерно через девять месяцев я завербовался в ВВС США. Именно там мое образование по-настоящему пошло в гору. У меня был разнообразный опыт, который познакомил меня с технологиями, с которыми я бы в противном случае не смог столкнуться. Возможности обучения были потрясающими, и мне хочется верить, что я воспользовался большинством из них. Помимо этого, остальная часть моего образования в основном строилась на самообразовании.
Как вы начали использовать Django?
Впервые я познакомился с Django на первой конференции PyCon после ее релиза, но моя работа и другие интересы помешали мне изучить его подробно. Только в 2014 году, когда я устроился на работу, чтобы помочь создать систему с его использованием, я серьезно занялся его изучением.
Какие еще фреймворки вы знаете и что бы вы хотели добавить в Django, если бы обладали магическими силами?
О боже. Мы можем долго спорить, пытаясь дать определение понятиям «фреймворк» и «знать». В той или иной степени я работал с Drupal, WordPress, Joomla, CherryPy, Nevow, Spring, meteor.js, LifeRay, ASP.NET и Zope. (Возможно, были и другие, с которыми я работал, но не помню с ходу.)
Помимо моих профессиональных обязанностей, моим любимым проектом является то, над чем я пытаюсь работать уже более 20 лет. Я изучил большое количество фреймворков
Есть ли что-то из тех других фреймворков, что я хотел бы иметь? Я никогда честно не думал об этом в таких категориях. Каждый другой фреймворк, который я использовал, не дотягивал как минимум в одной области, которую я считаю критической — именно поэтому я изучил так много из них.
Я не скажу, что Django идеален, но он идеально подходит мне, моему взгляду на веб, тому, что я хочу делать, и тому, как я хочу подходить к этим решениям. Это наиболее близкое соответствие тому, как я мыслим. Я сталкиваюсь с гораздо меньшим сопротивлением при попытке сделать что-то с помощью Django, чем когда-либо в любом другом фреймворке.
Над какими проектами вы работаете сейчас?
Мой основной проект — это мой движок для игры в настольные игры. У меня есть несколько игр, в которые мне нравится играть, но которые игнорируются сайтами «массового рынка», такими как Boardgame Arena и Tabletop Simulator. Я делаю их браузерные порты для поддержки соревновательной игры в них. У меня также есть пара веб-сайтов, которые я поддерживаю для своего сообщества любителей настольных игр.
Какие библиотеки Django ваши любимые (основные или сторонние)?
Первым и самым важным для меня является Channels. Мой сайт настольных игр не существовал бы, если бы у меня не было «дружественного к Django» способа использования веб-сокетов. С этим связана, но не является библиотекой Django, библиотека HTMX. Она обеспечивает браузерную сторону соединения через веб-сокеты удобным для меня способом.
Помимо этого, я активно полагаюсь на Django Crispy Forms, Django Extensions и Treebeard.
Каковы три главных пункта в Django, которые вам нравятся?
На первом месте стоит тот простой факт, что он написан на Python. При наличии выбора я выберу работу на Python, а не на любом другом языке.
На втором месте находится ORM. Я не против работы с SQL, но я целую прослойку, которая строит объекты из результатов.
Последним из трех являются формы, как их способность отображать HTML, так и проверять вводимые данные.
Вы много лет помогали участникам сообщества на форуме Django и какое-то время в Django Discord. Большое спасибо за вашу помощь. Что заставило вас впервые начать помогать людям и продолжать это делать?
Сообщество всегда было важно для меня. Когда я отправился на свой первый DjangoCon в 2014 году, я знал, что мне многое предстоит узнать. К счастью, нашлось немало джангонавтов, готовых потратить свое время, чтобы помочь мне преодолеть ряд концептуальных препятствий.
На конференциях DjangoCon в 2018 и 2019 годах Карлтон Гибсон выступал с докладами под названием «Вашему веб-фреймворку нужны вы!». Они были не просто вдохновляющими, они напоминали мне, что как участник этого сообщества я несу ответственность за то, чтобы помогать поддерживать его работу. (В моем случае это означало нечто большее, чем просто работу за столом регистрации.) Я начал искать способы, которыми мог бы внести свой вклад.
Также в 2019 году Эндрю Годвин объявил о запуске форума Django. Я читал списки рассылки, но был не в особом восторге от этого как от среды для обсуждения. Я с нетерпением ждал, когда форум станет активной площадкой. Сначала я не был активен — у меня не было каких-то конкретных вопросов, которые нужно было задать, и не было вопросов, опубликованных там, где я чувствовал бы себя достаточно уверенно, чтобы ответить на них.
Мы все знаем, что принес 2020 год. В моем случае он принес много свободного времени, которого у меня бы иначе не было. В феврале я увидел вопрос, на который, как мне показалось, я могу ответить. Затем в марте я увидел еще пару. Я изо всех сил старался ответить на них. Поскольку меня не поправляли и не говорили, что мои комментарии нежелательны, я продолжал. (Даже после работы с Django в течение 5 лет на тот момент я все еще не до конца комфортно понимал ряд концепций.) Затем летом, когда все остальные мои планы рухнули, это стало важной частью моего дня. Я также начал осознавать, что действительно вношу свой вклад в сообщество Django, и это было приятно! Я знал, что никогда не смогу по-настоящему вносить свой вклад в код. Но я также думал, что если я буду тратить свое время на ответы на вопросы, то людям, работающим над кодом, не нужно будет этого делать, и таким образом я косвенно помогал продвигать дело вперед, устраняя хотя бы одно препятствие на их пути.
Так что это стало моим стимулом. Сомнеюсь, что я когда-нибудь отправлю пул-реквест. Но если я смогу сделать хоть что-то, что поможет Fellows или другим ключевым разработчикам двигать Django вперед, я буду очень рад этому.
Моя активность в Discord довольно ограничена. Для быстрых вопросов или обсуждений в реальном времени, пожалуй, это нормально. Но это был бы мой последний выбор платформы, если бы я попытался помочь кому-то с детальным техническим вопросом.
Вы — лауреат мемориальной премии Малкольма Трединика (Malcolm Tredinnick Memorial award), не могли бы вы рассказать нам немного больше об этой премии и о том, что она для вас значит?
Что касается самой премии, я думаю, документация Django говорит об этом лучше всего:
Что она для меня значит? Я воспринимаю ее прежде всего как признание и вдохновение. Это признание того, что я, судя по всему, в целом успешно справляюсь с тем, что пытаюсь делать. И это вдохновение продолжать этим заниматься. Это тот тихий голос внутри меня, который говорит: «Да, то, что ты делаешь, имеет смысл. Ты помогаешь людям».
Что касается знакомства с ним — нет. Мне не посчастливилось застать это. Малкольм ушел из жизни в 2013 году, до того как я начал по-настоящему использовать Django. Тем не менее, почти наверняка я «встречал» его хотя бы раз, работая за стойкой регистрации PyCon с 2005 по 2010 год. Но единственное, что я бы ему сказал, пожаловать было бы: «Привет! Добро пожаловать на PyCon! Ваше имя, пожалуйста?»
Вы недавно вошли в состав команды безопасности, как, по вашим наблюдениям, менялась безопасность Django с течением времени?
Честно говоря, я не уверен, что это можно назвать словом «эволюция», скорее — просто «рост». Одной из сильных сторон Django для меня всегда была ее нацеленность на создание безопасной среды. Насколько я могу судить, проект всегда следовал идеалу «безопасности на этапе проектирования». И когда уязвимости обнаруживаются, их исправляют. Так что я вижу не столько изменения как таковые, сколько увеличение объема работы.
Этот процесс со временем стал более сложным по мере роста Django. Проекту Django всегда везло в том, что в нем работали действительно потрясающе проницательные люди, которые обеспечивали безопасность Django перед лицом постоянно растущих угроз со стороны злоумышленников и ИИ. Я просто надеюсь помочь в поддержании этих усилий.
Вы знаете и используете Django уже давно, есть ли у вас какой-то совет для новичков или любого пользователя/разработчика Django?
Для новичков моя любимая фраза: «Не боритесь с фреймворком». Узнайте, как Django делает вещи, и подстройте под это свое мышление. Делайте всё в стиле Django. Не пытайтесь заставить Django выглядеть или работать так же, как какой-то другой фреймворк, который вы использовали раньше. Как только вы действительно поймете, что к чему, если захотите внести изменения — пожалуйста. Но убедитесь, что вы понимаете последствия этих изменений, прежде чем их делать.
Кроме того, никогда не забывайте, что Django — это Python. Ничто не поможет вам понять Django лучше, чем прочное фундаментальное понимание Python.
Что вы думаете об эволюции Django с годами?
Я думаю, что стабильность и последовательность на протяжении лет были абсолютно потрясающими. Я, наверное, мог бы взять часть кода, написанного мной в 2014 году для Django 1.4, и запустить его сегодня практически без усилий. Django проделала прекрасную работу по продвижению вперед без ненужного отбрасывания того, что было в прошлом. Эта стабильность — одна из причин, почему я так целюсь Django.
Проведя столько времени в сообществе Django, что заставляет вас оставаться?
Это само сообщество, в первую очередь сообщество DjangoCon. (Да, я знаю, что сообщество Django значительно шире, чем просто те, кто посещает DjangoCon, но мое взаимодействие с сообществом в основном вращается вокруг DjangoCon, форума и (теперь) Discord.)
Люди приходят и уходят. Я скучаю по некоторым людям, которые приезжали на DjangoCon 10+ лет назад, но я встречаю новых людей каждый год — и это ощущение не меняется. Есть в нас что-то особенное, когда каждый готов делиться мыслями и идеями, оставаясь дружелюбным и готовым помочь.
Я начинаю ждать следующий DjangoCon на следующий день после окончания предыдущего. Каким вы видите будущее Django со своей точки зрения?
Технически — в основном стабильным, с некоторыми постепенными улучшениями. Я не вижу предпосылок для появления каких-либо изменений, которые заставили бы меня кардинально менять то, что у меня работает сегодня. Если бы в Django произошло что-то принципиально меняющееся, что сломало бы мою существующую систему, я бы, наверное, остался на версии 6.1, пока не потерял бы возможность ее запускать.
Хотите сказать что-нибудь еще?
Спасибо, что пригласили поделиться своей историей!
Спасибо за интервью, Кен!
