Я понимаю естественное желание компьютерных журналов быть на острие проблем компьютерного мира. Но этот мир так быстро меняется, так бурлит новостями, что, поспевая за ними, мы не находим времени поговорить о "вечных" проблемах.

      

Одна из таких проблем  -  выбор языка, а точнее, среды программирования. На протяжении долгой программистской жизни мне не раз приходилось заниматься ею и как программисту, и как преподавателю. Написав книжку по Visual C++ (Биллиг В. А., Мусикаев И. Х. "Visual C++ 4. Книга для программистов") и получив множество откликов, я убедился, что эта тема по-прежнему волнует многих. Вот выдержки из двух писем:

      

"Моя совместная работа с французами требует программирования именно на Visual C++, а не на Borland C++ или Delphi, поэтому книгу по Visual C++ я ищу давно. Интересовался в издательствах BHV, "Символ Плюс", "Питер Пресс". Они издали массу переводной литературы по Borland и сейчас переключились на Internet. Visual C++, таким образом, из их поля зрения выпал..."

      

"Я студент и работаю над системой моделирования рассеяния радиоволн от сложных 3D-целей. Почти полгода я выбирал себе инструмент для работы над этим сложным проектом. Опробовав Watcom C++ 10.5, Borland C++ 5.2, Symantec C++, Borland Delphi 2.0 (я также знаю и Pascal), я остановился на Visual C++.

      

Продукт Watcom был отброшен исключительно из-за убогости IDE. Я ничего не успел бы сделать, если бы пользовался им. У Borland C++ изощренный, но слишком запутанный интерфейс, а качество кода хуже, нежели у Visual C, к тому же финансовое положение Borland делает сомнительным выход следующих (после Borland C Builder) версий этого языка, а библиотека OWL показалась мне слишком неудобной. Продукт Symantec был отвергнут примерно по тем же причинам (библиотеку MFC лучше использовать с продуктом ее создателя). Особо стоит упомянуть Delphi. Чрезвычайно удобная IDE и обилие справочной литературы позволяют сказать, что среди непрофессионалов будет господствовать именно эта система".

      

Первое письмо написал Николай Андреевич Корнев, кандидат наук, человек с большим программистским опытом. Второе  -  студент 3-го курса МВТУ им. Н. Э. Баумана Дмитрий Беленко.

      

Какие выводы можно сделать из этих писем? Вывод первый. Эти люди предпочли Visual C++ другим системам программирования, правда, по разным причинам: один следуя условиям контракта, второй по выбору. И обратите внимание, насколько серьезно подошел к проблеме молодой начинающий программист. Честно скажу, я рад, что у нас есть такие студенты,  -  это значит, не все так плохо в "датском королевстве". Вывод второй. Читатели аргументировано поддерживают точку зрения, изложенную в нашей книге, подтверждая, что Visual C++ в большей степени, чем Delphi, подходит профессионалам, разрабатывающим серьезные и долговременные проекты. Вывод третий. Компьютерной литературы  -  изобилие, но найти нужную (да еще и хорошую) книжку совсем не просто. По ходу замечу, что по Visual C++ появилось еще два толстых тома. Один из них  -  книгу Круглинского  -  мы рекомендовали бы иметь всем серьезным программистам на Visual C++.

      

Но вернемся к теме разговора. Юноша, "обдумывающий житье", коллектив программистов, начинающий серьезную разработку, "компьютерная" кафедра, в очередной раз изменяющая учебную программу,  -  всем им приходится решать проблему выбора языка и среды программирования. По крайней мере в первых двух случаях от правильного выбора зависит профессиональная карьера и материальный успех.

      

Сегодня последствия неверного выбора стоят гораздо дороже, чем 10 лет назад, так как изменилась экономическая ситуация и на порядок выросла сложность систем. Программисту высокой квалификации для овладения всеми тонкостями работы с такой громадиной, как тот же Visual C++, требуется около года упорной работы. Прошла пора универсалов от программирования, наступает время узкой специализации.

      

Но какова реальная картина сегодня? Что выбирают для своих разработок профессионалы и те, кто хотят ими стать? Вряд ли кто-либо обладает достаточно полной статистикой по этому вопросу. Могу лишь поделиться моими собственными наблюдениями  -  при начальном обучении программированию в вузах преобладает Паскаль, большинство коллективов для собственных разработок выбирают Foxpro или Delphi, молодежь набросилась на Яву (Java). Общее ощущение  -  мы уходим с магистрального пути развития и пытаемся идти собственным путем. В порядке эксперимента я решил через Internet поискать работу для программиста в США. Требуются программисты со знанием Visual Basic и С++, требуются программисты со знанием Кобола (жив курилка!), но заявки на Delphi-программиста я нашел только на сервере Delphi.

      

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

      

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

      

Важной частью офисной среды являются средства для работы с базами данных любых форматов на основе ODBC. Профессионально овладев офисным программированием, можно на этом уровне и остановиться, заработки гарантированы, так как круг задач неисчерпаем.

      

Следующий уровень  -  это уровень больших проектов. Здесь необходимы более серьезные средства  -  язык типа Visual C++, СУБД, например Oracle, средства поддержки совместной работы и, конечно, работа в сети.

       

Если говорить о большом проекте, то выбор среды программирования для него сложен и ответственен. Слишком много параметров нужно принимать во внимание, например эффективность кода и эффективность использования ресурсов компьютера. Кроме того, следует учитывать возможности и удобство работы с каркасом приложений  -  библиотекой классов, лежащей в основе построения приложений. Примерами каркасов приложений служат MFC  -  библиотека Visual C++ и OWL  -  библиотека Delphi. Еще один параметр  -  средства поддержки больших проектов (DLL, ActiveX, DAO и т. д.). Как видите, поводов для дебатов сколько угодно. Для меня, когда я делал свой выбор в пользу Visual C++, решающими все-таки были два аргумента  -  открытость системы и гарантированное ее развитие в обозримом будущем. Visual C++, пожалуй, открыта для профессионалов, как никакая другая система. Чем выше ваш профессиональный уровень, тем больше вы можете повлиять на код, создаваемый системой. Это принципиальное отличие Visual C++ от Delphi . Что же касается перспектив, то на ближайшие 5 - 7 лет для Visual C++ они гарантированы.

      

В заключение мне хотелось бы обратиться к истории  -  ведь проблема выбора языков не нова и бурные дебаты всегда имели место. В начале 60-х годов было три главных языка  -  Алгол, Фортран и Кобол. В Союзе и Европе, пожалуй, первый был наиболее популярным. В Штатах и у физиков всего мира был более популярен Фортран. Этот язык многие уважаемые в программистском мире люди справедливо критиковали за ненадежность. Все знали о классической ошибке Фортран-программиста, поставившего точку вместо запятой в своей программе. Он написал DO 3 I = 1.3 вместо DO 3 I = 1,3. Фортран не нашел синтаксической ошибки и проинтерпретировал эту запись, как оператор присваивания. Эта ошибка стоила миллионы долларов, так как находилась в программе, управлявшей полетом ракеты, кажется, к Марсу.

      

Фортрану досталось поделом за ненадежность, ведь в Алголе эта ошибка была бы немедленно обнаружена. Тем не менее Алгол умер, а Фортран продолжает жить, по крайней мере в среде физиков, и в прошлом году праздновал свой юбилей  -  40 лет, немалый срок для языка программирования. И сегодня в Development Studio включен Фортран Power Station. Продолжает жить в своей экономической нише и Кобол. Программисты, работающие на нем, по-прежнему требуются в Штатах.

      

Delphi я бы назвал прямым потомком языка Алгол, а Фортран  -  дедушкой Си. И если история чему-то учит, то скорее погибнет более рафинированный Delphi, чем прагматичный Visual C++.

      

Думайте, господа. Делайте свой выбор осознанно. Для всех, кто готов высказать свою точку зрения по этой проблеме, мой адрес: bill@tversu.ac.ru.

      

Владимир Биллиг

      

От правильного выбора языка и среды программирования могут зависеть профессиональная карьера и материальный успех

      

Версия для печати