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

История развития программирования в России (Возникновение программирования в России)

Содержание:

Введение

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

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

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

Объектом исследования являются технологии программирования.

Предметом исследования является история развития технологий программирования.

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

Для реализации поставленных целей необходимо выполнить ряд задач:

- Изучить возникновение программирования в России;

- Рассмотреть направления развития программирования;

- Рассмотреть состояние программирования в начале XXI века;

- Изучить современные тенденции программирования в России;

- Изучить будущее Российского программирования;

- Проанализировать рейтинг специалистов по языкам программирования

- Рассмотреть перспективные направления развития специалистов и т.д.

При написании данной работы были использованы современные научные и учебные источники.

Глава 1. Возникновение программирования в России

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

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

Для упрощения обращения с ЭВМ люди стали активно разрабатывать языки, одним из первых стал Ассемблер. Для отображения переменных стали использоваться символьные наименования. Вместо числовых операций человеку достаточно знать мнемонические имена, их запоминание в разы облегчалось. Уже на этом этапе языки программирования стали более приближёнными к понятному для человека языку.[2]

К первооткрывателям среди языков программирования относится Фортран – это сокращённое сочетание 2 слов: Formula и Translation. Создан уже в середине 50-х. До сих пор язык используется благодаря лёгкости и простоте написания, а также развитой системе библиотек для Фортран. Чаще используется для научных и инженерных подсчётов, а также активно применяется в физичке и остальных науках, связанных с математикой.

Из-за увеличения сфер использования ЭВМ появились и другие языки для отдельных разработок в новых сферах:

экономическое направление оставалось незанятым до появления Кобол;

Снобол – обрабатывает алгоритмы, связанные с текстами;

Лисп. Работает на основании алгоритмов для отработки символов. Активно используется для формирования искусственного интеллекта.

Уже в 1968 г. был впервые запущен конкурс, в котором главным местом являлось звание лучшего языка программирования для начала карьерного пути. Данные планировалось использовать для обучения специалистов. Победу одержал Алгол-68, но он остался малоизвестным, о популярности и речь не идёт. Специально для участия в конкурсе был создан Паскаль, разработчиком являлся Никлаус Вирт.[3] Язык весьма доступный, удобный и объединяет немало мощных инструментов для структурирования информации. Несмотря на изначальную разработку с целью обучения студентов, Паскаль получил широкое распространение и активно развивался. Даже сегодня он является одним из лучших и известнейших языков программирования.

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

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

Развитие возможностей вычислительного оборудования привело к необходимости написания ёмких программ для управления ЭВМ. Это место по праву занял язык Си, который стал активно использоваться в 70-х годах. Явным достоинством языка является его универсальность. [4]Он превосходит Паскаль благодаря наличию вложенных возможностей сотрудничества с разными машинными командами и подходящими частями памяти.

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

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

Только в 80-х годах был разработан язык Ада. Он расширяет классическое понимание и свойства языков того периода. Ада могла решать задачи в режиме реального времени и моделировать независимые решения.

Сегодня разработаны классификации языков по уровню работы, это распределение самое распространённое. Выделяют 3 основных уровня:

Низкий. Сюда относятся различные машинные языки или разновидности с символическим кодирование типа Ассемблера и Автокода. За основу взяты операторы машинных команд, только разработаны с привязкой к мнемоническому коду. Операндами являются уже не точные адреса, а символьное обозначение имён. Все модели разработаны для отдельных разновидностей ПК, они являются машинно-зависимыми. В подобных языках отмечается сильная зависимость языка от внутренних особенностей системы;

Высокий. Языки встречаются куда чаще, они более удобны в использовании. К ним причисляются: Алгол, С, Пролог, Паскаль, Бейсик, Фортран и другие. Перечисленные языки не имеют жёсткой зависимости от машины, ведь они основываются на возможностях системы операндов, которые подобны для классовых алгоритмов. Недостатками высокого уровня являются большая ресурсоёмкость и медленное исполнение;

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

Согласно другой классификации языки делятся на:

символьные – Пролог, Лисп и Снобол;

вычислительные – Паскаль, С, Алгол, Бейсик, Фортран.

1.2 Направления развития программирования

Информатика в современном мире развивается в 3 ключевых направлениях:

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

Структурные. В них используется один оператор для записи цельных алгоритмом: циклов, функцию, ветвлений и остального. Более известны: Паскаль, Ада и С.

Операционные. Применяют несколько различных действий. Среди самых известных разновидностей: Фокал, Фортран и Бейсик.

Непроцедурные. Языки программирования имеют декларативную структуру, появление которой приходится на 70-е года. Активнее всего начали развиваться в 80-х годах после появления проекта формирования 5 поколения ЭВМ. Основная задача – создание возможностей для построения высокоинтеллектуальных машин. Они также разделяются на:

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

Логические. Программа вовсе не требует описание действий, её основу составляют соотношения данных и их значения. Только после расчёта можно получать ответы на вопросы. После перебирания известных параметров выводится ответ. В программе отсутствует метод или порядок обнаружения ответа, он неявным образом устанавливается языком.[7] Ярким представителем является Пролог. Из направления полностью устранено алгоритмическое мышление, только статические отношения между объектами, а вся динамика сокрыта от разработчика и сводится к перебору данных.

Объектно-ориентированные языки, все они являются разновидностью высокого уровня программирования. Подобные языки не нуждаются в описании чёткой последовательности манипуляций для получения результата задачи, но отдельные компоненты процедурного направления присутствуют. Пользователям значительно проще работать с такими языками, так как они обладают доступным и богатым интерфейсом.[8] Лучшим примером подобного направления с визуальным общением является Object Pascal.

Существуют языки для написания сценариев, известными являются Rexx, Tcl, Perl и Python, а также языки оболочек систем Unix. В них разрабатывается индивидуальный стиль написания кода, который отличается от известного принципа системного уровня программирования. Они не используются для создания приложений на нижнем уровне, скорее для комбинирования различных компонентов из разных языков, из которых составляется набор отдельных функций.

Активнее всего стали развиваться по мере распространения интернета, от чего стали широко применяться языки сценариев. Для создания сценариев чаще всего применяется Perl, а для Web-части пользуется популярностью JavaScript.

1.3 Состояние программирования в начале XXI века

XXI век изменил общественное мнение о компьютерах. Ноутбуки, смартфоны, планшеты закрепились в технологической экосистеме. Массивные ящики системного блока и монитора воспринимались уже не просто как домашние компьютеры, а мощные машины, позволяющие создавать и запускать приложения, о которых в двадцатом столетии снимали фильмы.[9]

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

В начале 2000-х форм-фактор зачастую играл ключевую роль

Продолжение битвы

Начнем с того, на чем остановились в прошлой статье. Компания Microsoft в конце 90-х приступила к разработке C#, который должен был оспорить господство Java. Новый язык был представлен в 2000 году, но увидел свет только в 2002. Причина задержки заключалась не только в желании победить все «болячки» Java, но и в меняющихся тенденциях на рынке IT. Прежде в Microsoft ориентировались на создание десктопных приложений для Windows, но поняли, что это путь в никуда. Требовалась новая программная платформа, которая бы замкнула на себе множество языков, а также позволила работать с вебом, мобильными и стационарными устройствами. Так появилась .NET, представленная вместе с C# в 2000 году.

Этот шаг позволил в долгосрочной перспективе поднять интерес как к языку, так и ко всем продуктам Microsoft. Но компания уже допустила главный просчет. В конце 90-х ведущие производители мобильных устройств, среди которых — Nokia, Ericsson и Motorola, объявили о создании новой системы Symbian. Изначально она была закрытой, приложения писались на языках ассемблера и C, но долго игнорировать влияние Java было невозможно.

Уже к началу 2000-х пользователи мобильных устройств могли устанавливать приложения на базе Java ME (ограниченной версии языка).[10] Пока C# собирал аудиторию, Java уже работал на каждом втором смартфоне. Microsoft еще долго будет пытаться переломить эту ситуацию, но так и не преуспеет.

Зато у C# прекрасно пошли дела в игровой сфере. Как и сегодня, в 2000-х среди консольных приставок основная борьба разворачивалась между Sony PlayStation и Microsoft Xbox. Первая использовала в качестве базы C и язык ассемблера, потом перешла на собственный скриптовый язык. Фактически, Sony PlayStation была закрыта для сторонних разработчиков. Продукт компании Microsoft опирался на C++ и C# — в частности при работе с графическим движком Unity. Популярность C# возросла, но догнать Java так и не получилось: конкурент имел серьезное влияние на веб, а к концу десятилетия стал фундаментом системы Android.

Масла в огонь подливали и новообразованные языки. К примеру, Groovy, работающий на базе JVM, подтягивал синтаксис Java к простоте Python, сохраняя функциональность — поэтому привлек внимание. Менее известные примеры: Whiley, AspectJ, Join Java, Tea. Свою нишу занял и появившийся в 90-х JavaScript.

Создание языков программирования для обучения — тенденция, берущая начало в 60-х годах. В первом десятилетии XXI века появился ведущий «детский» язык — Scratch. Разработанный в MIT, он позволял на основе простых графических блоков создавать анимацию. Первые 10 лет существования не принесли языку заслуженной славы. Дело в концепции, согласно которой программировать приходилось непосредственно в браузере. Из-за ограничений на трафик и скорость начинающие программисты со всего мира не могли себе позволить долго возиться с этим продуктом.

Функциональное программирование было актуальным решением в начале эпохи персональных компьютеров. Тогда сложные коды, привязанные к конкретным данным, было разумно замещать моделями, сокращая объем кода и увеличивая производительность. Новые языки и появление полноценного ООП заставили большинство разработчиков вернуться к императивному программированию, оставив за функциональным роль дополнения. Но в XXI веке все изменилось.[11]

Частично этому способствовала новая волна маломощных машин (смартфонов). Высокие требования при скромной производительности вынуждали программистов мыслить функциями, а не привязываться к данным. Частично на популярность ФП повлиял новый язык — Clojure, диалект Lisp, работающий на основе виртуальной машины Java. Он будто связал десятилетия, позволив в новой эре применить известные принципы ФП. Чуть позже появился еще и ClojureScript для работы с JavaScript. Это был сигнал разработчикам языков: пора вводить возможности полноценного функционального программирования.

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

Компания Google нашла выход в использовании нейронных сетей и языка для обработки данных — Go. Он должен был стать полноценной альтернативой C и C++, улучшив читаемость кода, документируемость, скорость сборки программ и множество других аспектов. Go так и не стал панацеей, но заслужил репутацию удобного и надежного инструмента для сложных разработок.[12]

Чтобы понять, насколько быстро менялись технологии в первом десятилетии XXI века, достаточно вспомнить события на рынке мобильных телефонов. Он стартовал с огромными черно-белыми «коммуникаторами» под управлением закрытых операционных систем. Им на смену пришли кнопочные «смартфоны» с Symbian. Уже к концу десятилетия все эти наработки устарели — на рынке сенсорных аппаратов бушевала битва iOS и Android.

Аппараты Android работали, опираясь на язык Java, и с первого дня существования системы пользователи могли писать под нее приложения. Почти все базовые приложения Android — результат международного конкурса разработчиков, который устроил Google за год до официального запуска платформы.

В Apple избрали другой путь — использовать собственные наработки. Objective-C был создан в 80-х как одно из множества ответвлений языка С. Возможно, он так и канул бы в ХХ веке, если бы не приглянулся разработчикам компании NeXT и операционной системы NEXTSTEP. Компьютер NeXTcube собрал массу положительных отзывов, но не получил распространения из-за высокой стоимости проекта.

Главой NeXT был Стив Джобс. Он не только удержал компанию на плаву и выгодно продал ее Apple, но и внедрил все наработки в «яблочные» продукты. Надежность и быстродействие стали визитной карточкой Mac OS и iPhone OS. В отличие от Android, который имеет открытый исходный код, системы Apple изначально были закрытыми для сторонних разработчиков. Компания выпускала средства разработки приложений после того, как оценивала заинтересованность в продуктах. Так случилось и с MacOS: Xcode была представлена спустя 2 года после платформы, — и с iOS: через год была обнародована SDK. Разумеется, исходные коды при этом не открывались, и разработчики не получали полной свободы в персонализации.

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

Глава 2. Современное состояние и перспективы развития программирования в России

2.1 Современные тенденции программирования в России

Единственное, в чем можно быть уверенным в этой отрасли, – это изменения: все больше разговоров о машинном обучении, увеличение обязанностей со стороны веб-разработчиков, растущий интерес к противостоянию Kotlin и Java, etc. Победителями являются те, кто способен адаптироваться к меняющимся требованиям пользователей.

JavaScript является одним из самых быстроразвивающихся языков программирования в 2017 году и одним из трех самых популярных по данным Indeed.com. Дэн Шаппир из Wix отмечает, что популярность JavaScript вряд ли быстро исчезнет, поскольку это лучший выбор для интерактивных веб-страниц и единственный язык программирования, поддерживаемый всеми основными браузерами.[13]

В то время как JavaScript задействован в создании веб-интерфейса, он также стал лучшим выбором для эффективной разработки на стороне сервера через Node.js – среду с открытым исходным кодом, основанную на JS. Можно сказать, что JavaScript в тандеме с Node.js открывают разработчикам новые горизонты с перспективой развития в грядущем году.

Чистый код в программировании

Независимо от того, изучаете ли вы код с целью освоить Python или стать профессиональным веб-специалистом, вам нужно научиться писать чистый код. «Чистый и простой для обслуживания код, в понимании которого другие разработчики не испытывают трудностей, который можно легко поддерживать и наполнять новым функционалом, является ключом к успеху», – объясняет опытный разработчик Оана Бурц.

Что такое чистый код? Хотя точное определение и зависит от того, кому задан этот вопрос, один из пользователей StackOverflow предлагает следующее краткое объяснение.

Код должен:

  • Быть доступным к пониманию.
  • Легко модифицироваться.
  • Быть простым в тестировании.
  • Правильно работать.

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

Нет, функциональное программирование нам тоже не в новинку, но оно делает серьезное возвращение в 2018 году. Не сюрприз, потому как уже в 2017 году это стало одной из крупнейших тенденций развития в программировании.

«Языки программирования в этой категории определены», – рассказывает DevOps-инженер Джордан Бах. – «Предусмотрены выразительный и сжатый синтаксис, исключительная проверка ошибок во время компиляции, а также хорошая поддержка параллельных вычислений».[14] Хотя функциональное программирование, безусловно, является передовой технологией, оно включает в себя такие языки, как Haskell , Scala и Clojure.[15]

Концепция Material Design становится одной из обязательных

Каждый начинающий веб-разработчик должен изучать тактику дизайна и пользовательского опыта (UX), особенно если к этому есть интерес. Только так можно стать front-end специалистом. Material Design уже был описан как «обязательная эстетическая» тенденция для 2017 года.

Сейчас Material Design представляет собой набор стандартов дизайна, дружественных к пользователю, и был разработан еще в 2014 году. Этот подход характеризуется модным минимализмом и гибким масштабированием для разных по размеру экранов. Специалист по дизайну Анна Лисняк определяет «внешний вид» Material Design как «вкрапление современного реализма в плоский дизайн, создающий впечатление кучки двумерных плоскостей, плавающих друг над другом на определенных высотах».[16]

Backend as a Service сможет решать кроссплатформенные задачи

По мере того как разработчики сталкиваются с растущим давлением, чтобы создавать привлекательные приложения сразу для нескольких платформ, – веб, Android и iOS, – автономный Backend as a Service (BaaS) становится все более популярным инструментом для наращивания эффективности. Специалист Джессика Вебер пишет, что «основная предпосылка для BaaS – это разработка «API-first»: сначала создается API, что служит базой для создания различных мобильных платформ (iOS, Android, etc.)».

Хотя еще предстоит выяснить, станет ли BaaS главным решением для разработки кроссплатформенных проектов. Все зависит от JavaScript, веб-разработчиков и разработчиков мобильных приложений.

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

2.2 Будущее Российского программирования

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

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

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

Smart Home, голосовой поиск, роботы для уборки по дому, автопилот и прочие подобные технологии – все это искусственный интеллект. Каждая из них уже имеет свое воплощение на рынке. Но это далеко не конец.

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

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

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

Javascript, Python и PHP – самые популярные языки программирования последних лет. Тренды не меняются, поскольку разработчики довольны возможностями этой троицы. Первое место уверенно занимает Javascript, потому советую его изучить, если до сих пор не знакомы. В спину дышит Python. Но он очень слаб для разработки мобильных приложений. Тем не менее, для браузерных веб-сервисов этот язык считают одним из лучших.

Будущее Веб Разработки языки

Рисунок 1. Самые популярные языки программирования.

PHP считают самым худшим языком, потому его попадание в топ – большое удивление. Единственное объяснение – он очень легкий в изучении и использовании. К тому же, он подходит для создания 80% простых веб-сервисов. Смартфоны играют важную роль в нашей жизни. Потому мобильным приложениям необходимо уделять не меньше внимания. Конечно, Javascript хорошо подойдет для их разработки.

Однако самым эффективным языком программирования в данном ключе считается Java.

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

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

Vue внезапно выстрелил лишь в этом году. Тем не менее, он захватил азиатский рынок. Ожидается, что он выйдет на один уровень с React. Xiaomi – один из известных брендов, который полностью перешел на использование Vue.[18]

Svelte.js – фреймворк, который сегодня практически неизвестен. Но многие разработчики изъявляют желание поработать с ним. Высока вероятность, что он выстрелит так же, как и Vue.

Дело в том, что Svelte позволяет создавать приложение, которое займет меньше памяти. Для работы готового продукта код самого фреймворка не нужен. Именно так достигается уменьшенный размер. За это Svelte назвали «исчезающим».

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

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

Будущее Веб Разработки голосовой ввод
Рисунок 2. Механизм работы голосового ввода

К примеру, SEO многих сайтов проводится с учетом голосовых запросов. Дело в том, что текстом мы вводим что-то вроде «интересные места Лондона», но скажем «куда пойти в Лондоне?». Внешне довольно похожие запросы, но их разница очень сильно влияет на индексацию сайтов поисковыми движками.

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

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

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

Один из примеров – сайт автодилера Genesis. Вместо листания сотни страниц пользователь может изучить автомобиль кликами мыши. Более того, функционал позволяет «собрать» свой автомобиль, а именно:

  • выбрать цвет;
  • определить комплектацию;
  • подобрать диски.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Чат-боты – одна из лучших оптимизаций веб-сервисов. Это не будущее, а нынешнее. Но ближайшие несколько лет без них не обойдется ни один проект.

Цель – практичность.

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

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

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

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

2.3 Перспектива развития профессии в области программирования в России

Исходя из перечня технологий, примерно можно понять, какие специалисты с какими навыками будут востребованы — ведь кто-то должен уже сегодня создавать наше технологическое будущее. Но бизнес-сфера огромна, и огромен востребованный стек. Мы прошлись по различным площадкам и выяснили, какие языки программирования будут востребованы в 2018 и ближайшие годы. Получилось любопытно.[19]

Так, согласно рейтингу PYPL (PopularitY of Programming Language) на GitHub, первые 10 языков по частоте поиска учебных материалов выглядят так: Java (21,5%), Python (19,3%), PHP (8,3%), JavaScript (7,9%), C# (7,6%), C (6,3%), C++ (6,3%), R (3,8%), Objective-C (3,8%), Swift (3%). При этом самым растущим в рейтинге оказался Python. Другой рейтинг, основанный на поисковых запросах, TIOBE, показывает похожий результат.


https://habrastorage.org/webt/rg/r_/-v/rgr_-vyhfu24sfyoesstqdkde4s.png
Рисунок 3. Рейтинг языков программирования

Не может в стороне оказаться мнение StackOverflow — там можно посмотреть и рейтинг специалистов, и рейтинг языков.

Опять же, некоторые пересекающиеся тенденции очевидны:
https://habrastorage.org/getpro/habr/post_images/838/675/5ae/8386755aeb3953deef7f68133e3571a0.png

Рисунок 4 Рейтинг специалистов, и рейтинг языков

А вот по статистике пулл реквестов на GitHub самый популярный язык в 2017 году — JavaScript, c огромным отрывом за ним следует Python, далее Java, Ruby, PHP, C++ и т.д.


https://habrastorage.org/getpro/habr/post_images/be0/664/335/be06643351f2a4b32713a2c599127c78.png
Рисунок 5 Рейтинг языков программирования

Начнём с лидера пулл реквестов на Github — c JavaScript. Язык популярен и будет пользоваться популярностью ещё долгое время — это связано с тем, что язык мощный, кроссплатформенный и позволяет разрабатывать приложения, работающие в рамках тонкого клиента (браузера) для взаимодействия с пользователем. Соответственно, пока живы браузеры, будет жить и JavaScript. Популярности языку добавляют гибкие библиотеки, которые появляются почти каждый год и завоёвывают умы миллионов разработчиков. Даже если вы просто мельком просматриваете Хабр, то наверняка видели три из них — React.js. Angular.js и Vue.js. Все три библиотеки востребованы в том числе и энтерпрайзом.

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

Лидер роста — Python. Этот язык популярен сразу по нескольким причинам. Во-первых, он является идеальным, простым, понятным и ёмким языком для новичков. Это едва ли не лучший язык в качестве первой встречи с программированием. А во-вторых, именно Python широко используется в data science, big data, data mining. Это отличное средство для прикладного анализа, разработки парсеров и иных прикладных и научных утилит. Уверены, что этот язык ещё долго будет держаться в топах всех рейтингов.

Java — стандарт энтерпрайзной разработки, основной язык сложных систем, финансового и банковского ПО и, конечно, разработки под Android. И мы в ЛАНИТ как никто знаем, что хорошие Java-разработчики — страшный дефицит, которому компании (и мы в том числе) готовы обеспечивать достойное существование. 

Java — довольно простой язык. Но его экосистема сложна и просто огромна — свободно в ней ориентироваться и владеть всеми технологиями — действительно непростая задача. Это ни что иное, как обратная сторона огромной популярности. Java — язык для энтепрайзной разработки, язык бэкенда для web. 

Работа на С++ — больше системное программирование или что-то очень высокопроизводительное (типа High Frequency Trading на биржах). Либо игры. В бизнес-логике С++ участвует не так часто.  Опять же, если говорить в контексте наших прогнозов по технологиям выше, то что-то требовательное к ресурсам тоже выберет С++ (например, программирование датчиков IoT).

Не сдаёт свои позиции С#. Разработка для платформы Microsoft .NET ведётся, в основном, на нём, C# используется при разработке игрушек на Unity. И здесь также есть перспективы долгой и счастливой работы, ведь достаточно того, что C# — детище гиганта Microsoft, а за счет открытости он постепенно и на другие платформы просачивается. Поэтому эта платформа однозначно имеет перспективы, особенно пока у Microsoft все хорошо.

Ну и отдельно скажем о PHP и Ruby — несмотря на кармопролитные бои сторонников и противников этих языков, они остаются популярными для сферы e-commerce и web-приложений. Здесь больше специалистов, но тем не менее, спрос на рынке труда сохраняется.

Ruby, на наш взгляд, на данный момент становится менее привлекательным. Раньше Python и Ruby шли ноздря в ноздрю, но Python, помимо всего, получил большую поддержку в data science, Python также имеет Django, Flask для бекенда.

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

Если вы не уверены в том, стоит ли изучать язык, просмотрите источники, Google Trends, оцените количество вакансий по каждому из языков. Не забывайте, что есть, например, SQL и noSQL, которые пригодятся в любом проекте и их знание будет весомым преимуществом на карьерном пути. И таких технологий много, можно найти своё для любого уровня подготовки и осмысления. Да, ежегодно (если не ежемесячно) появляются новые языки программирования, которые привлекают новых адептов и ярых противников, но это не значит, что стоит бросаться учить именно тот, который в тренде. 

Конечно, это ближайшее будущее, основанное на трендах, но это не единственные закономерности развития отрасли разработки программного обеспечения. Безусловно, будут появляться новые языки программирования и фреймворки, определятся новые лидеры гонки: думаем, будет много интересного в Go, Scala, Kotlin.

Вот таким пёстрым и разным видится нам 2018 год. Конечно, он будет ещё более технологичным и быстрым. Шагнут вперёд космос и автомобилестроение, промышленность и разработка, будут созданы тысячи игр и новых приложений. А может, появятся новые социальные сети и мессенджеры. И, может, в конце 2018 именно в них мы прочитаем короткую заметку о том, что будущее ускорилось и до полной автоматизации нам не 150 лет, а всего 120. В общем, ждём, когда сбудутся слова песни о том, что вкалывают роботы, счастлив человек.

Заключение

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

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

К первооткрывателям среди языков программирования относится Фортран – это сокращённое сочетание 2 слов: Formula и Translation. Создан уже в середине 50-х. До сих пор язык используется благодаря лёгкости и простоте написания, а также развитой системе библиотек для Фортран. Чаще используется для научных и инженерных подсчётов, а также активно применяется в физичке и остальных науках, связанных с математикой.

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

Список использованной литературы

  1. Алехин, В.А. Микроконтроллеры PIC: основы программирования и моделирования в интерактивных средах MPLAB IDE, mikroC, TINA, Proteus. Практикум / В.А. Алехин. - М.: ГЛТ , 2016. - 248 c.
  2. Ашарина, И.В. Основы программирования на языках С и С++: Курс лекций для высших учебных заведений / И.В. Ашарина. - М.: ГЛТ, 2016. - 208 c.
  3. Биллиг, В.А. Основы программирования на С#: Учебное пособие / В.А. Биллиг. - М.: Бином, 2016. - 483 c.
  4. Богачев, К.Ю. Основы параллельного программирования / К.Ю. Богачев. - М.: Бином, 2015. - 342 c.
  5. Воскобойников, Ю.Е. Основы вычислений и программирования в пакете MathCAD PRIME: Учебное пособие / Ю.Е. Воскобойников и др. - СПб.: Лань, 2016. - 224 c.
  6. Гулиа, Н.В. Основы вычислений и программирования в пакете MathCAD PRIME: Учебное пособие / Н.В. Гулиа, В.Г. Клоков, С.А. Юрков. - СПб.: Лань, 2016. - 224 c.
  7. Культин, Н.Б. Основы программирования в Delphi XE / Н.Б. Культин. - СПб.: BHV, 2016. - 416 c.
  8. Кундиус, В.А. Теоретические основы разработки и реализации языков программирования / В.А. Кундиус. - М.: КноРус, 2015. - 184 c.
  9. Маркин, А.В. Основы web-программирования на PHP / А.В. Маркин, С.С. Шкарин. - М.: Диалог-МИФИ, 2016. - 252 c.
  10. Окулов, С.М. Основы программирования / С.М. Окулов. - М.: Бином. Лаборатория знаний, 2016. - 336 c.
  11. Семакин, И.Г. Основы алгоритмизации и программирования: Учебник для студ. учреждений сред. проф. образования / И.Г. Семакин, А.П. Шестаков. - М.: ИЦ Академия, 2016. - 400 c.
  12. Страуструп, Б. Язык программирования C++: Специальное издание / Б. Страуструп; Пер. с англ. Н.Н. Мартынов. — М.: БИНОМ, 2017. — 1136 c.
  13. Страуступ, Б. Язык программирования С++. Специальное издание / Б. Страуступ. — М.: Бином, 2018. — 1136 c.
  14. Троелсен, Э. Язык программирования С# 5.0 и платформа .NET 4.5 / Э. Троелсен; Пер. с англ. Ю.Н. Артеменко. — М.: Вильямс, 2016. — 1312 c.
  15. Фридман, А.Л. Основы объектно-ориентированного программирования на языке Си++ / А.Л. Фридман. — М.: Гор. линия-Телеком, 2018. — 234 c.
  16. Хейлсберг, А. Язык программирования C#. Классика Computers Science / А. Хейлсберг, М. Торгерсен, С. Вилтамут. — СПб.: Питер, 2016. — 784 c.
  17. Цуканова, Н.И. Теория и практика логического программирования на языке Visual Prolog 7: Учебное пособие для вузов / Н.И. Цуканова, Т.А. Дмитриева. — М.: Гор. линия-Телеком, 2018. — 232 c.
  18. Цуканова, Н.И. Теория и практика логического программирования на языке Visual Prolog 7. Учебное пособие для вузов. / Н.И. Цуканова, Т.А. Дмитриева. — М.: РиС, 2018. — 232 c.
  19. Шохирев, М.В. Язык программирования Perl 5: Учебное пособие / М.В. Шохирев. — М.: БИНОМ. ЛЗ, ИНТУИТ.РУ, 2017. — 279 c.
  20. Шохирев, М.В. Язык программирования Perl 5 / М.В. Шохирев. — М.: Интуит, 2018. — 279 c.
  1. Страуступ, Б. Язык программирования С++. Специальное издание / Б. Страуступ. — М.: Бином, 2018. — 1136 c.

  2. Алехин, В.А. Микроконтроллеры PIC: основы программирования и моделирования в интерактивных средах MPLAB IDE, mikroC, TINA, Proteus. Практикум / В.А. Алехин. - М.: ГЛТ , 2016. - 248 c.

  3. Культин, Н.Б. Основы программирования в Turbo Delphi / Н.Б. Культин. - СПб.: BHV, 2016. - 384 c.

  4. Ашарина, И.В. Основы программирования на языках С и С++: Курс лекций для высших учебных заведений / И.В. Ашарина. - М.: ГЛТ, 2016. - 208 c.

  5. Маркин, А.В. Основы web-программирования на PHP / А.В. Маркин, С.С. Шкарин. - М.: Диалог-МИФИ, 2016. - 252 c.

  6. Черпаков, И.В. Основы программирования: Учебник и практикум для прикладного бакалавриата / И.В. Черпаков. - Люберцы: Юрайт, 2016. - 219 c.

  7. Алехин, В.А. Микроконтроллеры PIC: основы программирования и моделирования в интерактивных средах MPLAB IDE, mikroC, TINA, Proteus. Практикум / В.А. Алехин. - М.: ГЛТ , 2016. - 248 c.

  8. Фридман, А.Л. Основы объектно-ориентированного программирования на языке Си++ / А.Л. Фридман. — М.: Гор. линия-Телеком, 2018. — 234 c.

  9. Цуканова, Н.И. Теория и практика логического программирования на языке Visual Prolog 7: Учебное пособие для вузов / Н.И. Цуканова, Т.А. Дмитриева. — М.: Гор. линия-Телеком, 2018. — 232 c.

  10. Окулов, С.М. Основы программирования / С.М. Окулов. - М.: Бином. Лаборатория знаний, 2016. - 336 c.

  11. Биллиг, В.А. Основы программирования на С#: Учебное пособие / В.А. Биллиг. - М.: Бином, 2016. - 483 c.

  12. Черпаков, И.В. Основы программирования: Учебник и практикум для СПО / И.В. Черпаков. - Люберцы: Юрайт, 2016. - 219 c.

  13. Страуструп, Б. Язык программирования C++: Специальное издание / Б. Страуструп; Пер. с англ. Н.Н. Мартынов. — М.: БИНОМ, 2017. — 1136 c.

  14. Семакин, И.Г. Основы алгоритмизации и программирования: Учебник для студ. учреждений сред. проф. образования / И.Г. Семакин, А.П. Шестаков. - М.: ИЦ Академия, 2016. - 400 c.

  15. Троелсен, Э. Язык программирования С# 5.0 и платформа .NET 4.5 / Э. Троелсен; Пер. с англ. Ю.Н. Артеменко. — М.: Вильямс, 2016. — 1312 c.

  16. Маркин, А.В. Основы web-программирования на PHP / А.В. Маркин, С.С. Шкарин. - М.: Диалог-МИФИ, 2016. - 252 c.

  17. Шохирев, М.В. Язык программирования Perl 5 / М.В. Шохирев. — М.: Интуит, 2018. — 279 c.

  18. Цуканова, Н.И. Теория и практика логического программирования на языке Visual Prolog 7. Учебное пособие для вузов. / Н.И. Цуканова, Т.А. Дмитриева. — М.: РиС, 2018. — 232 c.

  19. Культин, Н.Б. Основы программирования в Turbo C++ / Н.Б. Культин. - СПб.: BHV, 2016. - 464 c.