Crystal (мова програмування)

Crystal
ПарадигмаМультипарадигмова: Об'єктно-орієнтоване програмування, рівночасне програмування
Дата появи2014
ТворціAry Borenszweig
РозробникManas Technology Solutions
Останній реліз1.9.2 (19 червня, 2023; 18 місяців тому (2023-06-19))
Система типізаціїсувора статична
Основні реалізації.cr
Під впливом відRuby, C, Rust, Go, C#, Python
ПлатформаLinux, macOS (Homebrew) [1]
Операційна системаLinux, Mac OS X, Windows, Android
ЛіцензіяApache License 2.0
Звичайні розширення файлів.cr Редагувати інформацію у Вікіданих
Репозиторій вихідного кодуgithub.com/crystal-lang/crystal Редагувати інформацію у Вікіданих
Вебсайтcrystal-lang.org

Crystalоб'єктно-орієнтована мова програмування загального призначення. Crystal вимагає наперед визначення типу змінних ще на стадії опису програми. Має схожий з мовою Ruby синтаксис.

Історія

Робота над новою мовою програмування була розпочата в червні 2011 року в компанії Manas.

Перші версії компілятора були написані на Ruby. Проте в 2013 році компілятор був цілком написаний на самому Crystal[2].

В липні 2014 року презентовано перший офіційний реліз мови програмування.[3]

Мета розробників — створити мову таку ж ефективну на стадії проєктування, як і Ruby, але більш ефективну на стадії виконання. Станом на 2016 рік деякі тести показували прискорення у порівнянні з Ruby до 40 разів, а деякі, навпаки, гальмування[4].

На поточний час мова активно еволюціює.

Приклади

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

Примітки

  1. Архівована копія. Архів оригіналу за 24 травня 2018. Процитовано 30 червня 2018.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  2. Crystal. crystal-lang.org. Архів оригіналу за 1 липня 2018. Процитовано 18 лютого 2016.
  3. Crystal 0.1.0 released. crystal-lang.org. 19 липня 2014. Архів оригіналу за 19 січня 2016. Процитовано 10 грудня 2020.
  4. An Introduction to Crystal: Fast as C, Slick as Ruby. Архів оригіналу за 1 липня 2018. Процитовано 30 червня 2018.

Read other articles:

Bagian dari seriSaksi-Saksi Yehuwa Ikhtisar Struktur organisasi Badan Pimpinan Watch Tower Bibleand Tract Society Badan usaha Sejarah Gerakan Siswa Alkitab Sengketa kepemimpinan Kelompok-kelompok pecahan Perkembangan doktrin Prediksi-prediksi keliru Demografi Menurut negara-negara KepercayaanRitual KeselamatanEskatologi 144.000 Hamba yang setia dan bijaksana HymneNama Tuhan DarahDisiplin Literatur Menara PengawalSadarlah! Kitab Suci Terjemahan Dunia Baru Daftar publikasi Daftar pustaka Progra...

 

High-performance endurance racing car This article is about the 1960s Le Mans-winning racing car. For the supercar inspired by it, see Ford GT. For the graphic computer terminal produced by Digital Equipment Corporation, see DEC GT40. For other uses, see Ford GT (disambiguation). Motor vehicle Ford GT40OverviewManufacturerFord Advanced VehiclesJohn Wyer Automotive EngineeringKar KraftShelby AmericanProduction1964-1969[1]105 produced[2]AssemblyUnited Kingdom: Slough (Mk I, Mk I...

 

Pour les articles homonymes, voir Janvier (homonymie). Janvier Janvier, extrait des Très Riches Heures du duc de Berry (vers 1410-1416), musée Condé, Chantilly, ms.65, f.1. Éphémérides 1er 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31         décembre février modifier Janvier est le premier mois des calendriers grégorien et julien, l'un des sept mois possédant 31 jours. Nom Étymologie Le nom de janvier provient du nom latin d...

Ini adalah nama Papua (Amungme), marganya adalah Anggaibak Andreas Anggaibak Informasi pribadiLahirAndreas Ubertus Anggaibak(1953-12-26)26 Desember 1953Kabupaten MimikaMeninggal9 Juli 2018(2018-07-09) (umur 64)Timika, Kabupaten MimikaSebab kematianpenyakit ginjal dan diabetesKewarganegaraan IndonesiaKebangsaan IndonesiaSuami/istriEster Nunaki (istri)HubunganAgustinus Anggaibak (adik kandung)Anak Andi Marco Anggaibak Patri Bella Anggaibak Fictor Arnold Anggaibak Monika Okto...

 

Carbendazim[1] Names Preferred IUPAC name Methyl (1H-1,3-benzimidazol-2-yl)carbamate Other names MercarzoleCarbendazole Identifiers CAS Number 10605-21-7 Y 3D model (JSmol) Interactive image ChEBI CHEBI:3392 N ChEMBL ChEMBL70971 Y ChemSpider 23741 Y ECHA InfoCard 100.031.108 KEGG C10897 Y PubChem CID 25429 RTECS number DD6500000 UNII H75J14AA89 Y CompTox Dashboard (EPA) DTXSID4024729 InChI InChI=1S/C9H9N3O2/c1-14-9(13)12-8-10-6-4-2-3-5-7(6)11-8/h2-5H,1H3...

 

Jean Léopold de Saxe-Cobourg et Gotha Jean-Léopold de Saxe-Cobourg et Gotha en 1916.Titre Prince héritier de Saxe-Cobourg et Gotha 2 août 1906 – 9 mars 1932(25 ans, 7 mois et 7 jours) Données clés Prédécesseur Arthur de Connaught Successeur Hubertus de Saxe-Cobourg et Gotha Biographie Titulature Prince de Saxe-Cobourg et GothaDuc de Saxe Dynastie Maison de Saxe-Cobourg-Gotha Nom de naissance Johann Leopold Wilhelm Albert Ferdinand Viktor von Sachsen-Coburg und Gotha ...

American indie rock band This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Sparklehorse – news · newspapers · books · scholar · JSTOR (December 2008) (Learn how and when to remove this message) SparklehorseBackground informationOriginRichmond, Virginia, U.S.Genres Indie rock[1] alternative rock[2&#...

 

DeShone Kizer Kizer nel 2017 Nazionalità  Stati Uniti Altezza 193 cm Peso 106 kg Football americano Ruolo Quarterback Squadra Free agent CarrieraGiovanili 2014-2016 Notre Dame Fighting IrishSquadre di club 2017 Cleveland Browns2018 Green Bay Packers2019-2020 Oakland/L.V. Raiders2020-2021 Tennessee Titans Statistiche Partite 16 Partite da titolare 16 Yard passate 2.894 Touchdown passati 11 Intercetti subiti 22 Passer rating 60,5 Statistiche aggiornate al 21 giugn...

 

هنودمعلومات عامةنسبة التسمية الهند التعداد الكليالتعداد قرابة 1.21 مليار[1][2]تعداد الهند عام 2011ق. 1.32 مليار[3]تقديرات عام 2017ق. 30.8 مليون[4]مناطق الوجود المميزةبلد الأصل الهند البلد الهند  الهند نيبال 4,000,000[5] الولايات المتحدة 3,982,398[6] الإمار...

尤睦佳·泽登巴尔Юмжаагийн Цэдэнбал1970年代时的尤睦佳·泽登巴尔蒙古人民革命党中央委员会总书记任期1958年11月22日—1984年8月24日前任达希·丹巴(第一书记)继任姜巴·巴特蒙赫任期1940年4月8日—1954年4月4日前任达希·丹巴(第一书记)继任达希·丹巴(第一书记)蒙古人民共和國部長會議主席任期1952年1月26日—1974年6月11日前任霍尔洛·乔巴山继任姜巴·巴特蒙赫�...

 

「アプリケーション」はこの項目へ転送されています。英語の意味については「wikt:応用」、「wikt:application」をご覧ください。 この記事には複数の問題があります。改善やノートページでの議論にご協力ください。 出典がまったく示されていないか不十分です。内容に関する文献や情報源が必要です。(2018年4月) 古い情報を更新する必要があります。(2021年3月)出...

 

Lo stato del Paraguay ricoperto dai colori della bandiera arcobaleno Le persone lesbiche, gay, bisessuali e transgender (LGBT) in Paraguay possono affrontare molteplici difficoltà. Sia l'omosessualità maschile che quella femminile sono legali in Paraguay, ma le coppie dello stesso sesso e le famiglie guidate da coppie dello stesso sesso non hanno diritto ed alcuna tutela. Indice 1 Leggi sull'attività sessuale tra persone dello stesso sesso 2 Riconoscimento delle relazioni tra persone dello...

Conquest dating from 1511 to 1697 Conquistador Pedro de Alvarado led the initial efforts to conquer Guatemala.[1] vteSpanish conquestof the Maya Chiapas Guatemala Petén Yucatán vteSpanish colonial campaigns 15th century Canary Islands (1402–96) Santa Cruz de la Mar Pequeña (1478) Guinea (1478) Algeria (1497) Melilla (1497) 16th century Algeria (1505) Algeria (1507) Morocco (1508) Algeria (1509) Algeria (1510) Tripoli (1510) Tunisia (1510) Puerto Rico (1511–29) Algeria (1516) Al...

 

Pour les articles homonymes, voir Tronc. Cet article est une ébauche concernant la médecine, la biologie et la zoologie. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants. Tronc cœliaqueLe tronc cœliaque et ses branches.DétailsOrigine AorteBranches Artère gastrique gauche,Artère splénique,Artère hépatique communeVeine associée Veine spléniqueIdentifiantsNom latin truncus coeliacus, arteria coeliacaMeSH ...

 

У этого термина существуют и другие значения, см. Роковая женщина (значения). Элис Эйс и Бёрт Френч в фильме «Вампир» 1913 года Роковая женщина (фр. la femme fatale), вамп — распространённый в литературе и кино образ сексапильной женщины, которая манипулирует мужчинами посред�...

USS Corvina (SS-226) Спуск на воду ПЛ «Корвина». 9 мая 1943 года. История корабля Государство флага  США Спуск на воду 9 мая 1943 Выведен из состава флота 14 марта 1944 Современный статус потоплена 16 ноября 1943 года к югу от лагуны Трук японской подлодкой I-176[англ.] Основные характеристики ...

 

Darryl Lachman Lachman bersama PEC Zwolle pada 2014Informasi pribadiNama lengkap Darryl Brian Ricky Lachman[1]Tanggal lahir 11 November 1989 (umur 34)[2]Tempat lahir Amsterdam, BelandaTinggi 1,89 m (6 ft 2+1⁄2 in)[2]Posisi bermain BekInformasi klubKlub saat ini Perth GloryNomor 29Karier junior Hellas Sport HFC Haarlem2006–2008 Ajax2008–2009 GroningenKarier senior*Tahun Tim Tampil (Gol)2009–2011 Groningen 8 (0)2011–2014 PEC Zwolle 91 (...

 

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Februari 2023. Geo-Informatics and Space Technology Development Agency (Public Organization) (Thai: สำนักงานพัฒนาเทคโนโลยีอวกาศและภูมิสารสนเทศ (องค์การมหาชน))...

Directorate-General of Personnel Administration人事行政總處Rénshì Xíngzhèng Zǒngchù (Mandarin)Ngìn-sṳ Hàng-chṳn Chúng-chhú (Hakka)Logo of the DGPAAgency overviewFormed16 September 1967JurisdictionRepublic of China (Taiwan)HeadquartersZhongzheng, TaipeiMinisters responsibleSu Chun-jung, MinisterHwai Hsu, Lee Ping-chou, Deputy MinistersParent agencyExecutive YuanWebsitewww.dgpa.gov.tw Directorate-General of Personnel Administration The Directorate-General of Personnel Admini...

 

マイスナー効果・ピン止め効果によリ、超伝導体の上に浮かぶ磁石 超伝導(ちょうでんどう、英: superconductivity)とは、電気伝導性物質(金属や化合物など)が、低温度下で、電気抵抗が0へ転移する現象・状態を指す(この転移温度を超伝導転移温度と呼ぶ)。1911年、オランダの物理学者ヘイケ・カメルリング・オンネスが実験で発見した。 超伝導状態下では、マ�...