Блог

История языков программирования: 2000-е

Начало эпохи мобильных устройств.
29 июня 20185 минут2652

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

Языки программирования сыграли важную роль в этих метаморфозах. Узнаем, какие из них появились в первом десятилетии 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 (ограниченной версии языка). Пока 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 веке все изменилось.

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

Big data

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

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

Гонка мобильных вооружений

Чтобы понять, насколько быстро менялись технологии в первом десятилетии 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-х годов: анархическая свобода против бесконечных ограничений, массовость против качества, доступность против безопасности.

Поговорим об этом в следующей статье.

symbianandroidiosbig dataclojurec#java
Нашли ошибку в тексте? Напишите нам.
Спасибо,
что читаете наш блог!
Posts popup