Crystal — об'єктно-орієнтована мова програмування загального призначення. Crystal вимагає наперед визначення типу змінних ще на стадії опису програми. Має схожий з мовою Ruby синтаксис.
Crystal | |
---|---|
Парадигма | Мультипарадигмова: Об'єктно-орієнтоване програмування, рівночасне програмування |
Дата появи | 2014 |
Творці | Ary Borenszweig |
Розробник | Manas Technology Solutions |
Останній реліз | 1.9.2 (19 червня, 2023 ) |
Система типізації | сувора статична |
Основні реалізації | .cr |
Під впливом від | Ruby, C, Rust, Go, C#, Python |
Платформа | Linux, macOS (Homebrew) |
Операційна система | Linux, Mac OS X, Windows, Android |
Ліцензія | Apache License 2.0 |
Звичайні розширення файлів | .cr |
Репозиторій вихідного коду | github.com/crystal-lang/crystal |
Вебсайт | crystal-lang.org |
Історія
Робота над новою мовою програмування була розпочата в червні 2011 року в компанії Manas.
Перші версії компілятора були написані на Ruby. Проте в 2013 році компілятор був цілком написаний на самому Crystal.
В липні 2014 року презентовано перший офіційний реліз мови програмування.
Мета розробників — створити мову таку ж ефективну на стадії проєктування, як і Ruby, але більш ефективну на стадії виконання. Станом на 2016 рік деякі тести показували прискорення у порівнянні з Ruby до 40 разів, а деякі, навпаки, гальмування.
На поточний час мова активно еволюціює.
Приклади
Hello World
Класична програма Hello World на Crystal:
puts "Hello World!"
Або із застосування об'єктно-орієнтованого стилю:
class Greeter def initialize(@name : String) end def salute puts "Hello #{@name}!" end end g = Greeter.new("world") g.salute
HTTP сервер
Приклад опису простого Вебсервера:
require "http/server" server = HTTP::Server.new do |context| context.response.content_type = "text/plain" context.response.print "Hello world! The time is #{Time.now}" end puts "Listening on http://0.0.0.0:8080" server.listen(8080)
TCP echo сервер
Простий сервер відголосу — сервіс, що повторює те що отримав. Як звіичайний відголос.
require "socket" def handle_client(client) message = client.gets client.puts message end server = TCPServer.new("localhost", 1234) while client = server.accept? spawn handle_client(client) end
Примітки
- . Архів оригіналу за 24 травня 2018. Процитовано 30 червня 2018.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title () - . crystal-lang.org. Архів оригіналу за 1 липня 2018. Процитовано 18 лютого 2016.
- . crystal-lang.org. 19 липня 2014. Архів оригіналу за 19 січня 2016. Процитовано 10 грудня 2020.
- . Архів оригіналу за 1 липня 2018. Процитовано 30 червня 2018.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Crystal ob yektno oriyentovana mova programuvannya zagalnogo priznachennya Crystal vimagaye napered viznachennya tipu zminnih she na stadiyi opisu programi Maye shozhij z movoyu Ruby sintaksis CrystalParadigmaMultiparadigmova Ob yektno oriyentovane programuvannya rivnochasne programuvannyaData poyavi2014TvorciAry BorenszweigRozrobnikManas Technology SolutionsOstannij reliz1 9 2 19 chervnya 2023 12 misyaciv tomu 2023 06 19 Sistema tipizaciyisuvora statichnaOsnovni realizaciyi crPid vplivom vidRuby C Rust Go C PythonPlatformaLinux macOS Homebrew Operacijna sistemaLinux Mac OS X Windows AndroidLicenziyaApache License 2 0Zvichajni rozshirennya fajliv crRepozitorij vihidnogo kodugithub com crystal lang crystalVebsajtcrystal lang orgIstoriyaRobota nad novoyu movoyu programuvannya bula rozpochata v chervni 2011 roku v kompaniyi Manas Pershi versiyi kompilyatora buli napisani na Ruby Prote v 2013 roci kompilyator buv cilkom napisanij na samomu Crystal V lipni 2014 roku prezentovano pershij oficijnij reliz movi programuvannya Meta rozrobnikiv stvoriti movu taku zh efektivnu na stadiyi proyektuvannya yak i Ruby ale bilsh efektivnu na stadiyi vikonannya Stanom na 2016 rik deyaki testi pokazuvali priskorennya u porivnyanni z Ruby do 40 raziv a deyaki navpaki galmuvannya Na potochnij chas mova aktivno evolyuciyuye PrikladiHello World Klasichna programa Hello World na Crystal puts Hello World Abo iz zastosuvannya ob yektno oriyentovanogo stilyu class Greeter def initialize name String end def salute puts Hello name end end g Greeter new world g salute HTTP server Priklad opisu prostogo Vebservera require http server server HTTP Server new do context context response content type text plain context response print Hello world The time is Time now end puts Listening on http 0 0 0 0 8080 server listen 8080 TCP echo server Prostij server vidgolosu servis sho povtoryuye te sho otrimav Yak zviichajnij vidgolos require socket def handle client client message client gets client puts message end server TCPServer new localhost 1234 while client server accept spawn handle client client endPrimitki Arhiv originalu za 24 travnya 2018 Procitovano 30 chervnya 2018 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya crystal lang org Arhiv originalu za 1 lipnya 2018 Procitovano 18 lyutogo 2016 crystal lang org 19 lipnya 2014 Arhiv originalu za 19 sichnya 2016 Procitovano 10 grudnya 2020 Arhiv originalu za 1 lipnya 2018 Procitovano 30 chervnya 2018