Трудно противостоять потоку восхвалений языка программирования Java, но кто-то же должен устоять.
Рассматривая тенденции, которые обусловливают ускоренное развитие техники персональных компьютеров, просто не нахожу ниши, куда можно пристроить Java. Основная тенденция - это децентрализация, а Java в его чистейшем виде противоречит ей. Пропагандисты Java в большинстве своем обладают мини-компьютерным менталитетом. У мини-компьютеров есть свое место, но оно определенно не на столе. И я полагаю, что энтузиазм фирмы Sun, персонал которой только и говорит, что о Java, основывается на ложной посылке.
На недавнем собрании компании Sun ее руководитель Скотт Макнили поделился интересным соображением о направлении развития компьютерной техники. Мир, по его мнению, начал с больших машин и быстро перешел к многопользовательскому общению с ними. Это привело к появлению мини-компьютеров с сетями пользователей, позволившими работать отдельно от мини-компьютеров. Вскоре появились микрокомпьютеры, которые с развитием Internet повторили историю мини-компьютеров, так что мы снова имеем некоторую центральную сеть. Другими словами, по мнению Макнили, все вернулось на круги своя.
По-моему, здесь все перевернуто с ног на голову. Я не считаю, что эволюция персональных компьютеров внезапно поменяла направление. Вот более логичное представление хода событий: мир начал с больших машин и быстро перешел к многопользовательскому общению с ними. Это привело к мини-компьютерам и локальным сетям. Вскоре появились микрокомпьютеры, которые продолжали удаляться от мини-компьютеров с развитием региональных сетей. Иначе говоря, мир персональных компьютеров прогрессировал от централизованной модели ко все более и более децентрализованной: от больших универсальных машин через многопользовательское применение мини-компьютеров и локальные сети к микрокомпьютерам и региональным сетям. Так вернее. Следующим этапом будет беспроводная компьютерная техника, а со временем - "радиосоединения" с трансляцией кадров (frame-relay). Каждый шаг все дальше уводит нас от централизации. Назад пути нет.
Мнение о том, что появится нечто подобное языку Java каким-то чудесным образом повернет тенденцию вспять, - лишь очень вольная выдача желаемого за действительное. Разумеется, Java будет использоваться для компактных мини-приложений (писатель-программист Роб Хаммел называет их "мелочевкой") и как средство добавлени анимации к безжизненным Web-страницам, но не дл чего-то существенно большего. Я все же подозреваю, что Java будет пользоваться каким-то успехом у программистов при написании прикладных программ дл сетей intranet. Но он едва ли вызовет массовый уход с позиций нынешнего представления о сложной, ориентированной на исполнение прикладных программ настольной вычислительной технике.
Пропагандируя язык Java, Макнили будет рассказывать вам, что текстовому процессору нужно не более пяти функций. Это, по моему мнению, показывает, что он упускает из виду еще одну тенденцию - возрастание глубины и сложности программ. Представьте себе, что есть два текстовых процессора: один с 2000 отдельных функций, 1500 из которых вы, быть может, никогда не будете использовать, и второй с 1000 функций, из которых вы никогда не будете использовать 500. Цена обоих одинакова. Какой из них будет лучше продаваться? А что, если они оба бесплатны? Или один из них бесплатный? Вне зависимости от цены пользователи выберут более сложный продукт. Этой тенденцией пренебрегать нельзя. Java же пытается игнорировать данное соображение.
И давайте не забудем в этом рассуждении добрую, старую Microsoft. Она направила существенную часть своих резервов в Internet и в панике даже лицензировала Java. Как вы думаете, что собирается делать с Java Microsoft - компания, известная разработками языков программирования? Мне видятся Visual Java, потом Visual Basic/Java, затем Visual Basic для Internet, и кто знает, что еще. Очень скоро Java пропадет из пол зрения. Другое творческое применение технологии, подобной ориентированному на сеть языку, будет найдено конечными пользователями, редко изъявляющими желание писать программы на языке типа C++, выжимкой из которого как раз и является Java.
Наконец, позвольте мне вылить еще один ушат холодной воды на Java, прокомментировав его утопическую претензию на независимость от машины. Желание совместимости устройств разных изготовителей - это смех. Как насчет того, что 90% настольных компьютеров являются Intel-машинами? Мне стало смешно, когда кто-то недавно сказал, что они будут создавать специальные, оптимизированные под Intel расширения Java. Шиш, не получится с самого начала, и идея независимости от машины уже под угрозой.
По всем этим причинам фантазия с возвратом к централизованной вычислительной сети с языком Java быстро заглохнет. Она слишком отдает древностью, чтобы иметь какое-то существенное значение.