понедельник, 31 мая 2010 г.

Вайнофобия


Какая-то вайнофобия. Два вполне себе опытных разработчика, независимо друг от друга, сообщили, что с вайном "лучше не связываться", что с ним "противно работать", что получается "громоздко и нагружено".
Занимаемся мы тем, что участвовали в тестировании WineSkin, в который предполагается замотать три наших до мозга костей виндовых продукта. Продукты эти таким образом хочется сделать доступными для MAC-юзеров.
Были озвучены и более технические комментарии - кому-то знакомый 2 часа в самолете рассказывал, что "при переносе под wine - самое сложное - это проблемы с выравниванием памяти" (какие еще проблемы в скомпилированном коде?), что "непонятно как будет работать потоковая модель приложения, потому что в виндоуз - CreateThread(), а в *nix - fork()" (???).
При этом в целом по проекту идет, наоборот, определенный оптимизм. 2 продукта удалось запустить на MAC в течение полутора недель. Все это без вмешательства в исходный код портируемых продуктов. Есть баги отрисовки в скиненных приложениях, есть определенное увеличение размера, но в целом оно пашет!
Однако, буквально каждый, слышаший про wine буквально чуть ли не креститься!
Это несмотря на то, что проектов, коммерчески именно успешных, использующих Wine не то чтобы полно, но их есть:
- Parallels, продающий свою Windows-виртуалку под MAC-и;
- CrossOver, продукт за 40$ предназначенный для запуска Windows-игрушек и офисных редакторов под MAC;
- некая питерская Eterosoft, умудрившаяся портировать 1С и Компас под другие ОС.

Известно также, что 3 разработчика Wine наняты компанией Crossover и разрабатывая этот продукт на базе Wine они заливают в исходники Wine свой кроссоверовский бранч.
Parallels, якобы, тоже заставили признать факт использования Wine и они сабмитят свои изменения в коде этого проекта.

Природа такой Вайнофобии (или лучше сказать Вайноскепсиса?) на фоне информации о продающхся продуктах мне до конца неяна. Может я просто чего-то не знаю? Но, чувствую, процесс найма разработчиков в этот проект может оказаться занимательным - запастись, что ли афабазолом?

Upd. А вот Сергей расписал поподробнее, все ужасы этого дела..

4 комментария:

Darth Medved комментирует...

спрашивали ? отвечаем - глюкавая штука сильно. лично мне надо было тестировать сайт который мы делали пот IE6, при том, что рабочая машина у меня была на openSUSE. решил поэкспериментировать и не ставить VirtualBox или VmWare с виндами. IE6 вроде как работал, но жрал память, тек, глючили элементы интерфейса, флэш - это вообще был ахтунг. вввод русского текста иногда жестоко глючил. в общем там много чего было. посему присоединяюсь к вышеуказанным товарищам - юзать вайн для повседневных задач? на**й, на**й. теоретически можно глянуть, если продукт идет со специально подпиленным под него вайном, и то успех сильно от всяких левых факторов завист.
короче если выбирать вайн или виртуалка - я выберу однозначно виртуалку. вот.

legolegs комментирует...

wine - глючная неофициальная неполная реализация неудачно спроектированного эволюционно развивающегося API с совместимостью с его багами. Естественно, это решение на крайний случай.
Насколько мне известно, все коммерческие решения (названые вами + loki) используют допиленный вайн не общего назначения.

Вот недавно читал интересную дискуссию в багзилле вайна. Разработчик ускорил работу с 2d-графикой, в результате чего сломал сразу несколько игр, причём одна из них валилась только при включенном звуке. Суть была в том, что программа пыталась писать по полученному от winapi константному указателю, что, как вы знаете, иногда возможно, а иногда нет. В том случае это генерировало исключение (постоянно), исключение перехватывалось и проглатывалось. Вот после того ускоряющего патча как-то изменился порядок возникновения исключения и обработки прерывания от таймера в потоке аудиоподсистемы и всё это добро начало валиться. "И вот так у них всё" (с)

Omega комментирует...

to Darth Medved

да, это понятно, что просто нельзя взять и перенести - это бы все продукты были бы тогда кроссплатформенными! :)
здесь речь, конечно, об открытии небольшого субпроекта по допиливанию вайна под продукт..


to legolegs
Допиленный и необщего назначения - а какая разница, эсли это опен сорс?

Линка на дискуссию не сохранилось?

legolegs комментирует...

"Допиленный и необщего назначения" - значит с апстримом тяжело синхронизироваться. И, разумеется, патчи, которые чинят ваше и ломают остальное не примут (разве что у вас не костыли, а более точная реализация по документации).

Линк: WineHQ Bugzilla – Bug 20380 – Heroes of Might and Magic III hangs (not a Wine bug) (многабукв+ещё столько же букв в ядерной багзиле по поводу рилейтед-бага).