Dasturlash

Gleam v1.17.0 versiyasi: BEAM platformasida yangi funksional imkoniyatlar

3-iyun, 2026, 04:029 ko'rish3 daqiqa o'qish
Gleam v1.17.0 versiyasi: BEAM platformasida yangi funksional imkoniyatlar

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
}
Manba: Hacker News
#Gleam #v1.17.0 #eScript #BEAM #functional programming
Telegram da muhokama qilish