Crystal 0.34.0 dikeluarkan

Versi baharu Crystal telah dikeluarkan, bahasa pengaturcaraan yang disusun dengan sintaks Ruby, ciri utamanya ialah masa jalan dengan gelung acara "terbina dalam", di mana semua operasi I/O adalah tak segerak, sokongan untuk multithreading (selagi kerana ia didayakan oleh bendera semasa penyusunan) dan operasi yang sangat mudah dan mudah dengan perpustakaan dalam C.

Bermula dengan versi 0.34.0, bahasa secara rasmi mula bergerak ke arah keluaran sebenar pertamanya (iaitu versi 1.0).

Versi baharu Crystal termasuk perubahan dan penambahbaikan berikut mengikut urutan kepentingan:

  • Pustaka pengelogan baharu telah ditambahkan pada API Log, yang, tidak seperti yang lama, boleh menghantar mesej ke hujung belakang yang berbeza dan menapis mesej ini secara berbeza bergantung pada "sumber".

  • Asas dari dunia pembangunan C, Errno ΠΈ WinError, yang digunakan untuk primitif I/O, menjadi sesuatu yang ketinggalan zaman berkat hierarki pengecualian IO::Ralat (namun, tiada siapa yang melarang menggunakan Errno lagi).

  • Mengalih keluar penggantian automatik else nil daripada operator kes/bila/lain. Ini dilakukan untuk mengelakkan pemaju melangkau salah satu cawangan secara tidak sengaja. apabila apabila memadankan pada kes deterministik seperti enum dan melalui jenis daripada Union. Maksudnya, secara ringkasnya, kod ini tidak akan berfungsi lagi tanpa menyatakan satu lagi apabila (apabila Char) atau tugasan lagi-cawangan:

a = 1 || 'x' || "foo"
kes a
apabila Int32
#…
apabila String
#…
akhir

  • Pilihan pengkompil disable_overflow tiada lagi. Untuk operasi limpahan, gunakan kaedah &+, &-, &*.

  • Tatasusunan#isi kini terbang lebih pantas daripada peluru, terima kasih kepada menggantikan gelung bodoh dengan satu memset mudah;

  • Pengurus serpihan (pakej), dipanggil, secara paradoks, shards, kini menggunakan algoritma kepuasan pergantungan Molinillo yang lebih pantas dan lebih cekap yang terdapat dalam CocoaPods (Swift) dan Builder (Ruby).

  • Menambah sokongan LLVM 10, yang secara teorinya akan memberi kita sedikit peningkatan dalam produktiviti, kestabilan, dsb.

... dan banyak lagi, pada pendapat subjektif saya, peningkatan yang kurang ketara.

Saya ingin ambil perhatian bahawa Crystal adalah bahasa yang dibina di atas LLVM, yang membolehkan anda menulis aplikasi kadang-kadang lebih cepat, lebih ringkas dan lebih ringkas daripada pada "saudara" yang ditafsirkan, dan pada masa yang sama mendapat binari yang agak pantas sebagai hasilnya. Berbanding dengan Golang, ia menonjol kerana OOP sepenuhnya sepenuhnya, sokongan untuk generik dan sintaks yang sangat mudah dan boleh difahami. Tujuannya hampir sama dengan Nim, tetapi pada masa yang sama ia jelas tertumpu pada penggunaan praktikal "di sini dan sekarang", kerana ia mempunyai dalam senjata APInya banyak alat yang didokumentasikan dengan baik, mudah dan berkualiti tinggi, disokong oleh pembangun bahasa dan oleh itu sangat stabil.

Sumber: linux.org.ru

Tambah komen