Язык Java зародился как часть проекта
создания передового программного обеспечения (ПО) для различных бытовых
приборов. Реализация проекта была начата на языке С++, но вскоре возник
ряд проблем, наилучшим средством борьбы с которыми было изменение самого
инструмента - языка программирования. Стало очевидным, что необходим
платформо-независимый язык программирования, позволяющий создавать
программы, которые не приходилось бы компилировать отдельно для каждой
архитектуры и можно было бы использовать на различных процессорах под
различными операционными системами.
Язык должен был воплощать следующие качества: простоту и мощь,
безопасность, объектную ориентированность, надежность, интерактивность,
архитектурную независимость, возможность интерпретации, высокую
производительность и легкость в изучении. Даже если вы никогда не
напишете ни одной строки на языке Java, знать о его возможностях весьма
полезно, поскольку именно перечисленные выше свойства языка придают
динамику страницам Всемирной паутины.
После освоения основных понятий объектно-ориентированного
программирования вы быстро научитесь программировать на Java. В наши дни
существует много систем программирования, гордящихся тем, что в них
одной и той же цели можно достичь десятком различных способов. В языке
Java изобилие решений отсутствует Ч для решения задачи у вас будет
совсем немного вариантов. Стремление к простоте зачастую приводило к
созданию неэффективных и невыразительных языков типа командных
интерпретаторов. Java к числу таких языков не относится Ц для Вас вся
мощность ООП и библиотек классов.
Забавно наблюдать, как многочисленные новые диалекты старых языков
безапелляционно объявляются объектно-ориентированными. Поскольку при
разработке языка отсутствовала тяжелая наследственность, для реализации
объектов был избран удобный прагматичный подход. Разработчики Java
старались выдержать разумный компромисс между моделью пуристов Ч Увсе
является объектамиФ, и моделью хакеров Ч Ууйди с моей дорогиФ. Объектная
модель в Java проста и легко расширяется, в то же время, ради повышения
производительности, числа и другие простые типы данных Java не являются
объектами.
Java ограничивает вас в нескольких ключевых областях и таким образом
способствует обнаружению ошибок на ранних стадиях разработки программы.
В то же время в ней отсутствуют многие источники ошибок, свойственных
другим языкам программирования (строгая типизация, например).
Большинство используемых сегодня программ УотказываютФ в одной из двух
ситуаций: при выделении памяти, либо при возникновении исключительных
ситуаций. В традиционных средах программирования распределение памяти
является довольно нудным занятием Ч программисту приходится самому
следить за всей используемой в программе памятью, не забывая освобождать
ее по мере того, как потребность в ней отпадает. Зачастую программисты
забывают освобождать захваченную ими память или, что еще хуже,
освобождают ту память, которая все еще используется какой-либо частью
программы. Исключительные ситуации в традиционных средах
программирования часто возникают в таких, например, случаях, как деление
на нуль или попытка открыть несуществующий файл, и их приходится
обрабатывать с помощью неуклюжих и нечитабельных конструкций (кроме
Delphi). Java фактически снимает обе эти проблемы, используя сборщик
мусора для освобождения незанятой памяти и встроенные
объектно-ориентированные средства для обработки исключительных ситуаций.
|