Выбор среды разработки

Технология программирования во многом определяется языком программирования, на котором пишутся программы. В языке могут быть заложены средства, влияющие на технологичность и архитектуру разрабатываемой системы (например, объектно-ориентированность, модульность и т.п.). Обычно выбирают ту модель разработки и те языки программирования, которые хорошо знают члены коллектива разработчиков. Выбирать новую технологию, которую предстоит осваивать в процессе разработки – риск провалить проект.

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

Любая среда позволяет производить настройку и адаптацию под те или иные требования: изменение интерфейса, режимов работы, назначения горячих клавиш, установка дополнительных средств («плагинов») и т.п. В арсенале каждого опытного программиста есть свои приемы разработки, собственные вспомогательные средства. Он имеет собственные вкусы и предпочтения. Используя настройки, программист может сделать работу в среде более удобной для себя и, тем самым, более эффективной. Он как бы проецирует свою модель разработки на модель среды. Это особенно важно, когда среди инструментов есть программы с отличающимся интерфейсом (например, разное назначение горячих клавиш).

Создатели инструментальных средств закладывают, как правило, избыточный набор возможностей и программисты практически никогда не используют инструментальное средство на все 100%.

Обзор сред разработки

Рассмотрим следующие среды разработки: JDK (Java Development Kit), Блэкбокс, MS Visual Studio, Eclipse. Кратко их можно охарактеризовать так:

·JDK – простая, многоплатформенная, широко распространенная;

·Блэкбокс – простая, удобная для обучения;

·Microsoft Visual Studio – сложная, многоязыковая, широко распространенная;

·Eclipse – многоплатформенная, многоязыковая, перспективная;

MS Visual Studio с языком C# начинает использоваться в учебном процессе, вытесняя C и С++. Система BlackBox не так распространена, но имеет целый ряд технологических новаций, с положительной стороны отличающих ее от более распространенных систем.

JDK

JDK имеет простую модель среды разработки. Как таковой собственной IDE нет. Используется любой текстовый редактор. В состав JDK входят два основных исполняемых файла: компилятор javac.exe и исполнитель оттраслированных классов java.exe (собственно Java-машина). Исходные файлы имеют расширение java, оттранслированные – class. На уровне языка определяются иерархии пакетов, каждый из которых включает один или несколько классов. Иерархия пакетов естественным образом при трансляции отражается в файловую структуру. При трансляции файла с объявленным пакетом package s1.p1 создается подкаталог s1, в нем подкаталог p1, в который размещаются файлы с кодами классов. Каждому классу соответствует один файл, имя которого совпадает с именем класса.

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

Наборы классов одного или нескольких пакетов могут объединяться и храниться в одном архиве файлов с расширением jar. Эти файлы также можно считать компонентами среды (подсистемами). При компиляции и запуске программ пути к этим подсистемам указываются в качестве параметров. Несколько приложений могут использовать общие подсистемы. В этом случае для запуска компилятора и программ лучше использовать bat-файлы, в которых указывается разный набор подсистем.

На базе JDK функционирую более развитые платформы, такие как IDEA, NetBeans, Eclipse. В процессе совершенствования к среде добавлялись все новые компоненты и в настоящее время среда имеет версию 1.6.

Примечание. Усложненность сред разработки может отрицательно сказаться на усвоении основ программирования, так как внимание учащегося сосредотачивается не на языке программирования, а на собственно среде и много времени уходит на ее освоение.