В сентябре 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, и это было приятно! Я знал, что никогда не смогу по-настоящему внести вклад в код. Но я также подумал: если я потрачу свое время на ответы на вопросы, то людям, работающим над кодом, не придется этого делать, и, таким образом, косвенно я помогаю двигаться вперед, устраняя хотя бы одно препятствие с их пути.
Так что это стало моим мотиватором. Сомневаюсь, что когда-нибудь отправлю PR. Но если я могу сделать что-то, что поможет Fellows или другим значимым разработчикам продвигать Django вперед, я буду вполне счастлив.
Моя активность в Discord довольно ограничена. Для быстрых вопросов или открытых текущих обсуждений, полагаю, это нормально. Но это была бы последняя платформа, которую я бы выбрал, чтобы попытаться помочь кому-то с подробным техническим вопросом.
Вы являетесь лауреатом премии имени Малкольма Трединика (Malcolm Tredinnick Memorial award), не могли бы вы рассказать нам немного больше об этой награде и что она для вас значит?
Что касается самой награды, думаю, документация Django говорит об этом лучше всего:
Что она значит для меня? Я рассматриваю её прежде всего как признание и вдохновение. Это подтверждение того, что я, как мне кажется, в целом успешен в том, что пытаюсь делать. И это вдохновение для меня продолжать этим заниматься. Это тот самый внутренний голос, который говорит: «Да, то, что ты делаешь, ценно. Ты помогаешь людям».
Что касается личного знакомства, то нет. Мне не посчастливилось быть с ним знакомым. Малкольм ушел из жизни в 2013 году, до того как я начал по-настоящему использовать Django. Однако почти наверняка я «встречал» его хотя бы раз, работая на стойке регистрации PyCon с 2005 по 2010 год. Но единственное, что я мог бы ему сказать, это: «Привет! Добро пожаловать на PyCon! Как вас зовут?»
Вы недавно стали частью команды безопасности, как, по вашему мнению, развивалась безопасность Django с течением времени?
Честно говоря, я не уверен, что описал бы это как «развитие», скорее как просто «рост». Одной из сильных сторон Django для меня всегда была его нацеленность на создание безопасной среды. Насколько я могу судить, проект всегда стремился к идеалу «безопасности по проектированию» (Security by design). И когда уязвимости обнаруживаются, их исправляют. Поэтому я не вижу, чтобы что-то менялось — просто объем работы увеличивается.
Это процесс, который стал сложнее с годами, по мере того как 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, пока не смог бы её больше запускать.
Хотите ли вы сказать что-то еще?
Спасибо, что пригласили меня поделиться своей историей!
Спасибо за интервью, Кен!







