Sunday, June 03, 2012

JetBrains. Company and products (Kotlin included)

В конце января провели занятие Game|Changers в JetBrains. Поставили две задачи:
  • изучить JetBrains как пример компании работающей на международном рынке в узкоспециализированной нише с высокотехнологичными продуктами;
  • разобраться почему и зачем в компании начали разработку собственного языка программирования.

С решением первой задачи нам помогает Олег Степанов, сейчас занимается запуском новых продуктов компании (шутит, что занимает позицию Chief Whiteboard Operator), а второй — Андрей Бреслав, ведущий разработчик языка Kotlin. Кроме студентов вопросы им задают также Алексей Баранов, основатель и директор компании Indeed-ID и Владимир Горовой, менеджер продуктов в петербургском офисе Яндекса. Оба “гостевых” эксперта, несмотря на свои руководящие позиции пользуются JetBrains IntelliJ IDEA.

Впервые про компанию я узнал году в 2005-м, когда Вартан Хачатуров — мой коллега по Siemens (ныне работает в Yota) упомянул, что среди его знакомых наиболее толковые Java программисты так или иначе оказываются в JetBrains.

JetBrains — это коллектив программистов создающих инструменты, с помощью которых еще удобнее разрабатывать программы. Два ключевых продукта компании это IntelliJ IDEA (умная среда для разработки на Java) и ReSharper (дополняет Microsoft Visual Studio интеллектом IntelliJ IDEA для разработчиков на .NET). JetBrains — наглядный пример работающего просьюмеризма, когда большинство сотрудников являются активными пользователями собственных разработок. Они делают продукты для самих себя, а несколько их коллег продает результат этой работы другим разработчикам во всём мире. Так как продукт получается очень удобный и значительно повышает производительность труда, то им сначала начинают пользоваться отдельные программисты, а потом их руководители покупают продукт на всю компанию или отдел.

В этом JetBrains похожи на более известную компанию 37Signals. Среди “айти-общественности” компания знаменита веб-инструментами для совместной работы (среди которых BaseCamp) и open source фреймворком Ruby on Rails. Заметную популярность, в том числе и в России, 37Signals приобрели в деловой среде выпустив книги Getting Real (2006) и REWORK (“Манн, Иванов и Фербер” издали перевод на русский в 2011-м).

В обеих компаниях талантливые инженеры пишут код для себя, а результат востребован  сотнями тысяч людей во всем мире. Обе компании сформировались на границе девяностых и двухтысячных. Обе уделяют действительно большое внимание работе со своей аудиторией — об их техподдержке говорят, как об образцовой (Алексей Баранов, например, часто упоминает о своем удовольствии от работы с 37Signals и том, как оперативно и результативно они реагируют на обращения пользователей). Компании частные, в 37Sigmals в 2006-м долю приобрел Jeff Bezos (глава Amazon).

В результате занятия у нас получилось три видео-записи и небольшой конспект (мы всё еще пытаемся документацию вести на английском).

Часть I
Олег Степанов и создание продуктов  

Видео 1 (61 минута)


Смотреть можно начиная с 12:11, до этого идет установочная работа (вводные слова, знакомство, подготовка списка вопросов). Звук не очень хороший, поэтому если Вы далеки от мира разработки софта, то смотреть лучше с комментариями приглашенного программиста (конспект в помощь).

Олег Степанов рассказывает
  • о том как 12 лет назад появилась компания;
  • какими тогда были среды разработки (IDE - Integrated Development Environment) - на рынок которых JetBrains вышла;
  • почему в Петербурге хорошие программисты;
  • об английском языке как рабочем, и почему он не всегда работает в качестве основного;
  • о разработке технологии, которая благодаря своему интеллекту сделала IntelliJ IDEA популярным IDE;
  • о запуске ReSharper и разработке своего профайлера;
  • о неудачном опыте создания продуктов для непрограммистов;
  • о том, что мозг может быть средством более эффективным, чем подробный сбор и анализ статистики при принятии решении об изменениях в продукте;
  • о найме сотрудников и об офисе для разработчиков в Москве.

Также мы начали рассматривать организационную структуру JetBrains. В компании сейчас около 250 сотрудников, 200 их них разработчики. Компания действительно международная, но только примерно для десятка сотрудников русский язык не является родным.

Прежде чем перейдем ко второму видео, несколько слов о спикере. С Олегом Степановым я познакомился в конце 2010-го, когда мы пришли туда с занятием “Введения в индустрию ИТ”. С тех пор я заглядываю в его ЖЖ. Мы периодически переписываемся по почте и в твиттере по темам связанным с изменениями в образовании. Олег учился в 30-ке, потом в ИТМО. Программистом работал начиная с первого курса, в 2003-м на третьем курсе пришел в JetBrains. C 2005-го стал совмещать работу разработчика с менеджерской деятельностью. В 2009-м закончил аспирантуру ИТМО на кафедре Компьютерных технологий (КТ), тема диссертации “Методы реализации автоматных объектно-ориентированных программ”.


Видео 2 (27 минут)


  • продолжаем рисовать организационную структуру;
  • рисуем географию офисов JetBrains (Прага, Москва, Бостон, Мюнхен). В 2011-м открылся офис в Мюнхене, куда переехало 30 человек. Офис создан для тех сотрудников, кто хочет жить и работать в Европе, но оставаться при этом в JetBrains;
  • разобрались по какому принципу открываются новые офисы;
  • обсуждаем чем занимается отдел продаж (а именно пассивными продажами) и как организована техподдежка;
  • как повлиял на IntelliJ IDEA выпуск её open source версии;
Несколько последних минут рассказа потеряны - на карте памяти закончилось место.

Перед второй частью занятия мы совершили экскурсию по петербургскому офису. Компания занимает три этажа в бизнес-центре “Times”, расположенном у Кантемировского моста. Команды разработчиков располагаются в комнатах по 5-6 человек, но при этом нет ощущения закрытых пространств — у многих комнат совсем нет дверей. Есть несколько кухонь. В холодильниках всегда есть обеды, напитки и компоненты для бутербродов. В некоторых переговорках установлено оборудование для телеконференций.


Часть II
Андрей Бреслав и языки программирования

Андрея можно увидеть на самой первой
фотографии этого поста. При каких обстоятельствах мы познакомились не помню, видимо посредством множества общих знакомых. Андрей известен преподаванием в 239-й школе, Академии современного программирования (вошла в Computer Science Center), НИУ ИТМО и СS Club при ПОМИ. Работал в Borland, стажировался в Microsoft Research. Входит в рабочую группу JSR-335 “Lambda Expressions” в Java Community Process.

С июне 2010 года Андрей года зашел в JetBrains, чтобы поговорить о планах компании по разработке нового языка программирования. Сначала он утверждал, что такой новый язык не нужен. Отстоять свою позицию не удалось и Андрей стал работать в компании. В результате новый язык начал получаться, а его кандидатская — перестала.

Видео 3 (41 минута - до 40:44)


Запись начинается с прикручивания камеры к штативу (после первой минуты штормить перестанет). В это время Андрей Бреслав говорит о языке Scala, и что значительная часть кода Twitter и LinkedIn написана на нём. Затем в деталях рассказывает о своем неформальном пути в JetBrians.

Чтобы разобраться в контексте “рынка” (или экосистемы) языков программирования Андрей рисует схему эволюции языков и фреймворков от ассемблера до наших дней (не забыв высказать свое отношение к Ruby и RoR).


Говорим

  • о выживаемости языков (“большие” языки обычно хорошо себя чувствуют, когда существуют вместе с платформой)
  • о причине появления Node.js
  • о виртуальной машине SmallTalk
  • об enterprise мракобесии на Java
  • на чем пишется код для систем high-frequency trading
  • о четырех новых альтернативных статично типизированных языках программирования (GOSU, Ceylon, Xtend и Kotlin)
  • зачем JetBrains свой язык и сколько человек сейчас над ним работает

В подробности языка мы углубляться не стали, так как:
Чем Kotlin лучше Java коллеги Андрея написали в хабра-анонсе. А Андрей написал статью в “Открытых Системах” (№ 09, 2011) и прочитал лекцию в Computer Science Club.  

--
фото: Ольга Баршай
видео: Дмитрий Макаров
выпускающий редактор занятия: Оксана Буяк

No comments: