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

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

Содержание:

Введение

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

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

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

Люди пишут - транслятор преобразовывает.

BB 11 01 B9 0D 00 B4 0E 8A 07 43 CD 10 E2 F9 CD 20 48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21

Ну это же не дело, правда ?

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

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

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

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

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

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

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

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

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

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

Первым языком программирования высокого уровня считается компьютерный язык Plankalkül, разработанный немецким инженером Конрадом Цузе в период 1942—1946 годов. Однако транслятора для него не существовало до 2000 года.

Первым в мире транслятором языка высокого уровня является ПП (Программирующая Программа), он же ПП-1, успешно испытанный в 1954 году. Транслятор ПП-2 (1955 год, 4-й в мире транслятор) уже был оптимизирующим и содержал собственный загрузчик и отладчик, библиотеку стандартных процедур, а транслятор ПП для ЭВМ Стрела-4 уже содержал и компоновщик (linker) из модулей. Однако, широкое применение высокоуровневых языков началось с возникновением Фортрана и созданием компилятора для этого языка.

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

Наиболее распространенные универсальные языки : C#, C++, Basic, Pascal (Delphi) - используются для разработки Windows-приложений.

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

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

Большой вклад в программирование на начальных этапах внесли языки Fortran, Cobol, Algol и C.
 

Объектно-ориентированные языки

Объектно-ориентированный язык программирования (ОО-язык) — язык, построенный на принципах объектно-ориентированного программирования.

Объектно-ориентированные языки стали дальнейшим уровнем развития процедурных языков, основывается на представлении программы в виде множества объектов. Каждый объект относится к какому-либо классу, который, в свою очередь, занимает свое место в наследуемой иерархии. Использование ООП минимизирует избыточные данные, это улучшает управляемость, понимание программы. Написание программы на языке представляется в виде последовательности создания экземпляров объектов и использование их методов. Например, объект человек может иметь поля имя, фамилия и методы есть и спать. Соответственно, в программе можем использовать операторы Человек.Имя:="Иван" и Человек.Есть(пища)

Примеры объектно-ориентированных языков:

  1. Pascal. С выходом Delphi 7 на официальном уровне стал называться Delphi. Основная область использования Object Pascal - написание прикладного ПО.
  2. C++ широко используется для разработки программного обеспечения, является одним из самых популярных языков. Применяется для создания ОС, прикладных программ, драйверов устройств, приложений, серверов, игр.
  3. Java - транслируется в байт-код, обрабатывается виртуальной машиной Java. Преимуществом такого способа выполнения является независимость от операционной системой и оборудования. Существующие семейства: Standard Edition, Enterprise Edition, Micro Edition, Card.
  4. JavaScript применяется в качестве языка сценариев для web-страниц. Синтаксис во многом напоминает Си и Java. Является реализацией Ecmascript. Сам Ecmascript используется в качестве основы для построения других скриптовых языков, таких как JScript, ActionScript.
  5. Objective-C построен на основе языка Си, а сам код Си понятен компилятору Objective-C.
  6. Perl - высокоуровневый интерпретируемый динамический язык общего назначения. Имеет богатые возможности для работы с текстом, изначально разработан именно для манипуляций с текстом. Сейчас используется в системном администрировании, разработке, сетевом программировании, биоинформатике и т. д.
  7. PHP. Аббревиатура переводится как препроцессор гипертекста. Применяется для разработки веб-приложений, в частности серверной части. С его помощью можно создавать gui-приложения с помощью пакетов PHP-GTK, PHP-Qt, WinBinder.
  8. Python - язык общего назначения, ориентирован на повышение производительности разработчика и читаемость кода. Был разработан проект Cython, с помощью которого осуществляется трансляция программ, написанных на Python в код на языке Си.

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

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

Известный афоризм Дэвида Уилера гласит: Все проблемы в информатике можно решить на другом уровне абстракции.

FB.ru: https://fb.ru/article/381310/obyektno-orientirovannyie-yazyiki-osnovyi-obyektno-orientirovannogo-programmirovaniya

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

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

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

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

Наиболее распространённым языком логического программирования является язык Пролог.

https://dic.academic.ru/dic.nsf/ruwiki/113515

Функциональные языки программирования

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

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

Функциональное программирование предполагает обходиться вычислением результатов функций от исходных данных и результатов других функций, и не предполагает явного хранения состояния программы. Соответственно, не предполагает оно и изменяемость этого состояния (в отличие от императивного, где одной из базовых концепций является переменная, хранящая своё значение и позволяющая менять его по мере выполнения алгоритма).

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

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

и распараллеливать их без каких-либо дополнительных действий со стороны программиста (что обеспечивают функции без побочных эффектов — чистые функции.

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

https://ru.wikipedia.org/wiki/Функциональное_программирование

https://www.itweek.ru/business/article/detail.php?ID=209957

Логические языки программирования

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

Самым известным языком логического программирования является Prolog.

Первым языком логического программирования был язык Planner, в котором была заложена возможность автоматического вывода результата из данных и заданных правил перебора вариантов (совокупность которых называлась планом). Planner использовался для того, чтобы понизить требования к вычислительным ресурсам (с помощью бэктрекинга — поиска с возвратом) и обеспечить возможность вывода фактов, без активного использования стека. Затем был разработан язык Prolog, который не требовал плана перебора вариантов и был, в этом смысле, упрощением языка Planner.

От языка Planner также произошли логические языки программирования QA-4, Popler, Conniver и QLISP. Языки программирования Mercury, Visual Prolog, Oz и Fril произошли уже от языка Prolog. На базе языка Planner было разработано также несколько альтернативных языков логического программирования, не основанных на методе поиска с возвратами, например, Ether.

https://ru.wikipedia.org/wiki/Логическое_программирование

Языки сценариев (скрипты)

Сценарный язык (язык сценариев, жарг. скриптовый язык; англ. scripting language) — высокоуровневый язык сценариев (англ. script) — кратких описаний действий, выполняемых системой. Разница между программами и сценариями довольно размыта. Сценарий — это программа, имеющая дело с готовыми программными компонентами.

Согласно Джону Устерхауту, автору языка Tcl, высокоуровневые языки можно разделить на языки системного программирования (англ. system programming languages) и сценарные языки (англ. scripting languages). Последние он также назвал склеивающими языками (англ. glue languages) или языками системной интеграции (англ. system integration languages). Сценарии обычно интерпретируются, а не компилируются, хотя сценарные языки программирования один за другим обзаводятся JIT-компиляторами.

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

История развития скриптов

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

В 1995 году компания Netscape для своего популярного на тот момент браузера Netscape Navigator 2.0 предложила специальный язык под названием LiveScript. На то время возможности языка были очень скудными, и многие просто не понимали, что такое скрипт (script) в браузере. Тогда он мог проверять и обрабатывать те данные, которые пользователь оставлял на странице сайта через форму. Такая проверка давала возможность контролировать правильность введенных данных и избегать отправки формы без нужной информации. Вскоре название этого языка было изменено на JavaScript.

Через некоторое время известный конкурент Netscape – корпорация Microsoft – создал свою версию JavaScript. Несмотря на то что такой скриптовый язык программирования имел немного отличающиеся функции, он успешно прижился и получил собственное название JScript. Он начал использоваться в браузере Internet Explorer начиная с версии 3.0. Через некоторое время и другие браузеры стали поддерживать JavaScript.

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

Несмотря на жесткую конкуренцию, Microsoft и Netscape вместе с наиболее авторитетными разработчиками обеспечения для деятельности в Интернете трудились в организации W3C. В результате были подготовлены единые стандарты и рекомендации. Но все же языки JavaScript и JScript имеют определенные различия, что необходимо учитывать в работе.

Основные принципы скриптов

Интерпретатор языка JavaScript встроен во все популярные браузеры. Именно поэтому любой браузер понимает, что такое скрипт на этом языке. Эти коды успешно выполняются в тот момент, когда пользователь обращается к страницам сайта. Но такие же скрипты могут успешно работать и на сервере, если на нем установлен интерпретатор JavaScript. Сценарии могут выполняться как на стороне клиента, в браузере, так и непосредственно на сервере.

Скрипты имеют следующие цели:

  • SEO-скрипты (шаблоны) для продвижения сайтов. Обычно под их управлением работают специализированные программы автоматизации этого процесса. Наиболее известные – ZennoPoster, Human Emulator;
  • системы для сбора статистики посещений (счетчики посещаемости). Эти скрипты чаще всего создаются с применением JavaScript;
  • сценарии для обращения к базам данных. Здесь лидирует язык PHP;
  • скрипты для работы гостевых книг и создания комментариев к записям. Чаще всего применяется комбинация PHP и JavaScript;
  • скрипты для динамического отображения сайтов. В этом случае скриптовый язык определяется языком написания CMS;
  • скрипты для изменения части страницы сайта без ее перезагрузки. При реализации используются технологии Ajax. В этом случае на первый план выходят асинхронный JavaScript и XML. Веб-приложения производят обмен данных с сервером в «фоне», изменения на страницах сайта происходят без их полной перезагрузки. Пользователи обычно не замечают таких изменений, и им не нужно понимать, что такое скриптовый язык программирования, чтобы отлично взаимодействовать с сайтом.

Типы скриптов

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

Выделяют:

  • командно-сценарные (JCL, sh, bash, csh, ksh, AppleScript, COMMAND.COM и cmd.exe, VBScript);
  • прикладные (AutoLISP, JScript, JavaScript, ActionScript, Game Maker Language, VBA и др.);
  • универсальные сценарные (Tcl, Lua, Perl, PHP, Python, REBOL, Ruby).

Примеры скриптовых языков

Наиболее известные: PHP, Perl, Python, AngelScript, JavaScript, JScript и другие. Все они являются высокоуровневыми. По своему механизму действия скриптовые языки обычно интерпретируются, а не компилируются.

https://ru.wikipedia.org/wiki/Сценарный_язык

https://wiki-rookee-ru.turbopages.org/wiki.rookee.ru/s/script/

Языки, ориентированные на данные

Языки ориентированы на работу с одним определенным типом данных. Например, APL работает с матрицами и векторами, Snobol обрабатывает строки, SETL выполняет операции над множествами. Особое развитие получили языки для работы с базами данных: 3GL, PL/SQL, FoxPro.

Особое развитие получили языки для работы с базами данных: 3GL, PL/SQL, FoxPro.

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

LISP

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

APL

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

Snobol , Icon

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

SETL

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

http://lib.kstu.kz:8300/tb/books/Informatika_%28IIT%29/lectures/lec-3.html

https://studopedia.net/13_40078_yaziki-orientirovannie-na-dannie.html

Квантовые гипер-языки программирования

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

Первый специализированный язык программирования подобного типа ( Likiz ) разработан дочерней компанией REDFOX39 inc. - Liky corp. в 2040 году.

Confidentially.

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

Выбор языка программирования

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

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

Сперва нужно определиться с целями. Например, на какой платформе (в какой среде) хочется работать: веб, мобильные устройства, игры и 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.

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

  1. Востребованность на рынке труда.
  2. Легкость изучения.
  3. Долгосрочные перспективы.
  4. Какие проекты можно разработать на этом языке (выбор языка и среды программирования).

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

Для веб-дизайнеров и верстальщиков

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

Разработчикам веб-приложений

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

Разработчикам android iOS-приложений

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

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

https://fb.ru/article/334076/obosnovanie-vyibora-yazyika-programmirovaniya-i-kriterii

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

Visual Studio 2015

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

Недостатки: новичку будет просто невозможно самостоятельно разобраться с Visual Studio без прохождения специальных курсов и чтения литературы. Это продукт скорее для опытных разработчиков, обращающих внимание на качество редактора и функции тестирования.

XCode

Описание: IDE, ориентированная на создание приложений для OS X и iOS. Для использования языков Objective C и Swift на сегодня это лучшее, а для некоторых задач и вовсе единственное решение.

Недостатки: многие разработчики жалуются на стабильность среды, вынуждающую вносить дополнительные изменения в свои проекты после выхода очередной версии. Кроме того, XCode относительно сложная IDE для самопознания новичком. Именно поэтому рекомендуем вам пройти наш бесплатный интенсив по основам языка Swift. На нем мы рассмотрим тонкости работы с этой IDE.

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

Xamarin Studio

Описание: популярный инструмент разработки приложений под Windows, Phone, Android и iOS, использующий по-сути только один язык — C#. Помимо непосредственно Xamarin Studio вы также можете пользоваться плагином для Visual Studio.

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

IntelliJ IDEA

Описание: IDE, разработанная компанией JetBrains, позволяющая создавать программы на множестве популярных языков, среди которых Java, JavaScript, Python, Ruby, Groovy, Scala, PHP, C, C++.

Недостатки: производительность. Томительное ожидание выполнения компиляции, перекомпиляции, тестирования порой действительно раздражает.

Appcelerator Titanium

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

Недостатки: возможности, предоставляемые Appcelerator Titanium имеют и обратную сторону: генерируемые ошибки в коде, искусственные ограничения, недостаточно качественная документация.

Android Studio

Описание: относительно молодая и стремительно развивающаяся IDE, ориентированная на разработчиков приложений для Android.

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

Eclipse

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

Недостатки: существенная нехватка документации, нет единого сообщества разработчиков.

Netbeans

Описание: мощная IDE для разработки приложений на Java, JavaScript, Python, PHP, C, C++ и даже Ада.

Недостатки: невысокое быстродействие из-за концепции «всё в одном». Некоторые плагины (в том числе для разработки приложений для Android) имеют существенные ограничения функциональности.

PhoneGap

Описание: необычная среда разработки кроссплатформенных приложений, не требующая знания «родных» языков. То есть для того, чтобы создать приложение для Android, знание Java вам не потребуется. Используются JavaScript в связке с HTML5 и CSS3.

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

https://geekbrains.ru/posts/ide_negative

Заключение.

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

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

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

Библиография.

https://geekbrains.ru/posts/ide_negative

https://fb.ru/article/334076/obosnovanie-vyibora-yazyika-programmirovaniya-i-kriterii

http://lib.kstu.kz:8300/tb/books/Informatika_%28IIT%29/lectures/lec-3.html

https://studopedia.net/13_40078_yaziki-orientirovannie-na-dannie.html

https://ru.wikipedia.org/wiki/Сценарный_язык

https://wiki-rookee-ru.turbopages.org/wiki.rookee.ru/s/script/

https://ru.wikipedia.org/wiki/Логическое_программирование

https://ru.wikipedia.org/wiki/Функциональное_программирование

https://www.itweek.ru/business/article/detail.php?ID=209957

https://dic.academic.ru/dic.nsf/ruwiki/113515