1. ekibinin başını çektiği bir programlama dilidir.

    rust, güvenlik anlamında kendisine benzer olarak derlenen ve dillerinin arasında yer alır. go dilinde kod derlenir ancak derlenen içerisine aynı zamanda bir gömülür. yani go'da yazarken belleği pek düşünmezsiniz. bu kimi zaman ya da gibi bellek sorunlarına yol açar. öte yandan c ve dillerinde bellekle ilgili kontrol tamamen sizin elinizdedir. bir verinin ne zaman oluşturulacağı, ne büyüklükte olacağı, ( veya eski tür gibi doğrudan işlemci üzerinde çalışan programlarda) bellekte nereye yazılacağı, ne zaman bellekten düşüleceği gibi her tür kontrol sizdedir. tabi . dolayısıyla c ve c++ gibi dillerde yazılımcının verinin yaşamdöngüsünü iyi takip etmesi gerekir, bu yine sorununa sebep olabilir.

    rust'ta durum biraz daha farklı. bu ikisinin arasında bir yol buluyor. rust'ta veriler, dilin i içerisinde bir yaşamdöngüsüne sahip. bir un başında 'de bir veri mi oluşturdunuz? bu veri o fonksiyonun sonunda düşer (daha doğrusu düşebilir diyelim, bir veri bir 'tan diğerine taşınabilir). dolayısıyla rust'ın bellek yönetimine öngörülebilir bellek yönetimi denilebilir.

    --------

    her şey güzel görünse de bu girdinin yazıldığı tarihte rust aşağıdaki birtakım sorunları barındırıyor.

    ## üçüncü parti ekosistem pek iyi değil ##

    burada kaliteden bahsetmiyorum. aralarında , , gibi çok çok iyi projeler de var. ancak rust görece yeni bir dil olduğu ve öğrenme konusunda büyük bir eşiği olduğu için ekosistem sıkıntılı. kimi projelere bakıyorsun, en son 2 sene önce push almış.

    bir diğer sorun ise yine bu eşikten dolayı belirli alanlarda belirli üçüncü parti çözümlerin yeterli topluluk oluşturamaması. demek istediğim şu:

    + : ya da
    + :
    + veya : ya da
    :
    + :
    + : ya da

    yani bunların belirli güçlü toplulukları var.

    bugün rust'ta var web için mesela, ama ondan önce vardı. örneğin iron, rocket'tan sonra topluluğunu kaybetti sayılır. ondan önce de vardı. yani yarın ne olacağı bilinmez. bakarsın yarın falanca başka bir çözüm çıkar web için, rocket update almamaya başlar. aynısı 'a oldu, şimdi diye bir şey dönüyor (bkz: ).

    keza bunu zaten rust'a özgü birtakım "are we ... yet?' web sitelerinden görebiliyoruz.

    are we web yet?
    are we game yet?
    are we learning yet?
    are we gui yet? (hala doğru düzgün gui çözümü olmaz mı yahu?)

    herhangi bir alan için "henüz şuna hazır mıyız?" gibi platformlar var. henüz pek çok alana tam anlamıyla (production olarak) hazır değil rust. hala yolu var. hele ki öğrenme eşiğini ele alınca, bunun daha da uzun süreceği aşikar.

    ## dinamik kod çalıştırma ##

    çeşitli çözümler var ancak bunlar yukarıdaki anlattığıma kurban gitmiş durumdalar. rust, statik bağımlılıklar konusunda iyi, ancak iş dinamiğe geldiği zaman hiç de konforlu değil.

    bir program yazmak isteseniz ve sistemi oluşturmak isteseniz ve bu plugin sisteminin programatik olması gerekse baya çaba göstermeniz gerekecektir.

    ## öğrenme eşiği ##

    aslında yukarıda az buçuk bahsettim. rust'ın bellek yönetim paradigması, bugüne kadarki pek çok dilden çok çok farklı. bellek yönetimi, dilin içerisine yedirilmiş. bu sebeple değil de deterministik bir bellek yönetimi mevcut. ancak bu, öğrenme aşamanızda sizi çıldırtabiliyor.

    rust'ın ve gibi çeşitli kuralları var ve programı yazarken "hep bu çerçeve içerisinde" düşünmeye zorluyor sizi. yanlış anlamayın, anladıktan sonra paradigma aslında çok tutarlı gelmeye başlıyor. ancak öğrenene kadar canınız çıkıyor. bu sebeple anketlerinde senelerdir en çok sevilen dil olmasına rağmen istediği kitleyi elde edemiyor. insanlar bu dile gidip geliyorlar. geliyorlar, çünkü bellek yönetimi konusunda vaadettikleri ve c ve c++ gibi karmaşık yapıya sahip olmaması çekici farktörleri. gidiyorlar, çünkü yine bu bellek yönetimini öğrenmek fazlasıyla bir zihinsel çaba gerektiriyor.

    bu sebepten dolayı düşük seviye sistem programlama dillerine dalmak isteyen insanlar zaten içinde olan go'ya yöneliyor, çünkü belleği düşünmek zorunda olmuyorsun.

    ## test ##

    rust size test için çok basit bir temel sunuyor. temel testler ikiye ayrılıyor:

    i. birim testleri: rust'ta aynı modül içerisinde yer alan alt modüller şeklinde yazılıyor.
    ii. entegrasyon testleri: projenin temelinde ayrı bir "tests" dizini altında yer alıyor.

    bunun bazı sıkıntıları var.

    aynı modül içerisine alt modül olarak birim testi yazmak kodu "çok uzun" ve navigasyonu zor hale getiriyor. testten test ettiğin birime dönmek için ctrl+f tanrılarından ya da "bookmark" gibi bir eklentiden faydalanmak (ki manuel olarak kodu işaretlemeyi gerektiriyor) gerekiyor.

    entegrasyon testlerinde istenmeyen bazı davranışlar mevcut olabiliyor.

    ayrıca test ile ilgili bazı büyük sıkıntılar da var. örneğin standart testlerde yok. üçüncü parti bir çözüm bulsanız da dilin çok sıkı olan doğası gereği gereksiz bir 'ye sebep olabiliyorsunuz. ayrıca xunit tarzı veya temelli bir test ortamı yok. ama bunları karşılayan üçüncü parti çözümler mevcut tabi.

    kısacası rust'ta test yazmak bir kabusa dönüşebiliyor.
    #183459 neobyte | 5 yıl önce
    0programlama dili 
  2. tamamıyla online odaklı bir oyunu. bunu diğer bir ton oyundan farklı yapan ne? neden bu kadar eğlenceli? diye düşünürken yapımcısının bloguna denk gelmiş, en minik konularda bile ne kadar uzun bir düşünce süreci geçirdiklerini görünce şok olmuştum. kesinlikle oyun geliştirmek üzerine yepyeni bir felsefe edindim. bu yüzden benim için yeri farklı bir oyundur.
    #192415 tetra | 4 yıl önce
    0video oyunu