Статья “Восемь мифов про Java” Владислава Кравченко и Григория Григоренко в PC Week/RE, № 13/ 2001, с. 24 вызвала оживленную, можно даже сказать, бурную реакцию читателей. В Интернете на эту тему развернулась обширная дискуссия (см. www.pcweek.ru/news.asp?ID=5927), напомнившая многолетние (правда, так ничем и не закончившиеся) споры поклонников Си и Паскаля.
Главный критерий, определяющий, на мой взгляд, успешность того или иного ИТ-подхода - это количество реализованных с его помощью удачных проектов. С такой прагматической точки зрения одна из наиболее успешных компьютерных технологий - Windows. Сюда же, несомненно, относится и язык Си++, за который активно ратовало большинство участников дискуссии. Пожалуй, основной его серьезный недостаток в сравнении с Java - отсутствие концепции интерфейсов. Ах, как не хватает в Си++ возможности разделять интерфейс класса и его реализацию! Возможно, решение не включать описание интерфейсных классов в свой стандарт сказалось на развитии другого объектно-ориентированного языка - Smalltalk, из реализации которого Java почерпнула практически все хорошие идеи (чисто объектный синтаксис, отсутствие указателей, модель процессов, компиляция в переносимый байт-код).
В России более-менее крупные проекты, где Java играет ключевую роль, можно пересчитать по пальцам одной руки. А на Си++ пишется очень и очень многое - почти все. Что касается переносимости Java-приложений, то стоит привести замечание одного из участников дискуссии, Константина, который напомнил, что СУБД Oracle, написанная на Си++, работает на 28 платформах. Для Си/Си++ существует столько прекрасных компиляторов и библиотек для любых ОС, что гораздо проще и эффективнее реализовывать возможность переносимости приложения в исходных текстах своими силами (независимо от выбранного языка программирования), нежели тратить время и ресурсы на изучение и применение довольно сырых технологий (версии Java SDK, например, нередко несовместимы одна с другой).
За рубежом ситуация немного иная. На волне раздутого спроса на dot.com-решения в Java вложены очень большие суммы. Солиднейшая Gartner считает, что через 3-5 лет знание Java станет ключевой характеристикой программиста при устройстве на работу. Это связано прежде всего с тем, что Интернет и телекоммуникационный бизнес в США развиты очень сильно, а стало быть, спрос на мобильные решения (ведь Java создавалась в первую очередь для упрощения создания Интернет-приложений) будет постоянно расти. Хотя появление альтернатив наподобие .NET и C# может серьезно повлиять на популярность Java.
Кстати, Gartner разделяет перспективы Java как языка программирования (переносимость программ на его популярности практически не сказывается) и как корпоративной платформы (технология Java 2 Enterprise Edition, где переносимость - один из критически важных факторов ее успеха).
Где реально в России может применяться Java? Прежде всего для создания распределенных гетерогенных систем, серверных EJB-компонентов и хранимых процедур, причем в основном не потому, что Java - лучший выход, а потому, что многие компании, следуя рыночной моде, реализовали в своих средах разработки поддержку Java. Возможно ее использование в телекоммуникационных отраслях, но во многих других направлениях - например, в сфере автоматизации работы предприятий (одной из наиболее ресурсоемких в нашей стране) - выбор Java как базовой платформы выглядит далеко не лучшим решением.