Язык HTML разрабатывался с той точки зрения, что все типы устройств должны иметь возможность использовать информацию в Web: персональные компьютеры с графическими дисплеями с различным разрешением и числом цветов, сотовые телефоны, переносные устройства, устройства для вывода и ввода речи, компьютеры с высокой и низкой частотой.
В HTML 4.0 вводятся механизмы таблиц стилей, скриптов, кадров, внедрения объектов, улучшенная поддержка разных направлений письма и направления справа налево, таблицы с большим количеством возможностей и новые свойства форм, обеспечивая лучшие возможности доступа для людей с физическими недостатками. Эта версия HTML разработана с помощью экспертов в области интернационализации, так что документы можно писать на любом языке и легко передавать их по всему миру.
Важным шагом стало принятие стандарта ISO/IEC:10646 в качестве набора символов для документов HTML. Это наиболее содержательный стандарт в мире, в котором решены вопросы представления национальных символов, направления письма, пунктуации и других языковых вопросов. HTML теперь предоставляет лучшую поддержку различных языков в одном документе. Это обеспечивает более эффективное индексирование документов для поисковых машин, типографию высшего качества, преобразование текста в речь, более удобные переносы.
С появлением Internet проблема межплатформной несовместимости
файловых форматов стала ощущаться особенно остро: ведь тем, кто размещает информацию в Сети, хочется, чтобы она была доступна как можно более широкому кругу пользователей без особенных затрат. Очевидно, что самый простой путь решения - разработка общепринятого формата файлов, под который и будут "подстраиваться" вновь создаваемые приложения. В WWW таким стандартом стал HTML. Основа WWW - файлы в формате HTML, или гипертекстовые страницы.
Гипертекст - это легкая в использовании и чрезвычайно мощная система связанных слов и фраз, позволяющая легко перемещаться по особым образом организованным страницам. Она связывает фразу или слово одной страницы с любой другой страницей, абзацем, фразой или словом. Если развить идею гипертекста и включить в него графику, видео и звук, мы получим гипермедиа.
Гипермедиа - среда, основанная, как и гипертекст, на взаимосвязях, в которой в качестве гиперссылок могут выступать визуальные и аудиокомпоненты. Гипертекст и гипермедиа являются фундаментальными для WWW технологиями, а HTML - средство для работы с этими технологиями. HTML расширение языка SGML (Standart General Markup Language - стандартный язык разметки), глобального стандарта описания языков разметки гипертекста.
SGML одобрен ISO (International Organization for Standartization - Международная организация по стандартизации) в 1986 г. и является стандартом для многих государственных и коммерческих систем создания документов. Документы SGML не "привязаны" к какой-нибудь программе, операционной системе и т. п.
Таким образом, когда потребовалось выбрать стандарт для документов WWW, выбор естественно остановился на HTML. Файлы HTML состоят из команд форматирования,
текста и ссылок на другие файлы или объекты (графика, звуки, программы). Программа для просмотра HTML-документов (броузер) интерпретирует код HTML, содержащийся в файле, и согласно командам форматирования собирает готовую Web-страничку.
Текстовые документы, написанные на этом языке, обрабатываются специальными приложениями, которые осуществляют вывод форматированного текста. Такие приложения, называемые браузерами или интернет-обозревателями, обычно предоставляют пользователю интерфейс для запроса страниц, их просмотра и, возможно, дополнительные возможности.
В середине 90-х годов возникла следующее явление. Производители браузеров - Netscape и Microsoft - начали внедрять собственные наборы тегов в HTML разметку. Создалась мешанина из различных конструкций для работы в Web, доступных для просмотра то в одном, то в другом браузере. Особенно большие трудности были при создании кросс-браузерных программ на JavaScript. Веб-мастерам приходилось создавать несколько вариантов страниц или прибегать к другим ухищрениям. Проблема постепенно теряет актуальность по двум причинам:
Из-за вытеснения браузером Internet Explorer от Microsoft всех остальных примерно до 2003 года.
Соответственно проблема веб-дизайнеров становилась проблемой пользователей альтернативных браузеров.
Благодаря следованию других производителей браузеров стандартам W3C (как Mozilla), или же создавая максимальную совместимость с Internet explorer (как Opera).
Поддержка спецификаций W3C в Internet explorer так и не реализована в полной мере, доля продуктов на движке Mozilla растёт. Возможно скоро мы будем наблюдать новый виток браузерных войн.
Возможности html
Язык HTML позволяет размечать в тексте:
Цвет, кегль, жирность, стиль, название шрифта для визуального вывода.
Смысловую роль текстового блока (например: логическое ударение, заголовок, параграф, пункт списка), который обрабатывается браузером в соответствии со смыслом или настройками пользователя...
Гипертекстовые ссылки, значительно упрощающие чтение множества связанных документов, ибо позволяют запросить документ с адресом, указанным в коде ссылки, простым выделением и подтверждением (в подавляющем большинстве случаев - щелчком мыши).
Анкеты для введения пользователем текста, пересылаемого по заполнении на указанный в коде анкеты адрес. Анкеты и другую информацию можно обрабатывать с помощью специальных языков программирования (PHP, Perl)
Открытие и вывод мультимедийных файлов, выводимых как непосредственно браузером (изображения), аудиофайлы, так и внешними приложениями, также обычно имеющими возможность "встраивания" в окно браузера (Flash-анимация, Java-апплеты).
Версии html
Официальной спецификации HTML 1.0 не существует. До 1995 года существовало множество неофициальных стандартов HTML. Чтобы стандартная версия отличалась от них, ей сразу присвоили второй номер. Версия 3 была предложена W3С в марте 1995, и обеспечивала много новых возможностей вроде поддержки таблиц, обтекание изображений текстом и отображения сложных математических формул. Даже при том что этот стандарт был совместим с второй версией, реализация его была сложна для браузеров того времени.
Версия 3.1 официально никогда не предлагалась, и следующей версией стандарта HTML стала 3.2, в которой были опущены многие нововведения из версии 3.0, зато добавлены нестандартные теги поддерживаемые браузерами Netscape и Mosaic. Поддержка математических формул пошла дополнительным стандартом MathML.
Стандарт HTML 3.2 является спецификацией языка разметки гипертекста, предложенной организацией W3C и разработанной в начале 1996 года в кооперации с такими поставщиками, как IBM, Microsoft, Netscape Communication Corporation, Novell, SoftQuad, Spyglass, и Sun Microsystems.
Версия 3.2 языка HTML дополнена такими широко распространенными элементами, как таблицы, апплеты и обтекание текстом изображений. При этом обеспечивается полная обратная совместимость с ныне существующим стандартом HTML 2.0. HTML 4.0 также содержит много определенных браузером тегов, но в то же самое время начал пробовать почистить стандарт от лишних тегов.
Новых версий HTML не будет. Однако существует дальнейшее развитие HTML в виде XHTML, основанном на XML.
Структура html документа
HTML - это теговый язык разметки документов, то есть любой документ на языке HTML представляет собой набор элементов, причем начало и конец каждого элемента обозначается специальными пометками, называемыми тегами. Регистр в котором набрано имя тега значения не имеет.
Каждый HTML-документ, отвечающий спецификации HTML какой-либо версии, обязан начинаться со строки декларации версии HTML, которая обычно выглядит так: Если эта строка не указана, то добиться корректного отображения документа в браузере становиться труднее.
Далее обозначается начало и конец документа тегами и соответственно. Внутри этих тегов должны находиться теги заголовка() и тела() документа.
Значение html
Изначально разработанный для создания Web-страниц, HTML оказался полезным во многих других, иногда неожиданных, приложениях, и поэтому очень скоро развился в мощное средство программирования. Хотя Всемирная паутина считается самым большим "потребителем" HTML, этот язык широко используется при создании корпоративных сетей Intranet, для придания неповторимого облика электронной переписке и даже в разработке графических интерфейсов пользователя (Graphical User Interface, GUI) для индивидуального или сетевого применения.
Соответственно, язык разметки приобретает все новые функции и особенности, поэтому сегодняшняя версия (НТМL 4.0) имеет мало общего со своими более простыми и менее амбициозными предшественниками. За несколько лет HTML превратился в мощное и широко используемое средство программирования.
История создания и развития php
PHP (рекурсивный акроним словосочетания "PHP: Hypertext Preprocessor") - это широко используемый язык программирования общего назначения с открытым исходным кодом. PHP сконструирован специально для ведения Web-разработок и может внедряться в HTML-код.
За последние годы PHP прошел долгий путь от набора Perl скриптов, позволяющих следить за посетителями страницы, и до, написанного уже на языке С, одного из самых известных и широко распространенных скриптовых языков для создания сложных, динамических, интерактивных web-сайтов.
PHP лучше всего охарактеризовать как работающий на стороне сервера встроенный язык web сценариев, позволяющий разработчикам быстро и эффективно создавать динамические web-приложения. С позиций грамматики и синтаксиса PHP напоминает язык программирования C, хотя разработчики включили в него некоторые весьма полезные средства из других языков программирования, в том числе из Perl, Java и C++. Среди ценных заимствованных возможностей - поддержка регулярных выражений, мощные средства работы с массивами, объектно-ориентированная методология и обширная поддержка работы с различными базами данных.
История PHP начинается осенью 1994 года. Когда Расмус Лердорф (Rasmus Lerdorf) начал работать над тем, что впоследствии стало PHP, единственной целью, которая была у него в мыслях, выяснить, кто читает его резюме. В то время, являясь независимым подрядчиком, Лердорф рассылал потенциальным работодателям свое мини-резюме с URL ссылкой на его полную версию.
Чтобы следить за посетителями, он создал CGI скрипт на Perl-e, который вставлялся как специальный тег в HTML код его страницы, и собирал информацию о посетителях. Чтобы произвести впечатление на потенциальных работодателей, он позволил любому посетителю страницы просматривать собираемую статистику посещений.
Он назвал этот код для сбора статистики "PHP-Tools for Personal Home Page", поскольку сам использовал его на своей персональной домашней странице (personal home page). Несколько человек поинтересовались тем, как они могли бы получить этот инструмент, и Лердорф принял решение предоставить его другим лицам. "Это чудо программного обеспечения. Вы можете дать это и тем не менее оставить это себе", остроумно заметил Лердорф. В то время движения Open Source не существовало. "Тогда оно назвалось freeware". Ближе к концу 1995 года Лердорф открыл для людей первый список рассылки по PHP, чтобы можно было обмениваться идеями, исправлениями ошибок и кодом.
Php/Fi. В результате своих действий, Лердорф получил контракт в Университете Торонто на создание dial-up системы, предоставляющей студентам доступ в интернет. Требование включало разработку административного web интерфейса и возможности доступа студентов к Университетской библиотечной системе, хранившейся на мейнфрейме IBM. Было необходимо, чтобы администраторы библиотеки могли предоставлять студентам доступ на основе платежей, сделанных ими для своих интернет эккаунтов, и, чтобы эта информация обновлялась в базе данных в реальном времени.
В середине 1995 года синтаксический анализатор PHP был переписан на языке C. Кроме того, Лердорф создал некоторое количество тегов для вставки их в HTML код. Эти теги он назвал "Form Interpreters" (интерпретаторы форм) поскольку они должны были получать данные, которые вводились в форме, и преобразовывать эти данные в символьные переменные так, чтобы они могли быть экспортированы в другую систему.
В то время не было инструментов для "стыковки" web-страниц и баз данных. Поэтому Лердорф добавил в PHP поддержку базы данных mSQL, чтобы облегчить разработку web-сайтов, которым необходима реляционная база данных.
Объединив интерпретатор форм с пакетом PHP-Tools, Лердорф подошел в 1996 году ко второй версии PHP, названной PHP/FI. Он отнесся легкомысленно к идее создания из него коммерческого продукта. Но в то же самое время, Лердорф получал огромное число сообщений от других программистов, которые присылали ему улучшения кода и исправления ошибок.
Привести точную статистику непросто, но приблизительно в конце 1996 года PHP/FI использовался не менее чем на 15,000 web-сайтов во всем мире. А в середине 1997 года это число превысило 50,000.
Php 3. PHP 3.0 был первой версией, которая близко походила на тот PHP, который мы знаем сегодня. Он был создан Энди Гутмансом (Andi Gutmans) и Зивом Суразски (Zeev Suraski) в 1997 году как полная переделка предыдущей версии PHP, после того, как они нашли, что возможностей PHP/FI 2.0 сильно не хватает для развития их собственного приложения для eCommerce. Энди Гутманс, Расмус Лердорф и Зив Суразски решили начать работу над новой версией PHP с существующей базы PHP/FI и, объединившись, выпустили PHP 3.0 как официальный последователь PHP/FI 2.0, а развитие PHP/FI 2.0 был в основном прервано.
Одной из наиболее сильных сторон PHP 3.0 были его мощные возможности по расширению. В дополнение к предоставлению конечным пользователям единой инфраструктуры для множества различных баз данных, протоколов и API, были возможности по расширению PHP 3.0, которые привлекли десятки разработчиков к объединению и предоставлению на рассмотрение новых модулей расширения. Возможно, это и было ключом к огромному успеху PHP. Другой возможностью, представленной в PHP 3.0, была поддержка объектно-ориентированного синтаксиса и гораздо более мощный и последовательный синтаксис языка.
Полностью новый язык был выпущен под новым именем, из которого был удален намек на ограниченное персональное использование, который содержался в имени PHP/FI 2.0. Он был назван просто "PHP", со значением, являющимся рекурсивным акронимом - "PHP: Hypertext Preprocessor".
Php 4. К зиме 1998 года, вскоре после официального выхода PHP 3.0, Энди Гутманс и Зив Суразски начали работу по переписыванию ядра PHP. Целью их плана было увеличение производительности сложных приложений и совершенствование модульности основы кода PHP. Существование таких приложений стало возможным благодаря новым возможностям PHP 3.0 и поддержкой PHP широкого диапазона различных баз данных и API сторонних производителей. Но все же PHP 3.0 не был предназначен для эффективной обработки таких сложных приложений.
Новый движок (ядро PHP), прозванный "Zend Engine" (составлено от первых букв их имен - Зив и Энди), успешно удовлетворил этим целям и был впервые представлен в середине 1999 года. PHP 4.0, базирующийся на этом движке и дополненный различными новыми дополнительными возможностями, был официально выпущен в мае 2000 года, почти два года спустя после своего предшественника - PHP 3.0.
В дополнение к сильно увеличенной производительности, PHP 4.0 включил другие ключевые возможности, такие как поддержку гораздо большего количества web-серверов, HTTP-сессии, буферизацию вывода, более безопасные пути обработки ввода пользователей и ряд новых языковых конструкций.
Сегодняшняя ведущая команда разработчиков РНР включает специалистов со всего мира. Зив Сураски и Энди Гутманс живут в Израиле, Шейн Каравео (Shane Caraveo) постоянно находится во Флориде, Стиг Беккен (Stig Bakken) - из Норвегии, Андрей Змиевски (Andrei Zmievski) живет в штате Небраска, Саша Шуман (Sasha Schumann) и Тес С. Арнцен (Thes С. Arntzen) - из Германии, Джим Уинстед (Jim Winstead) - из Лос-Анджелеса, а сам отец РНР - Расмус Лердорф, постоянно живет в Северной Каролине.
Команда разработки PHP включает десятки разработчиков, и немало других людей работают над проектами, связанными с PHP, такими как PEAR, Smarty и Проект документации. Благодаря открытости ресурсов РНР многие разработчики и любители внесли собственный вклад в развитие и совершенствование РНР.
Php 5. Пятая версия PHP была выпущена разработчиками 13 июля 2004 года. Изменения включают обновление ядра Zend, что существенно увеличило эффективность интерпретатора. Введена поддержка языка разметки XML. Полностью переработаны функции ООП, которые стали во многом схожи с моделью, используемой в Java.
В частности, введён деструктор, открытые, закрытые и защищённые члены и методы, окончательные члены и методы, интерфейсы и клонирование объектов. Нововведения, однако, были сделаны с расчётом сохранить наибольшую совместимость с кодом на предыдущих версиях языка. На данный момент самыми стабильными и часто используемыми являются именно версии 5.xx, даже несмотря на то, что уже имеется dev-версия PHP 6.
Php 6. Шестая версия PHP находится в стадии разработки. В ней уже сделано множество нововведений, как, например, исключение из ядра POSIX-регулярных выражений и "длинных" суперглобальных массивов.
Общие сведения о ASP и ASP.NET
ASP (англ. Active Server Pages - "активные серверные страницы") - технология от Microsoft, позволяющая легко разрабатывать приложения для World Wide Web. ASP работает на платформе операционных систем линии Windows NT и на веб-сервере IIS. ASP не является языком программирования - это лишь технология предварительной обработки, позволяющая подключать программные модули во время процесса формирования Web-страницы. Относительная популярность ASP основана на простоте используемых языков сценариев (VBScript или JScript) и возможности использования внешних COM-компонент.
ASP.NET - это технология создания веб-приложений и веб-сервисов от компании Майкрософт. Она является составной частью платформы Microsoft. NET и развитием более старой технологии Microsoft ASP. На данный момент последней версией этой технологии является ASP.NET 2.0.
ASP.NET внешне во многом сохраняет схожесть с более старой технологией ASP, что позволяет разработчикам относительно легко перейти на ASP.NET. В то же время внутреннее устройство ASP.NET существенно отличается от ASP, поскольку она основана на платформе. NET и, следовательно, использует все новые возможности, предоставляемые этой платформой.
Хотя ASP.NET берёт своё название от старой технологии Microsoft, ASP, она значительно от нее отличается. Microsoft полностью перестроила ASP.NET, основываясь на Common Language Runtime (CLR), который является основой всех приложений Microsoft.NET. Программисты могут писать код для ASP.NET, используя различные языки программирования, поддерживаемые в. NET Framework, обычно Visual Basic.NET, JScript. NET или C#, а также "открытые" языки, например, Perl и Python. ASP.NET имеет преимущество в скорости по сравнению с другими технологиями, основанными на скриптах, потому что код на стороне веб-сервера обычно компилируется в одну или несколько DLL.
Преимущества ASP.NET перед ASP
Компилируемый код выполняется быстрее, большинство ошибок отлавливается ещё на стадии разработки
Значительно улучшенная обработка ошибок времени выполнения
Пользовательские элементы управления позволяют выделять часто используемые шаблоны, такие как меню сайта
Использование метафор, уже применяющихся в Windows-приложениях, например, таких как элементы управления и события
Расширяемый набор элементов управления и библиотек классов позволяет быстрее разрабатывать приложения
ASP.NET опирается на многоязыковые возможности. NET, что позволяет писать код страниц на VB.NET, C++, J# и т.д.
Возможность кэширования всей страницы или её части для увеличения производительности
Возможность разделения визуальной части и бизнес логики по разным файлам
История создания java
Язык Java зародился как часть проекта создания передового программного обеспечения для различных бытовых приборов. Реализация проекта была начата на языке С++, но вскоре возник ряд проблем, наилучшим средством борьбы с которыми было изменение самого инструмента - языка программирования. Стало очевидным, что необходим платформо-независимый язык программирования, позволяющий создавать программы, которые не приходилось бы компилировать отдельно для каждой архитектуры и можно было бы использовать на различных процессорах под различными операционными системами.
Рождению языка Java предшествовала довольно интересная история. В 1990 году разработчик ПО компании Sun Microsystems Патрик Нотон (Patrick Naughton) понял, что ему надоело поддерживать сотни различных интерфейсов программ, используемых в компании, и сообщил исполнительному директору Sun Microsystems и своему другу Скотту МакНили (Scott McNealy) о своем намерении перейти работать в компанию NeXT. МакНили, в свою очередь, попросил Нотона составить список причин своего недовольства и выдвинуть такое решение проблем, как если бы он был Богом и мог исполнить все, что угодно.
Нотон, хотя и не рассчитывал на то, что кто-то обратит внимание на его письмо, все же изложил свои претензии, беспощадно раскритиковав недостатки Sun Microsystems, в частности, разрабатываемую в тот момент архитектуру ПО NeWS. К удивлению Нотона, его письмо возымело успех: оно было разослано всем ведущим инженерам Sun Microsystems, которые не замедлили откликнуться и высказать горячую поддержку своему коллеге и одобрение его взглядов на ситуацию в Sun Microsystems. Обращение вызвало одобрение и у высшего руководства компании, а именно, у Билла Джоя (Bill Joy), основателя Sun Microsystems, и Джеймса Гослинга (James Gosling), начальника Нотона.
В тот день, когда Нотон должен был уйти из компании, было принято решение о создании команды ведущих разработчиков с тем, чтобы они делали что угодно, но создали нечто необыкновенное. Команда из шести человек, с кодовым названием Green, ушла в самовольное изгнание, погрузившись в исследования бытовых устройств, таких как Nintendo Game Boys, устройств дистанционного управления.
Команда Green пыталась найти средство, с помощью которого можно было бы установить взаимодействие между этими устройствами. Вскоре стало ясно, что такие электроприборы, как видеомагнитофоны, проигрыватели лазерных дисков, стереосистемы - все они были реализованы на разных процессорах. Это означало, что если производитель захочет добавить телевизору или видеомагнитофону дополнительные функции или характеристики, он будет зажат в рамках средств, зашитых в аппаратное обеспечение.
Эта проблема, в сочетании с ограниченностью памяти микросхем этих устройств, выдвинула новый подход к программированию ПО, который должен был стать ведущим на рынке бытовой электроники.
Команда приступила к разработке нового объектно-ориентированного языка программирования, который был назван Oak (дуб), в честь дерева, росшего под окном Гослинга.
Вскоре компания Sun Microsystems преобразовала команду Green в компанию First Person. Новая компания обладала интереснейшей концепцией, но не могла найти ей подходящего применения. После ряда неудач неожиданно ситуация для компании резко изменилась: был анонсирован Mosaic - так родился World Wide Web, с которого началось бурное развитие Internet.
Нотон предложил использовать Oak в создании Internet- приложений. Так Oak стал самостоятельным продуктом, вскоре был написан Oak-компилятор и Oak-браузер "WebRunner". В 1995 году компания Sun Microsystems приняла решение объявить о новом продукте, переименовав его в Java (единственное разумное объяснение названию - любовь программистов к кофе). Когда Java оказалась в руках Internet, стало необходимым запускать Java-аплеты - небольшие программы, загружаемые через Internet. WebRunner был переименован в HotJava и компания Netscape встала на поддержку Java-продуктов.
О технологии java
Технология Java - это объектно-ориентированная, платформо-независимая, многопоточная среда программирования. Java стала основой для "умных" Web- и сетевых сервисов, позволила надежно и безопасно наращивать информационную структуру предприятия без зависимости от отдельной платформы. Все виды систем могут взаимодействовать друг с другом - начиная со смарт карт и заканчивая суперкомпьютерами - независимо от аппаратной платформы и системного программного обеспечения.
С технологией Java приложение можно исполнять на любом типе машин - персональном компьютере, компьютере Макинтош, сетевом компьютере или даже на телефоне. Когда программный продукт, написанный на языке программирования Java, компилируется с использованием Java-компилятора, получается байткод. Этот байткод может интерпретироваться на любой платформе, где установлена виртуальная машина Java. Это означает, что нет необходимости в портировании программ, то есть их перевода на язык, понятный конкретному компьютеру.
Java-технологии входят в мир бизнеса одновременно с двух сторон: через тысячи программистов, увлеченных необыкновенными возможностями Java и через дальновидных руководителей корпораций, признающих необычайную экономическую выгоду использования Java-технологий.
За последние годы увеличилось множество несовместимых аппаратных архитектур, каждая из которых поддерживает множество несовместимых операционных систем, которые, в свою очередь, управляют несовместимыми графическими пользовательскими интерфейсами. Задача создания распределенных клиент-серверных сред сталкивается с проблемой интеграции подобных разрозненных продуктов.
Развитие Internet, World Wide Web и электронного бизнеса привнесло новый уровень сложности в процесс разработки. Язык Java компании Sun Microsystems решает эти проблемы. Java является объектно-ориентированным и одновременно простым языком программирования. Цикл разработки программных средств с использованием Java значительно сокращается в силу того, что Java - интерпретируемый язык. Процесс компиляции-сборки-загрузки устарел - теперь программу надо только откомпилировать и сразу запускать.
Приложения переносимы на многие платформы. Однажды написанное приложение не придется модифицировать под другие платформы: оно будет работать без каких-либо изменений на различных операционных системах и аппаратных архитектурах. Приложения надежны так как Java контролирует обращения к памяти. Несмотря на то, что язык Java - интерпретируемый, код Java программы оптимизируется до фазы исполнения в следствии чего получаем высокую производительность.
Поддержка системы многопоточности позволяет создавать параллельно исполняемые взаимодействующие легковесные процессы. Возможна динамическая загрузка программных модулей из любого места в сети. Пользователи могут быть уверены в безопасности приложений, даже если в них загружен программный код из любого места в Internet. Исполняющая система Java имеет встроенную защиту от вирусов и попыток взлома.
Благодаря Java работа по разработке программного обеспечения значительно упрощается, все старания направлены на достижение конечной цели: вовремя получить передовой продукт, опирающийся на солидную основу Java.
Основные характеристики языка java
Развитие Internet и World Wide Web заставляет совершенно по-новому рассматривать процессы разработки и распределения программного обеспечения. Для того, чтобы выжить в мире электронного бизнеса и распространения данных, язык Java должен быть:
безопасным,
высокопроизводительным,
надежным.
Работа на различных платформах гетерогенных сетей отбрасывает традиционную схему распределения ПО, версий ПО, модификации ПО, объединения ПО и т.д. Для решения проблем гетерогенных сред язык должен быть:
нейтральным к архитектуре,
переносимым,
динамически подстраиваемым.
Разработчики Java с самого начала хорошо понимали, что язык, предназначенный для решения проблем гетерогенных сред, также должен быть:
простым
ясным
объектно-ориентированным
многопоточным
интерпретируемым
Более подробно рассмотрим перечисленные характеристики Java.
Простота. Простота языка входит в ключевые характеристики Java: разработчик не должен длительное время изучать язык, прежде чем он сможет на нем программировать. Фундаментальные концепции языка Java быстро схватываются и программисты с самого начала могут вести продуктивную работу.
Разработчиками Java было принято во внимание, что многие программисты хорошо знакомы с языком С++, поэтому Java, насколько это возможно, приближен к С++.
В Java не включены некоторые редко используемые, плохо понимаемые и усложняющие работу возможности С++, которые приносят больше проблем, чем преимуществ. Пришлось отказаться от:
перегрузки операторов (но перегрузка методов в Java осталась),
множественного наследования,
автоматического расширяющего приведения типов.
Добавилась автоматическая сборка мусора, упрощающая процесс программирования, но несколько усложняющая систему в целом. В С и С++ управление памятью вызывало всегда массу проблем, теперь же об этом не придется много заботиться.
Объектно-ориентированность. Язык Java с самого начала проектировался как объектно-ориентированный. Задачам распределенных систем клиент-сервер отвечает объектно-ориентированная парадигма: использование концепций инкапсуляции, наследования и полиморфизма. Java предоставляет ясную и действенную объектно-ориентированную платформу разработки. Программисты на Java могут использовать стандартные библиотеки объектов, обеспечивающие работу с устройствами ввода/вывода, сетевые функции, методы создания графических пользовательских интерфейсов. Функциональность объектов этих библиотек может быть расширена.
Надежность. Платформа Java разработана для создания высоконадежного прикладного программного обеспечения. Большое внимание уделено проверке программ на этапе компиляции, за которой следует второй уровень - динамическая проверка (на этапе выполнения). Модель управления памятью предельно проста: объекты создаются с помощью оператора new. В Java, в отличие от С++, механизм указателей исключает возможность прямой записи в память и порчи данных: при работе с указателями операции строго типизированы, отсутствуют арифметические операции над указателями. Работа с массивами находится под контролем управляющей системы. Существует автоматическая сборка мусора. Данная модель управления памятью исключает целый класс ошибок, так часто возникающих у программистов на С и С++. Программы на Java можно писать, будучи уверенным в том, что машина не "повиснет" из-за ошибок при работе с динамически выделенной памятью.
Безопасность. Java разработана для оперирования в распределенных средах, это означает, что на первом плане должны стоять вопросы безопасности. Средства безопасности, встроенные в язык, и система исполнения Java позволяют создавать приложения, на которые невозможно "напасть" извне. В сетевых средах приложения, написанные на Java, защищены от вторжения неавторизованного кода, пытающегося внедрить вирус или разрушить файловую систему.
Независимость от архитектуры. Java разработан для поддержки приложений, внедряемых в гетерогенные сетевые среды. В подобных средах приложения должны исполняться на различных аппаратных архитектурах, под управлением различных операционных систем и во взаимодействии с интерфейсами различных языков программирования. Для обеспечения платформо-независимости программ компилятор Java генерирует байт-код - архитектурно-нейтральный промежуточный формат программы, создаваемый для эффективной передачи кода на различные аппаратные и программные платформы. При выполнении программы байт-код интерпретируется исполняющей машиной Java. Один и тот же Java-байткод будет исполняться на любой платформе.
Переносимость. Архитектурная независимость - лишь составная часть переносимости. В отличие от С или С++ в Java не существует понятия "зависимости от реализации", когда речь идет о размерности базовых типов. Форматы типов данных и операции над ними четко определены. Тем самым, программы остаются неизменными на любой платформе - не существует несовместимости типов данных на аппаратных и программных архитектурах.
Архитектурная независимость и переносимость программного обеспечения Java обеспечивается виртуальной машиной Java (Java Virtual Mashine - JVM) - абстрактной машиной, для которой компилятор Java генерирует код. Специальные реализации JVM для конкретных аппаратных и программных платформ предоставляют уже конкретную виртуальную машину. JVM базируется на стандарте интерфейса переносимых операционных систем (POSIX).
Высокая производительность. Производительность всегда заслуживает особого внимания. Java достигает высокой производительности благодаря специально оптимизированному байт-коду, легко переводимому в машинный код. Автоматическая сборка мусора выполняется как фоновый поток с низким приоритетом, обеспечивая высокую вероятность доступности требуемой памяти, что ведет к увеличению производительности.
Приложения, требующие больших вычислительных ресурсов, могут быть спроектированы так, чтобы те части, которые требуют интенсивных вычислений, были написаны на языке ассемблера и взаимодействовали с Java платформой. В основном, пользователи ощущают, что приложения взаимодействуют быстро, несмотря на то, что они являются интерпретируемыми.
Интерпретируемость. Java-интерпретатор может выполнять Java байт-код на любой машине, на которой установлен интерпретатор и система выполнения. На интерпретирующей платформе фаза сборки программы является простой и пошаговой, поэтому процесс разработки существенно ускоряется и упрощается, отсутствуют традиционные трудные этапы компиляции, сборки, тестирования.
Многопоточность. Большинству современных сетевых приложений обычно необходимо осуществлять несколько действий одновременно. В Java реализован механизм поддержки легковесных процессов-потоков (нитей). Многопоточность Java предоставляет средства создания приложений с множеством одновременно активных потоков. Для эффективной работы с потоками в Java реализован механизм семафоров и средств синхронизации потоков: библиотека языка предоставляет класс Thread, а система выполнения предоставляет средства диспетчеризации и средства, реализующие семафоры. Важно, что работа параллельных потоков с высокоуровневыми системными библиотеками Java не вызовет конфликтов: функции, предоставляемые библиотеками, доступны любым выполняющимся потокам.
Динамичность. По ряду соображений Java более динамичный язык, чем С++. Он был разработан специально для подстройки под изменяющееся окружение. В то время как компилятор Java на этапе компиляции и статических проверок не допускает никаких отклонений, процесс сборки и выполнения сугубо динамический. Классы связываются только тогда, когда в этом есть необходимость. Новые программные модули могут подключаться из любых источников, в том числе, поставляться по сети.
В случае с браузером HotJava и другими подобными приложениями интерактивный выполняемый код может быть загружен откуда угодно, что позволяет производить прозрачные модификации приложений. В результате возможно создание интерактивных служб, безболезненно модифицируемых, обслуживающих большое количество клиентов и обеспечивающих развитие электронного бизнеса через Internet.
Публикация данной статьи возможна только при наличии ссылки на источник: http://money-internet.info