Gleam – Erlang BEAM virtual mashinasida ishlaydigan, funksional paradigmani qo‘llab‑quvvatlaydigan zamonaviy dasturlash tili, yaqinda v1.17.0 versiyasini e'lon qildi. Ushbu yangilanish eScript fayllarini to‘g‘ridan‑to‘g‘ri yaratish, kompilyatsiya jarayonini tezlashtirish va tip tekshiruvi tizimini yanada mustahkamlash kabi muhim yangiliklarni o‘z ichiga oladi.
Yangi eScript qo‘llab‑quvvatlashi
Gleam 1.17.0 versiyasida escript fayllarini yaratish imkoniyati qo‘shildi. Bu, BEAM platformasida skript‑darajali dasturlarni yozish va ishga tushirishni soddalashtiradi. Dasturchilar endi gleam build buyrug‘i orqali .escript faylini bir necha soniyada yaratib, uni bevosita terminalda ishga tushirishlari mumkin. Bu xususiyat, ayniqsa, tez prototiplash va test muhitlarini yaratishda katta qulaylik beradi.
louis ~/src/my_project $ gleam export escript
Compiling gleam_stdlib
Compiling my_project
Compiled in 0.48s
Your escript has been generated to /home/louis/src/my_project/my_project.
louis ~/src/my_project $ ./my_project
Hello from my_project!
fn to_cartesian(vec) {
// ^^^
let x = vec.rho * cos(vec.theta)
// ^^^ ^^^
let y = vec.rho * sin(vec.theta)
// ^^^ ^^^
#(x, y)
}
Kompilyatsiya tezligi va optimallashtirish
Yangi versiyada kompilyatsiya jarayoni 15 % gacha tezlashdi. Gleam jamoasi, kodni BEAM bytecode ga aylantirishda qo‘llaniladigan ichki algoritmlarni optimallashtirish orqali bu natijaga erishdi. Natijada, katta loyihalarda ham qurilish va qayta‑kompilyatsiya vaqtini sezilarli darajada qisqartirish mumkin.
pub type Pokemon {
Pokemon(number: Int, name: String, hp: Int)
}
pub const cleffa = Pokemon(number: 173)
pub const cleffa = Pokemon(number: 173, name: todo, hp: todo)
Tip tekshiruvi va xatoliklarni aniqlash
Gleamning tip tizimi har doim mustahkam bo‘lishi bilan tanilgan. 1.17.0 versiyasida pattern‑matching va type inference mexanizmlari yanada aniqroq ishlaydi. Endi kompilyatsiya paytida topilgan tip xatoliklari batafsil tavsif bilan ko‘rsatiladi, bu esa dasturchilarga xatolikni tezda tuzatishga yordam beradi.
pub type Person {
Person(name: String, age: Int)
}
pub fn happy_birthday_mom() {
let mom = Person(name: "Antonella", age: 60)
Person(..mom, age: 61)
// ^^^^^ Hovering this will show:
// Unchanged fields:
// - name
}
Yangi standart kutubxonalar
- gleam/crypto – kriptografik funksiyalarni qo‘shish, SHA‑256, HMAC kabi algoritmlarni qo‘llab‑quvvatlash.
- gleam/http – HTTP mijoz va server interfeysi, asinxron so‘rovlarni soddalashtirish.
- gleam/json – JSON serializatsiya va deserializatsiya uchun yangi API.
Ushbu kutubxonalar, Gleam ekotizimini kengaytirib, dasturchilarga ko‘proq real‑dunyo ilovalarini yaratish imkonini beradi.
import gleam/io
pub fn main() -> Nil {
println("Hello, World!")
}
Jamoa va hamjamiyat reaksiyasi
Gleam jamoasi, Hacker Newsda foydalanuvchilar tomonidan 13 ta ball va ijobiy sharhlar oldi. Dasturchilar, ayniqsa, eScript qo‘llab‑quvvatlashi va tezkor kompilyatsiya imkoniyatlarini eng katta afzallik deb ta’kidladilar. Ba’zi foydalanuvchilar esa yangi kutubxonalar bilan ishlashni boshlash uchun qo‘shimcha hujjatlarni kutishadi.
error: Unknown variable
┌─ /path/to/project/src/project.gleam:4:3
│
4 │ println("Hello, World!")
│ ^^^^^^^
The name `println` is not in scope here.
Did you mean one of these:
- io.println
Xulosa
Gleam v1.17.0 versiyasi, funksional dasturlashga qiziqqanlar va BEAM platformasida samarali kod yozishni istaganlar uchun muhim bosqich hisoblanadi. eScript integratsiyasi, tezroq kompilyatsiya va yanada mustahkam tip tekshiruvi, tilning amaliy qo‘llanilishini kengaytiradi. Gleam hamjamiyati bu yangilanishni katta qadam deb baholaydi va kelgusida ham tilni rivojlantirishga intilishni davom ettiradi.
import user as visitor
pub fn main() {
user.to_string(todo)
|> io.println
}