Коллектив Авторов - Цифровой журнал «Компьютерра» № 186
Инвазия людей приводила к намного более глубоким изменениям экосистем. Расселение человека зачастую было тесно связано по времени с вымиранием мегафауны, то есть фауны крупных животных, являвшихся наиболее привлекательной дичью для древних людей. Наша роль в исчезновении мегафауны Африки, Евразии, Америки и Австралии продолжает дискутироваться; в разных случаях получены как аргументы, говорящие о нашей «вине», так и свидетельства той роли, которую сыграли изменения климата. «Охотничья» и «климатическая» версии не являются альтернативными и могут дополнять друг друга. Но, так или иначе, наш вид столкнулся с экологический катастрофой, которая сделала невозможным поддержание его численности на прежнем уровне.
Мы выжили, освоив новые ниши. Какие и как — расскажу в иной раз. Тут есть повод для серьёзного разговора…
К оглавлению
IT-рынок
(DZ) Давид Ян: «Я думаю, что люди, которые толкают науку и бизнес вперёд, в определённой степени безумны»
Компьютерра
Опубликовано 13 августа 2013
Дорогие друзья, данным материалом мы хотим открыть на «Компьютерре» серию бесед Дмитрия Завалишина (известного разработчика, старинного друга «Компьютерры» и просто DZ) с известными, успешными и интересными разработчиками России. Именно бесед, а не интервью. Первый собеседник — Давид Ян.
Дмитрий Завалишин. В последнее время меня не покидает ощущение, что большинство молодых людей в России (и я говорю в первую очередь о программистах и «стартаперах») смотрят на все окружающие их вещи как на некое благо, которое было даровано богами Америки — Google, Apple, Microsoft… Кажется, эти компании занимаются «магией», которая выше нашего понимания; а всё, что можем мы, — это просто пользоваться результатами «волшебства» — купить планшет или новую версию лицензионного ПО. Между «я» и тем, «что вокруг меня», появилась огромная дистанция. Нам сложно поверить, что такие вещи, как поисковик Google или новое поколение смартфонов от Apple, сделаны такими же, как и мы, людьми — талантливыми разработчиками, которые хотели изменить мир к лучшему и трудились не покладая рук.
Книги о Стиве Джобсе, конечно, замечательно популяризируют технологическое предпринимательство. Но все же Джобс остается богом — а не студентом, бросившим занятия в Калифорнийском университете в Беркли, чтобы со своим новым коллегой из Hewlett-Packard сделать персональный компьютер и выйти конкурировать с известнейшими софтверными разработчиками.
Возможно, незнание «человеческих» историй основателей крупных ИТ-компаний приводит к тому, что стартапы запускают люди, которые лет двадцать программировали в небольшой фирме и вдруг внезапно осознали себя бизнесменами. Конечно, из таких историй ничего по-настоящему прорывного не вырастет…
Давид, а ты ведь изначально растил ABBYY Lingvo как бизнес — купил один из самых полных на тот момент словарей, отдал основную разработку на аутсорс…
Программисты в стартапах берут на себя роль менеджеров, наверное, от неизбежности: хороших управленцев мало, а руководить жизнью бизнеса все-таки кому-то нужно. (Хотя кто тогда будет программировать? :-) ) Но в нашем случае всё было несколько иначе. Мне сразу стало понятно, что программированием должен заниматься человек, который это умеет делать лучше меня. Давид Ян. На самом деле программированием я тоже чуть-чуть занимался. (Смеется.) Это была наша первая в ABBYY программа для внутренней автоматизации на Paradox. Ещё я написал теговую спецификацию к словарю (впоследствии она стала основой нашего языка для разметки словарных статей — DSL, Dictionary Specification Language). Но в целом ты прав, я в разработку никогда не лез. Но аутсорсом разработку Lingvo назвать нельзя ни в коем случае. Это было партнерство — одна компания, одна команда. Мы сразу условились, что моя задача – это нахождение денег, клиентов и подрядчиков по словарным базам, а задачей Александра Москалёва было написать собственно программу, и качество Lingvo — это стопроцентно его заслуга. В более поздних версиях Lingvo и FineReader я участвовал в разработке интерфейсной части, старался смотреть на продукт глазами пользователя. Внутри разработческой компании должны быть люди, которые находятся на стороне клиента больше, чем на стороне разработчика: это важный фактор успешности бизнеса.
Вначале мы с Сашей хотели просто заработать по пять тысяч рублей на переводе бумажного словаря в электронную форму — и, довольные (при стипендии в 55 рублей такие деньги казались огромными), разойтись. Но оказалось, что даже вдвоем реализовать этот проект крайне сложно. Нужно было не только разработать собственно программу для ПК, но также найти финансирование под создание контента, а затем — людей, которые подготовят этот самый электронный контент по нашей спецификации, исправить все ошибки, выпустить документацию, упаковку… и в конце концов кому-то этот контент продать. Про реализацию такого проекта в одиночку не могло быть и речи… Повторю, даже вдвоём это было предельно сложно. Сегодня я не очень понимаю, как нам удалось всё это сделать за девять месяцев :-).
Д. З. Получается, ваша логика была такая: «Это неподъёмно — значит, мы нанимаем много людей, а я разработкой продукта сам детально не занимаюсь»?
Д. Я. Это сегодня в ABBYY работает 2 000 человек и офисы в 14 странах… А в 1989 году «много людей» — это Саша Москалёв и я. Саша один в первые полтора года заменял десятерых: аналитика, интерфейс-дизайнера, графического дизайнера, архитектора, инженеров по базе данных, оболочке, резидентной программе, инсталятору, системе защиты, тестера, выпускающего QA инженера и пр.
Мы понимали, что нужно писать резидентную программу, которая позволила бы сделать словарь, «всплывающий» поверх окон Word или Excel и показывающий на экране перевод. TSR-программирование, надо сказать, тогда казалось чем-то фантастичным: эта техника толком нигде не была описана, книжек о ней почти не было (помню, первые из них появились в Доме научно-технической книги на Ленинском проспекте), знания передавались фактически из уст в уста.
Д. З. Резидентное программирование всегда было «на грани фола»: формально ведь этим заниматься было нельзя, по спецификациям MS DOS это было запрещено. Только некоторые инструменты внутри операционной системы позволяли резидентным программам переключать на себя обработку прерываний — и эти механизмы не были нигде задокументированы, их опытным путём обнаруживали отдельные люди. Я лично хорошо помню, что мы, наблюдая за работой таких «гуру», часто слышали просьбу: «А теперь, пожалуйста, отвернитесь». Всё было именно на таком уровне неизвестности. И достичь того, чтобы резидентные программы работали «без запинки», было действительно чем-то из области фантастики.
Д. Я. Сейчас мы продолжаем заниматься «магией» — только теперь в иной плоскости. Теперь эта «ворожба» посвящена поиску способов вычленить факты из естественного языка.
Д. З. Есть мнение, что такой подход, как «интерлингва» (вычленение смысла из фразы на одном языке, а затем перевод этой мысли на другой язык), в принципе неправилен. Как относиться к таким суждениям? Я знаю много людей, которые идеально владеют двумя иностранными языками (или языками программирования): они используют именно технику интерлингвистики. Но ведь семантика — это всегда сумма коммуникации в данный момент и коммуникативного опыта. А у программы такого опыта нет…
Д. Я. В разных культурах существует большая часть пересекающихся языково независимых понятий, которые укладываются в определённую иерархию. Существует множество академических исследований и проектов по этому поводу, а коммерческих попыток свести все понятия языка к универсальному дереву понятий и использовать его совместно с синтаксисом языка и статистикой не было.
Фактически это иерархия с собранными в ней сущностями, между которыми есть отношения близости. Одни из них — родительские, другие — дочерние; это деление образует основную структуру. Если наполнить основную «ёлку» иерархии массой существующих в языке семантических классов, то любой новый класс сможет занять чёткое место в этой системе. Качество «пристраивания» нового элемента при этом определяется минимумом новых связей, которые будут необходимы, чтобы покрыть все возможности применения этого концепта в реальном мире. Скажем, для концепта «зрелость» соседствующими элементами будут «зрелый»/«незрелый», «зелёный»/«перезрелый», «гнилой» и так далее.
То есть в системе заложены главным образом связи между понятиями смысловой близости. Кстати, в нашей команде работают люди, мыслящие на нескольких языках; с ними мы пытаемся анализировать параллельные тексты. При этом мы стараемся вычленить из этой естественной формы языка все наблюдаемые семантические классы, отнести наиболее конкретные из них на более низкие уровни, более общие — на верхние ступени иерархии. Например, семантический класс «средство передвижения» расположен выше классов «наземный транспорт», «воздушный транспорт» и «другой транспорт». Конечно, выстраивание таких цепочек — творческий процесс. Скажем, есть множество возможностей для встраивания в иерархию омонимов: «тополь» — это ведь и растение, и средство вооружения. Собственно говоря, из-за большого числа значений каждого слова в системе семантических категорий так много горизонтальных связей.