Существующие альтернативы языка JAVA

Автор работы: Пользователь скрыл имя, 18 Декабря 2013 в 15:43, реферат

Краткое описание

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

Содержание

Введение 2
Язык программирования Java 2
TeleScript от GeneralMagic 5
dotNet от Microsoft 6
Mono от Xamarin 8
Заключение 8
Список использованных источников 9

Прикрепленные файлы: 1 файл

реферат сетевые технологии.docx

— 102.31 Кб (Скачать документ)

МИНИСТЕРСТВО ОБРАЗОВАНИЯ  И НАУКИ РФ

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ  УНИВЕРСИТЕТ ПРИБОРОСТРОЕНИЯ И  ИНФОРМАТИКИ

 

 

Кафедра «Персональные компьютеры и сети»

 

Реферат

 

По дисциплине: «Сетевые технологии»

На тему: «Существующие альтернативы языка JAVA (dotNet компании Microsoft, TeleScript формы General Magic и др.)»

 

 

 

Выполнил

 

 

Студент группы ИТ4-1003

Мусаев Артем Владимирович

Проверил

Преподаватель

Баканов Валерий Михайлович


 

 

 

Москва, 2013 г.

 

Оглавление

Введение 2

Язык программирования Java 2

TeleScript от GeneralMagic 5

dotNet от Microsoft 6

Mono от Xamarin 8

Заключение 8

Список использованных источников 9

 

 

Введение

Все языки программирования можно условно разделить на машинно-зависимые и машинно-независимые. Машинно-зависимые отличаются от независимых тем, что содержат команды, директивы или символы, которые подразумевают исполнение программы на конкретной архитектуре ЭВМ. Примером такого класса языков может являться Ассемблер.

Программы, написанные на машинно-независимых языках программирования, могут выполняться на любой платформе, под любой системой. Главная концепция  этих языков – свобода для разработчика. Ему не должно быть нужно думать о кросс-платформенности программы, либо о специфике написания кода для конкретной архитектуры. То есть в общем случае программист заботится о качестве алгоритма, кода, а «рутинные» задачи совместимости берет на себя виртуальная машина или другие программные средства. Кстати, большинство языков высокого уровня являются машинно-независимыми.

Примером машинно-независимого языка может служить Java. Изначально этот язык назывался Oak и был создан для программирования различных бытовых приборов (отсюда и платформенная независимость в качестве основной идеи). Со временем он трансформировался, развивался, но именно кросс-платформенность была всегда основополагающим принципом для Java. Теперь, во многом благодаря этому, Java – это в первую очередь сетевой язык программирования.

Язык программирования Java

Java – это не только язык, но также и набор библиотек и методов, помогающих с работой в Вебе. Кроме того, так называют платформу для разработки приложений на данном языке.

Основной принцип  Java, на котором строится его работа – это трансляция исходного кода Java в байт-код, который исполняется на конкретной машине с помощью виртуальной машины Java (JVM). JVM – это своего рода виртуальный процессор, который обрабатывает байт-код и передает директивы оборудованию. Байт-код также может транслироваться по сети и обрабатываться локально опять же с помощью JVM.

Использование виртуальной  машины имеет как преимущества, так  и недостатки. Из преимуществ нужно  отметить следующие:

  1. Полная независимость от операционной системы и архитектуры ЭВМ – первое и главное достоинство Java.
  2. Безопасность. Т.к. исполнение байт-кода лежит на виртуальной машине, она может полностью его контролировать и пресекать любые подозрительные действия кода. Кроме того, из сети загружается только байт-код, а все средства его интерпретации находятся на клиентской машине заранее. Это также усложняет задачу написания вредоносного кода, т.к. средства интерпретации кода для конкретной системы отслеживают, чтобы программа не выходила за рамки установленных полномочий.
  3. Как следствие первого пункта – поддержка сетевых технологий и возможность доступа к Java приложениям по сети.

Из недостатков:

  1. Низкая производительность. Из-за использования виртуальной машины, которая стоит между кодом и аппаратными средствами машины, приложения на Java по некоторым данным занимают в среднем в два раза больше памяти, а работают в два раза медленнее.
  2. Потенциальная опасность использования распространяемых в сети байт-кодов. Несмотря на средства контроля исполнения кодов, легкость помещения и запуска на любых компьютерах сети собственных байт-кодов может быть соблазнительной для злоумышленников.

 

Однако медленная  работа Java приложений не заметна при запуске небольших приложений, поэтому-то Java и получила популярность именно в вебе.

Приложения на Java могут быть как полноценными индивидуальными программами, так и встраиваться в другие, и тогда Java-программа называется апплетом. Например, апплет может занимать участок веб-страницы в браузере. Один из способов запустить апплет на странице – просто вписать тег <applet> в HTML-код страницы с указанием имени апплета, установленного на сервере и границ участка, занимаемого апплетом на странице.

Пример:

<applet code="ExampleApplet" width=100 height=100>

 </applet>

В настоящее время  популярность и перспективность  Java очень высока. Java используют многие лидеры интернет-индустрии (Ebay, Jandex, Yahoo и др.). Среди примеров использования Java игры, СУБД, различные утилитарные приложения. 

Также разработки Java работают над ускорением работы Java-приложений. Со временем Java получает все больше обновлений, положительно влияющих над производительсть. Среди них:

  1. Jit-трансляция байт-кода в машинный код (трансляция непосредственно во время исполнения кода)
  2. Использование платформенно-ориентированного кода в стандартных библиотеках Java.
  3. Некоторые аппаратные средства, ускоряющие обработку байт-кода (должны быть обеспечены производителем компьютерного оборудования).

Идеи Java вдохновили множество похожих (и не очень похожих) независимых разработок, некоторые из которых стали полноправными конкурентами Java, например .NET от Microsoft.

TeleScript от GeneralMagic

TeleScript – технология, начавшая развиваться параллельно с Java в 90-е годы в компании General Magic.

Основной идеей компании было следующее: распределить выполнение обычных задач пользовательских приложений на все компьютеры сети. General Magic решила создать функциональный карманный компьютер. Они полагали, что идея создания функционального аналога ПК в формате карманного компьютера обречена на провал, т.к. карманные решения заведомо менее производительны. Вместо этого они придумали новый подход к решению задачи создания карманного устройства. Идея заключалась в том, чтобы само устройство было изначально снабжено лишь минимумом функций, необходимых для работы, а специализированные приложения, необходимые для решения более специфических задач, загружались бы из сети. Операционная система была названа Magic Cap OS. Как раз для написания приложений для этой системы и описания взаимодействия между устройствами сети был разработан язык TeleScript.

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

Например, пользователь мог  запустить программу на своем  КПК, после чего она мигрировала на более производительную машину и продолжала работу. По мере необходимости устройства могли синхронизироваться, но для работы приложения не было нужно постоянное соединение. Программа могла неделями работать автономно на сервере, периодически отправляя обновленные данные клиенту.

Одно время эта технология была широко распространена. Все устройства были сведены в «облако». Пользователь мог перемещаться из места в место  и получать обновленные данные на свое устройство из этого облака.

Агенты, написанные на TeleScript отличались от Java-агентов наличием большего количества полномочий. Например, они могли пользоваться памятью устройства.

В настоящее время эта  технология не поддерживается. Компания закрылась в 2002 году.

dotNet от Microsoft

.NET была выпущена «в ответ» на Java. Официально поддерживает только работу под Windows, однако существуют разработки, позволяющие dotNet работать на некоторых других системах.

Разработка технологии была начата в 1999 году. Главными принципами разработки этой технологии стали возможность разработки приложений для любых устройств, а также ориентация на системы семейства Windows. Предполагалось максимально упростить работу программистам и веб-разработчикам. Основной упор с самого начала делался на веб-технологии.

Принцип работы программ dotNet следующий: код программы сначала транслируется в специальный байт-код (Common Intermediate Language – Общий Промежуточный Язык), а затем либо исполняется на виртуальной машине (Common Language Runtime - CLR), либо снова транслируется утилитой NGen.exe в исполняемый код, специализированный для конкретного процессора. В случае исполнения байт-кода на виртуальной машине, трансляция в машинный код происходит «на лету», что ускоряет работу приложений. В этом процессе участвует технология «динамической компиляции».

DotNet очень похожа на Java по своим идеям и принципам. Она позволяет обращаться к приложениям и файлам, хранящимся на серверах. Приложения dotNet могут быть также встроены в окно браузера. В принципе отличаются эти технологии только в деталях.

Многие разработчики спорят о преимуществах Java и dotNet. Однако существуют объективные критерии оценки, которые можно здесь привести.

В пользу dotNet:

  1. Скорость работы. В большинстве случаев приложения dotNet работают быстрее чем аналогичные прилдожения на Java.

Рис1. Сравнение быстродействия Java, dotNet и Mono.

Источник - http://habrahabr.ru/post/120090/

  1. Количество готовых библиотек и функций. В общем случае разработка приложения на dotNet будет для программиста легче, т.к. в его распоряжении большое количество стандартных функций.

В пользу Java:

  1. Простота использования для пользователя. Для поддержки dotNet пользователю нужно скачать большой файл и произвести установку, в то время как установка платформы для Java почти не заметна для пользователя.
  2. Кросс-платформенность. DotNet создан только для Windows, в отличие от Java.
  3. Код, написанный на dotNet легче декомпилировать, что облегчает задачу кражи данных для злоумышленника.

Mono от Xamarin

Mono – свободное ПО, расширяющее (или делающее возможной) кросс-платформенность dotNet. Данный продукт включает альтернативную среду исполнения dotNet. Существуют вариации с поддержкой JIT и без нее. Таким образом, Mono – еще одна платформа, позволяющая несколько расширить функционал dotNet. Однако, из Рис.1 видно, что она уступает стандартной .Net Framework в производительности.

Заключение

Среди своих аналогов основными  языками веб-программирования являются Java и dotNet. Оба они обладают своими недостатками и преимущества. Поэтому для каждого отдельного проекта необходимо выбирать ту платформу, которая лучше для него подходит. Я бы предпочел Java в случае, если в проекте предусматривается небольшая программа, которая не требует много ресурсов, и которой не нужна высокая производительность. Хотя разработка и может занять несколько больше времени из-за меньшего количества готовых функций, такой выбор послужит на пользу конечному пользователю, поскольку во-первых, приложение можно будет запускать без проблем на большем количестве устройств, а во-вторых, гораздо проще подготовить компьютер к работе с Java, чем с .Net.

 

 

Список использованных источников

  1. ru.wikipedia.org
  2. en.wikipedia.org
  3. habrahabr.ru/post/120090/
  4. В.М.Баканов Программное обеспечение компьютерных сетей и информационных систем (конспект лекций) 2000г.
  5. 11 СТП МГУПИ 2068752-5-2006 Стандарт предприятия МГУПИ Выпускные квалификационные работы. Курсовые проекты и работы. Правила оформления и структура.

 

 


Информация о работе Существующие альтернативы языка JAVA