LXF78:Интервью

Материал из Linuxformat.

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

Версия 16:31, 14 марта 2008

!!! ON AIR !!!


!!!! Страница в разработке !!!!!

Mono-глоты

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


Визитка LXF

Нил Борнштейн

Нил Борнштейн (Niel Bornstein)
Нил Борнштейн (Niel Bornstein)


Закончив университет Джорджии, Нил работает старшим архитектором в Novell Consulting, помогая клиентам, включающим местные исправительные учреждения, по системам с открытым исходным кодом.

  • Возраст: 39
  • Национальность: Американец
  • Использует Unix: 10
  • Языков программирования: 7
  • Число ПК: 3
  • Суточная норма кофе: 0 чашек
  • Пар сандалий: 1
  • Прямая речь: «Мы должны сделать переход на Linux достижимой целью».


Визитка LXF

Эд Дамбилл

Эд Дамбилл (Edd Dumbill)
Эд Дамбилл (Edd Dumbill)

Редактор по общим вопросам в O'Rielly Network, так же работает над ПО Bluetooth для Debian и пишет для Gnome. Он - бывший редактор XML.com и председатель Европейской конференции XML (XML Europe conference)

  • Возраст: 31
  • Национальность: Британец
  • Использует Unix: 9
  • Языков программирования: 10
  • Число ПК: 7
  • Суточная норма кофе: 3 чашки
  • Пар сандалий: 1
  • Прямая речь: «Игра в Mono в догонялки с Microsoft не слишком вдохновляет».


Споры по поводу 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. Так что если вы действительно хотите узнать что-то о языке и о библиотеках –вам туда.

Личные инструменты
  • Купить электронную версию
  • Подписаться на бумажную версию