Приветствуем нашего еженедельного спонсора Pusher to Hacker Noon! Pusher создает API-интерфейсы реального времени, которые позволяют разработчикам по всему миру быстро добавлять функции общения и совместной работы в свои приложения. Их основной продукт позволяет разработчикам легко создавать такие функции, как уведомления в приложениях, потоки активности, информационные панели в реальном времени, живые трекеры и многое другое.
Сегодня мы встретимся с евангелистом разработчиков Pusher Заном Марканом , чтобы обсудить состояние Котлина, что заставляет его делать то, что он делает, и что делает космического ковбоя космическим ковбоем.
Дэвид : Давайте начнем с состояния Котлина . Недавно вы провели опрос Kotlin (подробнее об основах здесь ). С января по март 2018 года вы опросили 2744 человека, чтобы узнать пульс экосистемы. Какие результаты опровергли ваши предположения? Какие результаты подтвердили ваши предположения? И каков общий вывод о том, что происходит с Kotlin?
Зан : Верно. Мы заметили, что все больше и больше разработчиков используют Kotlin при создании приложений с помощью наших продуктов, поэтому решили копнуть глубже и выяснить, что их мотивирует. Я узнал несколько удивительных вещей.
Во-первых, я был искренне удивлен той любовью, которую студенты и младшие разработчики оказывают Kotlin. Я ожидал большей разницы между более/менее опытными разработчиками, но новая толпа действительно проникает в Kotlin, поскольку Google поддержал сообщество.
Еще меня удивило то, как много людей хотят опробовать функции, которые команда Kotlin называет экспериментальными, а именно сопрограммы и поддержку мультиплатформенных проектов — примерно по 25–30% каждая.
Результаты опроса более или менее подтвердили мои подозрения о том, насколько велик Android — около 80% по данным нашего опроса. Некоторые другие опросы, которые я видел, показывают немного меньший процент Android, но все же уверенно превышают отметку в 75%. Частично эта разница может быть связана с тем, что моя сеть в основном ориентирована на Android, но эффект был явно не таким большим.
Одним из выводов является то, что Kotlin — интересный язык, который радует разработчиков.
Это довольно редко (по крайней мере, для чего-то вроде основного языка программирования), и в результате вокруг всей экосистемы Kotlin сформировалось активное и восторженное сообщество.
Основная разработка Kotlin осуществлена командой программистов JetBrains из Санкт-Петербурга, Россия. Что еще вы можете рассказать о его основании? А когда вы впервые использовали Kotlin?
Насколько мне известно, история Kotlin связана с желанием компании JetBrains «лучшей Java» для своих инструментов разработчика. Функциональная совместимость и повышение производительности были одними из их главных целей, и ни один другой язык на основе JVM в то время действительно не отвечал всем требованиям — Scala отвечала большинству требований, но инструментов просто не было, а время сборки было слишком медленным. для нужд разработки JetBrains.
Именно эта идея хорошо совместимой и лучшей Java стала причиной того, что она начала привлекать так много разработчиков Android (включая меня, который занимался Android с первых дней).
Несколько лет назад экосистема Android в основном застряла на старой версии Java — странном гибриде Java 7 и Java 6, который не имел таких приятных функций, как лямбда-выражения, и был довольно многословным. Итак, люди начали экспериментировать с этой новой вещью, которая казалась прекрасно совместимой и позволяла повысить производительность (особенно в тех случаях, когда она не ломала все 😅).
Именно это меня и затянуло в него — я впервые услышал о нем в 2014 году, а затем внимательно следил за развитием Kotlin — либо играя с ним в свободное время, либо используя его для быстрого прототипирования вещей. Я написал первый рабочий код Kotlin, когда работал над продуктами Pusher Chatkit и Feeds .
Как вы думаете, почему Kotlin угодил менее опытным разработчикам? И что мешает этому стать причудой?
Ха! Я не думаю, что это обслуживает менее опытных разработчиков как таковое, на самом деле я рассматриваю это как довольно похожую группу, которую мы видели в результатах опроса StackOverflow, поэтому ничего неожиданного с точки зрения развития отрасли.
Мы также заметили, что сначала его подхватили в основном опытные (работающие) разработчики, и лишь недавно его стали применять студенты и молодые разработчики.
Я рассматриваю Kotlin как язык, который можно быстро освоить. Существует отличный инструментарий, который позволяет нам работать продуктивно, даже не зная большей части этого. Он совместим с Java, поэтому любое портирование или миграцию можно выполнять в удобном для вас темпе. И, наконец, Google и JetBrains отлично справляются с подготовкой документации и ресурсов, поддерживающих Kotlin.
Что отличало Kotlin от других языков программирования и что, по вашему мнению, способствовало его быстрому распространению? И вообще, что, по вашему мнению, отличает языки программирования, получившие распространение, от языков программирования, которые с трудом завоевывают признание?
Поддержка Google и JetBrains определенно помогла. С другой стороны, Google решил официально поддержать Kotlin в Android только ПОСЛЕ мощного давления со стороны сообщества разработчиков, так что уже был существенный толчок и с другой стороны.
На самом деле я думаю, что этот язык появился в нужное время, в нужном сообществе — сообществе Android, которое повзрослело, и люди хотели, чтобы новые инструменты становились все более и более продуктивными. Котлин был совсем недавно, конечно, у него были свои недостатки, но он был там и достаточно хорош, чтобы люди могли сделать это правильно.
Каким вы видите Kotlin, эффективно конкурируя и дополняя существующие языки и архитектуры в течение следующих 5 лет или около того?
Если начать с очевидного, то Java довольно прост, и Котлин уже хорошо его дополняет. Я считаю, что мы обязательно увидим больше подобного, особенно когда инструментарий консолидируется и появится несколько инструментов «золотого стандарта». Одним из таких инструментов является Arrow, набор инструментов функционального программирования для Kotlin, который был разработан командами Funktionale и Kategory, объединившимися для создания чего-то лучшего и более полного. Я думаю, что это станет тенденцией.
Что касается других языков программирования — на JVM мы увидим, что произойдет со Scala и другими, а за пределами мира JVM еще слишком рано говорить об этом, но я видел несколько многообещающих идей о Kotlin/Native и Kotlin для мульти- платформенные проекты — оба все еще очень экспериментальные, но некоторые доказательства концепции уже есть, работающие и весьма интересные.
Когда книга Альберто Баллано « Функторы, аппликативы и монады Kotlin в картинках » попала на Hacker News , это вызвало интересную дискуссию… Как вы думаете, для чего Kotlin — это наркотик?
Это звучит гнусно! Это наркотик, открывающий путь к современным языкам программирования, которые делают нас одновременно продуктивными и счастливыми. Он определенно познакомит многих людей с функциональным программированием, особенно с такими вещами, как Arrow, и это может позволить некоторым людям перейти к более сложному ФП. языки проще.
Еще несколько вещей, которые он может сделать, — это побудить группу разработчиков Android заняться веб-разработкой или собственной разработкой со всей ее кроссплатформенной поддержкой, а также, поскольку все больше и больше разработчиков выбирают его в качестве своего первого языка программирования, они неизбежно Приходите рассматривать Kotlin как эталон, по которому сравнивают все остальные языки, и это тоже весьма интересно.
В лингвистике для того, чтобы язык, такой как английский или испанский, был принят, требуется очень много времени. И это много диалектов, но использование совершенно нового разговорного языка должно быть менее заметным, чем использование новых языков программного обеспечения. Думаете ли вы, что мы достигнем точки зрелости отрасли, когда количество новых языков программного обеспечения снизится? Или будут продолжать появляться новые языки программирования?
Мы уже видели, как несколько отличных языков программирования быстро получили серьезное распространение, и в последние годы на ум приходят Swift, Go, TypeScript и Rust. Каждую из них поддерживает одна (или несколько) крупная инженерная организация, располагающая значительными ресурсами и существующими сообществами разработчиков.
Каждый из них также задел определенный зуд в своей организации, и если этот зуд разделяет множество других разработчиков, тогда происходит принятие, и язык взлетает, позволяя ему достичь «критической массы». Именно это произошло с каждым из этих языков, которые я упомянул — например, Go зародился, когда Google хотел хорошо реализовать параллелизм, и одной из целей Rust не было сбоев.
Что касается будущего, я думаю, что определенно будут новые вычислительные парадигмы, разрабатываемые новые идеи (кто знает, может быть, когда-нибудь блокчейн действительно станет реальностью ) — это не будет очень полезно с нашими существующими инструментами. Некоторые другие примеры — квантовые. вычисления или искусственный интеллект.
Хотя сегодня большинство языков претендуют на универсальность, это еще не означает, что они одинаково хорошо подходят для любых целей. Мы увидим новые цели, которые потребуют новых языков.
Давайте поговорим о Зане как о человеке. Первые два слова биографии на вашем личном сайте гласят: «Космический ковбой». Некоторые люди называют тебя гангстером любви? Другие люди зовут тебя Морисом? Вы воплощаете в себе пышность любви?
Ха, я обожаю эту песню! Возможно, «Гангстер любви», поскольку я не думаю, что кому-то удалось написать Зана с ошибкой в «Морис», даже сотрудникам «Старбакса». Еще я люблю ракеты и до сих пор оплакиваю потерю Firefly, так что это тоже своего рода ковбойская тема.
Настоящая история этого «названия» такова: несколько лет назад, когда я еще управлял стартапом, который я основал вместе с несколькими друзьями из университета. Чтобы выглядеть более законно, когда мы просим денег у незнакомцев (т. е. привлекаем инвестиции), мы сделали визитные карточки для каждого из нас.
Я не разбираюсь в играх, особенно в C-титулах, когда все делают практически все, поэтому я просто решил пойти другим путем и выбрал Space Cowboy, который примерно такой же (не)точный, как и все остальные. По крайней мере, я решил, что это будет хорошим началом разговора.
Тот факт, что вы спросили об этом, только доказывает, насколько это действительно хороший способ начать разговор.
Говорят, вам нравится IPA в стиле Западного побережья. Я сейчас в Колорадо и скучаю по Лагинатис. Какие 3/5 лучших IPA западного побережья вам нравятся?
Мне они нравятся яростно сильные и безжалостно прыгающие.
Всякий раз, когда я посещаю Западное побережье, я обязательно беру с собой Pliny the Elder by Russian River и, конечно же, Stone IPA — очевидно, оба разливные. Когда я ближе к дому, я предпочитаю Jack Hammer от Brewdog.
Что делает хорошего разработчика-евангелиста? Как вы стали лучше в своей работе? Что делает технологию Pusher достойной пропаганды?
Самым важным для евангелиста разработчиков (любого специалиста по связям с разработчиками в целом) будет искренняя страсть учить и делиться знаниями. На самом деле, возможно, даже важнее быть искренним. Полная остановка. Разработчики — естественные детекторы чуши, которые ненавидят, когда им что-то продают.
Это также прекрасное чувство, когда ты знаешь, что помог кому-то стать лучшим разработчиком.
Одна из первых вещей, в которых мне пришлось совершенствоваться, — это тайм-менеджмент. Учитывая опыт разработчика, гораздо чаще у вас есть большие отрезки времени, которые вы выделяете на определенные задачи. Моя нынешняя работа гораздо более динамична, и поначалу я не ожидал таких изменений или корректировок, поэтому это было довольно ошеломляюще. Мне очень помогло превосходное эссе Пола Грэма о расписании продюсеров и менеджеров .
Еще один полезный навык, который я приобрел, — это управление проектами. Например, в случае с State of Kotlin большая часть моей работы заключалась вокруг настройки опроса и сначала создания контента, а затем перешла к более классическому управлению проектами, например координации с другие вовлеченные команды, такие как дизайнеры и разработчики (они проделали эту работу, а не я, еще раз спасибо — вы знаете, кто вы), и, наконец, в распространении информации в различных публикациях, проведении интервью в Интернете.
Технология Пушера известна тем, насколько быстро она интегрируется, а также тем, что «она просто работает».
Таким образом, проповедовать Евангелие очень легко. На конференции по мобильной разработке ко мне даже приходили люди и рассказывали, что их коллеги из веб-команды, использующей Pusher, просили их рассказать мне, насколько хорош наш продукт Channels — это было здорово 😁
В целом, как Kotlin вписывается в реализацию долгосрочного видения Пушера?
Мы уже сделали ставку на Kotlin в качестве основного языка разработки для наших Android SDK. Мы начали с SDK для новых продуктов — Beams , Chatkit и Feeds , и на данный момент нас это вполне устраивает.
Мы также считаем, что у Kotlin одно из самых интересных и активных сообществ, и это также одна из причин, по которой мы решили создать опрос о состоянии Kotlin и отчет для него. Мы, конечно, надеемся, что Kotlin и дальше будет радовать разработчиков и работать продуктивно, а состояние Kotlin будет способствовать дальнейшему его внедрению!
Pusher , наш еженедельный спонсор, создает API-интерфейсы для общения и совместной работы, которые используются в приложениях по всему миру, при поддержке легко интегрируемых SDK для Интернета, мобильных устройств, а также для большинства популярных серверных стеков. Начать.