IT-инфраструктура для бизнеса и творчества
Разработка
Evrone

Неделя интервью Evrone — день 7. Автор Flask Армин Ронахер про Python и время для работы и семьи

Некоторые люди кажутся супегероями. Вот Армин Ронахер — у него есть обычная работа, он делает большой вклад в open-source сообщество, а ещё у него трое детей и свои side-проекты. Всегда интересно узнать, как такие люди смотрят на мир, что считают важным? Мы узнали — в нашем интервью.

Армин Ронахер — плодовитый разработчик, который существенно повлиял на развитие экосистемы программного обеспечения Python, создав такие популярные проекты, как Flask и Jinja2. Армин рассказал нам о своей работе в Sentry, о различиях между Rust и Python и рассказал, как ему удаётся достичь баланса между работой и личной жизнью.

Вот самое интересное из интервью:

  • Технически Python имеет много недостатков, которые затрудняют его использование. Например, вы можете загружать только одну версию библиотеки для проекта, так что с зависимостями не разгуляешься.
  • Python — очень зрелый, взрослый язык, в нём есть много такого, чего не найдёшь в других языках. Прочим экосистемам понадобится немало времени, чтобы приобрести такие богатые возможности, какие накопил Python.
  • Несмотря на свои недостатки и те разочарования, которые он вызывает, Python весьма неплохо подходит для быстрого решения проблем, и в этом смысле он так же хорош в 2020 году, как и 15 лет назад.
  • Так как я работаю в компании, специализирующейся на отчётах о сбоях, на меня валится куча ошибок бэка:) Урок, который я извлёк из этого — проектировать типы ошибок надо не менее тщательно, чем другие возвращаемые значения.
  • Наверняка изменения в Mozilla окажут влияние на язык Rust в целом, но я не думаю, что из-за этого ему будет нанесён какой-либо ущерб. А вот то, что проекта Servo больше не будет, наверняка сильно повлияет на развитие как языка, так и сообщества.

По моим ощущениям, единственно правильного способа нанимать или оценивать кандидатов не существует, многое зависит от того, насколько хорошо вы понимаете людей в целом.

Армин Ронахер
автор Flask
  • Если бы пришлось обучать кого-то программированию в 2020 году, я, скорее всего, выбрал бы C, Rust и Python. Прежде всего Python, потому что вы можете показать студентам исходный код интерпретатора, и они поймут, что происходит «под капотом». Со многими популярными языками такой номер не пройдёт.
  • Компьютеры ужасны. Я одновременно люблю и ненавижу macOS. Всё ещё сижу на ней и каждый раз, когда пытаюсь перейти на что-то другое — через пару недель возвращаюсь.
  • Моё рабочее время обычно делится на две части. Я работаю с 9 до 15–16, когда нужно забирать детей из детского сада. Затем вечером я общаюсь онлайн с людьми из разных часовых поясов. Такое двухсекционное расписание меня устраивает, ведь я могу проводить время с детьми, пока на улице светло.
  • Никто не в силах быть хорошим родителем круглые сутки без передышки. Но когда вы можете провести время с детьми, вы должны уделять им должное внимание.

Полную версию интервью с техническими вопросами и деталями читайте на нашем сайте.

(function () { let cdnUrl = `https://specialsf378ef5-a.akamaihd.net/SelectelBranding/images/` let previousArticleNumber = null let currentArticleNumber = 0 let platform = 'Desktop' let articles = [ { name: 'camera', url: `${cdnUrl}CameraCat`, text: 'умную камеру для\u00A0наблюдения за\u00A0котиками', link: 'https://vc.ru/selectel/306690', num: 3 }, { name: 'chill', url: `${cdnUrl}ChillCat`, text: 'трекер, который подскажет, когда пора отдохнуть', link: 'https://vc.ru/promo/288561-eye-tracker', num: 1 }, { name: 'cloud', url: `${cdnUrl}CloudCat`, text: 'котика: даёшь ему «пять», а\u00A0он делает бэкап в облако', link: 'https://vc.ru/dev/294799-maneki-neko', num: 2 } ] let buttonCycle = document.querySelector('.button--cycle') let buttonChoose = document.querySelector('.button--choose') let buttonMobile = document.querySelector('.button--mobile') let textField = document.querySelector('.selectel-footer-subtitle') let imageAgent = document.querySelector('.image--agent') let banner = document.querySelector('.selectel-footer') buttonCycle.addEventListener('click', cycleClick) buttonChoose.addEventListener('click', () => sendEvent(`Promo ${articles[currentArticleNumber].num} Left`, 'Click')) buttonMobile.addEventListener('click', () => sendEvent(`Promo ${articles[currentArticleNumber].num} Left`, 'Click')) let media = window.matchMedia("(max-width: 570px)") media.addEventListener('change', matchMedia) function matchMedia() { if (media.matches) { platform = 'Mobile' } else { platform = 'Desktop' } update() } matchMedia() function cycleClick(event) { sendEvent(`Promo ${articles[currentArticleNumber].num} Right`, 'Click') if (event) { event.preventDefault() event.stopPropagation() } window.open('https://vc.ru/tag/selectelDIY', '_blank') //cycle(event) } function cycle(event) { // incrementArticleNumber() textField.innerHTML = generatedText() imageAgent.src = articles[currentArticleNumber].url + platform + '.svg?3' imageAgent.setAttribute("class", "") imageAgent.classList.add('image--agent', articles[currentArticleNumber].name) banner.href = articles[currentArticleNumber].link } function update() { banner.href = articles[currentArticleNumber].link imageAgent.src = articles[currentArticleNumber].url + platform + '.svg' textField.innerHTML = generatedText() } function incrementArticleNumber() { previousArticleNumber = currentArticleNumber if (currentArticleNumber >= articles.length - 1) { currentArticleNumber = 0 } else { currentArticleNumber++ } } const sendEvent = (label, action = 'Click') => { const value = `SelectelDIY — loc: Footer — ${label} — ${action}`; if (window.dataLayer !== undefined) { window.dataLayer.push({ event: 'data_event', data_description: value, }); } }; function generatedText() { let defaultText if (platform === 'Desktop') { defaultText = `Мы тут собрали %text%. Хотите научим?` } else { defaultText = `Мы тут собрали %text%.` } return defaultText.replace('%text%', articles[currentArticleNumber].text) } function getRandom(min, max) { min = Math.ceil(min) max = Math.floor(max) return Math.floor(Math.random() * (max - min + 1)) + min } (function create() { currentArticleNumber = getRandom(0, articles.length - 1) cycle() let page = document.querySelector('.page--entry') if (page) { function insertAfter() { let parents = page.querySelectorAll('[data-id="7"]') let referenceNode = parents[0] referenceNode.parentNode.insertBefore(banner, referenceNode.nextSibling); loaded() } setTimeout(() => insertAfter(), 0) } }()) function loaded() { banner.classList.add('loaded') } loadImages([ `${cdnUrl}CameraCatDesktop.svg`, `${cdnUrl}ChillCatDesktop.svg`, `${cdnUrl}CloudCatDesktop.svg`, `${cdnUrl}CameraCatMobile.svg`, `${cdnUrl}ChillCatMobile.svg`, `${cdnUrl}CloudCatMobile.svg?3`, ]) function loadImages(urls) { return Promise.all(urls.map(function (url) { return new Promise(function (resolve) { var img = document.createElement('img'); img.onload = resolve; img.onerror = resolve; img.src = url; }); })); } }())
0
1 комментарий
Популярные
По порядку
Максим Костюков

Можете идти дальше со своим сайтом.

Ответить
–1
Развернуть ветку
Читать все 1 комментарий
Один небанальный совет в борьбе с бессонницей

Бессонница в наши дни не всегда является патологией - зачастую у людей просто отсутствует культура сна и режима. Тело и мозг просто перестают различать стимулы, которые в здоровой ситуации сигнализируют организму об отходе ко сну. В этой статье я раскрою только один, но очень действенный совет, который поможет выработать механизм быстрого…

Самые сильные идеи в жизни

Предприниматель Сахил Блум публикует в своем Твиттере интересные жизненные идеи и парадоксы. Представляю перевод твиттер треда «22 самых сильных идеи в жизни».

Twitter приобрел миноритарный пакет акций Aleph Group — материнской компании Httpool

Twitter Inc. (TWTR) — первая из компаний Кремниевой долины, которая стала акционером глобальной рекламной группы Aleph, объединяющей компании IMS, Httpool, Wise.Blue и AdDynamo. Таким образом Twitter поддержит международную образовательную инициативу Aleph Group по усилению цифровой экосистемы в странах с развивающейся экономикой.

Украли деньги с карты Тинькофф

30.12.2021 года я с семьей дочери поехала в магазин "Спортмастер" в г. Москва покупать коньки. Уведомлений от Тинькофф не было. 31.12.2021 года я увидела что есть какие то пуш уведомление при нажатии на него оно исчезло. Когда я зашла в онлайн приложение, то увидела что у меня с кредитной карты сняли 106 000 рублей , было снятие 7 суммами. Кроме…

Анализ тональности текста с использованием фреймворка LightAutoML

Сентиментный анализ (анализ тональности) – это область компьютерной лингвистики, занимающаяся изучением эмоций в текстовых документах, в основе которой лежит машинное обучение.

Геозоны: разделяй и властвуй

Ильдар Бикташев, руководитель отдела картографии и алгоритмов, уже рассказывал, какие задачи стоят перед картографическими сервисами Master Delivery. Сегодня продолжаем разговор о том, как геоаналитические разработки решают маркетинговые и логистические задачи бизнеса.

GFN (не) сделает любое устройство игровым. Проблемы сервиса и почему им не стоит пользоваться.​
Для абонентов Мегафон и Yota. Вы не знали, а вам открыли счет в банке!

Для тех кому интересна развязка, она внизу (выделено жирным).

Идеальный тимлид: миф или реальность?

Кто такой идеальный тимлид? Что ожидает руководство от такого сотрудника? Колонка Алексея Кирсанова, руководителя разработки «Битрикс24».

Uber извинился перед собаками

Генеральный директор Uber Дара Хосровшахи принес извинения и даже дал скидку в 10 долларов…собакам.

Акции роста российских эмитентов на ближайшие 5 лет

Пандемия меняет мир и формируется новая тенденция на ближайшие годы. Ниже будут представлены компании, акции которых способны в новых мировых реалиях опередить динамику фондовых индексов.

null