Jump to page: 1 2
Thread overview
D dili bir better C++ alternatifi mi ve yahut kendine ozgu paradigmalari var mi
Oct 14, 2022
Erdem
Oct 14, 2022
Ali Çehreli
Oct 15, 2022
Salih Dincer
Oct 20, 2022
Erdem
Oct 20, 2022
Kerim
Oct 21, 2022
Salih Dincer
Oct 20, 2022
Kerim
Oct 20, 2022
Ali Çehreli
Oct 21, 2022
Erdem
Oct 21, 2022
Ali Çehreli
Oct 21, 2022
Erdem
Oct 21, 2022
Ali Çehreli
Oct 22, 2022
Salih Dincer
October 14, 2022

D ye ilk basladigimda konferanslarda tartisilan ranges, purity, CTFE gibi seylerin benim ne kadar ilgimi cektigini hatirliyorum. Hic bir zaman D kadar guzel olmayacaksa bile C++ bu konularda ilerlemeler gosteriyor kendi kanimca. C++ arayi kaparken yeni ilgi cekici paradigmalarin D'de tartisilmasi mesafeyi korurdu ama son senelerde(ozellikle bu seneki konferans) ilginin import C ve import C++ gibi cok onemli fakat D'yi farkli kilmayacak konular oldugunu gozlemliyorum.

Bir taraftan Rust'a biraz baktigimda ownership, borrow checker, life times gibi gercekten C ve C++'dan farkli buldugum konular oldugunu gozlemliyorum.

Uzun yorumlardan sonra sorularimi sorayim sonunda.

Acaba D dilinin kendine ozgu olan ozellikleri var mi yoksa "go" ve "cargo" gibi "better C++" alternatifi mi ?

Eger D bir C++ alternatifi ise acaba C++ arayi kaparken(bu benim yorumum cogu ihtimalle yanlistir) ve D'nin eskiye oranla muthis ozellikler getirememesi( bu da benim yorumum kesin yanlistir sadece konferanslardan cikartiyorum lutfen duzeltin)
D'yi uzun vadede daha az gecerli kilacakmidir?

Erdemdem

October 14, 2022
On 10/14/22 01:01, Erdem wrote:

> C++ bu konularda ilerlemeler gosteriyor

Kesinlikle.

> Bir taraftan Rust'a biraz baktigimda ownership, borrow checker, life
> times gibi gercekten C ve C++'dan farkli buldugum konular oldugunu
> gozlemliyorum.

D'nin gelmekte olan olanakları onlarla ilgili:

- DIP 1000 blog yazılarından ikincisi yeni yayınlanmıştı:


https://dlang.org/blog/2022/10/08/dip1000-memory-safety-in-a-modern-systems-programming-language-part-2/

- @live da henüz deneysel düzeyde:

  https://dlang.org/spec/ob.html

> Acaba D dilinin kendine ozgu olan ozellikleri var mi

Tamamen kendine özgü özellikleri yok. Varsa da insanların dikkatini çekecek kadar önemli görülmüyor herhalde: modüller, aralıklar, UFCS, unittest, static foreach, std.traits, __traits, templates, vs. bir arada çok güçlü çözümler sunuyorlar ama her birisi başka dillerde de var... diyeceğim ama galiba unittest başka dilde yok. (?)

Ben D'nin durumunu geçende şu saydamda anlatmaya çalıştım:

  https://youtu.be/0JL9uT_XGZE?t=700s

D'nin kendisini güçlü bir biçimde sınıflandırdığı olanaklar bulunmuyor.

Ondan sonra gelen saydamlar da D'nin genel bir tanıtımını yapıyorlar. Görüldüğü gibi, hepsi başka dillerde de var.

Ali

October 15, 2022

On Friday, 14 October 2022 at 21:49:39 UTC, Ali Çehreli wrote:

>

On 10/14/22 01:01, Erdem wrote:

>

Acaba D dilinin kendine ozgu olan ozellikleri var mi

Tamamen kendine özgü özellikleri yok. Varsa da insanların dikkatini çekecek kadar önemli görülmüyor herhalde: modüller, aralıklar, UFCS, unittest, static foreach, std.traits, __traits, templates, vs. bir arada çok güçlü çözümler sunuyorlar ama her birisi başka dillerde de var... diyeceğim ama galiba unittest başka dilde yok. (?)

Sadece cahilane bir şekilde söyleyebilirim ki (iddia mı kanıtlayamam, çünkü D'ye hakim olduğum kadar diğer dilleri çok iyi bilmiyorum) Ali hocanın saydığı olanakların yarısından fazlası D'ye özgüdür.

En basitten şablon imkanı için özel bir sözdizimi bilmenize gerek yoktur ve müthiş bir imkanı olduğunu düşünüyorum. Modül sistemi, package import ve derleme anında yapılan (meta programming) işlemlerin fazlalığı büyüleyicidir. Hatta derleyicinin dosya sonundan yukarıya parse etmesi, kapsam özellikleri ve hata kodlarına (önerilere) kadar eşsizdir.

D sessiz ilerlerken C++ ayağını vurarak gürültü çıkarıyor ve tepsideki her şey dökülüyor. Oysa geri kalmayan ve sağlam adımlar atan (geri çevrilen iyi hazırlanmış DIP'lere bir bakın!) modern bir dildir D.

Sadece biraz yaygımlaşmalı...

October 20, 2022

Aslinda benimkine benzer bir soru surdada sorulmus:

https://youtu.be/KlRGn9_HrME?t=1899

Walter Reis cevap vermis.

October 20, 2022

On Friday, 14 October 2022 at 21:49:39 UTC, Ali Çehreli wrote:

>

... diyeceğim ama galiba unittest başka dilde yok. (?)

Rust ve Zig'in D unittest tarzı özellikleri var:

October 20, 2022

On Saturday, 15 October 2022 at 14:55:50 UTC, Salih Dincer wrote:

>

Oysa geri kalmayan ve sağlam adımlar atan (geri çevrilen iyi hazırlanmış DIP'lere bir bakın!) modern bir dildir D.

Şimdilik öyle ancak diğer dillerin yetişip geçmesine az kaldı. Sistem programlama tarafından Zig, uygulama / backend programlama tarafından C# sürekli eklenen kullanışlı özelliklerle D'nin yerine tamamen geçebilecek şekilde konumlanıyorlar.

D'ye eklenmesi gereken şeyler var (pattern matching / tagged union gibi) ancak "çok güçlü metaprogramming / template desteğimiz var, dolayısıyla her şey kütüphane olmalı" kafa yapısından ve geçmişe yönelik desteği bırakmaya direncinden dolayı geride kalmaya çok yakın.

Keşke D 3.0 gibi bir güncelleme olsa, dediğim özellikler eklense, tüm fonksiyonlar @safe olsa ve libc'ye olan bağımlılık ortadan kalksa. Hatta Nim ve Swift gibi @live'ın avantajlarını değerlendirecek olan ARC'a bile geçiş yapılabilir, böylece D sistem programlama işlerinde çok daha kullanışlı hale gelir ve insanlar @nogc diye bas bas bağırmayı sonunda bırakabilir.

October 20, 2022
On 10/20/22 14:03, Kerim wrote:
> On Friday, 14 October 2022 at 21:49:39 UTC, Ali Çehreli wrote:
>> ... diyeceğim ama galiba unittest başka dilde yok. (?)
> 
> Rust ve Zig'in D unittest tarzı özellikleri var:
> - Zig -> https://ziglang.org/documentation/master/#toc-Test-Declarations
> - Rust -> https://doc.rust-lang.org/book/ch11-01-writing-tests.html

Hatta, ben de Rust'ın testlerini o dili kullandığım kısa sürede öğrenmiştim. #[cfg(test)] ve #[test] gerekliliği karışıklık yaratmıştı ama sonunda kullanabilmiştim. :)

Ali

October 21, 2022

On Thursday, 20 October 2022 at 21:03:57 UTC, Kerim wrote:

>

Keşke D 3.0 gibi bir güncelleme olsa, dediğim özellikler eklense, tüm fonksiyonlar @safe olsa ve libc'ye olan bağımlılık ortadan kalksa. Hatta Nim ve Swift gibi @live'ın avantajlarını değerlendirecek olan ARC'a bile geçiş yapılabilir, böylece D sistem programlama işlerinde çok daha kullanışlı hale gelir ve insanlar @nogc diye bas bas bağırmayı sonunda bırakabilir.

Sürüm 3, on yıllarca olmaz ama standart kütüphane için yakındır. D, bir C++ değil ki yani olimpiyatlar gibi her 3-4 senede toplanıp sürüm atlasın. Sanırım o camia eteklerinde biriktirmeyi seviyor biz ise anında çözüm üreten küçük bir grubuz ama dünyanın her yerinde kullanılıyor. C++, 1998'den beri kaç sürüm atladı; eyvah neredeyse 25 sene geçmiş 😀

D, şu an öyle bir yerde ki (karanlık orman ile zengin ve aydınlık bir akarsu kenarında) sahip oldukları ile kendi kendini yazabiliyor. Phobos olmasa bile kendi kütüphanenizi (mesela Phobos2) ile her şeyi yapabilirsiniz. Diğer dillerin bizi yakalaması iyi bir şey. Çünkü bu rekabette bolluk vardır, güzellik vardır. El-Harizmi bugün yaşasaydı ve bu tabloyu görseydi çok mutlu olurdu.

Şimdi aklıma geldi, şurada naklettiğim basit olanak bile D'yi ne kadar üstün kılıyor:

Sevgiler, saygılar...

October 21, 2022

On Thursday, 20 October 2022 at 21:03:32 UTC, Kerim wrote:

>

On Friday, 14 October 2022 at 21:49:39 UTC, Ali Çehreli wrote:

>

... diyeceğim ama galiba unittest başka dilde yok. (?)

Rust ve Zig'in D unittest tarzı özellikleri var:

Sans eseri bunlari konusurken gecen hafta sonu pro. Rust gelistiricisi arkadasim geldi bizim eve 2 gun beraberdik. 40li yaslardaki her normal insan gibi Rust kodu yazarak gecirdik zamanimisi.

Gercekten unit testler birebir ayni Rust ile D'nin. Rust'daki unit test syntaks'i cok uzundu ama unit test yapicagimiz fonksiyonun filan adini belirtti arkadasim biraz uzun gozuktu bana. D'de biz unittest{} diye direk girisiyoruz ama bunlar sadece ufak defek yazim detaylari.

Sadece kucuk bir fark Cargo test dedigimizde , test binary'isi asil binarinin ustune yazilmadi alt "file" larda bir yere ekstra bir binari eklendi.Dub test dedigimizde ise asil binarinin ustune test binarisi yazildi. Buda cok onemli degildir cogu ihtimalle D'de dub mutlaka bir opsiyonu vardir ustune yazma gibi.

Arkadasimin bana gosterdigi seylerden en cok rust ile otomatik gelen tool-chainler oldu. Cargoyla birlik bir suru muthis tool geliyor IDE filan. Rustin Visual Code extension'i cok iyiydi bu arada.

Arkadaslar VisualD Visual Code'da calismiyor degilmi sadece MSVC'de calisiyor.

October 21, 2022
On 10/21/22 04:16, Erdem wrote:

> Dub test dedigimizde ise asil binarinin ustune test binarisi
> yazildi.

Ben dub'ı çok az kullandım ama bende öyle olmuyor ve örneğin alid-test-library diye bağımsız bir program üretiliyor. Benim dub "DUB version 1.29.2" diyor...

> Arkadasimin bana gosterdigi seylerden en cok rust ile otomatik gelen
> tool-chainler oldu.

D de eskiye göre çok gelişti ama pek sözünü etmiyoruz. Örneğin, dub da artık D ile birlikte kuruluyor ve dscanner ve dustmite da artık dub'ın alt komutları olarak kullanılabiliyor: 'dub lint' ve 'dub dscanner'.

> Arkadaslar VisualD Visual Code'da calismiyor degilmi

Çalışıyor.

Ali

« First   ‹ Prev
1 2