Доступен язык программирования Crystal 1.0
Автор
Сообщение
news_bot ®
Стаж: 6 лет 3 месяца
Сообщений: 27286
Состоялся релиз языка программирования Crystal 1.0. Выпуск отмечен как первый значительный релиз, который подвёл итоги 8 лет работы и ознаменовал стабилизацию языка и готовность для использования в рабочих проектах. В ветке 1.x будет поддерживаться обратная совместимость и гарантируется отсутствие изменений в языке и стандартной библиотеке, негативно влияющих на сборку и работу существующего кода.
Выпуски 1.0.y будут включать лишь корректирующие исправления, а версии 1.x.0 будут предлагать новую функциональность и значительные изменения, сохраняя при этом совместимостью с кодом. Новые идеи и потенциально несовместимые изменения будут развиваться в отдельной ветке, на базе которой в последующем будет сформирован выпуск Crystal 2.0. Некоторые возможности Crystal 1.0 объявлены как предварительные и несмотря на наличие в ветке 1.0, они не подпадают под официальную поддержку. Среди таких возможностей моногопоточность, работа на платформе Windows, использование на системах с процессорами ARM.
Напомним, что разработчики Crystal пытаются совместить удобство разработки на языке Ruby с высокой производительностью приложений, свойственной языку Си. Синтаксис Crystal близок к языку Ruby, но не полностью совместим с ним, несмотря на то, что без переработки выполняются некоторые ruby-программы. Код компилятора написан на языке Crystal и распространяется под лицензией Apache 2.0.
В языке применяется статическая проверка типов, реализованная без необходимости явного указания типов переменных и аргументов методов в коде. Программы на Crystal компилируются в исполняемые файлы, с вычислением макросов и генерацией кода во время компиляции. В программах на языке Crystal допускается подключение биндингов, написанных на языке Си. Распараллеливание выполнения кода осуществляется при помощи ключевого слова "spawn", которое позволяет запустить фоновую задачу в асинхронном режиме, не блокируя основной поток, в виде легковесных потоков, именуемых фибрами (Fiber).
Стандартная библиотека предоставляет большой набор типовых функций, в том числе средства для обработки CSV, YAML, и JSON, компоненты для создания HTTP-серверов и поддержки WebSocket. В процессе разработки удобно использовать команду "crystal play" которая формирует web-интерфейс (по умолчанию localhost:8080) для интерактивного выполнения кода на языке Crystal.
Основные изменения:
- В кортежах разрешено индексированное обращение к элементам разных типов, так как компилятор имеет информацию о том, какого типа каждый элемент. Например:
tuple = {1, "hello", 'x'}
v = tuple[0..1] # выдаст {1, "hello"}
typeof(v) # => Tuple(Int32, String)
- В строковых и символьных литералах запрещено использование суррогатных сокращений в escape-последовательностях Unicode, таких как "\uD834".
Для кодирования произвольных значений следует использовать нотацию "\x".
- В стандартной библиотеке удалена большая порция определений, макросов и методов, ранее помеченных устаревшими. Включая методы Set, StaticArray#[], YAML.new, HTTP::Request, HTTP::WebSocket,Hash#delete_if, Process#kill и т.д.
- В макросах getter и property теперь обязательно требуется указание возвращаемого типа.
- Метод округления по умолчанию изменён на TIES_EVEN ("округление банкира", до ближайшего целого, а для пограничных ситуаций до ближайшего чётного числа). В Number#round добавлен параметр RoundingMode, позволяющий выбрать метод округления. Среди доступных методов: TIES_EVEN, TIES_AWAY, TO_ZERO, TO_POSITIVE, TO_NEGATIVE.
- В коллекциях обеспечена работа Enumerable#flat_map и Iterator#flat_map с элементами смешанных типов.
- При сериализации последовательностей Enum теперь используются представление в форме строк с подчёркиванием.
- Типы, определённые в модуле XML, переведены с использования struct на class.
- Из соображений безопасности прекращено декодирование имён Cookie, а также кодирование и декодирование значений Cookie (перекодирование переложено на плечи фреймворков и приложений). Метод HTTP::Cookies.from_headers разделён на два варианта для серверов и клиентов.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://crystal-lang.org/2021/...)
- OpenNews: Релиз языка программирования Haxe 4.2
- OpenNews: Анализ зависимости безопасности кода от используемого языка программирования
- OpenNews: Релиз языка программирования Nim 1.4.0
- OpenNews: Выпуск языка программирования Ruby 3.0
- OpenNews: Доступна операционная система Lilith 0.0.5, написанная на языке Crystal
Похожие новости:
- [Высокая производительность, Разработка веб-сайтов, Go, Веб-аналитика] Рейтинг скоростных веб-фреймворков 2020
- Доступена операционная система Lilith 0.0.5, написанная на языке Crystal
- [Разработка веб-сайтов, Программирование, Rust, Kotlin, Elixir/Phoenix] Пять перспективных языков программирования со светлым будущим (3 года спустя)
- [Crystal Dynamics | Rise of the Tomb Raider] [Crystal Dynamics | Tomb Raider (2013)] Square Enix многого ожидала от перезапуска Tomb Raider
- [Crystal Dynamics | Tomb Raider (2013)] «Tomb Raider: Лара Крофт» vs Tomb Raider: Сравнение игры и фильма
- [Crystal Dynamics | Tomb Raider (2013)] «Tomb Raider: Лара Крофт» и Tomb Raider: Игромания сравнивает игру и трейлер
- [Crystal Dynamics, Eidos Montréal, Nixxes Software BV | Tomb Raider (2013)] Алисия Викандер притворяется Ларой Крофт в дебютном трейлере новой экранизации Tomb Raider
- [Crystal Dynamics | The Avengers Project] Тhe Avengers Project может стать онлайновым приключенческим экшеном от третьего лица
- [Crystal Dynamics, Eidos Montréal | Rise of the Tomb Raider] Rise of the Tomb Raider станет ещё краше на Xbox One X — и вот почему
- [Reflections, Ubisoft Montpellier, Ubisoft Milan, Ubisoft Annecy, Ubisoft Bucharest, Ubisoft Paris | Tom Clancy's Ghost Recon: Wildlands] [Guerrilla | Horizon: Zero Dawn] [Blue Byte, Ubisoft Montreal, Ubisoft Toronto, Ubisoft Quebec | For Honor] [Team Ninja | NiOh] [EA DICE | Battlefield 1] [EA DICE, Uprise | Star Wars: Battlefront (2015)] [Crystal Dynamics, Eidos Montréal | Rise of the Tomb Raider] [Rockstar North, Rockstar San Diego, Rockstar Leeds | Grand Theft Auto V] Days of Play — ваш шанс отхватить годовую подписку PlayStation Plus и игры в PlayStation Store со скидками
Теги для поиска: #_crystal
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 18-Май 02:45
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 3 месяца |
|
Состоялся релиз языка программирования Crystal 1.0. Выпуск отмечен как первый значительный релиз, который подвёл итоги 8 лет работы и ознаменовал стабилизацию языка и готовность для использования в рабочих проектах. В ветке 1.x будет поддерживаться обратная совместимость и гарантируется отсутствие изменений в языке и стандартной библиотеке, негативно влияющих на сборку и работу существующего кода. Выпуски 1.0.y будут включать лишь корректирующие исправления, а версии 1.x.0 будут предлагать новую функциональность и значительные изменения, сохраняя при этом совместимостью с кодом. Новые идеи и потенциально несовместимые изменения будут развиваться в отдельной ветке, на базе которой в последующем будет сформирован выпуск Crystal 2.0. Некоторые возможности Crystal 1.0 объявлены как предварительные и несмотря на наличие в ветке 1.0, они не подпадают под официальную поддержку. Среди таких возможностей моногопоточность, работа на платформе Windows, использование на системах с процессорами ARM. Напомним, что разработчики Crystal пытаются совместить удобство разработки на языке Ruby с высокой производительностью приложений, свойственной языку Си. Синтаксис Crystal близок к языку Ruby, но не полностью совместим с ним, несмотря на то, что без переработки выполняются некоторые ruby-программы. Код компилятора написан на языке Crystal и распространяется под лицензией Apache 2.0. В языке применяется статическая проверка типов, реализованная без необходимости явного указания типов переменных и аргументов методов в коде. Программы на Crystal компилируются в исполняемые файлы, с вычислением макросов и генерацией кода во время компиляции. В программах на языке Crystal допускается подключение биндингов, написанных на языке Си. Распараллеливание выполнения кода осуществляется при помощи ключевого слова "spawn", которое позволяет запустить фоновую задачу в асинхронном режиме, не блокируя основной поток, в виде легковесных потоков, именуемых фибрами (Fiber). Стандартная библиотека предоставляет большой набор типовых функций, в том числе средства для обработки CSV, YAML, и JSON, компоненты для создания HTTP-серверов и поддержки WebSocket. В процессе разработки удобно использовать команду "crystal play" которая формирует web-интерфейс (по умолчанию localhost:8080) для интерактивного выполнения кода на языке Crystal. Основные изменения:
=========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 18-Май 02:45
Часовой пояс: UTC + 5