Как-то читая твиттер в поисках новостей о Laravel, для нашего сообщества, я наткнулся на твитт, в котором была ссылка на CMS с необычным названием «October CMS». Меня это заинтересовало и я прошел по ссылке. Как же я был приятно удивлен, что CMS написана на фреймворке Laravel. Но я был удивлен еще больше, когда, чуть позднее узнал, что один из разработчиков – русский, Алексей Бобков.
Конечно, я не мог упустить такую возможность. Я нашел Алексея и сразу договорился с ним об интервью. Он согласился и вот, что у нас получилось.
Алексей, мог бы ты рассказать немного о себе? Я прочитал, что ты живешь в Канаде, как ты там оказался?
В Канаду я переехал полтора года назад. До этого я жил в основном в Южно-Сахалинске, с небольшими периодами в Питере и Москве. Учился я в САХГУ, на физмате. Программировать начал лет 20 назад. Про Интернет тогда практически не слышали, по крайней мере на Сахалине, поэтому сначала я занимался разработкой программ для Windows, на Delphi. Кстати, я думаю, что Delphi оказала сильное влияние на мои представления о программировании, дизайне и usability.
Все, что было связано с Интернетом, когда он, наконец, дошел до нас, вызывало у меня огромный интерес и когда появилась возможность делать сайты и веб-приложения я не долго раздумывал и забросил десктопные приложения. 10 лет работал в компании Артикус, она же WebAsyst, писал различные веб-приложения и набирался опыта.
В какой-то момент, работая в Москве, я начал осознавать, что работать на других людей мне неинтересно и я стал искать другие возможности. Я вернулся на Сахалин и начал писать свои приложения. Сначала я сделал свой фреймворк, первую версию PHPRoad и несколько программных продуктов, которые пытался продавать в интернете. Одно из приложений, для учета договоров, было достаточно популярным и неплохо продавалось, но я понял, что заниматься продажами, тех-поддержкой и общением с клиентами, мне лично неинтересно, а развивать свою компанию в России не хотелось. Поразмыслив, я придумал очередной план и начал проект LemonStand (eCommerce), который должен был быть международным, и в котором я бы работал как разработчик и технический директор. Параллельно у меня зрел план иммиграции из России. Я нашел партнера на сайте Programmer Meet Designer. Мне повезло, у нас завязались хорошие деловые отношения. Через пару лет после начала проекта я смог переехать в Канаду.
Как называется твоя компания в которой ты работаешь? Чем занимаетесь?
Компания называется LemonStand eCommerce Inc. Мы разрабатываем платформу для электронных магазинов. К October эта история отношения практически не имеет, и я стараюсь держать эти проекты как можно дальше друг от друга. LemonStand это бизнес, а October это нечто для души и для других людей.
Какие задачи ты решаешь в компании, за что отвечаешь?
В LemonStand я технический директор (CTO), отвечаю за разработку платформы и связанных с ней сервисов.
А как родилось такое название «OctoberCMS»? Мне еще очень понравилось «October Rain Library», в вашем репозитории на Github.
Мы хотим делать естественные вещи. На английском это natural, но «естественный» в русском языке не совсем точно выражает то, что мы подразумеваем. Это наша философия — делать то, что нам нравится, и не делать вещей, которые противоречат нашей натуре или желаниям, например убеждать людей, что они должны пользоваться нашими продуктами, или пытаться что-то продавать. Natural также значит природный, а природа, это времена года. Из времен года мы предпочитаем осень, а из осенних месяцев — октябрь, когда все желтое и красивое. Когда объясняешь, выглядит длинно и запутанно, но для нас это вполне понятно и естественно. October Rain это дань любви к классическому року — у Guns N' Roses есть песня November Rain.
Как ты узнал о Laravel и почему выбрал именно его, а не какой-нибудь другой фреймворк?
Я искал фреймворк для новой версии LemonStand, рассмотрел несколько всем известных вариантов. Laravel показался самым свежим и многообещающим, другие фреймворки же напротив, были старыми, или раздутыми, хотя было видно, что авторы пытаются освежить их, внедряя новые возможности языка и последние веяния в архитектуре.
В Laravel мне нравится элегантность и простота. Это то, что я ценю в любых вещах. Так или иначе, я выбрал Laravel и не жалею. Это было два года назад, и я вижу, что фреймворк здорово развивается и набирает популярность, поэтому когда я начал October у меня не было сомнений по поводу фреймворка, а мой партнер Сэм меня в этом полностью поддерживает.
Ты скорее всего слышал, что Laravel стал самым популярным PHP репозиторием на Github. Также ряд других источников поставили Laravel на первое место среди других фреймворков. Что ты об этом думаешь? Чем, по твоему мнению, так популярен Laravel?
Мне нравятся слова Эйнтштейна «Everything should be made as simple as possible, but not simpler.» («Все гениальное просто, но не проще.»). Я думаю, Laravel реализует этот принцип и поэтому нравится людям. Способность чувствовать прекрасное в простоте я считаю естественной, то есть присущей людям по умолчанию.
Можно бесконечно долго спорить о преимуществах одного фреймворка перед другим, и я знаю, что многие люди этим занимаются, тратят свое время и энергию на эти споры, и в конечном счете каждый остается при своем мнении. Я воздержусь от каких-либо конкретных комментариев. Laravel мне нравится, потому что он такой, какой он есть, и я рад, что большинство PHP разработчиков думают так же.
Если бы ты был Taylor Otwell, что бы ты добавил, убрал или изменил в Laravel?
Трудно сказать. На данный момент Laravel меня устраивает. Все, чего не хватает в фреймворке, можно установить дополнительно.
Вы были или, возможно, планируете поехать на Laracon?
На Laracon еще не были, но мысль поехать есть. Лидер любителей Laravel из Индианы Collin Schneide подал заявку на выступление об October на Laracon. Если ее примут, мы, возможно, поедем, чтобы его поддержать и ответить на вопросы.
Кстати про конференции, Сэм выиграл хакатон в Австралии с приложением Dish Smith, написанном на October.
Какое «железо» и ПО ты используешь в работе?
В последние годы я работаю на компьютерах Apple — MacBook, Mac Mini. LemonStand, например, полностью написан на Mac Mini. ПО — Sublime Text, Photoshop, SequelPro (MySQL client), браузер предпочитаю Chrome. Что мне нравится в веб-разработке, так это то, что мы пользуемся скриптовыми языками, которые не нужно компилировать, и для работы нужен только текстовый редактор, который по сути является универсальным инструментом.
Из серверного ПО, для локальной разработки, в последнее время я в основном использую Vagrant, и стандартным для PHP набором сервисов. Пришлось подучить системное администрирование, но это себя оправдало. Для разработки October я сделал environment, в котором есть все необходимое — PHP, MySQL, Apache, Ngnix (с хостами обычными и SSL). Мы с Сэмом используем его вместе — он работает в Windows, а я в MacOS, но разработку мы ведем в Ubuntu, в идентичных условиях.
Я очень люблю книги и всегда стараюсь задать этот вопрос: «Какие твои любимые книги?»
В последнее время я все меньше читаю художественную литературу. Кажется, последнее, что я прочитал художественного был «Суер-Выер» Юрия Коваля. Гениальное произведение, также как и его «Самая легкая лодка в мире». Сейчас я читаю книгу Ричарда Фейнмана «Вы, конечно, шутите, мистер Фейнман!». До этого читал его же «Характер физических законов», перед этим прочел несколько книг Брайнана Грина. Когда покончу с Фейнманом перейду к «Beyond the God Particle» Леона Лидермана. Да, на новогодних каникулах я прочитал «Пеппи Длинныйчулок». Очень люблю Астрид Линдгрен!
Как я уже говорил, я предпочитаю Интернет и нахожу информацию по мере необходимости, в разных блогах и статьях. Особых предпочтений нет. Часто ответы находятся на Stack Overflow.
По Laravel сегодня существует, наверное, около десятка книг, если не больше, что ты думаешь по этому поводу? Не думал написать свою книгу?
Книги это всегда хорошо, особенно если автор понимает о чем пишет. Мне приходилось видеть книги, которые по сути пересказывают документацию или показывают совсем простые вещи на 500 страницах. Я не читал книг про Laravel, предпочитаю все находить в Интернете, так как считаю, что там есть все, что может быть в книгах. Я не хочу сказать, что книги хуже интернета, просто мне удобнее пользоваться Гуглом, а не выискивать информацию в книгах. Но вероятно, для начинающих разработчиков книги это лучший способ разобраться во всем шаг за шагом и уложить все в голове. Так что хорошие книги — это хорошо, так же как и хорошие кино и музыка. Писать свои книги пока не планирую.
За кем следишь в twitter или в других социальных сетях?
Я не большой поклонник социальных сетей, у меня даже нет личного аккаунта в Твиттере.
А какие сайты у тебя в закладках или RSS? И какие ресурсы ты бы рекомендовал нашим читателям?
Регулярно читаю Хабр, заглядываю в Techcrunch. Постоянно следить за несколькими источниками времени не хватает.
Хорошо, спасибо. Прежде, чем мы завершим у меня есть несколько вопросов от участников нашего сообщества.
Все спрашивают, когда дата выхода CMS?
Конкретной даты нет, но надеемся выпустить бета-версию в первом квартале этого года.
Сколько времени ушло на разработку?
Мы начали в сентябре. Так что пока ушло 4 месяца. Но это 4 месяца по вечерам, и не каждый день.
С какими трудностями вы столкнулись во время написания CMS?
Технических трудностей практически не было. Мы хорошо представляем себе, чего именно мы хотим, и как этого достичь. Основная проблема это недостаток времени.
CMS подразумевает разработку из браузера. Как решались вопросы с установкой новых компонентов, делалась или планируется ли веб-прослойка для composer/artisan?
Разработка из браузера необязательна, она скорее помогает, чем является основным способом работы. Темы для CMS это файлы, с которыми можно работать напрямую и управлять через системы управления версиями. Писать код для плагинов в браузерах также не нужно. Мы планируем сделать визуальные инструменты для облегчения решения типовых задач, вроде создания форм и интерфейса админки, но код PHP нужно будет писать в текстовом редакторе. Команды composer и Artisan будут доступны, как обычно. Новые плагины можно будет устанавливать через веб-интерфейс, в этом случае система сама установит все необходимые зависимости.
Какие цели и задачи должна решать данная CMS? Визитки/интернет-магазины/блоги или все зависит от компонентов?
Мы стараемся сделать универсальную и абстрактную платформу. Сама система не имеет никакого конкретного назначения, поэтому с ней можно будет решать самые разные задачи. Также мы пытаемся сделать ее быстрой и производительной, чтобы ею можно было пользоваться на сайтах с разным объемом трафика.
С какими CMS ты до этого работал и почему решил написать свою CMS?
Приходилась работать с разными CMS. Интерфейс многих CMS выглядит так плохо, что руки опускаются с ними работать. Я не люблю ругать чужие продукты, поэтому не буду перечислять названия, кроме одного. WordPress неплох, но уже видно, что это приложение старой школы. Даже лучшие (популярные) плагины для него это чистейшее спагетти из кода PHP и разных файлов. Чтобы разобраться что к чему и что-то починить требуется уйма времени и каких-то специальных знаний, для получения которых нужно перелопачивать форумы и блоги, в которых люди в основном задают такие же вопросы и не получают внятных ответов.
Хочется иметь что-то простое и гибкое, настоящую платформу для разработки сайтов и приложений, с красивым интерфейсом и продуманным подходом к расширяемости. Нечто такое, что можно описать несколькими страницами документации и чтобы люди, которые будут это использовать, могли тратить время на более приятные вещи, чем решение простых задач сложным способом.
Больное место почти всех опенсорс-проектов, нацеленных на массового пользователя — внешний вид. Кто рисовал дизайн, кто-то сторонний, или один из вас?
Интерфейс рисовал я. Опыт проектирования интерфейса у меня уже достаточно большой. Но в случае с October это был долгий и трудный (хотя и приятный) процесс. Временных рамок у нас нет, и это очень удобно и важно для творчества. Несколько раз я начинал дизайн практически с нуля, пока не стал более-менее доволен результатом. Мы продолжим улучшать его и скоро покажем кое-что интересное.
Как видится монетизация проекта?
Мы считаем, что если множеству людей будет нравится работать с October, возможности зарабатывать деньги мы найдем. Но могу сказать, что сама платформа всегда будет бесплатной и открытой.
Тяжело ли работать в тандеме с человеком, с которым такая большая разница во времени и как вы вообще вышли друг на друга?
Я привык работать в таком режиме. Когда я жил на Сахалине, я несколько лет работал с Канадой (17 часов разницы). Потом я уехал в Канаду и теперь работаю с Сэмом, который живет в Канберре (Австралия). А Канберра, по иронии судьбы, находится в одном часовом поясе с Сахалином, то есть это те же 17 часов, но теперь в другую сторону. Разница во времени работать нам особо не мешает. Сэм появляется в сети в районе двух часов дня (в Ванкувере), так что я могу общаться с ним до вечера.
Сэм знал меня заочно еще до October, так как именно он занимался продвижением PHPRoad (фреймворка, на котором была основана первая версия LemonStand). Когда я придумал October, я связался с Сэмом и предложил ему присоединиться. Я знал, что он отличный разработчик. Я не ошибся, лучшего партнера я и представить не могу. Много идей в October принадлежат Сэму, и совершенно очевидно, что без него я бы не справился.
Как выглядит ваш процесс разработки и как вы делите обязанности?
Мы работаем параллельно над разными задачами. Некоторые вещи я написал вначале сам, до того как пригласил Сэма, чтобы была основа, из которой можно было бы строить все остальное. Мы стараемся подходить к проекту как можно менее формально. Мы ведем себя так, как будто это семейный бизнес. Каждый может заниматься тем, что ему нравится, и когда он того захочет. Нам обоим приходилось и приходится работать в более жестких условиях, и October для нас это проект, который делается для души и для удовольствия. Мы надеемся, что такое отношение к делу впитается в сам продукт и люди его полюбят.
Расскажи, пожалуйста, про отличие рынка труда Канады от России?
Устраиваться на работу мне здесь не приходилось, но приходилось нанимать людей. Я обнаружил странную вещь: с одной стороны люди жалуются на трудности поиска работы в IT, а с другой, найти грамотного специалиста очень трудно. На интервью приходит много начинающих, с небольшим опытом или сразу после колледжа. Так что для меня это выглядит так, что хорошим разработчикам найти работу здесь нетрудно, но рынок переполнен новичками. В Канаде много известных компаний и можно устроиться в интересное место. Например Амазон собирается нанять 1000 человек в Ванкувере. Недалеко от моего дома находится кампус Electonic Arts, недалеко от моего офиса — Mozilla.
Это все. В завершении нашей беседы можешь дать несколько пожеланий или напутствий нашим читателям?
Что бы ты посоветовал начинающим PHP разработчикам?
Важно научиться отличать нужные вещи от модных. В последнее время количество различных подходов и технологий в программировании лавинообразно увеличивается и программрование становится удручающе сложным для начинающих. Блоги пишут о Dependency Injection и различных паттернах проектирования. Описывается множество разных возможностей, для реализации которых требуется опыт.
Я бы посоветовал начинать с простых вещей. Laravel в этом плане хорошо сбалансирован. Также важно учиться решать проблемы самому. Некоторые задачи можно решить несколькими строчками кода, а можно добавить еще одну зависимость в composer.json и скачать десятки файлов и тысячи строк кода. И далеко не всегда эти строки действительно нужны.
И, если можно, отдельное пожелание для участникам русского Laravel сообщества?
Я заметил, что существует много известных международных IT компаний, которыми либо управляют русские, либо так или иначе принимали участие в их создании. Google, Evernote, Mobify, PayPal. Видимо, сочетание предпринимательского духа и способности понимать и создавать технологии у нас в крови. Это очень радует и хотелось бы, чтобы так было и дальше. Успехов в создании новых продуктов и бизнесов!
Как читатели могут с тобой связаться?
Можно отправить сообщение через ВКонтакте, LinkedIn, или через твиттер @octobercms.
Алексей, благодарю тебя за то, что нашел время ответить на наши вопросы. Мне было очень приятно и интересно пообщаться с тобой. Спасибо. Ждем от тебя и твоей компании новостей и, конечно, релиаза October CMS.