«Никогда не вкалывала на галерах». Разработчица пишет на «реликтовом» Perl и 25 лет работает в семейном бизнесе
Ольга Кирюшкина называет себя «динозавром» в своей компании: она пришла сюда сразу после школы и работает больше 20 лет. Открыла в рамках семейного холдинга собственный бизнес, занимается веб-разработкой и пишет код на реликтовом языке, потому что «не встроена в рынок и может себе позволить использовать простые, немодные инструменты».
В интервью dev.by Ольга рассказала о том, почему другим языкам предпочитает Perl, отчего никогда не возьмёт деньги у венчурных инвесторов и как распознаёт, какая технология не выстрелит.
25 лет в семейном бизнесе
— Мой отец был одним из пионеров информационных технологий. Геофизик по специальности, он случайно попал в группу студентов, которых обучали программированию. Потому что сами программисты не справлялись с задачами для геофизиков.
Это предопределило и его, и мою жизнь: мы — программисты-практики, никогда не работали на дядю, не вкалывали на галерах. Мы строили свой бизнес. Наша компания Nestor образовалась в 1991 году: вокруг отца собралась неплохая команда специалистов из «Дома печати», они переводили на компьютерную вёрстку крупные белорусские издания. До этого времени все макеты делались с помощью клея и ножниц.
Мне тогда было 17, я пришла работать в фирму отца сразу после школы. К тому моменту я программировала на BASIC — овладела этим языком ещё в 10 лет, и работала на ZX Spectrum от Sinclair Research Ltd, который отцу прислали хорошие знакомые из Великобритании. Потом у меня появилась ATARI ST, на котором я программировала на STOS BASIC — более продвинутой версии BASIC для написания игр и мультимедийных программ.
С тех пор я ни дня не работала на чужом предприятии — все 25 лет была верна семейному бизнесу. Бывали периоды, когда приходилось вкалывать по 15 часов в сутки. Примерно до середины 2000-х работали, не разгибая спины: запускали наш флагманский проект — belarenda.com, объединённую базу техники, сдающейся в аренду.
Не буду лукавить: меня не раз пытались переманить работать «на дядю». Было пару интересных предложений — в Венгрии и на Кипре. Если бы не семейные обстоятельства, то, наверное, повелась бы. А в 1999 году я могла создать новое предприятие с молодыми, агрессивными и дерзкими компаньонами — первый в Беларуси альтернативный провайдер с выходом backbone, то есть на внешние каналы. По ряду причин проект не был реализован. Но, наверное, это тот случай, когда я бы бросила семейное дело. Более того, мой отец сказал: это настолько интересно, что он был бы не против.
«Perl — язык расхлябанных людей, но он дарует тебе свободу»
Каждый должен найти то, в чём он будет лучше всех. Моя фишка — это в том числе «реликтовый» язык, на котором я пишу.
Мы много лет пишем на Perl. И я, большой поклонник и даже в какой-то степени евангелист этого языка, вырастила поколение программистов, пишущих на Perl. Он интересен мне тем, что изначально создавался как язык для широкого круга задач. Есть неверное представление, что Perl — это узкопрофильный скриптовый язык, который используется главным образом для shell-программирования и каких-то простых задач юниксовой автоматизации. Да нет же! Он изначально был предложен для решения широчайшего круга задач — general purpose language. В своё время мы даже экспериментировали с построением десктопных приложений на Perl под Windows. Конечно, в результате создавался слишком огромный исполняемый файл. Но тем не менее, возможно даже это.
Perl вобрал в себя лучшие вещи из имеющихся скриптовых языков: базовую структуру взял от С, regular expressions — от Sed, ассоциативные мотивы — из AWK. В обработке текстовой информации, строк Perl до сих пор нет равных. Да, по такому же принципу это работает и в PHP. Но, как говорили в рекламе стирального порошка много лет назад: если нет разницы, зачем платить больше? Я не стану переходить на PHP просто в дань моде, если мой язык со всем справляется.
Perl поддерживает объектно-ориентированные програмирование, но ты можешь использовать и другую парадигму. Наверное, это язык немножко расхлябанных людей, но он дарует тебе свободу: ты выбираешь наилучшее решение проблемы. Здесь я напишу в C-style, здесь, может быть, выберу объектный стиль. Это очень удобно! Не все знают, что создатель Perl Ларри Уолл имел ещё и лингвистическое образование. Я ловлю себя на мысли, что пишу на Perl так, будто пишу статью в газету на русском языке. От мысли до реализации проходит очень мало времени. Клиенты порой бывают шокированы, узнав, что какую-то фичу можно реализовать уже через полчаса. «Как?..»
В Perl есть ещё хорошие штуки — так называемые sigils: когда переменные обозначаются определённым знаком. Просматривая код, я даже без подсветки вижу, где скалярная переменная, где массив или хэш-массив. Я могу очень быстро ориентироваться и в своём, и в чужом коде. Да, Perl-программистов считают немного сумасшедшими из-за того, что те используют сокращения. Но я этим не пользуюсь, чтобы все, кто работаем с моим кодом, могли его читать. Он выглядит как детсадовский: «Мама мыла раму» — но очень легко читается.
«Пишете на Perl? Я приду поговорить с вами 20 лет назад»
Конечно, многие программисты, узнав, на каком языке мы пишем, выдают однотипную реакцию. Как сказал сегодня один товарищ: «Вы программируете на Perl? Я приду поговорить с вами 20 лет назад».
Некоторые произносят что-то подобное ещё и с презрением. Хотя что в том такого? Да, мы пишем на немодном языке. Но я уверена, что мода — то, что влияет на специалиста, если он встроен в рынок труда. Если молодой человек хочет, чтобы его купили, то он вынужден думать о том, что же хорошо продаётся. А это всё новое, передовое, сложное — и последнее продаётся особенно хорошо. Да, кто-то пишет: «Hello, world» — подключая 10 библиотек, и кода получается на пол-Windows. Но за это ему и платят бешеные деньги: он ведь делает очень сложные, непонятные вещи. И он это делает, чтобы заработать эти деньги, ведь он встроен в рынок. Я же не встроена. Поэтому могу себе позволить использовать простые, немодные инструменты, которые работают не хуже.
В 2017 году Mail.ru проводил соревнование разработчиков высоконагруженных систем High World Cup. И разработка на Perl заняла 25-е место. Это вроде бы так себе результат, но в топ-30 вошли только программы на C и C++ — и ни одной программы на скриптовых или ещё каких-то высокоуровневых языках. То есть Perl — единственная платформа, которая смогла соревноваться и отстала от лидера в производительности всего лишь в полтора раза. А самые модные и популярные вещи вообще из соревнования вылетели. Node JS, Lua и другие скриптовые языки.
Технологии-пустышки и умение их различать
Знаете, есть люди, у которых, как у Билла Гейтса или Стива Джобса, есть понимание, что выстрелит, а что — нет. Я тоже хорошо вижу, какая технология не пойдёт, потому что это пустышка. Сколько таких пустышек было. Сейчас с Perl меня пытаются учить, что мы ерундой занимаемся — мол, прошлый век. Хорошо, господа, но позвольте напомнить, что и раньше было много модных технологий, в которые все когтями цеплялись: за этим будущее!
Если помните, Flash — хорошая, в принципе, технология, и в вебе неплохо работала. Но её стали «пихать» всюду, писать сайты на Flash — и плевать, что они не гуглились. Надо же продавать этот чёртов Flash — и кормить семьи армии разработчиков, освоивших эту технологию. Я тогда говорила: «Это безумие! Это не практично». Пыталась доказать многим, что универсальных инструментов нет: для каждой задачи подходит свой. Но некоторые предпочитают учиться на своих ошибках.
Потом появился AJAX — тоже классный подход, и мы сегодня активно его используем, особенно в бэк-офисах. Но, опять же, набежали евангелисты: «AJAX — в каждый дом». Появились сайты, полностью реализованные на AJAX. У клиентов стали возникать вопросы: «А почему страницы не гуглятся?» Да потому что об этом никто не думал изначально — это было никому интересно, все стремились просто продать AJAX.
Как говорит мой отец, самая большая проблема в ИТ ещё со времён царя Гороха — это циркачество, гонка за модой. Мода как грязная пена на воде, волной выбрасывает на рынок много людей, которые освоили технологию и бездумно копируют решение. Мол, если landing page подошёл продавцам унитазов, он сгодится и для фармакологической компании. Это заблуждение. И я не против самих технологий — они хорошие, просто люди неправильно их используют.
В шкуре стартапера
Сегодня я в шкуре стартапера. Если в 90-х в двух компаниях нашего холдинга — моей и отцовской — суммарно работало порядка 50-60 офисных сотрудников, плюс около 200 внештатников, то сегодня мы схлопнулись до размеров стартапа.
Сейчас мы планируем новый стартап-проект. Это продукт для автоматизации: хотим сделать CRM с возможностью простой выписки первичной документации для ипэшников, а также небольших компаний, которые в силу объективных причин не могут покупать продукты у крупных ИТ-компаний. Ведь сегодня ипэшник по-прежнему вынужден открывать Word, Excel — и делать все эти документы вручную.
Я очень много общаюсь с людьми, даю им пробовать продукты безвозмездно и слушаю, что они говорят мне по этому поводу — собираю отзывы. Я считаю, что продукт должен работать сразу. Да, кто-то сначала пишет бизнес-план и идёт с идеей по инвесторам, но я сама никогда никому под пустой трындёж денег бы не дала — как минимум, должен быть продукт. Так и развивались все действительно хорошие вещи: Google, Facebook и другие. И успех того же World of Tanks (я тоже играла в танки: мне интересно было понять, что цепляет пользователей) — в обратной связи: они очень много внимания уделяют тому, чего хотят игроки.
Никогда не пойду с идеей в акселератор или к венчурным инвесторам: это, наверное, тот случай, когда я стара для всех этих весёлых забав. Если мне в голову приходит идея, я открываю Perl и пишу первый кусочек. Он может быть без дизайна, без нормального бэк-офиса, иметь «костыль». Но вот он заработал — и я вижу: это то, чем человек может пользоваться.
За месяц-другой собираю сведения, чего бы клиенты хотели от этого продукта в первую, вторую и третью очередь.
Я не верю, что можно продать полуготовый продукт — всё хорошее продаётся на стадии, когда продукт уже приносит деньги, либо работает в ноль и «каши не просит».
Я вряд ли когда-либо обращусь за внешними инвестициями к кому-то: боюсь не справиться. Наверное, это девчоночий подход — я не готова рискнуть чужими деньгами. За 20 с лишним лет наша компания ни разу не привлекала кредитов и сама ни разу не выступала должником ни перед заказчиками, ни перед бюджетом, ни перед работниками. Да, мы звёзд с неба не хватаем, и вряд ли будем сказочно богаты. Мы из тех, кто не рискует и пьёт крафтовый сидр, а не дорогое шампанское. Но зато и спится нам сладко. Думаю, те, кто должен инвестору миллионы, спят хуже.
Не обещать того, чего не сможешь выплатить
Я их тех людей, что не готовы давать обещания, которые потом не смогу выполнить — так меня воспитал отец.
В нашей компании, к сожалению, никогда не платили очень много. В середине 90-х это даже было притчей во языцех: мол, «они жадные». Да не жадные мы. Просто мы не будем обещать то, что не сможем выплачивать 5-го числа каждого месяца. За 20 с лишним лет мы ни разу не задерживали зарплату.
Я помню, ещё в 90-х к отцу как-то пришёл соискатель, и папа сказал ему: «Я могу платить вам 200 долларов». А тот хлопает глазами: «Как так?! Мне на предыдущем месте работы обещали 500». Отец даже удивился: «А почему же вы ушли?» «Так мне ни разу их не выплатили». Тогда мой отец сказал: «Хорошо, если не надо выплачивать, я могу и тысячу пообещать». Вот и я подхожу так же к вопросу: золотых гор не обещаю, но всегда честна и с клиентами, и с работниками. Поэтому мы и сидим в честном середнячке, делаем вещи, которыми люди в целом довольны.
Фото: Андрей Давыдчик