Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Классификация языков программирования. Критерии выбора среды и языка разработки программ (Критерии выбора среды и языка разработки программ)

Содержание:

Введение

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

В XXI веке тема программирования актуальна как никогда, так как в наш век роль ЭВМ как в повседневной, так и в профессиональной жизни человека возрастает с каждым днем. Работодатели ищут грамотных, продвинутых пользователей, а профессия программиста на сегодняшний день – одна из самых востребованных. Следовательно, каждый человек должен иметь представление о том, каким образом создаются компьютерные программы, которые он использует в повседневной жизни.

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

Для достижения поставленной цели были выделены следующие задачи:

- найти и изучить общую информацию о языках программирования;

- исследовать эволюцию языков программирования, составить их классификации;

- рассмотреть наиболее известные языки программирования, их применение и возможности.

Глава 1 Классификация языков программирования

1.1 История развития языков программирования

Язык программирования – формальная знаковая система, которая предназначена для написания кодов компьютерных программ. Языком программирования определяется набор лексических, синтаксических и семантических правил, которые описывают внешний вид программы и действия, которые выполняет компьютер под её управлением.

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

Язык программирования предназначен для написания компьютерных программ, которые представляют собой набор правил, позволяющих компьютеру выполнить тот или иной вычислительный процесс, организовать управление различными объектами, и т.п. [3].

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

В период 1960-х–1970-х гг. были разработаны основные парадигмы языков программирования, используемые в настоящее время, хотя во многих аспектах этот процесс представлял собой улучшение идей и концепций, заложенных еще в первых языках третьего поколения [1]:

·язык APL оказал влияние на функциональное программирование и стал первым языком, поддерживавшим обработку массивов;

· язык ПЛ/1 (NPL) был разработан в 1960-х гг. как объединение лучших черт Фортрана и Кобола;

· язык Симула, появившийся примерно в это же время, впервые включал поддержку объектно-ориентированного программирования; ·в середине 1970-х гг. группа специалистов представила язык Smalltalk, который был уже всецело объектно-ориентированным;

·в период с 1969 по 1973 гг. велась разработка языка Си, популярного и по сей день, и ставшего основой для множества последующих языков, например, столь популярных, как С++ и Java;

·в 1972 г. был создан Пролог – наиболее известный (хотя и не первый, далеко не единственный) язык логического программирования;

· в 1973 г. в языке ML была реализована расширенная система полиморфной типизации, положившая начало типизированным языкам функционального программирования.

Каждый из этих языков породил по семейству потомков, и большинство современных языков программирования, в конечном счете, основано на одном из них. Кроме того, в 1960–1970-х гг. активно велись споры о необходимости поддержки структурного программирования в тех или иных языках [2]. Голландский специалист Э. Дейкстра выступал в печати с предложениями о полном отказе от использования инструкций GOTO во всех высокоуровневых языках. Развивались также приемы, направленные на сокращение объема программ и повышение продуктивности работы программиста и пользователя.

Для работы первых программ нужно было устанавливать ключевые переключатели на передней панели вычислительного устройства. Естественно, с помощью такого способа можно было составлять только небольшие программы. Одна из первых попыток создания полноценного языка программирования была предпринята немецким ученым Конрадом Цузе, который за период 1943–1945 гг. разработал язык Plankalkul. Plankalkul был очень перспективным языком, который фактически являлся языком высокого уровня, однако во времена войны он не получил должной практической реализации, а его описание было опубликовано только в 1972 г.

Машинный код. Ассемблер. История языков программирования начинается с разработки машинного языка: языка логического нуля и единицы. Запись с помощью этого языка была очень сложной и утомительной.

Для облегчения работы программистов в конце 1940-х гг. был разработан язык ассемблер. Вместо двоичных цифр, которые обозначали какую-либо команду, записывались короткие слова или аббревиатуры. Программисты считают ассемблер языком программирования низкого уровня, поскольку он близок к языку самого низкого уровня – машинному. Программы, написанные на ассемблере, напрямую зависят от характеристик конкретного процессора, поэтому его называют машинно-ориентированным языком.

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

Алгоритмические языки. В ходе развития программирования возникла необходимость разработки новых, более совершенных языков программирования, которые бы были схожи с естественными языками и позволяли бы не работать напрямую с машинными командами. Их стали называть языками высокого уровня. Языки высокого уровня ориентированы на описание алгоритмов, поэтому их называют алгоритмическими языками. Преимуществом таких языков является большая наглядность и независимость от конкретного компьютера.

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

– Компиляция (Compilation) – метод выполнения программ, при котором инструкции программы выполняются только том случае, когда собран перевод всего текста программы.

– Интерпретация (Interpretation) – метод выполнения программ, при котором инструкции программы переводятся и сразу выполняются.

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

Структурное программирование. В 1954 г. была начата разработка первого компилятора языка высокого уровня. Через два года появился язык Fortran (FORmula TRANslator – «переводчик формул»). Язык содержал средства, которые значительно упрощали разработку, однако программирование на Fortran не было простой задачей: если в коротких программах он был легко понимаемым, то, когда дело касалось больших программ язык, становился нечитаемым. Несмотря на это, язык был довольно успешным и было выпущено много его версий.

Проблемы были решены после разработки языков структурного программирования: в них появилась возможность создания программных блоков, независимых подпрограмм, поддержки рекурсии и локальных переменных, отсутствие оператора безусловного перехода (GoTo). Таким образом, такие языки стали поддерживать возможность разбиения программы на составляющие элементы.

На протяжении десяти лет было создано достаточно большое число новых языков: Algol (1958 г.) предназначался для записи алгоритмов, которые составлены из обособленных блоков; Cobol (1959 г.) использовался для массовой обработки данных в сферах управления и бизнеса; Basic (1965 г.) позволял писать простые программы, использовался для обучения основам программирования.

Совсем немногие из созданных языков были структурированными. Также были созданы специализированные языки: Lisp, Prolog, Forth и т.д. Особого внимания заслуживает язык Pascal (1970 г.), названный в честь ученого Блеза Паскаля, который использовался как для обучения, так и для решения задач различной сложности. Программы на Pascal легко читаемы, что позволяет быстро находить и исправлять ошибки, также он был хорошо структурированным. Все вышеперечисленное привело к его широкой распространенности, и даже в данное время его активно используют в учебных заведениях.

В 1972 г. появился язык С, что стало успешным шагом в программировании. Язык сочетал в себе преимущества многих языков и обладал большим числом разных нововведений. Широкие возможности, структурированность и относительная простота его изучения позволили языку быстро стать признанным и завоевать место одного из основных языков.

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

Объектно-ориентированное программирование (ООП). С 1970-х гг. были заложены основы объектно-ориентированного программирования (ООП), которое возникло как последствие развития процедурного программирования, при котором данные и подпрограммы их обработки формально не были связаны.

ООП включает следующие основные понятия:

– Класс – модель ещё не существующего объекта. Фактически он является схемой объекта, описывая его устройство.

– Объект – экземпляр класса, сущность в адресном пространстве вычислительной системы, которая появляется при создании экземпляра класса.

– Абстракция – присвоение объекту характеристик, четко определяющих его границы, которые отличают его от всех других объектов. Основной идеей является отделение способа использования составных объектов данных от деталей их реализации в виде более простых объектов.

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

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

– Полиморфизм – свойство системы использовать объекты с одинаковым интерфейсом без получения информации о его типе и внутренней структуре.

В 1967 г. появился язык Симула – первый язык программирования, в котором были предложены принципы объектной ориентированности. Он поддерживал работу с объектами, классами, виртуальными методами и т.д., но все эти возможности не получили достойной оценки современников. Тем не менее, большинство этих концепций были заложены Аланом Кэем и Дэном Ингаллсом в язык Smalltalk, который стал первым широко распространённым объектно-ориентированным языком программирования.

В настоящее время число прикладных языков программирования, которые реализуют объектно-ориентированную парадигму, является наибольшим по отношению к другим парадигмам. Основные языки, которые поддерживают концепцию ООП: C++, C#, Object Pascal (Delphi), Java и т.д.

С развитием технологии WWW (World Wide Web) Интернет стал очень популярным. Было создано большое количество вспомогательных языков для обеспечения работы с Интернетом, оформления сайтов, доступа к ресурсам и т.д.

Становится распространенным интерпретируемый язык Perl, который отличается своей простотой и легкой переносимостью на другие платформы. Он предназначен для написания приложений и CGI-скриптов различной сложности. Также широко используется и играет значительную роль в развитии и функционировании Интернета язык Java.

В 1970-х гг. появился язык SQL – язык структурированных запросов, который был создан для доступа и работы с базами данных. Для написания кодов страниц веб-сайтов разработан язык разметки гипертекстов HTML, который содержит команды для разметки и оформления текста и графики.

Для придания большей привлекательности и функциональности сайта используются: Скрипты JavaScript, которые выполняются в веб-браузере пользователя и используются в основном для улучшения внешнего вида сайта и решения мелких задач.

Скрипты PHP, которые выполняются на стороне сервера и посылают в браузер пользователя уже обработанную информацию. Применяются для создания динамических HTML-страниц, гостевых книг, ведения форумов и опросов.

CGI-сценарии, которые написаны преимущественно на Perl, C/C++, выполняются на стороне сервера и зависят от конкретных действий пользователя. Применяются, как и сценарии PHP, для создания динамических HTML-страниц, гостевых книг, ведения форумов и опросов. 

1.2 Классификация языков программирования

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

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

– Стандарт языка – набор спецификаций, которые определяют его синтаксис и семантику; стандарт языка может исторически развиваться.

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

Стандартизация языков программирования.

Для большинства широко распространённых языков программирования разработаны международные стандарты. Специальными организациями проводится регулярное обновление и публикация спецификаций и формальных определений для соответствующего языка. Подобные комитеты продолжают разработку и модернизацию языков программирования и решают вопросы о расширении или поддержке уже существующих или новых языковых конструкций.

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

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

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

Интерпретируемый язык. Интерпретатором непосредственно выполняется (интерпретируется) исходный текст без предварительного перевода. При этом программа запоминается на исходном языке и не может быть запущена без интерпретатора. С этой позиции процессор компьютера можно назвать интерпретатором машинного кода.

Разделение на компилируемые и интерпретируемые языки довольно условно. Так, например, для языка Pascal, который традиционно считается компилируемым языком, можно написать интерпретатор. Кроме того, большинством современных «чистых» интерпретаторов не исполняются конструкции языка непосредственно, а компилируются в некоторое высокоуровневое промежуточное представление (например, с разыменованием переменных и раскрытием макросов).

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

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

Вместе с тем, интерпретируемые программы выполняются гораздо медленнее, чем компилируемые, к тому же, они не могут быть выполнены без программы-интерпретатора.

Существуют языки (такие как Java и C#), которые находятся между компилируемыми и интерпретируемыми. Т.е. программа компилируется не в машинный язык, а в машинно-независимый код низкого уровня, который называется байт-кодом. Далее байт-код выполняет виртуальная машина. Виртуальная машина Java (Java Virtual Machine) выполняет байт-код для языка Java, а Common Language Runtime – для языка C#.

Для выполнения байт-кода обычно используется интерпретатор, хотя отдельные его части для ускорения работы программы могут транслироваться в машинный код непосредственно при выполнении программы по технологии компиляции «на лету» (Just-in-time compilation, JIT).

При таком подходе удобно использовать плюсы и интерпретаторов, и компиляторов. Существуют языки, которые имеют интерпретатор и компилятор (например, Форт).

Современные языки программирования поддерживают использование ASCII, т. е. доступность всех графических символов ASCII является необходимым и достаточным условием для записи любых конструкций языка. Из управляющих символов ASCII допускается только использование возврата каретки CR, перевода строки LF и горизонтальной табуляции HT (иногда также вертикальной табуляции VT и перехода к следующей странице FF).

В ранних языках, которые возникли в эпоху 6-битных символов, использовался более ограниченный набор. Например, алфавит Фортрана включает 49 символов (включая пробел): 26 символов букв латинского алфавита, цифры от 0 до 9 и знаки «точка», «запятая», =, +, –, *, /, (, ), $, ', :. Исключительным отличием характеризуется язык APL, в котором можно использовать большое количество специальных символов. , ', :. Исключительным отличием характеризуется язык APL, в котором можно использовать большое количество специальных символов.

Возможно использование символов за пределами ASCII (например, символов KOI8-R или символов Unicode), только это зависит от реализации: иногда такие символы разрешаются только в комментариях и символьных/строковых константах, а иногда и в идентификаторах. В СССР существовали языки, в которых все ключевые слова записывались русскими буквами, но большой популярности подобные языки не обрели (за исключением встроенного языка программирования 1С:Предприятие).

Расширение набора символов, которые используются в языке программирования, не поддерживается, т. к. многие проекты по созданию программного обеспечения являются международными. Неудобно было бы работать с кодом, в котором имена одних переменных могут быть записаны русскими буквами, других – арабскими, а третьих – китайскими иероглифами. Вместе с тем, языки программирования нового поколения (например, Delphi, C#, Java) для работы с текстовыми данными поддерживают Unicode.

Классификация языков программирования по категориям связана с методами, которые используются при написании программ (рис. 1).

Классификация языков программирования. Автор24 — <a href=

Рисунок 1. Классификация языков программирования.

Процедурные языки Процедурные языки являются языками высокого уровня, в которых используется метод разбиения программ на отдельные связанные между собой модули – подпрограммы (процедуры и функции). Компоненты языка состоят из последовательности операторов, которые используют библиотечные процедуры и функции. Первым процедурным языком был Fortran, затем появился Cobol, Algol, Pascal, C, Ada.

Языки программирования низкого уровня.

Программирование на первых компьютерах происходило с помощью двоичных машинных кодов. Такое программирование довольно трудоемкое и тяжелое. Для упрощения процесса программирования разрабатывались языки программирования низкого уровня, которые позволяли задавать машинные команды в понятном для человека виде. Чтобы преобразовать их в двоичный код создавались специальные программы – трансляторы.

К языкам низкого уровня относится: программирование в машинных кодах; ассемблер; макроассемблер.

Языки низкого уровня ориентировались на определенный тип процессора и учитывали его особенности, поэтому для того, чтобы перенести программу, написанную на ассемблере, на другую аппаратную платформу её нужно было почти полностью переписать. Различия присутствовали также и в синтаксисе программ под разные компиляторы.

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

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

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

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

Наиболее распространенные универсальные языки C#, C++, Basic, Pascal (Delphi) используются для разработки Windows-приложений. Большой вклад в программирование на начальных этапах внесли языки Fortran, Cobol, Algol, C и др. Языки программирования для разработки Интернет-приложений скорее относятся к универсальным языкам. К ним относятся современные версии C#, Basic, J#.

Проблемно-ориентированными языками, которые используются на Интернет-серверах и клиентских Интернет-приложениях, являются PHP, Perl, JavaScript, VBScript.

Объектно-ориентированные языки стали дальнейшим уровнем развития процедурных языков, основной концепцией которых есть совокупность программных объектов. Написание программы на языке представляется в виде последовательности создания экземпляров объектов и использование их методов. К ним относятся из первых языков Simula и SmallTalk, далее C++, Java.

В декларативном программировании задается спецификация решения задачи, то есть дается описание того, что представляет собой проблема и какой ожидается результат. Программы, созданные с помощью декларативного языка, не содержат переменные и операторы присваивания. К декларативным языкам можно отнести SQL и HTML. К подвидам декларативного программирования относится функциональное и логическое программирование.

Функциональные языки являются языками искусственного интеллекта. Программа, написанная на функциональном языке, состоит из последовательности функций и выражений, которые необходимо вычислить. Основной структурой данных является связный список. Функциональное программирование принципиально отличается от процедурного. Основными функциональными языками являются Lisp, Miranda, Haskel.

Языки, ориентированные на решение задач без описания алгоритмов, языки искусственного интеллекта. Представителем логического программирования является Prolog, которым написано большинство экспертных систем.

Языки относятся к объектно-ориентированным языкам, используются для написания программ, которые исполняются в определенной программной среде. Тексты программ, написанные на языке сценариев, можно включать в тело Html-документа. Первыми скриптами были Perl и Python, которые изначально были разработаны для операционной системы Unix, а уже в дальнейшем появились версии языков для операционных систем Windows и Macintosh. Для написания программ на языке сценариев необходимо знание процедур и функций системных библиотек.

Языки ориентированы на работу с одним определенным типом данных. Например, APL работает с матрицами и векторами, Snobol обрабатывает строки, SETL выполняет операции над множествами. Особое развитие получили языки для работы с базами данных: 3GL, PL/SQL, FoxPro. Замечание 3 Широкими возможностями обработки документов текстового процессора Microsoft Word, электронных таблиц MS Excel, баз данных MS Access и даже программ подготовки слайдовых презентаций MS PowerPoint обладает встроенный язык системы MS Office – Visual Basic for Application (VBA).

Глава 2 Критерии выбора среды и языка разработки программ

2.1 Наиболее известные языки программирования

Java широко известна как новейший объектно-ориентированный язык, легкий в изучении и позволяющий создавать программы, которые могут исполняться на любой платформе без каких-либо доработок. Известно, что Java ориентирована на Internet, и самое распространенное ее применение - небольшие программы, апплеты, которые запускаются в браузере и являются частью HTML -страниц.

В различных Internet – источниках можно найти информацию о том, что язык Java, раннее имевший название OaK («дуб»), начал свою историю в 1990 году со скандальной истории внутри корпорации Sun. Николай Вязовик в своей лекции «Программирования на Java» [8], приводит довольно интересную историю.

Если верить ему, то, действительно, события начинают разворачиваться в декабре 1990 года, когда бурное развитие WWW (WorldWideWeb - «всемирная паутина») никто не мог еще даже предсказать. Тогда компьютерная индустрия была поглощена взлетом персональных компьютеров. К сожалению, фирма Sun Microsystems, занимающая значительную долю рынка серверов и высокопроизводительных станций, по мнению многих сотрудников и независимых экспертов, не могла предложить ничего интересного для обычных пользователей «персоналок» - для них компьютеры от Sun представлялись «слишком сложными, очень некрасивыми и чересчур «тупыми» устройствами».

Поэтому Скотт МакНили, член совета директоров, президент и CEO (исполнительный директор) корпорации Sun, не был удивлен, когда 25-летний хорошо зарекомендовавший себя программист Патрик Нотон, проработав всего 3 года, объявил о своем желании перейти в компанию NeXT. Они были друзьями, и Патрик объяснил свое решение просто и коротко: «Они все делают правильно». Скотт задумался на секунду и произнес историческую фразу. Он попросил Патрика перед уходом описать, что, по его мнению, в Sun делается неверно. Надо было не просто рассказать о проблеме, но предложить решение, не оглядываясь на существующие правила и традиции, как будто в его распоряжении имеются неограниченные ресурсы и возможности, язык программирование память компьютер.

Патрик Нотон выполнил просьбу. Он безжалостно раскритиковал новую программную архитектуру NeWS, над которой фирма работала в то время, а также высоко оценил только что объявленную операционную систему NeXTstep. Нотон предложил привлечь профессиональных художников-дизайнеров, чтобы сделать пользовательские интерфейсы Sun более привлекательными; выбрать одно средство разработки и сконцентрировать усилия на одной оконной технологии, а не на нескольких сразу; наконец, уволить почти всех сотрудников из Window Systems Group (если выполнить предыдущие условия, они будут просто не нужны).

Конечно, Нотон был уверен, что его письмо просто проигнорируют, но все жеотложил свой переход в NeXT в ожидании какой-нибудь ответной реакции. Однакоона превзошла все ожидания.

МакНили разослал письмо Нотона всему управляющему составу корпорации, а те переслали его своим ведущим специалистам. Откликнулись буквально все, и, по общему мнению, Нотон описал то, о чем все думали, но боялись высказать. Решающей оказалась поддержка Билла Джоя и Джеймса Гослинга. Билл Джой - один из основателей и вице-президент Sun, а также участник проекта по созданию операционной системы UNIX в университете Беркли. Джеймс Гослинг пришел в Sun в 1984 году (до этого он работал в исследовательской лаборатории IBM) и был ведущим разработчиком, а также автором первой реализации текстового редактора EMACS на C. Эти люди имели огромный авторитет в корпорации.

Чтобы не останавливаться на достигнутом, Нотон решил предложить какой-то совершенно новый проект. Он объединился с группой технических специалистов, и они просидели до 4.30 утра, обсуждая базовые концепции такого проекта. Их получилось всего три: главное - потребитель, и все строится исключительно в соответствии с его интересами; небольшая команда должна спроектировать небольшую аппаратно-программную платформу; эту платформу нужно воплотить в устройстве, предназначенном для персонального пользования, удобном и простом в обращении - т.е. создать компьютер для обычных людей. Этих идей оказалось достаточно, чтобы Джон Гейдж, руководитель научных исследований Sun, смог организовать презентацию для высшего руководства корпорации. Нотон изложил условия, которые он считал необходимыми для успешного развития этого предприятия: команда должна расположиться вне офиса Sun, чтобы не испытывать никакого сопротивления революционным идеям; проект будет секретным для всех, кроме высшего руководства Sun; аппаратная и программная платформы могут быть несовместимы с продуктами Sun; на первый год группе необходим миллион долларов.

5 декабря 1990 года, в день, когда Нотон должен был перейти в компанию NeXT, Sun сделала ему встречное предложение. Руководство согласилось со всеми его условиями. Поставленная задача - «создать что-нибудь необычайное». 1 февраля 1991 года Патрик Нотон, Джеймс Гослинг и Майк Шеридан вплотную приступили к реализации проекта, который получил название Green.

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

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

Сначала Гослинг попытался модифицировать С++, чтобы создать язык для написания программ, минимально ориентированных на конкретные платформы. Однако очень скоро стало понятно, что это практически невозможно. Поэтому в июне 1991 года Гослинг начинает разработку замены C++. Создавая новый каталог и раздумывая, как его назвать, он выглянул в окно, и взгляд его остановился на растущем под ним дереве. Так язык получил свое первое название - OaK(дуб). Спустя несколько лет, после проведения маркетинговых исследований, имя сменили на Java.

Само устройство, по замыслу создателей, должно было быть размером с обычный пульт дистанционного управления, работать от батареек и иметь привлекательный графический интерфейс. Чтобы построить этот не имеющий аналогов прибор, разработчики применили «технологию молотка». Они находили какой-нибудь аппарат, в котором были подходящие детали или микросхемы, разбивали его молотком и таким образом добывали необходимые части. Так были получены основной жидкокристаллический экран, сенсорный экран и миниатюрные встроенные колонки. Центральный процессор и материнская плата были специально разработаны на основе высокопроизводительной рабочей станции Sun. Было придумано и оригинальное название - *7, или Star7. Для придания интерфейс у большей привлекательности разработчики создали забавного персонажа по имени Дьюк (Duke), который всегда был готов помочь пользователю выполнить его задачу.

4 сентября 1992 года Star7 был завершен и продемонстрирован МакНили. Это было небольшое устройство с 5» цветным (16 бит) сенсорным экраном, без единой кнопки. Чтобы включить его, надо было просто дотронуться до экрана. Весь интерфейс был построен как мультик. Дьюк перемещался по комнатам нарисованного дома, а чтобы управлять им, надо было просто водить по экрану пальцем - никаких специальных средств управления. Можно было взять виртуальную телепрограмму с нарисованного дивана, выбрать передачу и «перетащить» ее на изображение видеомагнитофона, чтобы запрограммировать его на запись.

Результат превзошел все ожидания. Крупные корпорации-производители заинтересовались новой разработкой, и начались переговоры.

Последующие годы были посвящены разработке, усовершенствованию, и подготовке OaK для выхода в свет. Кроме того, в процессе ОаК был переименован маркетологами в Java.

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

Во-первых, язык программирования Java обладает много – и кроссплатформенностью. Это означает, что программное обеспечение работает более чем на одной аппаратной основе и/или операционной системе. Во-вторых, Java объектно-ориентирована, т.е. в ней основными концепциями являются понятия объектов и классов. При этом класс - это тип, описывающий устройство объектов - экземпляров. Класс можно сравнить с чертежом, согласно которому создаются объекты. Обычно классы разрабатывают таким образом, чтобы их объекты соответствовали объектам предметной области. В-третьих, в Java применяется строгая типизация. Это означает, что любая переменная и любое выражение имеет тип, известный уже на момент компиляции. Такой подход применен для упрощения выявления проблем, ведь компилятор сразу сообщает об ошибках и указывает их расположение в коде. Поиск же исключительных ситуаций во время исполнения программы потребует сложного тестирования, при этом причина дефекта может обнаружиться совсем в другом классе. Таким образом, нужно прикладывать дополнительные усилия при написании кода, зато существенно повышается его надежность. Кроме всего вышеперечисленного, Java легка в освоении и разработке, а так же ориентирована на Internet-задачи, сетевые распределенные приложения, что является ощутимым преимуществом для этого языка программирования. Согласно сведениям сайта «Школа программирования IT-centre» [9], кроме персональных компьютеров и серверов, Java активно используется в мобильных телефонах, смарт-картах, а также телеприставках, веб-камерах, системах навигации, принтерах и медицинском оборудовании.

Язык программирования С++

А. Л. Фридман в лекции «Язык программирования С++» [10] дает следующее определение языку программирования C++: это универсальный язык программирования, который позволяет разрабатывать программы в соответствии с разными парадигмами: процедурным программированием, объектно-ориентированным, параметрическим. Согласно данным, представленным в лекции А. Л. Фридмана [10], разработчиком языка программирования С++ был Бьерн Страуструп. В своей работе он опирался на опыт создателей языков Симула, Модула 2, абстрактных типов данных. Основные работы велись в исследовательском центре компании Bell Labs.

Сам создатель языка Бьерн Страуструп в своей книге «Язык программирования С++» [11, с. 14] пишет про то, что С++, безусловно, многим обязан языку С, который сохраняется как его подмножество. Сохранены все свойственные С средства низкого уровня, предназначенные для решения самых насущных задач системного программирования. Название С++ (си плюс плюс) , было придумано Риком Маскитти летом 1983 г. Это название отражает эволюционный характер изменений языка С. Обозначение ++ относится к операции наращивания С.

Бьерн Страуструп в книге [11, с. 15] утверждает, что изначально С++ был задуман для того, чтобы ему и его друзьям не надо было программировать на ассемблере, С или других современных языках высокого уровня. Основным его предназначением было упростить и сделать более приятным процесс программирования для отдельного программиста. До недавнего времени не было плана разработки С++ на бумаге. Проектирование, реализация и документирование шли параллельно. Никогда не существовало «проекта С++» или «Комитета по разработке С++». Поэтому язык развивался и продолжает развиваться так, чтобы преодолеть все проблемы, с которыми столкнулись пользователи. А. Л. Фридман в лекции «Язык программирования С++» [10] пишет, что Си++ как преемник языка Си широко используется в системном программировании. На нем можно писать высокоэффективные программы, в том числе операционные системы, драйверы и т.п. Язык Си++ – один из основных языков разработки трансляторов. Поскольку системное программное обеспечение часто бывает написано на языке Си или Си++, то и программные интерфейсы к подсистемам ОС тоже часто пишут на Си++.

Распределенные системы, функционирующие на разных компьютерах, также разрабатываются на языке Си++. Этому способствует то, что у широко распространенных компонентных моделей CORBA и COM есть удобные интерфейсы на языке Си++.

Обработка сложных структур данных – текста, бизнес-информации, Internet-страниц и т.п. – одна из наиболее распространенных возможностей применения языка. В прикладном программировании, наверное, проще назвать те области, где язык Си++ применяется мало.

Разработка графического пользовательского интерфейса на языке Си++ выполняется, в основном, тогда, когда необходимо разрабатывать сложные, нестандартные интерфейсы. Простые программы чаще пишутся на языках Visual Basic, Java и т.п.

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

2.2 Обоснование выбора языка программирования и критерии

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

Во-первых, это заставит мозг работать, а это всегда хорошо. Даже президент США говорит о пользе изучения программирования.

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

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

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

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

Сперва нужно определиться с целями. Например, на какой платформе (в какой среде) хочется работать: веб, мобильные устройства, игры и 3Д-графика или крупные корпорации.

В веб-разработке нужно выбирать из нескольких сфер ответственности: front-end, back-end, full-stack. Front-end разработчики отвечают за скорость загрузки сайта и правильную работу кода, back-end - написание серверного кода, а full-stack специалисты могут в одиночку выполнить все требования заказчика. Full-stack разработчики сегодня являются самыми востребованными на рынке труда.

Три кита Front-end разработчика – это JavaScript, HTML и CSS. Кроме того, нужно ориентироваться в последних интернет-тенденциях и уметь их применять в повседневной работе. РНР – это базовые знания для back-end специалистов. Это не единственный инструмент, но основа всей back-end разработки. В качестве второго языка нужно учить Ruby или Python. Еще пригодится опыт работы с базами данных, азы JavaScript и SQL. Кроме самих языков программирования нужно изучить все прилагающиеся надстройки.

Для разработки мобильных приложений используются JavaScript для Андроид и Objective-C для iOS. Полезно посетить официальные ресурсы для разработчиков, а в случае работы с iOS еще и познакомиться с интерфейсом и функционалом Xcode – бесплатной среды для создания приложений. Для игр и 3Д-анимации нужен С++.

Тем, кто в перспективе хочет устроиться в одну из высокотехнологичных корпораций и больше не беспокоиться о благополучии завтрашнего дня, хорошо выполняя свои обязанности, нужно исходить из выбора этой самой корпорации. Windows работают с C#, Google и Фейсбук – с Python, а Apple – это Objective-C.

Выбор языка программирования должен основываться на следующих факторах:

– Востребованность на рынке труда.

– Легкость изучения.

– Долгосрочные перспективы.

– Какие проекты можно разработать на этом языке (выбор языка и среды программирования).

Если с последним пунктом – платформы и подходящие языки программирования кратко перечислены выше – все более или менее понятно, то как быть с остальными пунктами? Indeed.com – ведущий сайт поиска работы в мире – время от времени публикует статистические данные по вакансиям (соотношение предложений и соискателей). Выбор языка программирования хорошо бы делать, основываясь именно на этих данных, но одной только сухой статистикой тоже руководствоваться не стоит.

Итак, на одно место разработчика Python, Java, Objective-C или РНР приходится 2,7 специалиста. Если взять данные по JavaScript, то видно, что это определенно рынок продавца – на одно место приходится всего 0,6 программиста. Кроме того, JavaScript развивается куда быстрее, чем любой другой язык, что открывает прекрасные долгосрочные перспективы.

Обоснование выбора языка программирования C ++, С#, Objective-C, РНР или любого другого строится и на легкости изучения. Новичок, особенно тот, который учит язык по книгам или курсам, вряд ли справится со сложными С++ или Java. Сравнительно легко учатся Python, JavaScript или Ruby. Ruby и Python читабельны и отличаются одними из самых активных сообществ.

В том случае, если программирование представляется очень сложной задачей, начать стоит с чего-то более легкого, например, HTML или CSS. HTML не является языком программирования в полном понимании, скорее это язык разметки веб-страниц. CSS – это более современный «помощник» HTML, который позволяет делать страницы более приятными глазу, играть со шрифтами, добавлять дизайнерские элементы оформления сайтов и так далее.

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

Наилучшее обоснование выбора языка программирования PHP - именно веб-разработка. Если речь идет о серверной части, подойдут PHP, Python, Ruby и тот же JavaScript. Выбор языка программирования С # - тоже хорошая идея. На С# работают в Microsoft, Python похож на Лего, а Ruby– на пластилин.

Дизайнеры – творческие люди, которые могут считать себя далекими от точных наук. Но писать код – это как писать картину, так что сомнения, касательно того стоит ли вообще учить программирование, нужно отбросить сразу. Есть мнение, что лучше быть первоклассным дизайнером, чем второстепенным программистом, но дизайнеру стоит знать JavaScript хотя бы для воплощения своих идей. Еще подойдут относительно простые Python или Ruby.

Разработчикам android iOS-приложений. Приложения на «Андроид», как правило, разрабатываются в Java. Работать можно на любой операционной системе – распространенность «Андроид»-смартфонов сделала разработку приложений на них очень популярной. Среду для разработки можно установить и на Windows, и на iOS.

Что касается Apple, так тут разработка куда более требовательна к инструментам. Нужно учить Objective-C, комплект средств разработки и инструкцию разработчика от Apple. Работать можно только с «яблочных» устройств – Mac с версией операционной системы от 10.7 и выше.

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

Существуют различные классификации языков программирования. По наиболее распространенной классификации все языки программирования, в соответствии с тем, в каких терминах необходимо описать задачу, делят на языки низкого и высокого уровня [4]. Если язык близок к естественному языку программирования, то он называется языком высокого уровня, если ближе к машинным командам – языком низкого уровня.

В группу языков низкого уровня входят машинные языки и языки символического кодирования: Автокод, Ассемблер. Операторы этого языка – это те же машинные команды, но записанные мнемоническими кодами, а в качестве операндов используются не конкретные адреса, а символические имена. Все языки низкого уровня ориентированы на определенный тип компьютера, т.е. являются машинно-зависимыми.

Машинно-ориентированные языки – это языки, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ.

К языкам программирования высокого уровня относят Фортран (переводчик формул – был разработан в середине 50-х гг. программистами фирмы IBM и в основном используется для программ, выполняющих естественно-научные и математические расчеты), Алгол, Кобол (коммерческий язык – используется, в первую очередь, для программирования экономических задач), Паскаль, Бейсик (был разработан профессорами Дармутского колледжа – Джоном Кемени и Томасом Курцом), Си (Деннис Ритч – 1972 г.), Пролог (в основе языка лежит аппарат математической логики) и т.д.

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

Существует три вида транслятора: интерпретаторы (это транслятор, который производит пооператорную обработку и выполнение исходного кода программы), компиляторы (преобразует всю программу в модуль на машинном языке, после чего программа записывается в память компьютера и лишь потом исполняется) и ассемблеры (переводят программу, записанную на языке ассемблера, в программу на машинном языке) [2].

Языки программирования также можно разделять на поколения [4]:

· языки первого поколения: машинно-ориентированные с ручным управлением памяти на компьютерах первого поколения;

·языки второго поколения: с мнемоническим представлением команд, так называемые автокоды;

·языки третьего поколения: общего назначения, используемые для создания прикладных программ любого типа. Например, Бейсик, Кобол, Си и Паскаль;

· языки четвертого поколения: усовершенствованные, разработанные для создания специальных прикладных программ, для управления базами данных;

·языки программирования пятого поколения:

языки декларативные, объектно-ориентированные и визуальные. Например, Пролог, ЛИСП (используется для построения программ с использованием методов искусственного интеллекта), Си++, Visual Basic, Delphi.

Языки программирования также можно классифицировать на процедурные и непроцедурные [2]. В процедурных языках программа явно описывает действия, которые необходимо выполнить, а результат задается только способом получения его при помощи некоторой процедуры, которая представляет собой определенную последовательность действий. Среди процедурных языков выделяют структурные и операционные языки. В структурных языках одним оператором записываются целые алгоритмические структуры: ветвления, циклы и т.д.; в операционных языках для этого используются несколько операций. Широко распространены следующие структурные языки: Паскаль, Си, Ада, ПЛ/1. Среди операционных – Фортран, Бейсик, Фокал.

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

Еще один класс языков программирования – это объектно-ориентированные языки высокого уровня. На таких языках не описывают подробной последовательности действий для решения задачи, хотя они содержат элементы процедурного программирования. Благодаря богатому пользовательскому интерфейсу, они предлагают человеку решить задачу в удобной для него форме [3]. Первый объектно-ориентированный язык программирования Simula был создан в 1960-х гг. Нигаардом и Далом.

Ява – язык для программирования Интернет, позволяющий создавать безопасные, переносимые, надежные, объектно-ориентированные интерактивные программы. Язык Ява жестко связан с Интернетом, потому что первой серьезной программой, написанной на этом языке, был браузер Всемирной паутины.

Говоря о программировании в Интернете, часто имеют в виду создание публикаций с использованием языка разметки гипертекстовых документов – HTML. Применение специальных средств (HTML-редакторов) позволяет не только создавать отдельные динамически изменяющиеся интерактивные HTML-документы, используя при этом данные мультимедиа, но и редактировать целые сайты.

Когда необходимо создать большую программную систему или составить программы для решения какой-либо частной задачи, в том числе при создании компьютерных игр, встает вопрос, какой выбрать для этой цели подходящий язык программирования. Такой выбор делается на основании очень простых «земных» факторов: наличии того или иного транслятора и умения писать программы на данном языке. Но если в распоряжении пользователя несколько языков программирования и нужно создать, например, игру для мобильного, то необходимо учитывать следующие обстоятельства [3]:

·назначение разрабатываемого программного обеспечения, т.е. необходимость в нем будет временная или оно будет использоваться постоянно, будет ли оно в дальнейшем передаваться другим организациям, будут ли создаваться его новые версии;

·необходимая скорость работы программного обеспечения, соотношение и работа его вычислительных и диалоговых компонентов;

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

· возможность сопряжения разрабатываемого программного обеспечения с другими приложениями (пакетами или программами), включая приложения, составленные на иных языках программирования;

·основные типы данных, которыми придется оперировать, возможность поддержки работы с различными типами структур;

· характер и уровень использования периферийных средств (монитора, клавиатуры и др.), необходимость в специальном программировании некоторых функций, чтобы работать с периферийными устройствами;

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

Заключение

Прогресс компьютерных технологий определил процесс появления новых разнообразных знаковых систем для записи алгоритмов – языков программирования. Язык программирования – язык (знаковая система), предназначенный для записи компьютерных программ; определяет набор лексических, синтаксических и семантических правил, определяющих внешний вид программы и действия, которые выполнит исполнитель (обычно – ЭВМ) под ее управлением. Со времени создания первых программируемых машин человечество придумало более 8 тыс. языков программирования (включая нестандартные, визуальные и эзотерические языки). Каждый год их число увеличивается. Некоторыми языками умеет пользоваться только небольшое число их собственных разработчиков, другие становятся известны миллионам людей. Профессиональные программисты могут владеть десятком и более разных языков программирования.

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

Есть один секрет, который поможет стать лучшим не только в сфере программирования, а вообще где угодно. Нужно просто делать что-нибудь. Хороший способ – найти проблему, которую нужно решить. Возможно, нужно сделать сайт-визитку для собственного бизнеса, найти удобный инструмент для контроля финансов или автоматизировать рассылку твитов своим подписчикам? Далее стоит убедиться, что цель достижима, ведь без опыта и команды сделать клон Call of Duty вряд ли получится. Теперь пора выбрать набор технологий, которые позволят решить проблему.

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

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

Список использованных источников

1 Довек, Ж. Введение в теорию языков программирования : Ж. Довек, Ж.-Ж. Леви. – Москва : ДМК Пресс, 2013. -134 с.

2 Пратт, Т. Языки программирования: разработка и реализация / Т, Пратт, М. Зелковиц. – Санкт-Петербург : Питер, 2002. – 688 с.

3 Баженова И. Ю. Развитие языков программирования: лекция / И. Ю. Баженова, В. А. Сухомлин. – ИНТУИТ.РУ[сайт]. – Мосва, 2014.

4 Зыков, С. В. Классификация языков программирования: лекция . – ИНТУИТ.РУ. – Москва, 2014.

5 Ваныкина, Г. В. Структуры и алгоритмы компьютерной обработки данных: лекция / Г. В. Ваныкина, Т. О. Сундукова. – ИНТУИТ.РУ. – Москва, 2014.

6 Юров, В. И. ASSEMBLER : пособие для вузов / В. И. Юров. – Санкт Петербург : Питер, 2006. – 500 с.

7 Бизнес : толковый словарь ; ред. И. М. Осадчая. – Москва : Весь мир, 1998. – 2500с.

8 Вязовик, Н. А. Программирование на Java: лекция / Н. А. Вязовик. – ИНТУИТ.РУ. – Москва, 2014.

9 Какой выбрать язык программирования: Школа программирования IT-centre. Компьютерные курсы программирования или обучения программированию. – 2014.

10 Фридман, А. Л. Язык программирования С ++: лекция / А. Л. Фридман. – ИНТУИТ.Р. – Москва, 2014.

11 Страуструп, Б. Язык программирования С ++ : второе дополненное издание / Б. Страуструп. – Москва : Бином-Пресс, 2011. – 368с.