Alıntı (zafer):
> Benim pek hoşuma gitmedi.
Benim hoşuma giden tarafı, bir C++'çının C++'a eklenecek olan bir olanağın daha önce D'de hiç olmazsa denenmiş olduğunu açıkça söylemiş olması. C++11, C++14, vs. neredeyse tamamen C++'ı D'ye yaklaştırmış oluyor. Ancak, kimse D'nin adını anmıyor.
Tabii, bütün bu olanakların D'den geldiği iddia edilmiyor. Çoğu modern dil olanağı genelin malı. Herkes her dil ortamında konuşuyor, her dil de uygun gördüklerini alıyor.
D'nin aralıkları da bütünüyle Andrei'nin icadı değil. Benim de yeni öğrendiğime göre, aralıklar onlarca yıldır artık kullanımda olmayan dillerde bile varmış.
Alıntı:
> Aralıklar hakkında çok bilgim yok,
Temelde, C++'tan ve başka dillerden tanıdığımız iterator (erişici) soyutlamasının yerine kullanılan başka bir soyutlama. C++'ta bütün elemanları gezmek için topluluğun begin() ve end() işlevlerini çağırırız:
foo(topluluk.begin(), topluluk.end());
D'de ancak gerekirse köşeli parantezleri kullanırız:
foo(topluluk); // gereken türler için foo(topluluk[])
begin() ve end()'in aksine, aralıklar tek nesne ile ifade edilirler. (Aynen begin() ve end()'in döndürdükleri erişicilerin bir yapı içinde bir araya geldikleri gibi...) Bu özellikleri, algoritmaların sonuçlarının zincirleme bağlanmasına ve bu sayede elemanların teker teker işlenebilmelerini sağlar (UFCS'ten de yararlanarak). Örneğin, foo'nun ürettiği elemanların değerleri ek olarak ikiyle de çarpılabilir:
aralık.foo.map!(a => a * 2)
Alıntı:
> ancak söylendiği gibi D diline güç katan bir özellik ise
Aralıklar çok yararlı.
Alıntı:
bunun başka diller tarafından kopyalanması
Walter Bright aşağıdaki konuda aralıkların geçmişine de değindi:
http://forum.dlang.org/thread/hatpfdftwkycjxwxcthe@forum.dlang.org
İşin ilginci, aralıkları C++'a ilk öneren kişi eski D'cilerdenmiş: Matthew Wilson. Yukarıdaki konuda da söylediğim gibi, ben C++'ı takip ettiğim zamanlarda böyle birisini hatırlıyordum. Aralıkların yararlarını anlatıyordu ve C++'a eklenmeleri gerektiğini söylüyordu.
Walter, fikirlerin D ortamında piştiğini ama Matthew'un kendi gerçekleştirmesini C++'ta yazdığını söylüyor.
Yukarıdaki tartışmaya Eric Niebler'ın kendisi de katıldı ve C++'a gelecek olan aralıkların D'ninkilerden çok Boost'unkilere benzediğini söyledi.
Alıntı:
> D dilinin bu alandaki farklılığını ortadan kaldıracaktır. Bu da ilerleryen zamanda D diline geçmenin ne artısı olacak sorusuna verilecek cevapları azaltacaktır.
Kesinlikle öyle. Ancak, D biraz hastalık gibi. :) Bir kere kullanan bir daha başka dillere (başta C++) geçmek istemiyor. :) Manu Evans aşağıda H. S. Teoh'a katılıyor:
http://forum.dlang.org/post/mailman.646.1443862705.22025.digitalmars-d@puremagic.com
İkisi de kariyerlerinin kötü yönde etkilendiğini çünkü artık C++ yazmak istemediklerini söylüyorlar. :D
Ali
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]