Java. Чашечку кофе?
Java. Чашечку кофе? Когда-то компьютеры были большими и страшными. Люди их боялись и потому уважали. Но так продолжалось не долго. Постепенно, в погоне за прогрессом люди уменьшили компьютер до размеров небольшой тумбочки. Он стал частью их жизни. Садясь за компьютер, открывая любимый браузер, скользя по страницам Интернета, вы не задумываетесь о том, что скрывается за красотой страницы того или иного сайта. Одним кликом вашей мыши вы способны на многое.
Пару лет назад, когда Интернет в нашей стране начал входить в моду, я заинтересовался дизайном страниц. Тогда-то я и услышал это магическое слово — Java. Почему магическое? Мало людей слышало о Java, еще меньше — могли сказать, что это такое.
Java — это объектно-ориентированный язык программирования, созданный для решения узкого круга задач. Пройдя долгий путь в своем развитии, он стал одним из самых популярных языков программирования сегодня. Сегодняшние темпы развития технологий уже никого не удивляют. Производители компьютеров различными путями пытаются добиться их высокой производительности. Различные пути порождают различные платформы. В свою очередь, для каждой платформы необходимо свое программное обеспечение. Потребовался такой язык, на котором возможно было бы писать программы для всех платформ сразу. Это и стало отправной точкой в развитии и популярности языка Java.
Переносимость. Эта концепция закреплена в девизе Java: "Написано однажды — работает везде". Однажды написанное приложение будет работать везде, будь то перед вами обычный Pentium 200 c Windows 95 или мощная многопроцессорная станция под управлением ОС Linux. Вам не придется знать особенностей той или иной платформы. Вы пишете код — виртуальная машина Java выполняет его. Ваша Аська, написанная на Java, будет работать на обеих машинах. Но архитектурная независимость — это еще не все. Проблемы существуют в различии базовых типов. В одной среде integer — 2 байта, в другой — 4. В языке Java строго закреплен размеров базовых типов.
Безопасность. Вам приходилось когда-либо слышать о переполнении буфера? Это ситуация, когда запись элементов массива осуществляется за теми границами памяти, которые вы для него отвели. То есть стираются другие полезные данные! В Java у вас этого никогда не случится, потому что проверка таких ошибок осуществляется, во-первых, на этапе компиляции, во-вторых, на этапе выполнения программы. То есть разработчики в самом языке избавили программистов от возможных ошибок, а как следствие — от синих экранов. Одна из главных задач, стоящих перед разработчиками Java — облегчить труд программиста. Таких примеров можно привести сотни.
Вы когда-нибудь слышали о том, что язык программирования защищал от вирусов? Никогда? Тогда давайте я вас удивлю. Исполняющая система Java имеет такую защиту. И даже если вы загрузили какой-либо код из Интернета, вы можете быть уверенным в безопасности других приложений. В сетевых средах ваши программы защищены от вторжения извне программы, пытающейся внедрить вирус или разрушить файловую систему.
Динамичность. Язык Java один из самых динамичных языков. Тысячи специалистов всего мира работают над увеличением скорости приложений, написанных на Java. Если вчера скорость кода, выполняющего одинаковые операции на Java, была в 15-30 раз медленнее, чем на С++, то сегодня она практически вплотную приблизилась к нему.
Распространенность. Сегодня Java не применяется, пожалуй, только в узко специализированных задачах. Интернет, базы данных, графика, сети, обучающие системы — везде сегодня можно найти приложения, использующие язык Java. Записные книжки и сложные сетевые серверы, игры и текстовые редакторы реализованы на нем. Пока очередная программа переписывается для другой платформы, Java-версия уже реализована для всех! В этом простота и магия Java.
Многопоточность и масштабируемость. Для того чтобы нарастить производительность домашнего компьютера, необходимо увеличить размер оперативной памяти или поменять процессор на более современный. А как быть крупной компании или корпорации? Что делать, если потребовалось добавить в сеть некоторое количество компьютеров или перейти на другой тип соединения? Менять с аппаратурой все программное обеспечение? Или его часть? Во сколько это может обойтись? Сказать сложно. Масштабируемость языка Java позволяет с уверенностью сказать, что если вы поменяли процессор или поставили еще один, то приложение, созданное на языке Java, будет работать так же хорошо, как работало до этого. Многопоточность же обеспечивает работу одновременно большого числа программ. Управлять процессами — проще простого. Не один год совершенствуется язык. Множество гениальных людей продолжают приносить в него все лучшие и лучшие изменения.
Высокая эффективность. Вам приходилось сталкиваться с задачей, которую вы не в силах решить длительное время? Я уверен, что приходилось. Чтобы писать приложения для сети, вам не нужно разбираться в особенностях протоколов. Чтобы работать с базой данных, вам не нужно знать особенности ее реализации. Вы должны решать ту задачу, которая вам поставлена, а не задумываться и тратить силы на решение посторонних проблем. Создатели языка Java попытались выполнить за вас всю черную работу. Всего пару функций — и вы работаете с базой данных. Сложные бухгалтерские операции — нет проблем. TCP/IP — пожалуйста. Несколько строк кода — максимальная эффективность вашего труда.
Простота. Простота языка — одна из главных его характеристик. Разработчик не должен длительное время изучать язык, его тонкости и особенности. Объектная ориентированность языка и большой набор реализаций позволяют писать сложные программы уже вначале изучения. Следует учесть, что большинство программистов уже знают С++, по синтаксису Java максимально приближена к нему. Если в С++ работа с памятью вызывает у программистов головную боль, то в Java для устранения этих проблем предусмотрена автоматическая сборка мусора. Программа сама освобождает ненужную ей память. Тем самым у вас никогда не пропадут данные, хранящиеся в памяти, из-за ошибки в указателях.
В заключение хотелось бы сказать, что по отдельности эти характеристики можно найти в каждом языке. Но особенность и оригинальность Java заключается в том, что все они собраны вместе. Разработка программ значительно упрощается. Основная цель достигнута — все силы идут на быстрое создание конечного продукта, опирающегося на солидную мощь языка Java.
Дмитрий Пачинин aka Windmaste
windmaster@tut.by
Пару лет назад, когда Интернет в нашей стране начал входить в моду, я заинтересовался дизайном страниц. Тогда-то я и услышал это магическое слово — Java. Почему магическое? Мало людей слышало о Java, еще меньше — могли сказать, что это такое.
Java — это объектно-ориентированный язык программирования, созданный для решения узкого круга задач. Пройдя долгий путь в своем развитии, он стал одним из самых популярных языков программирования сегодня. Сегодняшние темпы развития технологий уже никого не удивляют. Производители компьютеров различными путями пытаются добиться их высокой производительности. Различные пути порождают различные платформы. В свою очередь, для каждой платформы необходимо свое программное обеспечение. Потребовался такой язык, на котором возможно было бы писать программы для всех платформ сразу. Это и стало отправной точкой в развитии и популярности языка Java.
Переносимость. Эта концепция закреплена в девизе Java: "Написано однажды — работает везде". Однажды написанное приложение будет работать везде, будь то перед вами обычный Pentium 200 c Windows 95 или мощная многопроцессорная станция под управлением ОС Linux. Вам не придется знать особенностей той или иной платформы. Вы пишете код — виртуальная машина Java выполняет его. Ваша Аська, написанная на Java, будет работать на обеих машинах. Но архитектурная независимость — это еще не все. Проблемы существуют в различии базовых типов. В одной среде integer — 2 байта, в другой — 4. В языке Java строго закреплен размеров базовых типов.
Безопасность. Вам приходилось когда-либо слышать о переполнении буфера? Это ситуация, когда запись элементов массива осуществляется за теми границами памяти, которые вы для него отвели. То есть стираются другие полезные данные! В Java у вас этого никогда не случится, потому что проверка таких ошибок осуществляется, во-первых, на этапе компиляции, во-вторых, на этапе выполнения программы. То есть разработчики в самом языке избавили программистов от возможных ошибок, а как следствие — от синих экранов. Одна из главных задач, стоящих перед разработчиками Java — облегчить труд программиста. Таких примеров можно привести сотни.
Вы когда-нибудь слышали о том, что язык программирования защищал от вирусов? Никогда? Тогда давайте я вас удивлю. Исполняющая система Java имеет такую защиту. И даже если вы загрузили какой-либо код из Интернета, вы можете быть уверенным в безопасности других приложений. В сетевых средах ваши программы защищены от вторжения извне программы, пытающейся внедрить вирус или разрушить файловую систему.
Динамичность. Язык Java один из самых динамичных языков. Тысячи специалистов всего мира работают над увеличением скорости приложений, написанных на Java. Если вчера скорость кода, выполняющего одинаковые операции на Java, была в 15-30 раз медленнее, чем на С++, то сегодня она практически вплотную приблизилась к нему.
Распространенность. Сегодня Java не применяется, пожалуй, только в узко специализированных задачах. Интернет, базы данных, графика, сети, обучающие системы — везде сегодня можно найти приложения, использующие язык Java. Записные книжки и сложные сетевые серверы, игры и текстовые редакторы реализованы на нем. Пока очередная программа переписывается для другой платформы, Java-версия уже реализована для всех! В этом простота и магия Java.
Многопоточность и масштабируемость. Для того чтобы нарастить производительность домашнего компьютера, необходимо увеличить размер оперативной памяти или поменять процессор на более современный. А как быть крупной компании или корпорации? Что делать, если потребовалось добавить в сеть некоторое количество компьютеров или перейти на другой тип соединения? Менять с аппаратурой все программное обеспечение? Или его часть? Во сколько это может обойтись? Сказать сложно. Масштабируемость языка Java позволяет с уверенностью сказать, что если вы поменяли процессор или поставили еще один, то приложение, созданное на языке Java, будет работать так же хорошо, как работало до этого. Многопоточность же обеспечивает работу одновременно большого числа программ. Управлять процессами — проще простого. Не один год совершенствуется язык. Множество гениальных людей продолжают приносить в него все лучшие и лучшие изменения.
Высокая эффективность. Вам приходилось сталкиваться с задачей, которую вы не в силах решить длительное время? Я уверен, что приходилось. Чтобы писать приложения для сети, вам не нужно разбираться в особенностях протоколов. Чтобы работать с базой данных, вам не нужно знать особенности ее реализации. Вы должны решать ту задачу, которая вам поставлена, а не задумываться и тратить силы на решение посторонних проблем. Создатели языка Java попытались выполнить за вас всю черную работу. Всего пару функций — и вы работаете с базой данных. Сложные бухгалтерские операции — нет проблем. TCP/IP — пожалуйста. Несколько строк кода — максимальная эффективность вашего труда.
Простота. Простота языка — одна из главных его характеристик. Разработчик не должен длительное время изучать язык, его тонкости и особенности. Объектная ориентированность языка и большой набор реализаций позволяют писать сложные программы уже вначале изучения. Следует учесть, что большинство программистов уже знают С++, по синтаксису Java максимально приближена к нему. Если в С++ работа с памятью вызывает у программистов головную боль, то в Java для устранения этих проблем предусмотрена автоматическая сборка мусора. Программа сама освобождает ненужную ей память. Тем самым у вас никогда не пропадут данные, хранящиеся в памяти, из-за ошибки в указателях.
В заключение хотелось бы сказать, что по отдельности эти характеристики можно найти в каждом языке. Но особенность и оригинальность Java заключается в том, что все они собраны вместе. Разработка программ значительно упрощается. Основная цель достигнута — все силы идут на быстрое создание конечного продукта, опирающегося на солидную мощь языка Java.
Дмитрий Пачинин aka Windmaste
windmaster@tut.by
Компьютерная газета. Статья была опубликована в номере 05 за 2002 год в рубрике программирование :: java