Автор работы: Пользователь скрыл имя, 18 Декабря 2013 в 15:43, реферат
Все языки программирования можно условно разделить на машинно-зависимые и машинно-независимые. Машинно-зависимые отличаются от независимых тем, что содержат команды, директивы или символы, которые подразумевают исполнение программы на конкретной архитектуре ЭВМ. Примером такого класса языков может являться Ассемблер.
Программы, написанные на машинно-независимых языках программирования, могут выполняться на любой платформе, под любой системой. Главная концепция этих языков – свобода для разработчика.
Введение 2
Язык программирования Java 2
TeleScript от GeneralMagic 5
dotNet от Microsoft 6
Mono от Xamarin 8
Заключение 8
Список использованных источников 9
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПРИБОРОСТРОЕНИЯ И ИНФОРМАТИКИ
Кафедра «Персональные компьютеры и сети»
Реферат
По дисциплине: «Сетевые технологии»
На тему: «Существующие альтернативы языка 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 (JVM). JVM – это своего рода виртуальный процессор, который обрабатывает байт-код и передает директивы оборудованию. Байт-код также может транслироваться по сети и обрабатываться локально опять же с помощью JVM.
Использование виртуальной машины имеет как преимущества, так и недостатки. Из преимуществ нужно отметить следующие:
Из недостатков:
Однако медленная работа Java приложений не заметна при запуске небольших приложений, поэтому-то Java и получила популярность именно в вебе.
Приложения на Java могут быть как полноценными индивидуальными программами, так и встраиваться в другие, и тогда Java-программа называется апплетом. Например, апплет может занимать участок веб-страницы в браузере. Один из способов запустить апплет на странице – просто вписать тег <applet> в HTML-код страницы с указанием имени апплета, установленного на сервере и границ участка, занимаемого апплетом на странице.
Пример:
<applet code="ExampleApplet" width=100 height=100>
</applet>
В настоящее время популярность и перспективность Java очень высока. Java используют многие лидеры интернет-индустрии (Ebay, Jandex, Yahoo и др.). Среди примеров использования Java игры, СУБД, различные утилитарные приложения.
Также разработки Java работают над ускорением работы Java-приложений. Со временем Java получает все больше обновлений, положительно влияющих над производительсть. Среди них:
Идеи Java вдохновили множество похожих (и не очень похожих) независимых разработок, некоторые из которых стали полноправными конкурентами Java, например .NET от Microsoft.
TeleScript – технология, начавшая развиваться параллельно с Java в 90-е годы в компании General Magic.
Основной идеей компании было следующее: распределить выполнение обычных задач пользовательских приложений на все компьютеры сети. General Magic решила создать функциональный карманный компьютер. Они полагали, что идея создания функционального аналога ПК в формате карманного компьютера обречена на провал, т.к. карманные решения заведомо менее производительны. Вместо этого они придумали новый подход к решению задачи создания карманного устройства. Идея заключалась в том, чтобы само устройство было изначально снабжено лишь минимумом функций, необходимых для работы, а специализированные приложения, необходимые для решения более специфических задач, загружались бы из сети. Операционная система была названа Magic Cap OS. Как раз для написания приложений для этой системы и описания взаимодействия между устройствами сети был разработан язык TeleScript.
Код этого языка интерпретировался в кросс-платформенный байт-код по схожему с Java принципу и тоже выполнялся на виртуальных машинах. Интересная особенность заключалась в том, что запущенное приложение могла мигрировать между запущенными виртуальными машинами по сети. Программа-агент запоминала свое состояние, переменные, код, перемещалась на другую машина и возобновляла работу.
Например, пользователь мог запустить программу на своем КПК, после чего она мигрировала на более производительную машину и продолжала работу. По мере необходимости устройства могли синхронизироваться, но для работы приложения не было нужно постоянное соединение. Программа могла неделями работать автономно на сервере, периодически отправляя обновленные данные клиенту.
Одно время эта технология была широко распространена. Все устройства были сведены в «облако». Пользователь мог перемещаться из места в место и получать обновленные данные на свое устройство из этого облака.
Агенты, написанные на TeleScript отличались от Java-агентов наличием большего количества полномочий. Например, они могли пользоваться памятью устройства.
В настоящее время эта технология не поддерживается. Компания закрылась в 2002 году.
.NET была выпущена «в ответ» на Java. Официально поддерживает только работу под Windows, однако существуют разработки, позволяющие dotNet работать на некоторых других системах.
Разработка технологии была начата в 1999 году. Главными принципами разработки этой технологии стали возможность разработки приложений для любых устройств, а также ориентация на системы семейства Windows. Предполагалось максимально упростить работу программистам и веб-разработчикам. Основной упор с самого начала делался на веб-технологии.
Принцип работы программ dotNet следующий: код программы сначала транслируется в специальный байт-код (Common Intermediate Language – Общий Промежуточный Язык), а затем либо исполняется на виртуальной машине (Common Language Runtime - CLR), либо снова транслируется утилитой NGen.exe в исполняемый код, специализированный для конкретного процессора. В случае исполнения байт-кода на виртуальной машине, трансляция в машинный код происходит «на лету», что ускоряет работу приложений. В этом процессе участвует технология «динамической компиляции».
DotNet очень похожа на Java по своим идеям и принципам. Она позволяет обращаться к приложениям и файлам, хранящимся на серверах. Приложения dotNet могут быть также встроены в окно браузера. В принципе отличаются эти технологии только в деталях.
Многие разработчики спорят о преимуществах Java и dotNet. Однако существуют объективные критерии оценки, которые можно здесь привести.
В пользу dotNet:
Рис1. Сравнение быстродействия Java, dotNet и Mono.
Источник - http://habrahabr.ru/post/
В пользу Java:
Mono – свободное ПО, расширяющее (или делающее возможной) кросс-платформенность dotNet. Данный продукт включает альтернативную среду исполнения dotNet. Существуют вариации с поддержкой JIT и без нее. Таким образом, Mono – еще одна платформа, позволяющая несколько расширить функционал dotNet. Однако, из Рис.1 видно, что она уступает стандартной .Net Framework в производительности.
Среди своих аналогов основными языками веб-программирования являются Java и dotNet. Оба они обладают своими недостатками и преимущества. Поэтому для каждого отдельного проекта необходимо выбирать ту платформу, которая лучше для него подходит. Я бы предпочел Java в случае, если в проекте предусматривается небольшая программа, которая не требует много ресурсов, и которой не нужна высокая производительность. Хотя разработка и может занять несколько больше времени из-за меньшего количества готовых функций, такой выбор послужит на пользу конечному пользователю, поскольку во-первых, приложение можно будет запускать без проблем на большем количестве устройств, а во-вторых, гораздо проще подготовить компьютер к работе с Java, чем с .Net.