Выбрать главу

Эта часть содержит следующие главы:

• Глава 1. Введение в Crystal.

• Глава 2. Основы семантики и особенности Crystal.

• Глава 3. Объектно-ориентированное программирование.

1. Введение в Crystal

Crystal — безопасный, производительный, объектно-ориентированный язык общего назначения. Он был во многом вдохновлен синтаксисом Ruby, а также средами выполнения Go и Erlang, что позволяет программисту быть очень продуктивным и выразительным при создании программ, которые эффективно работают на современных компьютерах.

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

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

Код, написанный на Crystal, выразителен и безопасен, но он также быстр — очень быстр. После создания он конкурирует с другими языками низкого уровня, такими как C, C++ или Rust. Он превосходит практически любой динамический язык, а также некоторые компилируемые языки. Хотя Crystal является языком высокого уровня, он может без дополнительных затрат использовать библиотеки C, лингва-франка системного программирования.

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

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

В частности, мы затронем следующие темы:

• Немного истории

• Исследование выразительности Crystal

• Программы Crystal также БЫСТРЫ.

• Создание нашей первой программы

• Настройка среды

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

Технические требования

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

• Компьютер Linux, Mac или Windows. В случае компьютера с Windows необходимо включить подсистему Windows для Linux (WSL).

• Текстовый редактор, например Visual Studio Code или Sublime Text. Подойдет любой, но у этих двух есть хорошие готовые к использованию плагины Crystal.

Вы можете получить весь исходный код, используемый в этой главе, из репозитория книги на GitHub по адресу https://github.com/PacktPublishing/Crystal-Programming/tree/main/Chapter01.

Немного истории

Crystal был создан в середине 2011 года в Manas Technology Solutions (https://manas.tech/), аргентинской консалтинговой компании, которая в то время много работала над созданием приложений Ruby on the Rails. Ruby — язык, с которым приятно работать, но его всегда подвергали сомнению из-за недостаточной производительности. Crystal ожил, когда Ари Боренцвейг, Брайан Кардифф и Хуан Вайнерман начали экспериментировать с концепцией нового языка, похожего на Ruby. Это будет статически типизированный, безопасный и компилируемый язык с почти таким же элегантным синтаксисом, как Ruby, но использующий преимущества вывода глобального типа для устранения динамизма во время выполнения. С тех пор многое изменилось, но основные концепции остались прежними.