Журнал LinuxFormat - перейти на главную

LXF78:Интервью

Материал из Linuxformat
(Различия между версиями)
Перейти к: навигация, поиск
 
(не показаны 10 промежуточных версий 1 участника)
Строка 1: Строка 1:
!!! ON AIR !!!
 
 
 
__NOTOC__
 
__NOTOC__
  
!!!! Страница в разработке !!!!!
 
  
= Monoглоты =
+
= Mono-глоты =
 
''Linux Format встретился с  '''Эдом Дамбиллом (Edd Dumbill)''' и  '''Нилом Борнштейном (Niel Bornstein)''', авторами недавно вышедшей книги о прелестях Mono. ''
 
''Linux Format встретился с  '''Эдом Дамбиллом (Edd Dumbill)''' и  '''Нилом Борнштейном (Niel Bornstein)''', авторами недавно вышедшей книги о прелестях Mono. ''
  
Строка 12: Строка 9:
 
Заголовок=Визитка LXF|
 
Заголовок=Визитка LXF|
 
Содержание='''Нил Борнштейн'''
 
Содержание='''Нил Борнштейн'''
[[Изображение:Img_79_39_1.png|thumb| Нил Борнштейн (Niel Bornstein)
+
[[Изображение:Img_78_39_1.jpg|thumb| Нил Борнштейн (Niel Bornstein)
 
]]
 
]]
 
 
  
 
Закончив университет Джорджии, Нил работает старшим архитектором в Novell Consulting, помогая клиентам, включающим местные исправительные учреждения, по системам с открытым исходным кодом.
 
Закончив университет Джорджии, Нил работает старшим архитектором в Novell Consulting, помогая клиентам, включающим местные исправительные учреждения, по системам с открытым исходным кодом.
Строка 21: Строка 16:
 
* Возраст: 39
 
* Возраст: 39
 
* Национальность: Американец
 
* Национальность: Американец
* Стаж работы в Linux: 10
+
* Использует Unix: 10
 
* Языков программирования: 7
 
* Языков программирования: 7
 
* Число ПК: 3
 
* Число ПК: 3
Строка 27: Строка 22:
 
* Пар сандалий: 1
 
* Пар сандалий: 1
 
* Прямая речь: «Мы должны сделать переход на Linux достижимой целью».|
 
* Прямая речь: «Мы должны сделать переход на Linux достижимой целью».|
Ширина=40%
+
Ширина=35%
 
}}
 
}}
  
Споры по поводу Mono наэлектризовали свободное сообщество. Должны ли мы писать программы, которые целиком и полностью зависят от изобретения Microsoft? Не нарвемся ли мы на патентные иски? Долго ли еще играть в догонялки с инновациями Microsoft? Некоторые считают, что инновации .NET слишком серьезны, чтобы занять позицию «изобретено не здесь» и проигнорировать их, и полагают, что Mono (открытая реализация .NET) и C# могли бы стать наилучшим выбором для будущих разработок.
 
  
Эд Дамбилл и Нил Борнштейн – двое из вышеупомянутых некоторых; они соавторы книги «Mono: Блокнот разработчика» (Mono: A Developer’s Notebook), ставшей настольным лабораторным путеводителем для программистов, которые делают на пути Mono первые шаги. Мы поймали писательский дуэт на OSCon, чтобы узнать, что подвигло их на создание этого труда и почему они избегают C++, и, конечно, расспросить о книге.
+
{{Врезка|
 +
Заголовок=Визитка LXF|
 +
Содержание='''Эд Дамбилл'''
 +
[[Изображение:Img_78_41_face2.jpg|thumb| Эд Дамбилл (Edd Dumbill)
 +
]]
  
 +
Редактор по общим вопросам в O'Rielly Network, так же работает над ПО Bluetooth для Debian и пишет для Gnome. Он - бывший редактор XML.com и председатель Европейской конференции XML (XML Europe conference)
 +
* Возраст: 31
 +
* Национальность: Британец
 +
* Использует Unix: 9
 +
* Языков программирования: 10
 +
* Число ПК: 7
 +
* Суточная норма кофе: 3 чашки
 +
* Пар сандалий: 1
 +
* Прямая речь: «Игра в Mono в догонялки с Microsoft не слишком вдохновляет».|
 +
Ширина=35%
 +
}}
  
 +
Споры по поводу Mono наэлектризовали свободное сообщество. Должны ли мы писать программы, которые целиком и полностью зависят от изобретения Microsoft? Не нарвемся ли мы на патентные иски? Долго ли еще играть в догонялки с инновациями Microsoft? Некоторые считают, что инновации .NET слишком серьезны, чтобы занять позицию «изобретено не здесь» и проигнорировать их, и полагают, что Mono (открытая реализация .NET) и C# могли бы стать наилучшим выбором для будущих разработок.
  
 +
Эд Дамбилл и Нил Борнштейн – двое из вышеупомянутых некоторых; они соавторы книги «Mono: Блокнот разработчика» (Mono: A Developer’s Notebook), ставшей настольным лабораторным путеводителем для программистов, которые делают на пути Mono первые шаги. Мы поймали писательский дуэт на OSCon, чтобы узнать, что подвигло их на создание этого труда и почему они избегают C++, и, конечно, расспросить о книге.
  
'''LXF:''' Год назад, Mandrake был почти банкротом, а теперь вы заключаете сделки с Conectiva и Lycoris. Что же привело к таким изменениям столь скоро после банкротства?
+
'''Linux Format:''' Вы, парни, работаете с Linux много лет. Как вы вышли на Mono, и чем занимались все годы до него?
 
+
'''ГД:''' Возможно, в прошлом Mandrake потерял какое-то время, утрясая финансовые вопросы, так что, когда все было решено, нам пришлось двигаться быстрее.
+
 
+
'''LXF:''' Чтобы наверстать упущенное?
+
 
+
'''ГД:''' Да. Поэтому слияние с Conectiva было для нас, во-первых, возможностью продемонстрировать, что мы живы-здоровы, и во-вторых, доказать, что мы можем расширить компанию, поднять бизнес, стать сильнее и так далее.
+
 
+
'''LXF:''' Чьим решением было слиться с Conectiva? Это была группа людей?
+
 
+
'''ГД:''' Первым шагом был сбор сведений об имеющихся возможностях. На нем мы обнаружили Conectiva, а также ряд других компаний. На втором этапе были устроены общие дебаты и, наконец, был сделан выбор между слиянием и поглощением. Поскольку большая часть нашей команды менеджеров согласилась с тем, что это хорошая идея…
+
 
+
'''LXF:''' С обеих сторон?
+
 
+
'''ГД:''' Да, с обеих сторон. Мы начали формальный процесс, в ходе которого члены Совета директоров Mandriva выразили свое мнение относительно слияния, затем было голосование акционеров… Это долгий процесс, который отнял у нас почти год, а точнее — девять месяцев.
+
 
+
'''LXF:''' Насколько близки были Conectiva и Mandrake? Была ли у вас общность в стратегии или вы искали нечто совсем другое?
+
 
+
'''ГД:''' Для нас представлял интерес слияние с компанией, работающей не в том же самом сегменте рынка. Они [Conectiva] не были прямыми конкурентами Mandriva, поскольку их целевая аудитория — Южная Америка и потому были привлекательны. Они дополняли Mandriva, а не… я не знаю, как это объяснить. Кроме всего прочего, Conectiva — компания примерно того же размера, что и мы и имеет сходное число сотрудников. Дискуссии с ними были тоже очень теплыми. Мы начали работать вместе еще до слияния, в рамках LCC (Linux Core Consortium), так что уже испытывали к ним дружеские чувства. Со своей стороны, они также были заинтересованы в этой сделке, поскольку, не являясь большой или очень известной компанией, смогли таким образом привлечь к себе внимание общественности.
+
 
+
'''LXF:''' Кстати, LCC вам хоть в чем-нибудь помог?
+
 
+
'''ГД:''' На этом фронте сейчас не наблюдается особой активности. Я не думаю, что влияние будет сколько-нибудь значительным — просто два члена консорциума стали одним, и все.
+
 
+
'''LXF:''' Как по-вашему, в результате слияния цели Mandriva стали ближе к целям Conectiva, Mandrake или смесью их обеих?
+
 
+
'''ГД:''' Цели были практически одинаковыми. И мы, и Conectiva выпускаем продукт на базе Linux и продаем его корпорациям и частным лицам, они — в Южной Америке, мы — в Европе и США.
+
 
+
'''LXF:''' Как вы думаете, Mandriva сохранит в себе все черты Conectiva? Вы слегка сместите свой рынок?
+
 
+
'''ГД:''' Я считаю, что наши рынки очень похожи. Вопрос состоит лишь в модельном ряде, так что нам пришлось объединить продуктовые линейки и торговые марки, поскольку эффективнее иметь всего одну серию продуктов и один бренд. Это было одной из причин для переименования: Conectiva плюс Mandrake равно Mandriva. В настоящий момент мы находимся в процессе объединения наших Linux-продуктов в общую линейку решений. Возможно, они будут иметь специализированные продукты для Южной Америки, если того потребует их локальный рынок, но на общемировом уровне все будет унифицировано. Мы возьмем лучшее в Conectiva Linux, добавим в Mandrake и назовем получившийся продукт Mandriva.
+
 
+
'''LXF:''' И что же является лучшим в Conectiva Linux?
+
 
+
'''ГД:''' Кое-какие удачные технологии являются частью ПО Smart. Оно похоже на urpmi, систему отслеживания зависимостей Mandrake, но использует другие алгоритмы и более развито. Мы хотим объединить urpmi и Smart в отдельном пакете.
+
 
+
'''LXF:''' Conectiva базируется на APT?
+
 
+
'''ГД:''' Нет, нет, это RPM, но он может понимать APT до некоторой степени.
+
 
+
'''LXF:''' Вы планируете посетить штаб-квартиру Conectiva?
+
 
+
'''ГД:''' Может быть, но не скоро. Сначала мне нужно подготовить корабль.
+
 
+
'''LXF:''' Вы не любите летать?
+
 
+
'''ГД:''' Я не могу летать, у меня боязнь самолетов.
+
 
+
'''LXF:''' А вы рассматривали возможность слияния с SUSE? Они куда ближе к вам.
+
 
+
'''ГД:''' В Германию обычно летают самолетами, поэтому здесь у нас те же проблемы.
+
 
+
'''LXF:''' Расскажите про приобретение Lycoris. Чем был обусловлен этот шаг?
+
 
+
'''ГД:''' Mandriva начинался как настольный дистрибутив, хотя потом мы расширились и на сервера. Мы считаем важным продвигаться дальше в области настольных систем, поскольку это часть нашего имиджа и потому, что мы хотим быть готовы к прорыву Linux в данном направлении.
+
 
+
'''LXF:''' Значит, по-вашему, Linux еще не готов к настольному применению?
+
 
+
'''ГД:''' С технической точки зрения, думаю, готов. То есть, технологии уже наличествуют. Но необходимо подождать, пока независимые поставщики начнут чаще выпускать решения для Linux, станут рассматривать его как жизнеспособный рынок. Конечно, это не так просто.
+
  
С другой стороны, мы наблюдаем позитивные сдвиги в данном направлении, например, выпуск Nero для Linux или новой версии Acrobat Reader. Может быть, переход Apple на платформу Intel (см. Новости на стр. 6) также окажет позитивное влияние, снизив затраты и упростив работу поставщиков по переносу их приложений в Linux. С другой стороны, прождав достаточное время, мы с необходимостью получим открытый эквивалент для каждого приложения Windows. Вот тогда Linux будет полностью готов к настольному применению — и для коммерческого ПО будет уже слишком поздно.
+
'''Эд Дамбилл (ЭД):''' Я работал над проектом рабочего стола Gnome и тесно соприкасался с вещами, которые приходилось делать ребятам из Ximian. На Mono вышел потому, что это позволило мне добиться большей продуктивности в написании Gnome-приложений, совершив скачок на C# из C.
  
'''LXF:''' планируется ли еще одна смена имени?
+
Так что для меня дело было не в кросс-платформности, а просто Mono – отличная среда для работы. Я принял участие в проекте, который запустил [основатель Ximian и Mono] Нат Фридман (Nat Friedman) под названием Dashboard, на какое-то время проект завис, а потом превратился в поисковый инструмент под названием Beagle. Вот так я и пришел к Mono.
  
'''ГД:''' Нет.
+
'''Нил Борнштейн (НБ):''' Что до меня, я перешел от Java к .NET под Windows, и меня всегда интересовали возможности Open Source в этой области. Эд как-то пришел и сказал, что хочет написать книгу [о Mono], ну и я вроде как заинтересовался. Я пришел к Mono от книги, а не наоборот – к книге от Mono.
  
'''LXF:''' До слияния с Conectiva, что привело Mandrake к таким серьезным проблемам, и чему вы научились в конечном итоге?
 
  
'''ГД:''' Я думаю, проблема была в выборе времени. Мы начали в 1998 году и очень быстро стали успешными. Проблемы пришли позднее и были связаны с крушением доткомов. В 1999 и 2000 году на счета компании поступало множество средств — в основном, инвестиций от венчурных капиталистов. у нас было более 20 млн евро, а когда вы — молодая компания, обладающая значительными средствами, вы начинаете слишком много тратить и нанимать лишних людей. В середине 1999 в штате Mandrakesoft было около 12 человек, а спустя год их стало уже 150.
+
'''LXF:''' До сих пор кое-кто не доверяет Mono, так как боится проблем с патентами. Вы, ребята, с Mono уже сравнительно давно. Вы знали об угрозе патентных исков, и все-таки решились нырнуть в него с головой?
  
'''LXF:''' Ого! теперь понятно, куда делисьденьги.
+
'''ЭД:''' Люди, которым я доверяю, Нат и Мигель [де Икаса (de Icaza), сооснователь Mono], потратили на Mono очень много времени, для меня лично это в некотором смысле достаточно надежная гарантия. Я тогда не представлял никакую корпорацию, просто был программистом. И потом, каждый раз, когда вы пишете программу, вы почти наверняка нарушаете чейнибудь патент. Но даже если конкретно такого патента нет, при желании можно найти похожий, и вас все равно потащат в суд.
  
'''ГД:''' Именно. Знаете, в том, что касается увольнения работников, во Франции действует очень жесткое законодательство, так что нам потребовалось много времени, чтобы сократить штат и достичь точки безубыточности. В период между 2001 и 2003 годом у нас были сплошные расходы. Прошло время — три года, если быть точным, и мы потратили все, что у нас было. Когда у вас кончаются деньги, необходимо закрыть компанию и искать какой-нибудь выход.
 
  
'''LXF:''' Принятие неудачных решений было частью проблемы?
+
'''LXF:''' Но это же не считается умышленным нарушением?
  
'''ГД:''' Да, в некотором смысле. Сложно сказать, было ли нечто правильным, поскольку для ответа на этот вопрос необходимо попробовать другие варианты, но я считаю, что нанять так много людей было неверным шагом. После этого были и другие затратные решения, например, поучиться электронному бизнесу. Менеджеры принимали очень дорогие предложения, поскольку были уверены, что в компанию обязательно придут деньги и покроют эти расходы.
+
'''ЭД:''' Нет, но проблема в том, что если вы – мелкая рыбешка, а патентные условия сформулированы достаточно расплывчато, причем в США в большинстве случаев так и есть, то за вами начнут охоту. И еще до суда у вас не останется денег на борьбу. Проблемы с патентами в большей степени касаются той части Mono, которая не является стандартом ECMA [European Computer Manufacturers Association, Европейская Ассоциация Производителей Компьютеров], то есть эмулирующей Windows, а я никак не использую эту часть платформы. Windows Forms, ASP .NET...
  
'''LXF:''' Не очень реалистично.
+
'''НБ:''' Microsoft опубликовала эти стандарты, то есть передала их в ECMA, и теперь они общественные – так почему бы и не воспользоваться ими? А остальное… кто знает, что будет? Мне ничто не мешает использовать это остальное, и не помешало бы мне предлагать другим его использовать, если надо.
  
'''ГД:''' Нет, и всей команде менеджеров пришлось уйти, поскольку продолжать в таком духе длительное время было невозможно. Мы начали подчищать здесь и там, но на это ушло несколько лет…
 
  
'''LXF:''' Из тех 150 человек, сколько было разработчиков, сотрудников отдела продаж, администраторов, менеджеров?
+
'''LXF:''' Перейдя на Mono, какие главные преимущества вы нашли для себя?  
  
'''ГД:''' Я думаю, около 60 разработчиков. У нас тогда была команда в США, и это обходилось нам очень дорого. В нее входили специалисты по продажам и программисты. Думаю, разработчиков было где-то треть.
+
'''ЭД:''' Главное различие – в переходе с C на C# и написании программ для рабочего стола Gnome. Этим занималось немало людей в среде Gnome с помощью по-настоящему интересных и полезных приложений, которые сейчас быстро развиваются.
  
'''LXF:''' Должно быть, ваше финансовое положение значительно улучшилось благодаря членам сообщества, которые вступали в MandrakeClub?
+
Одно из основных преимуществ перехода на зрелый объектно-ориентированный язык – большое количество возможностей. Настольные приложения Mono сегодня просто первоклассные, в них есть наследование, события и прочее. Все это, конечно, есть и в Java, но в C# вы чувствуете себя преемником программистов С. Я никогда не мог по-настоящему привыкнуть к Java, потому что в нем слишком много ограничений на то, чем я занимался.
  
'''ГД:''' В конце 2002 года у нас начались серьезные проблемы с деньгами и мы поняли, что для дальнейшего роста их необходимо где-то искать. Нам не удалось привлечь дополнительных инвестиций, так что мы попытались объяснить ситуацию сообществу. Мы сказали, что если они хотят помочь Mandriva, то могут сделать это, приобретая наши продукты, становясь членами MandrakeClub… Я думаю, реакция сообщества была ключевым фактором, не позволившим нам опустить руки и сказать: «Все, мы сдаемся».
+
'''НБ:''' Да еще в C# имеется много приманок, которых не было – а некоторых и сейчас нет – в Java. Так что мне, когда я отошел от Java, было очень приятно продолжить работать на C# (мне он понравился еще под Windows) и использовать его для Linux, Mac и всех других платформ.
  
'''LXF:''' Значит, они держали вас на плаву?
+
'''ЭД:''' Еще одно серьезное преимущество – вы не теряете свои старые наработки на С из-за всяких P/invoke. Можно выполнять «родной» код из программы C# и не писать все эти оболочки и тому подобное, а при работе в Python, скорее всего, пришлось бы задействовать SWIG. И это был бы долгий-долгий обходной путь. Вот вам и преимущество.
  
'''ГД:''' Да, да, мы поняли, что Mandriva очень важна для них. В то же время многие люди стали членами Клуба и оказали нам финансовую поддержку. Мы поняли, что стоит хотя бы попытаться найти какой-нибудь выход.
+
Во многих языках скриптов и динамических языках вы все время налетаете на препятствие, потому что не нашлась требуемая библиотека – а для молодых языков это весьма частая ситуация. Так что здесь мы имеем отличный выход.
  
'''LXF:''' Вы не боитесь, что расширяетесь слишком быстро и можете столкнуться с теми же проблемами?
 
  
'''ГД:''' Lycoris является нашим третьим приобретением за минувший год, и мы потратили не так уж много денег — в основном, присходил обмен акциями. Кроме того, Edge-IT и Conectiva были прибыльными компаниями, как и Mandriva. Так что риски и ситуация не совсем те, что были раньше, когда затраты превышали выручку в тричетыре раза.
+
'''LXF:''' Вы сказали, что переход на C# дает вам наследование, а оно есть также и в C++. Разве перейти на C++ не так же легко?
  
'''LXF:''' Lycoris основан на Caldera Linux (продукте родительской компании SCO Group). Вы не боитесь, что эта ассоциация может повредить Mandriva?
+
'''ЭД:''' По-моему, надо быть мазохистом, чтобы перейти на C++. Есть причины, по которым проект Gnome этого не сделал. Такой переход влечет множество тягот, а мне их не надо. Я думаю, это дело личного убеждения.
  
'''ГД:''' Я так не думаю — образ Lycoris давно не ассоциируется ни с Caldera, ни с SCO.
+
И потом, намного разумнее работать с языком, который впитал опыт использования С, С++, Java. Такой язык берет все хорошее и выбрасывает все плохое, потому что это плохое путается под ногами. Ну, вы знаете, все эти случайности с файлами заголовков, все эти штуки из С, С++… Одна большая головная боль. Нужны были прототипы, по два места для вашего класса.
  
'''LXF:''' По-вашему, консолидация на рынке Linux будет продолжаться?
+
'''НБ:''' Да, грустно. Я совсем забросил указатели. Пользоваться [в Mono] ими можно, но я не вижу для этого причин, если вы пишете портируемый код и не используете унаследованных библиотек. Я не писал на С уже лет пять или шесть.
  
'''ГД:''' Мы рады, что находимся в ситуации, когда сами приобретаем компании, а не наоборот. И хорошо, что Mandriva может расширяться.
+
'''ЭД:''' Я думаю, управление памятью – это отличная вещь. Работа в среде управляемого кода.
  
'''LXF:''' значит ли это, что Mandriva сворачивает свою деятельность на данном фронте?
 
  
'''ГД:''' Вероятнее всего, мы сделаем паузу. Объединить Conectiva и Lycoris с Mandriva уже непростая задача с точки зрения организации и процессов. Кто знает…
+
'''LXF:''' Как сказал Мигель: «В твоей жизни наступает момент, когда ты  понимаешь, что слишком большую ее  часть потратил на создание собственной системы сборки мусора».
  
'''LXF:''' В этом году Mandriva выпустила только Limited Edition, тогда как раньше были и Powerpack, и Powerpack+. В будущем также будет одна-единственная версия дистрибутива, или же планируются различные уровни?
+
'''ЭД:''' Да, пора начать доверять кому-то еще, и мы как раз подошли к этому  моменту.
  
'''ГД:''' Limited Edition (Ограниченная редакция) — это специальный выпуск, и он будет только один. Следующая версия продолжит традицию именования, поскольку мы добавим полную редакцию 2006 года, но здесь уже появятся демо-пак, PowerPack+ и Discovery.
+
'''НБ:''' Я считаю, что память и процессорное время достаточно дешевы, чтобы позволить запустить сборку мусора. Сейчас не надо подстраивать свой код так долго, как раньше.
  
'''LXF:''' Mandriva перешла на годичный цикл, но недавно промелькнула информация о неких клубных выпусках, появляющихся раз в два месяца и содержащих новые функции. Так какова ваша стратегия: раз в год, раз в два месяца или..?
 
  
'''ГД:''' С одной стороны, мы имеем официальные продукты — коробочные версии с документацией и поддержкой, которые люди могут покупать в магазинах и тому подобное, а с другой — у нас есть члены Клуба, которые имеют доступ ко всем этим продуктам и даже больше. Суть состоит в том, что если вам нужны все официальные версии, следует вступить в Клуб, и вы сможете загружать обновления каждые два месяца, включая такие новинки, как последние версии GNOME и KDE.
+
'''LXF:''' Вы, значит, думаете, что если придется программировать GTK, вы прямиком двинетесь к Mono? Или вы скажете: «С тут подойдет лучше»?
  
'''LXF:''' Речь идет именно об обновлении или же придется загружать новые iso-образы и устанавливать, устанавливать, устанавливать?
+
'''ЭД:''' Не думаю, что кто-либо в здравом уме будет и дальше работать на С. Основная причина, почему изрядная часть Gnome по-прежнему на С –  потому что с этим согласилось большинство народа. Точнее, все сошлись на том, что хотят использовать язык высокого уровня, [но] какой – Python? Или C#? Или новый classpath Java? Я думаю, что С выбран просто благодаря его фундаментальным библиотекам. Но попытайтесь создавать объекты в С или GTK, и очень скоро увидите, как  это мучительно.
  
'''ГД:''' У вас есть выбор. Можно загрузить обновленные пакеты или дистрибутив целиком.
+
Я думаю, что достоинства есть и у Mono, и у Python. Возможно, Python быстрее по части создания прото типов, но зато типобезопасность C#  создает уверенность в том, что ваша  программа ни с того ни с сего не сломается. Сейчас реально существует среднее звено – с Boo и IronPython, мы на той стадии, когда имеются достойные интерпретируемые языки, способные запускаться в той же среде. Я бы с удовольствием использовал их и для создания прототипов, не такой уж я упертый.
  
'''LXF:''' Решение выпускать что-то каждые два месяца было продиктовано давлением со стороны конкурентов? SUSE 8.3 включает GNOME 2.10, KDE 3.4, Xen, Beagle, F-Spot, Mono, Java — и спустя две недели выходит Mandriva. С более старым GNOME, KDE…
 
  
'''ГД:''' Традиционно, Mandrake находился на острие атаки, а SUSE и Red Hat были более консервативны, поскольку желали удостовериться, что используют самое стабильное ПО. Теперь они стараются делать то же, что и мы раньше. Это немного забавно, но решение выпускать обновление каждые два месяца было продиктовано не SUSE или кем-то там еще, а нашими пользователями, которые хотели иметь самые свежие версии продуктов.
+
'''LXF:''' Участвовали ли вы в попытках ввести в проект Gnome другие языки высокого уровня?
  
'''LXF:''' Так почему же Mandriva 2005 проигрывает SUSE в номерах версий? У вас всегда было все самое свежее и вдруг… Что случилось?
+
'''ЭД:''' Ну, в какой-то мере меня втянули в дебаты, в первый раз это было около года назад. Дебаты всех утомили, но ни к какому решению не привели. По-прежнему пребываем в состоянии неопределенности. Все участники проекта Gnome работают на разные корпорации. У Red Hat есть эта их здоровая штуковина на Java для работы с classpath и так далее. Парни из Canonical в восторге от Python – и они вовсе даже не спешат его покинуть.
  
'''ГД:''' По сравнению с тем, что было раньше, мы внедрили у себя в компании более формальный процесс, чтобы обеспечить самое высокое качество. В рамках этого процесса выбор версии происходит за 3-4 месяца до даты предполагаемого релиза, поэтому и сложно включить самую последнюю версию. Я не знаю, как это удается SUSE! Существует два типа пользователей Linux. Это хакеры, которым всегда нужна последняя версия. Кроме них, существует корпоративный рынок и обычные пользователи, которые знают о Linux самую малость и просто хотят попробовать его, может быть, использовать его, но им не нужна последняя версия. Мы стараемся угодить всем. Я думаю, что гарантированно стабильное ПО должно входить в официальные выпуски, и, в то же самое время, мы можем предлагать самые последние новинки членам клуба, которые хотят всегда быть впереди. Может быть, SUSE принимает на себя часть рисков. Не знаю, насколько стабилен этот дистрибутив, но…
 
  
'''LXF:''' Последний выпуск Mandriva вызвал немало критики в рядах наших читателей из-за своей «мультяшной» графики. Вы стараетесь выйти на корпоративный рынок, но вряд ли такие рисунки придутся по вкусу его покупателям.
+
'''LXF:''' Novell, Red Hat и Canonical: три разных фирмы, три разных языка!
  
'''ГД:''' Я еще раз повторяю, что это была специальная версия. В марте мы планировали выпустить официальный Mandrake с элементами Conectiva и другими бонусами, но это оказалось невозможным, так что мы решили приготовить особую переходную версию. Она не ориентирована ни на корпоративный, ни на частный сектор. Она — для продвинутых пользователей. Их не смущают «мультяшные» изображения.
+
'''ЭД:''' Ну и что? У DVD большая емкость; в наши дни у людей увеличилась ширина канала. Надо будет загрузить три виртуальные машины на три среды выполнения и создать мосты, –создадим. Если это – цена создания достойных приложений для Gnome, то мы готовы ее заплатить. Не проблема. Я думаю, именно в этом направлении и следует идти – пусть каждый делает свою работу, а в конце концов объединимся.
  
'''LXF:''' Где вы видите основные рынки для Mandriva? Что наиболее привлекательно с точки зрения выручки?
+
Приложение Gnome определятся не языком, на котором оно написано, а собственным стилем – функция drag&drop работает определенным образом, темы подобраны определенным образом, и так далее. А если говорить о пользователях, то им язык абсолютно безразличен.
  
'''ГД:''' Ядро наших покупателей формируют домашние пользователи. Мы можем положиться на данный рынок — это солидная часть наших доходов. Но, с нашей точки зрения, корпоративный и бизнес-рынки предоставляют больше возможностей для роста. Впоследствии мы можем переключиться на массовый рынок, индивидуальных пользователей, но, по нашему мнению, Linux для него еще не готов. Мы будем в нужном месте, когда начнется его бурное развитие, но сейчас мы предлагаем решения для покупательского ядра и хотим расширяться на корпоративный рынок.
+
По-прежнему спорят, какой будет платформа разработки, но мне думается, что это само по себе ответ потому что разработчики платформы изберут ту, для которой будет хорошая поддержка, ту, в которой они смогут чувствовать себя комфортно с точки зрения корпоративных интересов. И я думаю, что Mono серьезно опережает других на этом фронте, по причине наличия хорошей поддержки, которая у него имеется, поскольку он создан на плечах платформы Microsoft.  
  
'''LXF:''' А с географической точки зрения? несомненно, Mandriva присутствует во Франции и Бразилии, но где еще у вас есть сильные позиции, а где вы только собираетесь закрепиться?
 
  
'''ГД:''' у нас сильные позиции на корпоративном рынке Франции. Находясь в Париже, мы легко можем встречаться с людьми из больших компаний и правительства. Но если речь идет об индивидуальных пользователях… да, у нас обширная база во Франции, Великобритании, США, а также других частях Европы. Основная часть заказов приходится на наш онлайн-магазин, и мы осуществляем поставки примерно в 150 стран мира. Рынок очень велик, и мы не можем иметь офисы в каждой точке.
+
'''LXF:''' Для конечных пользователей Mono – сплошь крутые приложения: F-Spot – крут, Beagle – тоже крут, Blam – ну очень крут! На самом деле, лично мне полезен iFolder. Это что, из-за того, что над Mono трудятся только крутые хакеры, и создают только крутые программы?
  
'''LXF:''' Как вы думаете, рынок Южной Америки отличается от европейского?
+
'''НБ:''' Фирмы, которые уже используют .NET и хотят перейти на свободные платформы, начинают с этой целью использовать Mono. В последние полгода я общался со многими фирмами, интересующимися Mono – они пока еще не перешли на него, но хотят знать: «Что надо сделать? Что это вообще такое? Поможет ли это нам перейти на ASP.NET или писать переносимый код на .NET?» Так что в фирмах движение есть, а вот в продуктах, возможно, оно не столь заметно.
  
'''ГД:''' В Южной Америке и, в частности, в Бразилии, рынок Linux особенно обширен. На мой взгляд, местные правительства действительно хотят избавиться от Microsoft — они не особенно любят ее и страну, которую представляет данная компания. Это большой рынок, который играет по своим правилам, но он предназначен для больших корпораций и правительственных учреждений.
+
'''ЭД:''' Проекты, которые вы упомянули, были созданы для рабочего стола Gnome в Mono. Поймите, немало открытых проектов, которые начинались в .NET, работают и в Mono, поэтому нет особого смысла в написании другой версии. Есть шансы, что большинство проектов либо сразу заработают в Mono, либо потребуют очень незначительной перекомпиляции, чтобы уйти от специфики Windows – вроде обратного слэша в имени файла
 +
или еще какой-нибудь ерунды, которую программистам и допускать-то не следует.
  
'''LXF:''' А как обстоят дела с побочными продуктами вроде Mandriva Move? Какое-то время назад вы совместно с TransGaming выпускали коробочный дистрибутив с WineX, а также Mandrake для Xbox. Это не настольный Linux и не ваши основные продукты. Они будут развиваться?
+
И потом, неудивительно, что вывидите только крутые программы: ну что еще вам покажут за пять минут?
  
'''ГД:''' Ах да, Mandriva Move будет развиваться, поскольку это — самый простой способ попробовать Linux для неискушенного пользователя: каждый, кто способен включить компьютер, сможет запустить Mandriva Move, просто вставив диск в привод CD-ROM. Так что здесь ответ утвердительный. Но я не думаю, что мы станем развивать игровые решения. Да, у нас была версия для Xbox, но это.. как бы вам сказать… было не рыночным решением. Если вы найдете Xbox, работающий под управлением Mandriva Linux, я уверен, что наш исполнительный директор не будет ничего знать о нем.
 
  
'''LXF:''' А в чем Mandriva проигрывает конкурентам? в чем они лучше Mandriva?
+
'''LXF:''' Нужна ли перекомпиляция для таких ситуаций, как вызов P/invoke, где программист, возможно, захочет вернуться в цикл сообщений Windows?
  
'''ГД:''' Если речь идет о технологии, то главное — это Linux. Выбор дистрибутива подобен выбору машины: вы указываете марку и цвет, но компоненты внутри примерно одинаковы. Это верно и в отношении многих дистрибутивов. Существуют кое-какие вещи, делающие Mandriva проще других. Однако, вы можете случайно обнаружить в другом дистрибутиве такую функцию, которая сделает его более подходящим для вас, чем Mandriva.
+
'''ЭД:''' Дело даже не в этом. Такая проблема существует и в Java: вместо того, чтобы использовать класс пути, чтобы создать ссылку на имя файла, разработчик просто присоединяет обратные слэши. [Потому что разработчики] постоянно прикидывают: сколько будет дисков, где будет храниться результат, как добраться до домашней папки и т.д. Но если вы все делаете правильно, то это не помешает портированию. Мы приводим в книге несколько основных правил для написания переносимых приложений. Не так уж все сложно, но вы удивитесь: оказывается, на свете полно ленивых разработчиков!
  
'''LXF:''' Mandriva всегда славилась своими средствами для настройки системы. Повашему, это является конкурентным преимуществом или местом для сотрудничества между производителями различных дистрибутивов?
 
  
'''ГД:''' Я думаю, будет лучше, если все дистрибутивы Linux будут использовать общий конфигурационный слой, например, размещать файлы настроек в одном и том же месте и так далее. Это определяется различными стандартами, таким как LSB (Linux Standards Base). Тогда, если у каждого дистрибутива будут свои собственные графические инструменты, это не вызовет особых проблем и, конечно, будет плюсом Mandriva.
+
'''LXF:''' Поговорим о книге. Это часть целой серии?
  
'''LXF:''' Планирует ли Mandriva выйти в те же сегменты рынка, что Red Hat и SUSE? У Red Hat есть Enterprise Linux, который работает на мэйнфреймах IBM — очень высокоуровневых машинах. Собирается ли Mandriva конкурировать с ними?
+
'''ЭД:''' Да, серии «Блокнот Разработчика O’Рейли» (O’Reilly’s Developer’s Notebook). Я думаю, что она отражает суть работы большинства разработчиков: берешь практический пример, прорабатываешь его, ну, может, лезешь в справочник – и вперед! Менталитет «кода по примеру» присущ большинству программистов.
  
'''ГД:''' Да, если нам представится такая возможность.
+
Книга отражает эту ментальность [на] серии «лабораторных задач». Берем пример, показываем, как он работает, и развиваем его – что будет, если сделать так? А если сделать этак? Или иначе? – а потом подсказываем, где можно найти более подробную информацию о данном предмете. Мы немало потрудились, чтобы обеспечить по каждому вопросу дополнительный материал и чтобы вы смогли двигаться дальше, обучаясь самостоятельно.
  
'''LXF:''' Кроме того, Red Hat предлагает длительную программу поддержки. Они гарантируют поддержку в течение семи лет — всего срока жизни продукта. Mandriva способна на такое?
+
'''НБ:''' Другое преимущество выбранного формата – возможность добавить немного юмора, а не быть все время мрачным технарем. Там есть заметки на полях, где помещаются всякие шуточки, чтобы чтение было легким и интересным, в противовес сухому техническому чтиву.
  
'''ГД:''' Мы предлагаем поддержку в течение минимум двух или трех лет, но собираемся удлиннить данный период, поскольку это откроет для нас новые возможности на корпоративном рынке.
+
'''ЭД:''' Писать было очень интересно, и, я полагаю, это сказывается. Если вы писали книгу с удовольствием, то и читать ее приятно.
  
'''LXF:''' Будущее вашей компании — в продаже коробочных решений?
 
  
'''ГД:''' Зависит от того, что вы имеете в виду. Продажи падают в тех местах, где люди получают скоростной доступ в интернет — они предпочитают вступить в Mandriva Club и получать мгновенный доступ к новейшим коммерческим продуктам. В других местах, коробки успешно продаются.
+
'''LXF:''' У меня на нее было всего два часа вчера вечером, но по моему впечатлению, она коротковата.
  
'''LXF:''' Что вы думаете о патентах на ПО?
+
'''ЭД:''' Ну, рискну предположить, что вы за нее не платили, но объем книги соответствует ее цене. Это не энциклопедия…
  
'''ГД:''' Патенты вредят большинству маленьких компаний, производящих закрытое ПО. В то же самое время я уверен, что Европарламент примет поправки, в результате которых мы получим приемлемое законодательство.
+
'''НБ:''' … а стартовая площадка.
  
'''LXF:''' Конечно, вы не производите закрытое ПО, но все же: классифицируете ли вы Mandriva как небольшую компанию? Сколько у вас сотрудников?
+
'''ЭД:''' В ней есть действительно хороший и продвинутый материал, так что нельзя сказать, что мы не касались сложных тем: нашей задачей было предоставить достаточно материала, чтобы пример был понятен и вы освоились в этой области, а затем указать направление, куда вам двигаться самостоятельно, если вы хотите добиться большего.
  
'''ГД:''' Сотрудников… В настоящий момент примерно 60 во Франции и столько же в Бразилии. В итоге получается 120.
+
Мы, естественно, представляли себе тех, кто будет читать эту книгу. Самое главное, что это люди, которых не надо кормить с ложечки – это же разработчики, а они способны учиться сами. Книгу надо читать, имея под рукой клавиатуру.
  
'''LXF:''' И сколько из них инженеров?
+
'''НБ:''' И книга отнюдь не задумана как исчерпывающая.
  
'''ГД:''' 35 во Франции и 30 в Бразилии.
 
  
'''LXF:''' Тридцать пять только в одном Париже? ничего себе! Над какими проектами они работают? исправляют ошибки или создают пакеты?
+
'''LXF:''' Что вы могли бы рассказать о создании для Mono альтернативы Glade [визуальный редактор интерфейса для Gnome and GTK]?
  
'''ГД:''' Вы имеете в виду программные проекты? Обычно инженеры, обнаружившие ошибку в коде или еще что-то, сообщают о ней авторам и предлагают исправление. Так происходит с любым свободным ПО — это наше основное участие как разработчиков. Кроме того, ребята, собирающие для Mandriva пакеты KDE и GNOME, участвуют в соответствующих проектах и занимаются ими в свое рабочее время. У нас долго работал Дэвид Фаур (David Faure), который много сделал для KDE.
+
'''ЭД:''' В процессе разработки находятся два преемника Glade. Один из них по некой причине называется Stetic. Предстоит выбор, на каком из них остановиться – один из них пишется на Python, а другой – на C# , возможно, здесь и заключается ответ на вопрос о том, что происходит. Возможно, произойдет интеграция.  
  
'''LXF:''' Как вы думаете, слияние Mandrake и Conectiva может привести к увольнениям?
+
MonoDevelop неплохо интегрируется. Недавно появилось дополнение NUnit, так что на боковой панели вы сможете увидеть результаты своих тестов – сколько было успешных, сколько неудачных, а также график, отображающий результаты тестирования во времени. Я думаю, что улучшения еще будут, но для достижения уровня Visual Studio или Eclipse, например, потребуется пройти долгий путь. Если мы хотим убедить людей перейти с Windows на Linux, нужно, чтобы им было удобно, чтобы у них были все те удобные функции, что и в Visual Studio. Достойная программа для создания форм – одна из них.
  
'''ГД:''' У нас нет таких планов. Если мы… кто знает, что случится в будущем, но пока у нас нет таких планов.
+
Есть и другие аспекты. Люди покидают мир Windows с его ужасным абсолютным позиционированием элементов на форме и приходят в Gtk с его компоновщиками (box model). Вы можете растягивать окна, как хотите, они легко адаптируются. В принципе, с тем же самым сталкиваются дизайнеры при переходе от печатной работы на HTML: им тоже нужно адаптироваться.
  
'''LXF:''' В какой момент Mandrake перестал быть хобби и превратился в истинную карьеру?
 
  
'''ГД:''' Я думаю, это случилось 15 декабря 1998 года, когда я стал первым сотрудником только что появившейся на свет компании Mandrakesoft! В любом случае, я не знаю, стоит ли называть это карьерой. Я никогда не планировал делать карьеру, я хотел делать то, что мне нравится и это было одной из причин, побудивших меня после окончания университета открыть собственное дело, а не пойти работать в существующую фирму.
+
'''LXF:''' Что бы вы посоветовали тем, кто уже использует Qt или GTK и собирается попробовать Mono? Ну, кроме «Читайте нашу чудную книгу»?
  
'''LXF:''' Вы собираетесь всегда работать в Mandriva? вам она нравится?
+
'''ЭД:''' Я бы сказал: засучите рукава и беритесь за работу над кодом, и как можно быстрее. В смысле, когда вы меняете род деятельности, лучшее, что может вам помочь – это практический опыт. Некоторые проекты Mono, вроде Blam и Monopod (это мой клиент Интернет-вещания), достаточно малы, чтобы не заблудиться. Просто скачайте их – и поройтесь в исходном коде. Попробуйте его и так, и этак, пришлите заплатку. По моему мнению, собственного практического опыта ничто не заменит.
  
'''ГД:''' Да, конечно. Я начинал проект Mandrakesoft в одиночку и когда он превратился в компанию, я занимался разработкой, поддерживал web-сайт и так далее. Сейчас я отвечаю за коммуникации, потом переключусь на что-нибудь еще… кто знает?
+
'''НБ:''' Читайте MSDN [http://msdn.microsoft.com]. Самая лучшая документация по языку C# и библиотекам классов находится на сайте Microsoft. Так что если вы действительно хотите узнать что-то о языке и о библиотеках –вам туда.
  
 
[[Категория:Интервью]]
 
[[Категория:Интервью]]

Текущая версия на 16:43, 17 марта 2008


[править] Mono-глоты

Linux Format встретился с Эдом Дамбиллом (Edd Dumbill) и Нилом Борнштейном (Niel Bornstein), авторами недавно вышедшей книги о прелестях Mono.



Споры по поводу Mono наэлектризовали свободное сообщество. Должны ли мы писать программы, которые целиком и полностью зависят от изобретения Microsoft? Не нарвемся ли мы на патентные иски? Долго ли еще играть в догонялки с инновациями Microsoft? Некоторые считают, что инновации .NET слишком серьезны, чтобы занять позицию «изобретено не здесь» и проигнорировать их, и полагают, что Mono (открытая реализация .NET) и C# могли бы стать наилучшим выбором для будущих разработок.

Эд Дамбилл и Нил Борнштейн – двое из вышеупомянутых некоторых; они соавторы книги «Mono: Блокнот разработчика» (Mono: A Developer’s Notebook), ставшей настольным лабораторным путеводителем для программистов, которые делают на пути Mono первые шаги. Мы поймали писательский дуэт на OSCon, чтобы узнать, что подвигло их на создание этого труда и почему они избегают C++, и, конечно, расспросить о книге.

Linux Format: Вы, парни, работаете с Linux много лет. Как вы вышли на Mono, и чем занимались все годы до него?

Эд Дамбилл (ЭД): Я работал над проектом рабочего стола Gnome и тесно соприкасался с вещами, которые приходилось делать ребятам из Ximian. На Mono вышел потому, что это позволило мне добиться большей продуктивности в написании Gnome-приложений, совершив скачок на C# из C.

Так что для меня дело было не в кросс-платформности, а просто Mono – отличная среда для работы. Я принял участие в проекте, который запустил [основатель Ximian и Mono] Нат Фридман (Nat Friedman) под названием Dashboard, на какое-то время проект завис, а потом превратился в поисковый инструмент под названием Beagle. Вот так я и пришел к Mono.

Нил Борнштейн (НБ): Что до меня, я перешел от Java к .NET под Windows, и меня всегда интересовали возможности Open Source в этой области. Эд как-то пришел и сказал, что хочет написать книгу [о Mono], ну и я вроде как заинтересовался. Я пришел к Mono от книги, а не наоборот – к книге от Mono.


LXF: До сих пор кое-кто не доверяет Mono, так как боится проблем с патентами. Вы, ребята, с Mono уже сравнительно давно. Вы знали об угрозе патентных исков, и все-таки решились нырнуть в него с головой?

ЭД: Люди, которым я доверяю, Нат и Мигель [де Икаса (de Icaza), сооснователь Mono], потратили на Mono очень много времени, для меня лично это в некотором смысле достаточно надежная гарантия. Я тогда не представлял никакую корпорацию, просто был программистом. И потом, каждый раз, когда вы пишете программу, вы почти наверняка нарушаете чейнибудь патент. Но даже если конкретно такого патента нет, при желании можно найти похожий, и вас все равно потащат в суд.


LXF: Но это же не считается умышленным нарушением?

ЭД: Нет, но проблема в том, что если вы – мелкая рыбешка, а патентные условия сформулированы достаточно расплывчато, причем в США в большинстве случаев так и есть, то за вами начнут охоту. И еще до суда у вас не останется денег на борьбу. Проблемы с патентами в большей степени касаются той части Mono, которая не является стандартом ECMA [European Computer Manufacturers Association, Европейская Ассоциация Производителей Компьютеров], то есть эмулирующей Windows, а я никак не использую эту часть платформы. Windows Forms, ASP .NET...

НБ: Microsoft опубликовала эти стандарты, то есть передала их в ECMA, и теперь они общественные – так почему бы и не воспользоваться ими? А остальное… кто знает, что будет? Мне ничто не мешает использовать это остальное, и не помешало бы мне предлагать другим его использовать, если надо.


LXF: Перейдя на Mono, какие главные преимущества вы нашли для себя?

ЭД: Главное различие – в переходе с C на C# и написании программ для рабочего стола Gnome. Этим занималось немало людей в среде Gnome с помощью по-настоящему интересных и полезных приложений, которые сейчас быстро развиваются.

Одно из основных преимуществ перехода на зрелый объектно-ориентированный язык – большое количество возможностей. Настольные приложения Mono сегодня просто первоклассные, в них есть наследование, события и прочее. Все это, конечно, есть и в Java, но в C# вы чувствуете себя преемником программистов С. Я никогда не мог по-настоящему привыкнуть к Java, потому что в нем слишком много ограничений на то, чем я занимался.

НБ: Да еще в C# имеется много приманок, которых не было – а некоторых и сейчас нет – в Java. Так что мне, когда я отошел от Java, было очень приятно продолжить работать на C# (мне он понравился еще под Windows) и использовать его для Linux, Mac и всех других платформ.

ЭД: Еще одно серьезное преимущество – вы не теряете свои старые наработки на С из-за всяких P/invoke. Можно выполнять «родной» код из программы C# и не писать все эти оболочки и тому подобное, а при работе в Python, скорее всего, пришлось бы задействовать SWIG. И это был бы долгий-долгий обходной путь. Вот вам и преимущество.

Во многих языках скриптов и динамических языках вы все время налетаете на препятствие, потому что не нашлась требуемая библиотека – а для молодых языков это весьма частая ситуация. Так что здесь мы имеем отличный выход.


LXF: Вы сказали, что переход на C# дает вам наследование, а оно есть также и в C++. Разве перейти на C++ не так же легко?

ЭД: По-моему, надо быть мазохистом, чтобы перейти на C++. Есть причины, по которым проект Gnome этого не сделал. Такой переход влечет множество тягот, а мне их не надо. Я думаю, это дело личного убеждения.

И потом, намного разумнее работать с языком, который впитал опыт использования С, С++, Java. Такой язык берет все хорошее и выбрасывает все плохое, потому что это плохое путается под ногами. Ну, вы знаете, все эти случайности с файлами заголовков, все эти штуки из С, С++… Одна большая головная боль. Нужны были прототипы, по два места для вашего класса.

НБ: Да, грустно. Я совсем забросил указатели. Пользоваться [в Mono] ими можно, но я не вижу для этого причин, если вы пишете портируемый код и не используете унаследованных библиотек. Я не писал на С уже лет пять или шесть.

ЭД: Я думаю, управление памятью – это отличная вещь. Работа в среде управляемого кода.


LXF: Как сказал Мигель: «В твоей жизни наступает момент, когда ты понимаешь, что слишком большую ее часть потратил на создание собственной системы сборки мусора».

ЭД: Да, пора начать доверять кому-то еще, и мы как раз подошли к этому моменту.

НБ: Я считаю, что память и процессорное время достаточно дешевы, чтобы позволить запустить сборку мусора. Сейчас не надо подстраивать свой код так долго, как раньше.


LXF: Вы, значит, думаете, что если придется программировать GTK, вы прямиком двинетесь к Mono? Или вы скажете: «С тут подойдет лучше»?

ЭД: Не думаю, что кто-либо в здравом уме будет и дальше работать на С. Основная причина, почему изрядная часть Gnome по-прежнему на С – потому что с этим согласилось большинство народа. Точнее, все сошлись на том, что хотят использовать язык высокого уровня, [но] какой – Python? Или C#? Или новый classpath Java? Я думаю, что С выбран просто благодаря его фундаментальным библиотекам. Но попытайтесь создавать объекты в С или GTK, и очень скоро увидите, как это мучительно.

Я думаю, что достоинства есть и у Mono, и у Python. Возможно, Python быстрее по части создания прото типов, но зато типобезопасность C# создает уверенность в том, что ваша программа ни с того ни с сего не сломается. Сейчас реально существует среднее звено – с Boo и IronPython, мы на той стадии, когда имеются достойные интерпретируемые языки, способные запускаться в той же среде. Я бы с удовольствием использовал их и для создания прототипов, не такой уж я упертый.


LXF: Участвовали ли вы в попытках ввести в проект Gnome другие языки высокого уровня?

ЭД: Ну, в какой-то мере меня втянули в дебаты, в первый раз это было около года назад. Дебаты всех утомили, но ни к какому решению не привели. По-прежнему пребываем в состоянии неопределенности. Все участники проекта Gnome работают на разные корпорации. У Red Hat есть эта их здоровая штуковина на Java для работы с classpath и так далее. Парни из Canonical в восторге от Python – и они вовсе даже не спешат его покинуть.


LXF: Novell, Red Hat и Canonical: три разных фирмы, три разных языка!

ЭД: Ну и что? У DVD большая емкость; в наши дни у людей увеличилась ширина канала. Надо будет загрузить три виртуальные машины на три среды выполнения и создать мосты, –создадим. Если это – цена создания достойных приложений для Gnome, то мы готовы ее заплатить. Не проблема. Я думаю, именно в этом направлении и следует идти – пусть каждый делает свою работу, а в конце концов объединимся.

Приложение Gnome определятся не языком, на котором оно написано, а собственным стилем – функция drag&drop работает определенным образом, темы подобраны определенным образом, и так далее. А если говорить о пользователях, то им язык абсолютно безразличен.

По-прежнему спорят, какой будет платформа разработки, но мне думается, что это само по себе ответ потому что разработчики платформы изберут ту, для которой будет хорошая поддержка, ту, в которой они смогут чувствовать себя комфортно с точки зрения корпоративных интересов. И я думаю, что Mono серьезно опережает других на этом фронте, по причине наличия хорошей поддержки, которая у него имеется, поскольку он создан на плечах платформы Microsoft.


LXF: Для конечных пользователей Mono – сплошь крутые приложения: F-Spot – крут, Beagle – тоже крут, Blam – ну очень крут! На самом деле, лично мне полезен iFolder. Это что, из-за того, что над Mono трудятся только крутые хакеры, и создают только крутые программы?

НБ: Фирмы, которые уже используют .NET и хотят перейти на свободные платформы, начинают с этой целью использовать Mono. В последние полгода я общался со многими фирмами, интересующимися Mono – они пока еще не перешли на него, но хотят знать: «Что надо сделать? Что это вообще такое? Поможет ли это нам перейти на ASP.NET или писать переносимый код на .NET?» Так что в фирмах движение есть, а вот в продуктах, возможно, оно не столь заметно.

ЭД: Проекты, которые вы упомянули, были созданы для рабочего стола Gnome в Mono. Поймите, немало открытых проектов, которые начинались в .NET, работают и в Mono, поэтому нет особого смысла в написании другой версии. Есть шансы, что большинство проектов либо сразу заработают в Mono, либо потребуют очень незначительной перекомпиляции, чтобы уйти от специфики Windows – вроде обратного слэша в имени файла или еще какой-нибудь ерунды, которую программистам и допускать-то не следует.

И потом, неудивительно, что вывидите только крутые программы: ну что еще вам покажут за пять минут?


LXF: Нужна ли перекомпиляция для таких ситуаций, как вызов P/invoke, где программист, возможно, захочет вернуться в цикл сообщений Windows?

ЭД: Дело даже не в этом. Такая проблема существует и в Java: вместо того, чтобы использовать класс пути, чтобы создать ссылку на имя файла, разработчик просто присоединяет обратные слэши. [Потому что разработчики] постоянно прикидывают: сколько будет дисков, где будет храниться результат, как добраться до домашней папки и т.д. Но если вы все делаете правильно, то это не помешает портированию. Мы приводим в книге несколько основных правил для написания переносимых приложений. Не так уж все сложно, но вы удивитесь: оказывается, на свете полно ленивых разработчиков!


LXF: Поговорим о книге. Это часть целой серии?

ЭД: Да, серии «Блокнот Разработчика O’Рейли» (O’Reilly’s Developer’s Notebook). Я думаю, что она отражает суть работы большинства разработчиков: берешь практический пример, прорабатываешь его, ну, может, лезешь в справочник – и вперед! Менталитет «кода по примеру» присущ большинству программистов.

Книга отражает эту ментальность [на] серии «лабораторных задач». Берем пример, показываем, как он работает, и развиваем его – что будет, если сделать так? А если сделать этак? Или иначе? – а потом подсказываем, где можно найти более подробную информацию о данном предмете. Мы немало потрудились, чтобы обеспечить по каждому вопросу дополнительный материал и чтобы вы смогли двигаться дальше, обучаясь самостоятельно.

НБ: Другое преимущество выбранного формата – возможность добавить немного юмора, а не быть все время мрачным технарем. Там есть заметки на полях, где помещаются всякие шуточки, чтобы чтение было легким и интересным, в противовес сухому техническому чтиву.

ЭД: Писать было очень интересно, и, я полагаю, это сказывается. Если вы писали книгу с удовольствием, то и читать ее приятно.


LXF: У меня на нее было всего два часа вчера вечером, но по моему впечатлению, она коротковата.

ЭД: Ну, рискну предположить, что вы за нее не платили, но объем книги соответствует ее цене. Это не энциклопедия…

НБ: … а стартовая площадка.

ЭД: В ней есть действительно хороший и продвинутый материал, так что нельзя сказать, что мы не касались сложных тем: нашей задачей было предоставить достаточно материала, чтобы пример был понятен и вы освоились в этой области, а затем указать направление, куда вам двигаться самостоятельно, если вы хотите добиться большего.

Мы, естественно, представляли себе тех, кто будет читать эту книгу. Самое главное, что это люди, которых не надо кормить с ложечки – это же разработчики, а они способны учиться сами. Книгу надо читать, имея под рукой клавиатуру.

НБ: И книга отнюдь не задумана как исчерпывающая.


LXF: Что вы могли бы рассказать о создании для Mono альтернативы Glade [визуальный редактор интерфейса для Gnome and GTK]?

ЭД: В процессе разработки находятся два преемника Glade. Один из них по некой причине называется Stetic. Предстоит выбор, на каком из них остановиться – один из них пишется на Python, а другой – на C# , возможно, здесь и заключается ответ на вопрос о том, что происходит. Возможно, произойдет интеграция.

MonoDevelop неплохо интегрируется. Недавно появилось дополнение NUnit, так что на боковой панели вы сможете увидеть результаты своих тестов – сколько было успешных, сколько неудачных, а также график, отображающий результаты тестирования во времени. Я думаю, что улучшения еще будут, но для достижения уровня Visual Studio или Eclipse, например, потребуется пройти долгий путь. Если мы хотим убедить людей перейти с Windows на Linux, нужно, чтобы им было удобно, чтобы у них были все те удобные функции, что и в Visual Studio. Достойная программа для создания форм – одна из них.

Есть и другие аспекты. Люди покидают мир Windows с его ужасным абсолютным позиционированием элементов на форме и приходят в Gtk с его компоновщиками (box model). Вы можете растягивать окна, как хотите, они легко адаптируются. В принципе, с тем же самым сталкиваются дизайнеры при переходе от печатной работы на HTML: им тоже нужно адаптироваться.


LXF: Что бы вы посоветовали тем, кто уже использует Qt или GTK и собирается попробовать Mono? Ну, кроме «Читайте нашу чудную книгу»?

ЭД: Я бы сказал: засучите рукава и беритесь за работу над кодом, и как можно быстрее. В смысле, когда вы меняете род деятельности, лучшее, что может вам помочь – это практический опыт. Некоторые проекты Mono, вроде Blam и Monopod (это мой клиент Интернет-вещания), достаточно малы, чтобы не заблудиться. Просто скачайте их – и поройтесь в исходном коде. Попробуйте его и так, и этак, пришлите заплатку. По моему мнению, собственного практического опыта ничто не заменит.

НБ: Читайте MSDN [1]. Самая лучшая документация по языку C# и библиотекам классов находится на сайте Microsoft. Так что если вы действительно хотите узнать что-то о языке и о библиотеках –вам туда.

Персональные инструменты
купить
подписаться
Яндекс.Метрика