ОБЗОРЫ

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

Унификация

По оценкам Forrester Research (www.forrester.com), более половины программистов, делающих программы для платформы Microsoft .NET, используют только Visual Basic. Видимо, данная статистика подвигла участников проекта Mono (www.mono-project.com, общедоступный клон .NET для разных ОС, включая Linux, разработка которого спонсируется Novell) к созданию компилятора Basic - как утверждается, он сможет транслировать оригинальные тексты Visual Basic, не требуя их модификации. Участники Mono также обещают, что в их системе будет поддерживаться версия языка C# 3.0. Правда, фонд свободного ПО Free Software Foundation (www.fsf.org), контролирующий права на ключевые элементы Linux, не слишком рад развитию подобных технологий и излишне тесному сближению и стыковке Linux и Windows и не исключает возможности запрета продажи обновленных дистрибутивов Linux от Novell. Об этом на саммите LinuxWorld OpenSolutions заявил Джереми Аллисон, руководитель проекта Google Samba (samba. org, открытая реализация технологии Active Directory), уволившийся в конце 2006 г. из Novell в знак протеста. У подобной технологической ревности есть основания. В начале этого года компания Peugeot Citroen приобрела у Novell 20 тыс. настольных дистрибутивов и 2,5 тыс. серверных версий ОС SUSE Linux. Менеджеры Novell полагают, что тесное партнерство их компании с корпорацией Microsoft упростит интеграцию Linux-систем в действующую Windows-инфраструктуру автопроизводителя.

Более половины программистов, создающих программы для платформы Microsoft .NET, используют только Visual Basic.

Серьезные кроссплатформенные продукты на рынке сегодня не редкость. Заслуживает внимания модуль Visual MainWin для расширения возможностей среды Microsoft Visual Studio 2005 от компании Mainsoft (www.mainsoft.com), который, как утверждается, позволяет запускать созданные с его помощью приложения в Linux и Unix. Вместе с ним распространяется инструмент Grasshopper, переносящий на эти ОС приложения ASP.NET. Эти продукты основаны на наработках Mono и переносят код С++ на платформы Solaris (SPARC, AMD64 и x86), AIX (PowerPC), HP-UX (PA-RISC), Integrity (Itanium) и Red Hat и SUSE Enterprise Linux (x86). Тем временем оригинальная технология ASP.NET от Microsoft пополнилась поддержкой Ajax 1.0, упрощающей организацию взаимодействия клиентских сценариев с сервером. В будущем она войдет в новую версию среды Microsoft Visual Studio (Orcas).

Доступен предварительный вариант пакета разработчика для Linux и AIX (включая 64-разрядную платформу PowerPC) от корпорации IBM, который поддерживает последнюю версию технологии Java 6. В нем, в частности, реализованы расширенные диагностические механизмы и средства обмена данными между виртуальной машиной Java и ОС, что упрощает отладку и выявление ошибок. Компания Microcross (www.microcross.com) выпустила четвертую версию коммерческого пакета GNU X-Tools, отдельные составляющие которого доступны бесплатно и в исходных текстах, однако в пакете поставляются их улучшенные версии. Деньги также берутся за сопровождение и консультации. В поставку входит набор компиляторов gcc 4.1.1, визуальный отладчик Insight 6.5 и коллекция утилит для разработчика binutils 2.17.

В рамках проекта Cocotron (code.google. com/p/cocotron/) реализуются варианты оболочек Apple Foundation и AppKit для ОС Windows, Linux и Solaris. На сайте проекта также доступен пакет CDT - набор известных компиляторов gcc и GNU-утилит, генерирующих код для Windows. Пакет также позволяет использовать популярную у Mac-программистов среду разработки Xcode. Сами оболочки программирования не всегда свободны от ошибок. В обновленной интегрированной общедоступной среде разработки KDevelop 3.4 (www.kdevelop.org) для KDE/Linux исправлено 500 дефектов. В нее входят компиляторы языков С++, Java, Фортран, Ада, Ruby и др.

Приложения, выполненные в спецификации POSIX, вскоре можно будет переносить на Symbian OS, для чего готовится набор библиотек разработчика PIPS (PIPS is POSIX on Symbian), который во II квартале будет доступен на сайте developer.symbian.com. Отметим в этой связи свободно распространяемую среду UML-моделирования Telelogic Modeler (www.ilogix.com/sublevel.aspx?id= 1756), поддерживающую разные виды проектов, включая разработку встраиваемого ПО.

Новые языки

В последние годы несколько неожиданно набрал популярность интерпретируемый язык программирования Ruby (переводится Рубин, читается Руби), придуманный японцем Юкихиро Мацумото в 1993 г. Сегодня он оценивается веб-программистами как равный любому из тройки языков PHP, Perl и Python (в Ruby из двух последних взято большинство концепций), хотя, казалось, превзойти их наработанную функциональность вряд ли возможно. В частности, Тим О’Рейли, гуру концепции Web 2.0, крайне положительно отзывается о популярной среде AJAX-разработки (www.rubyonrails.org), основанной на Ruby.

Язык D представляет собой развитие C++, дополненное новыми идеями из Ruby, C#, Java и Perl.

Популярность к Ruby во многом пришла потому, что он проникнут духом легендарного языка Smalltalk - в частности, все в Ruby является объектом, и программист при подготовке кода может мыслить в истинно объектном духе. Несомненным признанием серьезности заложенных в Ruby принципов служит включение его интерпретатора (а также системы JRuby - реализации Ruby на Java) в открытую оболочку программирования NetBeans (www.netbeans.org) компании Sun. Шаг этот сам по себе удивительный, так как ранее NetBeans поддерживала только язык Java. Правда, для этой среды было выпущено пробное расширение для Си/С++, так и не вышедшее из бета-версии.

Оболочка Eclipse, конкурирующая с NetBeans, развивается схожими темпами. На днях для нее были выпущены сразу три пакета: ATF (AJAX Toolkit Framework) и RAP (Rich AJAX Platform) для создания AJAX-приложений и средство Eclipse DLTK (Dynamic Language Toolkit) для расширения среды за счет поддержки динамических языков программирования. В планах разработчиков - добавление языков Ruby, Python и Tcl. Интересно, что первой в Eclispe будет реализована поддержка Tcl. Не исключено, что в недалеком будущем программы на Ruby можно будет писать и с помощью среды Visual Studio 2005 - для нее выпущена новая библиотека разработчика SDK 4, по возможностям напоминающая Eclipse DLTK. Что касается технологии AJAX, то хотя программисты настаивают на выпуске полноценной интегрированной среды для разработки "насыщенных" клиентов, эксперты из OpenAjax Alliance (www.openajax.org) предупреждают, что сначала надо решить вопросы стандартизации этой технологии.

Показателем зрелости языка Ruby служат попытки создания уже на его основе новых языков программирования. Так, язык D (www.digitalmars.com/d/), предложенный фирмой Digital Mars, представляет собой развитие C++, дополненное новыми идеями из Ruby, C#, Java и Perl. В D включены практически все семантические нововведения C# и Java, а также добавлены динамические выражения, ассоциативные массивы, встроены средства тестирования и документирования, организована масштабная поддержка шаблонов, поддерживается концепция контрактного программирования, обеспечивается надежность и переносимость приложений. Язык D подойдет профессиональным разработчикам, которые нуждаются в мощной системе программирования на базе С++. Для D доступны как коммерческие, так и свободно распространяемые компиляторы для платформ Win32, Linux и Mac, редакторы, пошаговые отладчики и т. д.