Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

На Яве сложно программировать

div.main {margin-left: 20pt; margin-right: 20pt}На Яве сложно программировать

Миф о сложности программирования на Ява основан, большей частью, на стандартной библиотеке классов. Разработчики Ява предприняли героическую попытку создать что-то вроде "универсальной библиотеки программиста", включающую в себя большое количество полезных алгоритмов, с которыми часто сталкиваются при разработке любых типов программ. Можно сказать, что это им удалось. Стандартная библиотека Ява имеет древовидную структуру с разделением функций по уровням и включает большое количество разнообразных классов. Использование единых стандартных классов упрощает создание и поддержку приложений. Можно, разумеется, создавать Ява-программы, не используя стандартную библиотеку. Но это неизбежно приведет к ненужной трате времени и денег. В самом деле, давайте представим себе разработку приложения группой программистов. Предположим, что для проекта требуется класс для хранения коллекций объектов в памяти. Предположим далее, что компания решает разработать подобный класс самостоятельно. Это означает, что не только требуется время для создания и отладки класса. Гораздо важнее, что требуется обучение остальной группы работе с данным классом! На это может быть затрачено больше времени, чем на саму разработку класса! Среда Ява едина для разных операционных систем и это упрощает жизнь программиста: разработка сложных алгоритмов происходит всего один раз, а их использование становится возможным на ряде аппаратных платформ.

Далее, язык программирования Ява является чисто объектно-ориентированным. Его синтаксис похож на C++, но избыточный функционал, часто приводящий к ошибкам, отброшен. К подобным возможностям C++ относятся, к примеру, перегрузка операторов и множественное наследование. Вместо множественного наследования Ява использует гораздо более простую и удобную концепцию "интерфейса", то есть именованного соглашения о вызовах набора функций. Ява использует строгую типизацию и не допустит неверной передачи параметра. Ява гораздо строже С++ относится к небрежностям в исходном коде и, к примеру, не позволит создать метод с заведомо неиспользуемым участком кода. Также Ява не откомпилирует программу, в которой используется неинициализированная переменная. Это предохраняет программиста от ошибок, допущенных по невнимательности.

Один из главных источников проблем при разработке программ - неправильное использование динамической памяти, а точнее некорректное освобождение занятых ранее блоков. Ява использует концепцию "сборщика мусора". Это означает, что программисту совершенно не нужно заботиться об освобождении занятого участка памяти. Система сама добавит его к свободной памяти, когда обнаружит, что ссылок из программы на данный объект уже нет. Для многих систем программирования существуют специальные библиотеки, которые поддерживают сборку мусора, но в Яве данная возможность является "встроенной" и не требует дополнительных усилий от программиста.

Для сигнализации об ошибках Ява использует модную нынче концепцию "исключений". Исключение - это некое специальное событие, которые сигнализирует об ошибке в программе. Большинство языков программирования (и API) для сигнализации об ошибке используют концепцию "кода возврата". То есть попросту передают вызывающему результат вызова функции ("плохо" или "хорошо"). Код анализа возвращенного значения в результате перемешан с кодом нормального выполнения программы, это затрудняет чтение программ и их модификацию. Однако, что гораздо важнее, исключения не только улучшают читаемость исходных текстов, но и не позволяют вызывающей функции проигнорировать ошибку. Программист обязан либо "отловить" исключение, либо переложить эту обязанность на вызывающую функцию.

К сказанному можно добавить, что в Яву "встроена" мультизадачность. При создании мнокопотоковых приложений разработчику, как правило, приходится использовать средства операционной системы (семафоры, мьютексы) для синхронизации задач. Ява предлагает универсальное решение с использованием конструкций самого языка. Указание ключевого слова synchronized перед именем метода не позволяет его выполнять более чем одному потоку одновременно.

Резюмируя, можно сказать, что сложность программирования на Ява и в сравнение не идет с C++ или Pascal. Развитые возможности языка, поддержка "сборки мусора", единая стандартная библиотека классов, контроль со стороны компилятора - все это заметно упрощает создание приложений и ускоряет их отладку.

 

Зима 2001.
Владислав Кравченко, Григорий Григоренко

  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2021
    Реклама на сайте