|
Ну вот и снова я, дамы и господа. Снова добрался до компа, и на этот раз уже с полноценной клавиатурой попробую ответить Андрюхе про аргумент с перекомпиляцией. Хотя в принципе ответ тут уже прозвучал - в нашем мире очень мало что является кроссплатформенным.
Вот что Вы, Андрюха, будете делать - если прога, которую Вы когда-то в кои веки написали - использует Windows API? А если она использует ActiveX-объекты? COM-элементы и/или компоненты? Что тогда?
Вот к примеру программа. На Дельфи. "Ну и что?" - можете сказать Вы - "для Дельфи есть Kylix - аналог Линукса." Да, есть. Согласен. Не спорю. Но представьте себе что Вы написали программу, которая использует движок браузера Internet Explorer. То есть на форме окно, компонент TWebBrowser, и программа работает с этим окном. Как Вы перекомпилируете эту программу под Линукс - если для Линукса НЕТ компонента TWebBrowser? Потому что этот компонент представляется Виндой в виде движка IE? Как Вы заставите программу работать там, где этого компонента нет? Самому писать будете? Движок для браузера?
А как Вы заставите компилятор скомпилировать под Линукс программу, которая на форме будет использовать графический редактор? Объект MS Paint? Вы будете вручную писать графический редактор? Или будете изучать какие интерфейсы представляют линуксовые редакторы? А даже если они представляют что-то - Вы будете полностью перепотрошить программу под новую объектную модель???
Как Вы скомпилите в Линуксе прогу с OLE-объектом на форме? В линуксе вообще есть подобные модели взаимодействия и предоставления своего ядра другому приложению?
Хорошо - а как Вы скомпилите приложение, использующее системные вызовы или команды, специфичные именно для Винды? А как программы, использующие каким-либо образом MS-досовские запуски - когда прога вызывает среду MS-DOS и делает что-то через неё? Как Вы будете компилировать и запускать проги, которые работают в связке с другими прогами, существующими ТОЛЬКО под Винду? Не будем так далеко ходить - а как Вы будете запускать проги, которые обращаются к файлам по виндовым файловым путям типа "C:\Hello\Word" - а не по линуксовым? Вы будете переписывать весь код проги чтобы она могла работать по точкам монтирования в Линуксе???
Как Вы напишете серверное ASP.NET приложение под Линуксом? На Ксамарине? В бесплатной версии которого нет даже System.Cryptography? Даже хеш-сумму md5 посчитать или RSA-закриптовать не получится? А версия в которой есть Cryptography будет стоить сотню, если не три, баксов? Или может устанавливать Линукс, потом в нём эмулировать Винду, и потом в ней запускать Visual Studio? Но зачем? Зачем ставить Линукс чтобы потом в нём через Wine эмулировать Винду?? Для чего? Тогда уж проще сразу поставит Винду и не париться. И запускать в ней VS - бесплатную, не стоящуюю сотни баксов.
А как вы, уважаемые Андрюха и свободолюбивый Терек - как вы скомпилируете для Линукса программу, которая пользуется Windows-компонентами Microsoft Word или Microsoft Excel? Как вы в ней из-под Линукса даже не то что документ откроете - вообще работать будете - если в Линуксе НЕТ такого COM-компонента?? Будете говорить про Open Office? А Open Office не предоставляет такого интерфейса взаимодействия да и вообще скорее всего не является встраиваемым объектом. Что будете делать? Нет, конечно у вас есть свобода написать свой собственный текстовый редактор эквивалентный вордовскому с нуля - для своей программы - но мне почему-то кажется что вы не станете пользоваться такой свободой.
А насчёт того что Open Office заменяет Microsoft Word - возможно для какого-то ограниченного круга задач это и так. Но попробуйте набрать в OpenPffice бааальшущую работу с математическими/химическими/физическими формулами - и воочию увидите, насколько OO кривее MS. А потом сохранить документ из OO в виде, совместимом для MS - особенно проделайте это из Линукса, у которого нет компонента MS Equation. А потом пошлите кому-либо у кого Word и попросите переправить часть формул -и можете послушать - что будет говорить этот человек. Не исключено что он будет ругаться, даже не вполне цензурно. Или попробуйте просто открыть в OO (под Линуксом) документ Microsoft Excel - особенно если в нём есть макросы и динамические поля. Не думаю что вам понравится потом вручную "приводить" одно к другому.
Эти примеры показывают только то - что если у человека масса наработок, созданных Виндой, из-под Винды, при помощи Винды или виндовыми инструментами - то вряд ли ему для чего-то сдастся переносить всё это богатство под Линукс.
|