Сайт Ивана Чередниченко | Какой язык программирования предпочесть?

Какой язык программирования предпочесть?

Существует огромное количество языков программирования. Перечислим только некоторые из них: Basic, Pascal, C, C++, C#, Java, Assembler, Perl, PHP, Python. В этой статье я попробую ответить на вопрос: какой язык программирования предпочесть. Сразу скажу о том, что ответом могут довольствоваться только программисты-любители, потому что профессиональные разработчики работают в основном с C\C++ и Java или Ассемблером.

Если вы выбираете первый язык, то берите либо Basic, либо Pascal. Язык Basic немного проще Pascal, так как там легче работать с различными типами данных. Язык Pascal является строго типизированным языком, поэтому у начинающих программистов могут возникнуть некоторые сложности. Если вы остановили свой выбор на языке Basic, то будете работать в среде Microsoft Visual Basic - здесь альтернатив нет. Эта среда имеет довольно неплохой интерфейс, коллекцию компонентов, которые позволяет создавать разнообразные простые приложения за небольшой промежуток времени. Но программы, созданные на Microsoft Visual Basic, будут выполняться медленно и требовать наличие специальной библиотеки с каждой созданной вами программой.

Если вы уже работали с Basic, то советую браться за C\C++ или Pascal. Язык Pascal немного сложнее Basic, но в основном он сохраняет все традиции языка Basic и во многом с ним похож. Самая популярная Pascal-среда программирования - это Borland Delphi. Среда имеет огромное количество инструментов, сотни или даже тысячи других компонентов вы можете загрузить из Интернета. Программа распространяется с обширной системой справки и помощи. Практически все процедуры и функции данной среды описаны в справке с подробными примерами и комментариями.

Некоторые считают, что среда Borland Delphi и язык Pascal уступают по своим возможностям языку C\C++. Это не так! В книге "Искусство программирования на Ассемблере" говорится о том, что первые версии Microsoft Windows были реализованы на языке Pascal, «поэтому в языковой среде Windows используются многие неявные соглашения для типов данных, типичные для Паскаля. Даже вызовы Windows-функций, составляющих основу Win16 API, при последующем переходе на язык C\C++ используют соглашение о связях языка Паскаль и записываются с помощью ключевого слова PASCAL». К сожалению, более современные версии Windows были написаны на C\C++ и Assembler.

Среда Borland Delphi позволяет генерировать как исполняемые (*.exe) файлы, так и динамические библиотеки (*.dll). А среда Microsoft Visual Basic позволяет создавать только исполняемые файлы.

Программы, созданные в среде Borland Delphi, имеют один существенный недостаток - это их размер. Пустое окно, созданное в Borland Delphi 7 занимает более 300 КБ. Хотя существуют методы, которые позволяют уменьшить размер исполняемых файлов, но это уже совсем другая история! Исполняемые файлы Microsoft Visual Basic требуют наличия специальной библиотеки, поэтому их размер также велик, и при этом не существует простого способа уменьшения размера исполняемого файла.

Если вы выбрали профессиональный язык C\C++, тогда знайте, что это один из довольно сложных языков программирования, из-за того, что его используют в профессиональном программировании. Большинство коммерческих программ и игр написаны на C++. Это говорит о его высоком качестве и силе. Существует две наиболее часто используемые среды программирования на языке C++ - это Microsoft Visual C++ и Borland C++ Builder. Если вы стоите перед выбором между этими двумя средами, то автор книги "Искусство программирования на Ассемблере" Надежда Голубь, в 16 главе, говорит следующее: «Проще всего научиться Windows-программированию, используя очень дружелюбную и понятную среду программирования Borland Delphi и ее библиотеку визуальных компонентов (VCL - Visual Component Library). Далее, при желании, можно переключиться на Borland C++ Builder... и, наконец, вершина Windows-программирования для профессионалов - Microsoft Visual C++». Среда Borland Delphi и Borland C++ Builder очень похожи - практически близнецы, только за исключением, что первая использует язык программирования Pascal (в последнее время компания Borland называет этот язык языком Delphi), а вторая - язык C++.

В последнее время набирают обороты Java и C#. Эти языки также используются в основном профессионалами. Их синтаксис похож на синтаксис языка C\C++. Поэтому выбирая эти языки, вы должны быть готовы к преодалению трудностей, которые могут возникнуть в процессе работы с данными языками.

Язык Assembler сложный, запутанный и непонятный. Но в основном программы, написанные на этом языке, занимают малый объем и выполняются очень быстро. Например, текстовой редактор Блокнот на Assembler будет занимать всего 10 - 20 КБ. Это, конечно, преимущество. Но для разработки данного приложения вы должны будете потратить огромное количество времени на написание, тестирование и отладку программы.

Языки Perl, PHP, Python в основном применяются для Web-программирования. С их помощью вы можете создавать различные приложения для Интернета. В основном они сложные и похожи на C\C++. В книге "Освой самостоятельно Perl за 24 часа" (автор Клинтон Пирс) говорится, что Perl «используется для анализа рынка ценных бумаг, в производстве, конструировании, для поддержки пользователей, для контроля качества ... системного программирования, проводки ведомостей, инвентаризации и, конечно же, в Web». далее приведу еще цитату из этой же книги: «На Perl не написан текстовый процессор лишь по тому, что уже существует достаточное количество приличных текстовых процессоров и без Perl, а не потому, что это невозможно. На Perl вполне возможно написать приложение баз данных или электронных таблиц, операционную систему, полнофункциональный web-сервер».

В конце статьи приведу немного статистики, взятой из журнала "Мир ПК":

Год Первое место Второе место Третье место
2005 Borland Delphi 2005 (55%) Microsoft Visual Studio 2005 (35%) Eclipse SDK 3.0 (4%)
2006 Borland Delphi 2006 (46%) Microsoft Visual Studio 2005 (40%) -
2007 CodeGear Delphi 2007 - -
2008 Embarcadero CodeGear RAD Studio 2008 - -

Из этой таблицы видно, что среда разработки Delphi занимает первое место на протяжении многих лет, поэтому я рекомендую начинать учиться программированию на языке Pascal (Delphi). Или же начать творческий путь в мир программирования с помощью языка Basic, используя среду разработки Microsoft Visual Basic.

Работая в среде Delphi (даже в старых версиях), вы сможете создавать разнообразные законченные Windows-приложения. Если вы захотите изучить язык C++, то перед вами будет стоять выбор между Borland C++ Builder и Microsoft Visual C++. Конечно, выбор остается всегда за вами!

Если вы хотите заниматься профессиональным программированием, то можно сразу начать с языка C\C++, но будьте готовы к сложностям: запаситесь терпением, приобретите множество книг по программированию на этом языке. Если же вы хотите быстро создавать качественные приложения, то лучшим вариантом остается среда разработки приложений Delphi.

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

Исходный код на языке Basic

10 REM Программа НОД (A, B)
20 INPUT A, B
30 X = A : Y = B
40 IF X = Y THEN 80
50 IF X > Y THEN 70
60 Y = Y - X : GOTO 40             
70 X = X - Y : GOTO 40
80 PRINT "Наибольший общий делитель ("; A; ","; B; ")="; X
90 GOTO 20  

На языке C\С++ этот код несколько усложниться за счет использования рекурсивной функции.

Исходный код на языке C\C++

#include <stdio.h>
main()
{
  int a,b;
  puts("Введите первое и второе числа");
  scanf("%d%d", &a, &b);
  printf("Наибольший общий делитель; %d\n",
         nod(a, b));
}  // main
nod(a,b)
{
  int c;
  if (b > a) c = nod(b, a);
  else if (b <= 0) c = a;
  else c = nod(b, a % b);
  return (c);
}  // nod

Коды для определения наибольшего общего делителя на языках Basic и C\C++ взяты из книги "Введение в программирование :/ Автор-составитель В. А. Гольденберг. - Учебное пособие для учащихся средн. и стар. школьн. возраста. - М.: ООО "Харвест", 1997. - 528 с. (Библиотека школьника)".

На языке Pascal этот код будет весьма элегантен и понятен (реализован на Borland Delphi 7).

Исходный код на языке Delphi

program nod;

{$APPTYPE CONSOLE}

uses
  SysUtils;

// Возвращает наибольший общий делитель.
function GCD(a, b : Integer) : Integer;
begin
  if ( b > a ) then Result := GCD(b, a)
  else if ( b <= 0 ) then Result := a
  else Result := GCD(b, a mod b);
end;  // function GCD

var
  X, Y, Rez : Integer;
begin
  Write('Введите первое число:>');
  Read(X);
  Write('Введите второе число:>');
  Read(Y);
  Rez := GCD(X, Y);
  Write('Наибольший общий делитель=' + IntToStr(Rez));
  Read(X);
end.  

Следует отметить, что для функции GCD была прототипом взята функция языка C nod. Этим самым доказывается то, что владея одним языком программирования вы сможете понимать и любой другой (хотя бы основные несложные конструкции).

Также вы можете почитать статью с сайта http://www.vbstreets.ru, в которой идет вопрос о выборе языка программирования для научных работников. Помимо этой статьи, рейтинг языков программирования приводится здесь. Также можете прочитать информацию о некоторых языках программирования и системах программирования (Microsoft Visual Studio, Delphi, Kylix) с сайта http://e-skin.hut.ru.

Об отличиях между Visual C++ и C++Builder вы можете почитать на rsdn.ru. Дополнительную информацию о языках программирования читайте на сайте bugtraq.ru. Об ошибках, возникающих при написании исходных кодов читайте статью Клиника плохого кода.

Информацию об использовании ассемблера в Delphi вы можете узнать на сайте asm.h17.ru. Если вас интересуют основные отличия различных версий Delphi, то зайдите на сайт edu.krasu.ru.

Также полезным будет прочитать статью Оптимизация программ.