суббота, 26 мая 2007 г.

Переписывание софта

Люди, далёкие от устройства компьютера, думаю, вообще не задумываются над проблемой - будут ли запускаться их любимые программы в Linux. Они по старинке думают, что программе всё равно где работать. Также бытует мнение, что для полного перехода на Линукс нужно сначала переписать под него весь необходимый виндовый софт, иных путей нет.
Правда же в том, что всегда существуют средства для запуска программ одной операционки в другой. Например, проект cygwin позволяет Unix-программу без переписывания откомпилировать и запустить в Windows. Ядро FreeBSD имеет средства для запуска Linux-приложений. В Solaris средства виртуализации также поддерживают исполнение Linux-программ. Если нужно запускать Windows-приложения в Unix, то прямая дорога к проекту Wine, который работает в любой Unix-системе и представляет собой реализацию всех функции WinAPI, которые собственно и нужны программе при работе. Wine - свободный и публичный проект, который каждый может использовать или улучшать по своему усмотрению в рамках лицензии LGPL.

Мы разрабатываем программный продукт WINE@Etersoft, основанный на Wine, исправляя в нём ошибки, возникающие при использовании востребованных в России программ. Для финансирования разработки WINE@Etersoft является коммерческим продуктом. Наша компания уже несколько лет сотрудничает с крупнейшими производителями отечественного ПО, а так же с разработчиками программ, которые дефакто обязательны к использованию (банк-клиенты, налоговая отчётность).
Мы используем все имеющиеся у нас ресурсы на то, чтобы исправить связанные с ними ошибки, и обеспечить работу программ на уровне, достаточном для их повседневного использования.

Переписывание же софта для многих производителей практически нереально, по крайней мере от постановки задачи до решения могут пройти годы. Разработка - это не только язык и система, это ещё и технологии, которые придётся поменять (с программой на Visual FoxPro в Linux не въедешь). Нужно переучивать программистов, которые имеют колоссальный опыт в программировании под Windows, и у них будет шок и снижение зарплаты, если их завтра посадят с той же отдачей писать под Linux.

Мне представляется реальным уже сейчас использовать многие Windows-приложения в Linux с помощью Wine. Те немногие проблемы, которые возникают из-за несовместимости, легко устранить в самом коде Wine, причём для этого нужны всё те же опытные Windows-программисты.

Думаю, будет правильным, если качественное средство исполнения унаследованных Windows-приложений будет не на последнем месте в планах финансирования нужных для государства разработок.

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

Анонимный комментирует...

Они по старинке думают, что программе всё равно где работать

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

Возможно я не прав, но мне кажется, что переписывание софта на другие платформы вполне реализуемая за конечное время задача.

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

При этом получаемый продукт может оказаться лучше, чем существующий хотя бы потому, что:
1) в существующих программах обязательно будут существовать ряд модулей, в которых код будет устарелым. Оно оставлено по принципу: "работает? не трогай!" (или те программисты, которые это писали, давно ушли из компании). А новая реализация не будет тащить грабли прошлого века, т. к. за задачу будут браться свежие головы.
2) начинать следует всегда с той части программного продукта. которая чаще всего востребована пользователями. Далеко не факт, что оригинальные разработчики придерживались именно этого вектора развития своего продукта. Это значит, что история разработка продукта оригинальными разработчиками представляет из себя мягко говоря "нелинейный сюжет", что увеличивает количество багов в реализации.
3) если речь идет о копировании на базу gnu c, то это уже обеспечиват кроссплатформенность получаеого софта как для винды так и для никсов. Вообще платформо-независимые языки -- это хорошо.

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