Хочу всё знать. Язык Ring

Совсем молодой, но очень перспективный.
02 марта 2018ThumbИлья Бубнов436229

Год назад я написал небольшую статью о юных языках программирования, которую завершал малоизвестный, но звучный язык Ring (официально the Ring, но эту формальность в дальнейшем мы опустим). Тогда он едва появился на свет, а сегодня уже восседает на 45-м месте рейтинга TIOBE, по соседству с Rust, Kotlin и Haskell, и опережая Hack и Julia, которые тоже были в том списке. Чем не повод познакомиться с ним чуть поближе?

Так ли он хорош

Когда в рейтинге TIOBE появляется новый язык, сразу возникает вопрос: «Действительно ли он хорош? Или это просто стечение обстоятельств?». На примере Go мы уже могли убедиться, что метод составления рейтинга портала (сбор статистики с поисковиков) часто не соответствует реальному положению дел.

Для прояснения лучше обратиться к создателю и программистам, а это прямая дорога на Quora. Вот здесь вторыми был вынесен единогласный приговор – Ring абсолютно ненужный язык, да и ещё и обладающий рядом недостатков. О некоторых из них мы поговорим ниже, но для полной аргументации советую сходить по ссылке. В противовес этому мнению, всё на той же Quora активничает Махмуд Самир Файед, создатель Ring, который с удовольствием вам объяснит, чем язык хорош, и почему вам стоит его попробовать.

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

Плюсы

Легкость изучения. Главная идея языка – ещё больше упростить процесс программирования. К примеру, здесь есть динамическая типизация, и вот как она работает:

Результат выражения «Print:»+5 будет определен как строка, потому что на первом месте стоит тип String. 5+«10» – это уже целое число, так как сначала идёт тип Integer, а «10» этому типу не противоречит, несмотря на запись в скобках.

Кроме того, язык не чувствителен к регистру, не требует соблюдения структуры программы, имеет множество конструкций, способных дублировать друг друга. Последнее является желанием по максимуму внедрить «естественность», то есть соответствие синтаксиса разговорному английскому языку. К примеру, вы можете написать «See “Hello, World!” + nl» или «Put “Hello, World!” + nl» или «print(“Hello, World! \n”)» - результат будет один.

Библиотеки. Здесь их не так много, но они довольно мощные и позволяют решать широкий спектр задач: веб, игры, вычисления, мобильные приложения. Для молодого языка это огромный плюс. Кроме того, для Ring есть среда разработки и редактор кода.

Скорость. Согласно официальной информации, Ring «очень быстр». Причина – компилятор и виртуальная машина написаны на ANSI C и занимают всего 15 тысяч строк. Для повышения производительности вашей программы можно подключить библиотеки или фрагменты кода, написанные на C / C++.

Поддержка. Ещё небольшой бонус – связаться с создателями языка очень просто. Они обитают на Quora, CodeProject, GitHub, Google Groups. Ну а если понадобится срочно решить какой-то вопрос по языку, пишите прямо в Facebook. Махмуд Самир Файед прикладывает огромные усилия по развитию и популяризации языка, обновления регулярные (раз в 2 месяца) и редко носят косметический характер.

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

Минусы

Неоднозначные упрощения. Любой программист со знанием нескольких языков и парой-тройкой лет опыта за плечами, глядя на Ring, задаётся вопросом: «Зачем?». Одни упрощения Ring совсем не уникальны, другие – спорны. Взять, к примеру, отсутствие зависимости от регистра. Это удобно, если вы пишете небольшой код, но, когда это тысячи строк от разных разработчиков, читать хаос становится очень сложно. Более того, у Ring даже нет свода правил по оформлению кода. Представьте: новичок будет штамповать код без табуляций и регистров, с переменным использованием дублирующих функций. Вряд ли он вынесет много пользы из изучения Ring.

Литература. Так как Ring – молодой язык, который не имеет мощного покровителя, вы не найдёте о нём ни книг в магазине, ни разношерстных курсов в интернете. Всё, на что вы можете рассчитывать – официальный сайт. И здесь у языка большая проблема. Дело в том, что  ring-lang.net больше походит на творение школьника, чем на детище профессионального разработчика.

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

Перспективы. Несмотря на серьёзное достижение в плане популярности поисковых запросов, трудно поверить, что Ring станет действительно востребованным. Он может быть полезен как инструмент для решения локальных задач: обучения, создания простых приложений, 2D-игр. Но чтобы заменить Java, Python или хотя бы Lua, ему потребуется пройти долгий путь:

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

И тем не менее взлёт the Ring – не случайность, он вполне вписывается в современную тенденцию на упрощение синтаксиса и широкую функциональность. Однако дальнейшие перспективы зависят от того, насколько критично создатели Ring подойдут к своему творению. Проработают концепцию – язык станет следующим шагом в обучении программированию после Scratch. Но если нет – Махмуд Самир Файед может начинать браться за разработку следующего языка.

Новые комментарии

Спасибо,
что читаете наш блог!
Posts popup