В этой статье мы перечислим некоторые распространенные заблуждения, касающиеся языка программирования Java.
Язык Java — это расширение языка HTML
Java — это язык программирования, a HTML — способ описания структуры веб-страниц. У них нет ничего общего, за исключением дескрипторов HTML- разметки, позволяющих размещать на веб-страницах аплеты, написанные на Java.
Я пользуюсь XML, и поэтому мне не нужен язык Java
Java — это язык программирования, a XML — средство описания данных. Данные, представленные в формате XML, можно обрабатывать программными средствами, написанными на любом языке программирования, но лишь в прикладном интерфейсе API языка Java содержатся превосходные средства для обработки таких данных. Кроме того, на Java реализованы многие программы независимых производителей, предназначенные для работы с XML-документами. Более подробно этот вопрос обсуждается во втором томе данной книги.
Язык Java легко выучить
Нет ни одного языка программирования, сопоставимого по функциональным возможностям с Java, который можно было бы легко выучить. Простейшие программы написать несложно, но намного труднее выполнить серьезные задания. Обратите также внимание на то, что в этой книге обсуждению самого языка Java посвящены только четыре главы. А в остальных главах рассматривается работа с библиотеками, содержащими тысячи классов и интерфейсов, а также многие тысячи методов. Правда, вам совсем не обязательно помнить каждый из них, но все же нужно знать достаточно много, чтобы применять Java на практике.
Java со временем станет универсальным языком программирования для всех платформ
Теоретически это возможно. Именно об этом мечтают все производители программного обеспечения, кроме корпорации Microsoft. Но есть немало приложений, которые отлично работают на настольных компьютерах, и вряд ли они будут так же надежно работать на других устройствах или в окне браузера. Кроме того, эти приложения написань! таким образом, чтобы в максимальной степени использовать возможности процессоров и платформенно-ориентированных библиотек. В любом случае они уже перенесены на все основные платформы. К таким приложениям относятся текстовые и графические редакторы, а также веб-браузеры. Как правило, эти приложения написаны на С или C++, и пользователь ничего не выиграет, если переписать их на Java.
Java — это всего лишь очередной язык программирования
Java — прекрасный язык программирования. Многие программисты отдают предпочтение именно ему, а не языку С, C++ или С#. Но в мире существуют сотни великолепных языков программирования, так и не получивших широкого распространения, в то время как языки с очевидными недостатками, как, например C++ и Visual Basic, достигли поразительных успехов.
Почему так происходит? Успех любого языка программирования определяется в большей степени его системой поддержки, чем изяществом его синтаксиса. Существуют ли стандартные библиотеки, позволяющие сделать именно то, что требуется программисту? Разработана ли удобная среда для создания и отладки программ? Интегрирован ли язык и его инструментарий в остальную инфраструктуру компьютера? Язык Java достиг успехов в области серверных приложений, поскольку
его библиотеки классов позволяют легко сделать то, что раньше было трудно реализовать, например, поддерживать работу в сети и организовать многопоточную обработку. Тот факт, что язык Java способствовал сокращению количества ошибок, связанных с указателями, также говорит в его пользу. Благодаря этому производительность труда программистов повысилась. Но не в этом кроется причина его успеха.
С появлением C# язык Java устарел
Создатели языка C# использовали многие удачные технические решения, применявшиеся в Java, в том числе язык с ясно определенным синтаксисом, виртуальную машину и систему "сборки мусора". Но по ряду характеристик C# уступает Java, включая вопросы безопасности и переносимости программ. Самое очевидное преимущество C# — это прекрасная среда разработки. Если вы привязаны к ОС Windows, в таком случае вам, вероятно, стоит пользоваться С#. Если же оценивать реальное положение дел в программировании, то на сегодняшний день Java по-прежнему отдают предпочтение очень многие программисты.
Java является патентованным средством, и поэтому пользоваться им не рекомендуется
Сразу же после создания Java компания Sun Microsystems предоставляла бесплатные лицензии распространителям и конечным пользователям. Несмотря на то что компания Sun Microsystems полностью контролировала распространение Java, в работу над этим языком и его библиотеками были вовлечены многие другие компании. Исходный код виртуальной машины и библиотек доступен всем желающим, но его можно использовать лишь для ознакомления, а вносить в него изменения запрещено. До настоящего момента язык Java имел "закрытый исходный код, но прекрасно работал".
Ситуация изменилась кардинально в 2007 году, когда компания Sun Microsystems объявила, что последующие версии Java будут доступны на условиях General Public License (GPL) — той же лицензии открытого кода, по которой распространяется Linux. Компания Oracle проявила свою приверженность к сохранению открытости кода Java, но с одной важной оговоркой — патентованием. Всякий может получить патент на использование и видоизменение кода Java по лицензии GPL, но только на настольных и серверных платформах. Так, если вы желаете использовать Java во встроенных системах, для этой цели вам потребуется другая лицензия, которая, скорее всего, повлечет за собой определенные отчисления. Впрочем, срок действия таких патентов истекает через десять лет, после чего язык Java станет совершенно бесплатным.
Программы на Java работают под управлением интерпретатора и серьезные приложения будут выполняться слишком медленно
В начале развития Java программы на этом языке действительно интерпретировались. Теперь в состав всех виртуальных машин, за исключением "микроредакции" для таких устройств, как мобильные телефоны, входит динамический компилятор. Основные элементы кода будут выполняться не медленнее, чем если бы они были написаны на C++, а в некоторых случаях даже быстрее.
Для Java характерны дополнительные накладные расходы по сравнению с языком С. Запуск виртуальной машины требует времени, и поэтому ГПИ, написанный на Java, действует медленнее, чем аналогичный интерфейс в собственном коде, поскольку он воспроизводится платформенно-независимым способом.
Пользователи уже давно жалуются на низкое быстродействие Java. Но с того времени, когда начались эти жалобы, вычислительные мощности компьютеров многократно возросли. И теперь медленные программы на Java работают быстрее, чем несколько лет назад выполнялись даже самые "молниеносные" программы на C++. Ныне эти жалобы выглядят надуманными, и потому некоторые скептики вместо этого стали жаловаться на "уродливый" пользовательский интерфейс Java.
Все программы на Java выполняются на веб-страницах
Все аплеты, написанные на Java, действительно выполняются в окне веб-браузера. Но большинство программ на Java являются независимыми приложениями, которые никак не связаны с веб-браузером. Фактически многие программы на Java выполняются на веб-серверах и генерируют код для веб-страниц.
Программы на Java представляют большую опасность для системы защиты
В свое время было опубликовано несколько отчетов об ошибках в системе защиты Java. Большинство из них касалось реализаций языка Java в конкретных браузерах. Исследователи восприняли это как вызов и принялись искать глобальные недостатки в системе защиты Java, чтобы доказать недееспособность модели безопасности аплетов. Их усилия не увенчались успехом. Обнаруженные ошибки в конкретных реализациях вскоре были исправлены, и, после этого, насколько нам известно, ни одна ре^ альная система не была взломана посредством аплета. Чтобы оценить значение этого факта, вспомните о миллионах вирусных атак на исполняемые файлы операционной системы Windows и макросы редактора Word, действительно вызвавшие немало хлопот. При этом критика недостатков платформы была удивительно беззубой. Кроме того, механизм ActiveX в браузере Internet Explorer мог бы вызвать много нареканий, но способы его взлома настолько очевидны, что лишь немногие специалисты потрудились опубликовать результаты своих исследований.
Некоторые системные администраторы даже стали отключать системы защиты языка Java в своих браузерах, чтобы пользователи могли, как и прежде, загружать исполняемые файлы, элементы управления ActiveX и документы, созданные с помощью текстового процессора Word, что было намного более рискованно. Но даже через 15 лет после своего создания Java по-прежнему остается намного более безопасной платформой, чем любая другая исполняющая платформа из всех имеющихся.
Язык JavaScript — упрощенная версия Java
JavaScript — это язык сценариев, которые можно использовать на веб-страницах. Он был разработан компанией Netscape и сначала назывался LiveScript. Синтаксис JavaScript напоминает синтаксис Java, но на этом их сходство и заканчивается (за исключением названия, конечно). Подмножество JavaScript было нормировано по стандарту ЕСМА-262. Сценарии JavaScript более тесно связаны с браузерами, чем аплеты Java. В частности, сценарий JavaScript может видоизменить отображаемый документ, в то время как аплет контролирует только свою ограниченную область отображения.
Пользуясь Java, можно заменить компьютер недорогим устройством для доступа к Интернету
Когда появился язык Java, некоторые были уверены, что так и случится. И хотя в продаже появились сетевые компьютеры, оснащенные средствами Java, пользователи не спешат заменить свои мощные и удобные персональные компьютеры устройствами без жестких дисков с ограниченными возможностями. Казалось бы, сетевой компьютер, оснащенный средствами Java, давал вполне реальную, возможность реализовать "нулевую администраторскую инициативу", направленную на уменьшение стоимости компьютеров, применяемых в деловой сфере. Но это направление не получило большого развития. А в современных планшетных компьютерах Java вообще не применяется