Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #53, АПРЕЛЬ 2005 г.

На чем и как

Крис Касперски ака мыщъх

Спецвыпуск: Хакер, номер #053, стр. 053-056-7


Интерфейс быстрее всего пишется на Delphi/C++ Builder/Visual Basic/Visual C++/.NET и прочих системах быстрой разработки приложений. Компактность кода и его быстродействие, конечно, оставляют желать лучшего, но кто на них обращает внимание? Главное - опередить конкурентов, не позволив им первыми выйти на рынок. Delphi, например, предпочтителен из-за того, что под него можно найти любые готовые компоненты на все случаи жизни. Позиция .NET, несмотря на связанную с ней масштабную маркетинговую политику, выглядит как-то неубедительно, и программисты все еще осторожничают с переходом. Почему? Главным нововведением в .NET стала виртуальная машина (.NET Framework) с промежуточной компиляцией приложений в P-код. Идея далеко не новая (даже на ZX-Spectrum, кажется, было что-то подобное).

Теоретически все выглядит блестяще - программист пишет программу на Visual Basic'е, Visual C++ или C# (клон Java), и она выполняется на любом процессоре и под любой осью, для которой эта виртуальная машина существует. Сними лапшу с ушей! Если есть прямые вызовы API-функций или управление оборудованием, о переносимости можно забыть. Если же их нет, исходный код, написанный в ANSI-стиле, транслируется любым ANSI-совместимым компилятором, без всякой виртуальной машины, кстати, съедающий львиную долю производительности. Под .NET существует несколько достойных библиотек для создания web-приложений, взаимодействия с серверами баз данных и т.д. и т.п., но до изобилия готовых компонентов, которыми славится Delphi, она явно не дотягивает. Возможно, со временем ситуация и изменится (если учесть рьяную озабоченность Microsoft, она изменится наверняка), но в настоящий момент .NET выигрывает лишь на тех задачах, на которые ее сориентировали, то есть она сильна в сетевых приложениях.

Вернемся к переносимости. Платформа .NET позиционируется как среда открытых стандартов. Язык виртуальной машины описывается документом ECMA-335 (его бесплатную pdf-версию можно скачать с www.ecma-international.org/publications/standards/Ecma-335.htm), а C# – ECMA-334 (www.ecma-international.org/publications/standards/Ecma-334.htm). Любой производитель может создавать собственную реализацию платформы .NET, не спрашивая у Microsoft разрешения и не выплачивая никаких отчислений.

Известны по меньшей мере два проекта переноса .NET в среду *nix. Первый, спонсируемый Free Software Foundation (сокращенно FSF), носит название DotGNU (www.dotgnu.org) и развивается в рамках одноименного проекта, частью которого является компилятор GCC. Второй проект называется Mono (www.go-mono.com) и спонсируется компанией Ximian, распространяется под лицензий GPL/LGPL и MIT License, что в ряде случаев намного предпочтительнее. Найти его можно в дистрибутиве Федоры. Знакомство с обоими проектами оставляет в душе лишь разочарование. Для реальной работы они непригодны. Из любви к искусству, конечно, можно и пострадать, истязая свою задницу, замученную бесконечным сидением у монитора, но программист с нормальной половой ориентацией не задумываясь выберет Delphi/Free Pascal или Visual C++ с MFC, бесплатные порты которой под *nix уже имеются.

Назад на стр. 053-056-6  Содержание  Вперед на стр. 053-056-8