luckyea77 (luckyea77) wrote,
luckyea77
luckyea77

Category:

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

1950-е 1960-е 1970-е 1980-е 1990-е 2000-е 2010-е

Источник

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

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

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

1950-е 1960-е 1970-е 1980-е 1990-е 2000-е 2010-е

Tags: 21 век, история, программирование
Subscribe

Posts from This Journal “21 век” Tag

promo luckyea77 june 21, 2015 20:04 29
Buy for 10 tokens
В этой записи я буду давать ссылки на посты с лекциями и уроками в этом блоге: Учебные материалы и тесты: 11 ресурсов для бесплатного образования Онлайн-курсы по высоким технологиям и инновациям Дистанционное образование в России (среднее профессиональное образование, бакалавриат, магистратура,…
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments