Nim 2.0 programlama dilinin bir devrimden ziyade bir evrim olması amaçlanıyor, ancak bazı yeni özellikler getiriyor. Derlenmiş ve statik olarak yazılmış programlama dili ilk olarak 2008’de ortaya çıktı ve yaklaşık dört yıl önce 1.0 sürümüne ulaştı. Python, Ada ve Modula gibi diğer dillerden kavramları birleştirir ve geliştirme ekibine göre “verimlilik, ifade ve zarafet” üzerine odaklanır. Mevcut sürüm, diğer şeylerin yanı sıra, tür çıkarımını geliştirmeyi, standart kitaplığı daha da genişletmeyi, Nimble paket yöneticisini 0.14 sürümüne güncellemeyi ve beraberinde Atlas Paket Klonlayıcı’yı getirmeyi hedefliyor.
Duyuru
Yeni demet işleme, tür çıkarımı ve etiketler
Nim 2.0, değişkenler için demet paketini açmayı iyileştirmeyi amaçlamaktadır: artık doğrudan çoklu atamalara genişleyen sözdizimsel şeker olarak ele alınmaktadır. Ayrıca sürüm, değişkenler için iç içe grup paketinin açılmasına izin verir:
proc returnsNestedTuple(): (int, (int, int), int, int) = (4, (5, 7), 2, 3)
# Now nesting is supported!
let (x, (_, y), _, z) = returnsNestedTuple()
Başka bir değişiklik olarak, sürüm, yukarıdan aşağıya çıkarım adı verilen yeni bir tür çıkarım biçimi sunuyor. Geliştirme ekibi bunları birkaç temel durum için tanıttı, örneğin aşağıdaki kod derlemeleri:
let foo: seq[(float, byte, cstring)] = @[(1, 2, "abc")]
Yasaklı etiketler artık etiket takibi ile uğraşırken tanımlanabilir. Sonra pragma var .forbids kullanmak için. Bununla, bazı efektler olabilir proc– Nim ekibi tarafından gösterildiği gibi türleri devre dışı bırakın:
Duyuru
type IO = object ## input/output effect
proc readLine(): string {.tags: [IO].} = discard
proc echoLine(): void = discard
proc no_IO_please() {.forbids: [IO].} =
# this is OK because it didn't define any tag:
echoLine()
# the compiler prevents this:
let y = readLine()
Standart Kitaplık, Nimble ve Atlas
Standart kitaplık büyüdü. Yeni modüller şunları içerir: std/envvars ortam değişkenlerini yönetmek için, std/paths rota yönetimi için, std/cmdline komut satırı parametrelerini okumak için e std/oserrors işletim sistemi hata mesajları için.
Paket yöneticisi Nimble bu arada 0.14 sürümüne ulaştı ve kilit dosyaları desteğiyle birlikte geliyor. Artık kütüphaneler var $nimbleDir/pkgs2 içeride yerine $nimbleDir/pkgs kurtardı. Ayrıca, Nimble dosya biçimini işleyebilen Atlas Paket Klonlayıcı da dahildir. Atlas hakkında daha fazla bilgi, Nim’in gelecekteki sürümleriyle birlikte gelecek.
Nim hakkında daha fazla bilgi edinmek istiyorsanız, özellikle C, Python ve TypeScript/JavaScript geliştiricileri için tasarlanmış belgelerde giriş talimatları bulacaksınız. Dil bir oyun alanında test edilebilir.
Nim’in evrimsel versiyonu hakkında daha fazla ayrıntıyı bir blog gönderisinde bulabilirsiniz.
(Mayıs)
Haberin Sonu
Duyuru
Yeni demet işleme, tür çıkarımı ve etiketler
Nim 2.0, değişkenler için demet paketini açmayı iyileştirmeyi amaçlamaktadır: artık doğrudan çoklu atamalara genişleyen sözdizimsel şeker olarak ele alınmaktadır. Ayrıca sürüm, değişkenler için iç içe grup paketinin açılmasına izin verir:
proc returnsNestedTuple(): (int, (int, int), int, int) = (4, (5, 7), 2, 3)
# Now nesting is supported!
let (x, (_, y), _, z) = returnsNestedTuple()
Başka bir değişiklik olarak, sürüm, yukarıdan aşağıya çıkarım adı verilen yeni bir tür çıkarım biçimi sunuyor. Geliştirme ekibi bunları birkaç temel durum için tanıttı, örneğin aşağıdaki kod derlemeleri:
let foo: seq[(float, byte, cstring)] = @[(1, 2, "abc")]
Yasaklı etiketler artık etiket takibi ile uğraşırken tanımlanabilir. Sonra pragma var .forbids kullanmak için. Bununla, bazı efektler olabilir proc– Nim ekibi tarafından gösterildiği gibi türleri devre dışı bırakın:
Duyuru
type IO = object ## input/output effect
proc readLine(): string {.tags: [IO].} = discard
proc echoLine(): void = discard
proc no_IO_please() {.forbids: [IO].} =
# this is OK because it didn't define any tag:
echoLine()
# the compiler prevents this:
let y = readLine()
Standart Kitaplık, Nimble ve Atlas
Standart kitaplık büyüdü. Yeni modüller şunları içerir: std/envvars ortam değişkenlerini yönetmek için, std/paths rota yönetimi için, std/cmdline komut satırı parametrelerini okumak için e std/oserrors işletim sistemi hata mesajları için.
Paket yöneticisi Nimble bu arada 0.14 sürümüne ulaştı ve kilit dosyaları desteğiyle birlikte geliyor. Artık kütüphaneler var $nimbleDir/pkgs2 içeride yerine $nimbleDir/pkgs kurtardı. Ayrıca, Nimble dosya biçimini işleyebilen Atlas Paket Klonlayıcı da dahildir. Atlas hakkında daha fazla bilgi, Nim’in gelecekteki sürümleriyle birlikte gelecek.
Nim hakkında daha fazla bilgi edinmek istiyorsanız, özellikle C, Python ve TypeScript/JavaScript geliştiricileri için tasarlanmış belgelerde giriş talimatları bulacaksınız. Dil bir oyun alanında test edilebilir.
Nim’in evrimsel versiyonu hakkında daha fazla ayrıntıyı bir blog gönderisinde bulabilirsiniz.
(Mayıs)
Haberin Sonu