Forum: Duyurular RSS
Alexandrescu, Bright, Meijer, Moran: Pure versus Native (and much more)
Sayfa:  1  2  sonraki 
acehreli (Moderatör) #1
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: Alexandrescu, Bright, Meijer, Moran: Pure versus Native (and much more)
Lang.NEXT 2012 sırasında D'ciler ve Haskell'cilerin de bir araya geldikleri bir kave sohbeti: :)

  http://channel9.msdn.com/Blogs/Charles/Alexandrescu-Bright…

Ali
Mengu (Moderatör) #2
Kullanıcı başlığı: NONSERVIAM
Üye Tem 2009 tarihinden beri · 347 mesaj · Konum: Dersaadet
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
acehreli on 2012-04-17, 21:40:
Lang.NEXT 2012 sırasında D'ciler ve Haskell'cilerin de bir araya geldikleri bir kave sohbeti: :)

  http://channel9.msdn.com/Blogs/Charles/Alexandrescu-Bright…

Ali

biz bu sene ne zaman yapiyoruz kahve sohbetimizi ustad? :)

bu konusma cok iyiydi ama andrei ve walter biraz pasif mi kalmislar ne? :)
http://www.mengu.net - some kind of monster
acehreli (Moderatör) #3
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Mengu:
biz bu sene ne zaman yapiyoruz kahve sohbetimizi ustad? :)

Ronin'e uymuyor ama benim için de en iyisi 30 Haziran. Tütev'den haber bekliyoruz.

bu konusma cok iyiydi ama andrei ve walter biraz pasif mi kalmislar ne? :)

Bana da başından beri hep öyle geliyor. :) Bence tarzları biraz yanlış. Andrei fazla özür diler gibi yanıtlar veriyor. Ne olacak sanki; kendinden emin bir şekilde "dil çok hızlı gelişti onun için tool'lar geri" de filan...

Ali
Mengu (Moderatör) #4
Kullanıcı başlığı: NONSERVIAM
Üye Tem 2009 tarihinden beri · 347 mesaj · Konum: Dersaadet
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
acehreli:
Mengu:
biz bu sene ne zaman yapiyoruz kahve sohbetimizi ustad? :)

Ronin'e uymuyor ama benim için de en iyisi 30 Haziran. Tütev'den haber bekliyoruz.

bu konusma cok iyiydi ama andrei ve walter biraz pasif mi kalmislar ne? :)

Bana da başından beri hep öyle geliyor. :) Bence tarzları biraz yanlış. Andrei fazla özür diler gibi yanıtlar veriyor. Ne olacak sanki; kendinden emin bir şekilde "dil çok hızlı gelişti onun için tool'lar geri" de filan...

Ali

ben kanyon starbuckstaki sohbetimizi kastetmistim. :)
http://www.mengu.net - some kind of monster
acehreli (Moderatör) #5
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Mengu:
ben kanyon starbuckstaki sohbetimizi kastetmistim. :)

Biz biletleri aldık. 14 Haziran'da İstanbul'dayız. :D

Ali
Avatar
Salih Dinçer #6
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Vidyoyu yeni çekme imkanım oldu...

Biraz izledim de çok samimi bir ortammış. Belki biz de böyle aralarda bol bol sohbet ederiz. Gerçi dün iki mühendisin yanında (biri Vi'ci, diğer Java'cı) D'yi savunma durumuna düşmüş ve pek başarılı olmamıştım. Ben de bunun yerine sitedeki tanıtım ve makale bölümlerini okumalarını tavsiye ettim. Genelde şunu diyorlar:

Bugün piyasada Cobol ile çalışan banka yazılımları var. Malumunuz bu eski bir dil ve görüldüğü gibi ölmüş değil. Piyasada C++ bilen eleman daha çok bulunabileceğinden D bilenlerin avantajı olamazmış. Yani özetle genç bir dilin piyasada tutunması zor görüyorlar.

Ben de D'nin C ve türevlerine çok benzediğini ve bu dillerde yazılım geliştirenlerin D'de program yazabileceklerini söyledim. Javacı kardeşim de (belki bir gün kendisini D neferi yaparız ha, ne dersiniz?) işin katman meselesi olduğunu ve belki bir bölümünün D ile yazılabileceğini ama alt katmanlarda daha hızlı olan C++'ın tercih edileceğini belirterek bir orta yol bulduk; sanırım!

Hoş şu an kendileri AIR&Flex, Flash Media Server ve Java üzerinde proje geliştirmekteler. Düşünsenize hızdan bahsediyoruz ama arada betiği (script) çalıştıran sanal sunucu ve veri yöneten başka bir sunucu var. Bu vesileyle yeni öğrendiğim HDS Dynamic Streaming bakın derim.
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
acehreli (Moderatör) #7
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Salih Dinçer:
Piyasada C++ bilen eleman daha çok bulunabileceğinden D bilenlerin avantajı olamazmış.

C++'ın ortadan kalkması mümkün değil.

Konuyla ilgili olarak, firmaların D'yi ne derece benimseyecekleri ile ilgili bir tartışma şu sıralarda sürüyor:

  http://forum.dlang.org/post/exazrwacogokubvhjauh@forum.dla…

Yani özetle genç bir dilin piyasada tutunması zor görüyorlar.

Doğru.

işin katman meselesi olduğunu ve belki bir bölümünün D ile yazılabileceğini ama alt katmanlarda daha hızlı olan C++'ın tercih edileceğini

D, C ve C++ kadar alt düzey ama onlardan daha hızlı olabilen olanaklara sahip.

D'nin yavaşlığı ile ilgili iki neden aklıma geliyor:

  • dmd'nin ürettiği kodun yavaşlığı: Hem dmd zamanla iyileşecek hem de program hızına önem verenler zaten gdc'yi kullanabilirler. gdc, senelerdir pişmekte olan gcc'nin derleme gücüne sahip.

  • dmd ile şu anda gelen çöp toplayıcı Java'nın ilk zamanlarındaki gibi bazı durumlara çok uygun olmayan bir çöp toplayıcı ama bu, daha iyi çöp toplayıcı olmasına engel değil. (Tam da şu sıralarda istenen çöp toplayıcının kullanılabilmesine yönelik çalışmalar yapılıyor.)

Dolayısıyla, hız farkı varsa bugünkü D gerçekleştirmeleri yüzünden var. D'nin kendisinin C'den yavaşlığı söz konusu değil. Dilin özünde gelen bir yavaşlık yok. Nasıl C++ bile C'den daha hızlı olabiliyorsa, D de benzer nedenlerden dolayı C'den ve C++'tan hızlı olabiliyor.

C'nin C++'tan daha hızlı olduğunu iddia edenler de olmuştur. Üst düzey bir dilin alt düzey bir dilden nasıl hızlı olabileceğine inanmak güç gelir ama öyle olmaz. Örneğin C++'ın şablonları kodun daha hızlı çalışmasını sağlayabilir. Bunun bir örneğini görmek için:

  http://acehreli.org/turkcecpp/cpp_ogrenmek.html

İngilizce aslı da, "Learning Standard C++ as a New Language" şurada: http://www2.research.att.com/~bs/papers.html

C'yi C++'tan daha hızlı çıkartan karşılaştırmalarda genellikle C++'tan çok yeteneksiz olan C programları kullanılır. Örneğin C'de hata atma düzeneği yoktur. C++'taki kadar doğru ve yetenekli program C'de yazılmaya kalkılsa C ve C++'ın hızları aynı olur.

D'de de durum aynı: D'nin kendisinin getirdiği bir yavaşlık söz konusu değil. O yüzden D'nin alt katmanlara uygun olmadığı düşüncesi yanlış. D tam tersine, bütün katmanlarda kullanılabilmeyi hedefleyen bir dil. Üstelik hızlı programlara yönelik olanakları zaten bulunduğu için onları kullanıverince program da daha hızlı çalışır.

Hoş şu an kendileri AIR&Flex, Flash Media Server ve Java üzerinde proje geliştirmekteler. Düşünsenize hızdan bahsediyoruz ama arada betiği (script) çalıştıran sanal sunucu ve veri yöneten başka bir sunucu var.

Güzel örnekler. Biz programcılar en alt düzey işlemlerin hızlarına takmışızdır ama belki de hiçbir programda hiçbir önemleri yoktur. Örneğin D düzenli ifadeler konusunda şu anda dünya şampiyonudur ;) ama bu hızının ölçülebilir bir etkisi hangi programda hissedilebilir acaba?

Başka önemli olan, aynı derecede doğru çalışan programların hangi dilde daha hızlı yazılabildiğidir. D'yi öğrenmeye başladıktan sonra ben artık ne C yazmak istiyorum ne de C++. Hamallık hissini bilirsiniz... :)

Ali
Mengu (Moderatör) #8
Kullanıcı başlığı: NONSERVIAM
Üye Tem 2009 tarihinden beri · 347 mesaj · Konum: Dersaadet
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #6
Salih Dinçer:
Vidyoyu yeni çekme imkanım oldu...

Biraz izledim de çok samimi bir ortammış. Belki biz de böyle aralarda bol bol sohbet ederiz. Gerçi dün iki mühendisin yanında (biri Vi'ci, diğer Java'cı) D'yi savunma durumuna düşmüş ve pek başarılı olmamıştım. Ben de bunun yerine sitedeki tanıtım ve makale bölümlerini okumalarını tavsiye ettim. Genelde şunu diyorlar:

Bugün piyasada Cobol ile çalışan banka yazılımları var. Malumunuz bu eski bir dil ve görüldüğü gibi ölmüş değil. Piyasada C++ bilen eleman daha çok bulunabileceğinden D bilenlerin avantajı olamazmış. Yani özetle genç bir dilin piyasada tutunması zor görüyorlar.

Ben de D'nin C ve türevlerine çok benzediğini ve bu dillerde yazılım geliştirenlerin D'de program yazabileceklerini söyledim. Javacı kardeşim de (belki bir gün kendisini D neferi yaparız ha, ne dersiniz?) işin katman meselesi olduğunu ve belki bir bölümünün D ile yazılabileceğini ama alt katmanlarda daha hızlı olan C++'ın tercih edileceğini belirterek bir orta yol bulduk; sanırım!

Hoş şu an kendileri AIR&Flex, Flash Media Server ve Java üzerinde proje geliştirmekteler. Düşünsenize hızdan bahsediyoruz ama arada betiği (script) çalıştıran sanal sunucu ve veri yöneten başka bir sunucu var. Bu vesileyle yeni öğrendiğim HDS Dynamic Streaming bakın derim.

boyle seylere takilmamak gerek. neden? cunku bir dilin sirketlerce ve gelistiriciler arasinda genisce kullanilmasi icin gerekli belli basli gereksinimler var:

- dilin gelisiminin bitmis ancak her zaman yeni gereksinimlere acik olmasi
- yeteri kadar performans gostermesi
- iyi bir topluluga sahip olmasi
- iyi bir dokumantasyona sahip olmasi
- standart kutuphanede genis olanaklarin yer almasi.
- soz diziminin zirva olmamasi (erlang'in tek kullanilmama sebebi)
- kurumsal destegin olmasi
- aktif egitim veren kurumlarin / kisilerin olmasi
- dilin aktif bicimde kullaniliyor olmasi

aklima gelmeyen maddeler de olabilir ancak D butun bu maddeleri tamamladiginda nasil c++ birakilip java'y gecildiyse, mevcutlar birakilip d'ye gecilecektir. cunku d'nin olanaklari hem c++'tan hem java'dan ustun. java'dan daha da ustun cunku direkt makine koduna derleniyor. "write once run everywhere"in yalan dolan oldugunu gorduk. ornegin citrix kimi urunlerinde java kullaniyor ancak ya sadece windows'u ya da windows ve mac'i destekliyor. urun java ama linux ya da bsd destegi yok. bunun cok da buyuk bir gereksinim olmadigini dusunuyorum ben. ancak c++'tan ve java'dan daha mi hizli? yuksek performans gerektiren uygulamalarda nerede? gibi sorular soruldugu zaman cevap verilebilmesi gerekiyor.

wide adoption uzun sure alan bir sey. python ve ruby 5 senede taninir ve kullanilir hale gelmisken d icin bu soz konusu degil. cunku hala kitapta yazan ozelliklerden eksikler var. evvela bunu bitirmeleri gerek. ardindan phobos'u adam akilli bir hale getirmeleri lazim. ama unutmamak gerekir ki d artik oynanan bir dil olmaktan cikti, kullanilan bir dil haline geldi. tahmin ediyorum 1 - 1.5 sene icinde hem dilin kendine, hem de phobos'a yapilan katkilarla beraber bunlari konusuyor olmayacagiz. bundan 5 sene sonra da d ile yazilan populer uygulamalardan bahsediyor olacagiz.
http://www.mengu.net - some kind of monster
acehreli (Moderatör) #9
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Mengü dil gereksinimlerini güzel listelemiş. Aynı türden bir yazı yine daha dün D haber gruplarında konu edildi:

  http://forum.dlang.org/post/vwpzirpppabcgylmvpsx@forum.dla…

Başka dillere sataşmayı hiç sevmiyorum ve zaten hiç PHP bilmiyorum ama oradaki blog yazısı PHP'nin ne kadar kötü tasarlanmış bir dil olduğunu belgelerken dillerden neler beklememiz gerektiğini de listeliyor:

  • Tahmin edilebilir (predictable) olmalı: İnsana yardım eden bir araç olduğuna göre kodlara bakıldığında ne anlama geldiği tahmin edilebilmeli.

  • Tutarlı olmalı: Bir köşesini biliyorsak ona benzeyen başka köşesinin de öyle işlediğini tahmin edebilmeliyiz.

  • Öz olmalı: Makine kodu da yazabildiğimiz halde kod tekrarlarına gerek olmadığı için üst düzey diller kullanıyoruz. Dil buna benzer tekrarlar gerektirmemeli.

  • Güvenilir ve sağlam olmalı: Diller problem çözmek içindir; kendileri sorun kaynağı olmamalı.

  • Hatası ayıklanabilir olmalı: Hataları programcının bulup gidermesi gerekecektir. Dil buna olanak sağlamalı.

Eleştiren her yazıda olması gerektiği gibi o yazı bütün ayrıntılara girerek PHP'nin neden bu konuların hepsinde de başarısız olduğunu gösteriyor.

Tabii amacım D'nin PHP'den üstün olduğunu göstermek veya PHP'ye sataşmak değil. Oradaki listenin bu konuyu da ilgilendirdiğini gördüğüm için yazdım.

Ama söylemeden de edemeyeceğim: Eğer PHP orada yazıldığı gibi bir amatörler topluluğu ("PHP is a community of amateurs.") ise veya körün köre kılavuzluk ettiği bir ortamsa ("the biggest problem with PHP: it is absolutely the blind leading the blind."), programcılıkla bazılarımız gibi hobi olarak ilgilenen arkadaşların dil sanarak PHP'ye takılmaları üzücü. Yazarın kullandığı Python, bazılarımızın bayıldığı D ve başka bir sürü gerçek dil varken o arkadaşların yanlışlıklarla dolu dillere takılmaları üzücü.

Ali
Bu mesaj acehreli tarafından değiştirildi; zaman: 2012-04-29, 08:58.
erdem (Moderatör) #10
Üye Tem 2009 tarihinden beri · 978 mesaj · Konum: Eskişehir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #7
acehreli:
Başka önemli olan, aynı derecede doğru çalışan programların hangi dilde daha hızlı yazılabildiğidir. D'yi öğrenmeye başladıktan sonra ben artık ne C yazmak istiyorum ne de C++. Hamallık hissini bilirsiniz... :)

Bu noktada Ali beyle aynı düşünüyorum :) Ben de C++'nin ortadan kalkma ihtimalinin pek olduğunu sanmıyorum.

Yalnız hala eksiklikler var sanırım. Örneğin daha önce de konuştuğumuz gibi D 32 bitlik sistemler için tasarlandığı için şimdilik gömülü sistemleri desteklemiyor. Örneğin ARM tabanlı BeagleBoard gibi sistemler vs..

Bir de yukarıdakı bağlantıya çok güldüm :) Herhalde şaka olsun diye mi yazmışlar.

Maybe Facebook could be convinced to pay some book writers to make D books.
   * Numerical Recipes in D
   * Design Patterns in D
   * The Dao of D
   * Harry Potter and the Frumious D Compiler


Tasarım desenlerini ("design patterns")  anlatan Modern C++ Design kitabını Andrei yazdığına göre pekâla Modern D++ Design diye bir kitap yazabilir. Yanlış mıyım :-p
acehreli (Moderatör) #11
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
erdem:
Tasarım desenlerini ("design patterns")  anlatan Modern C++ Design kitabını Andrei yazdığına göre pekâla Modern D++ Design diye bir kitap yazabilir. Yanlış mıyım :-p

Doğru. Ben o kitabı okudum ve C++ şablonlarının bazı işlemlerde ne kadar yetersiz kaldığını kendim yaşadım. D'nin en güçlü olanaklarından bazılarının o kitabın C++'ta bulamadıklarından çıktığı açık.

Ali
Avatar
Salih Dinçer #12
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #7
acehreli:
C++'ın ortadan kalkması mümkün değil.

Konuyla ilgili olarak, firmaların D'yi ne derece benimseyecekleri ile ilgili bir tartışma şu sıralarda sürüyor:

  http://forum.dlang.org/post/exazrwacogokubvhjauh@forum.dla…

Ben de ortadan kalkacağını düşünmüyorum, bunun belki de en köklü örneği Cobol olsa gerek. Tabi burada, finans kaynakları gibi firmaların büyük bir desteği söz konusu. Aynı şekilde girişimci, risk almayı seven ve farklı şeyler denemek isteyenler tarafından D gibi genç dillere ilgi ve akabinde tercih edilmesi mümkün. Japonlar bunun bir örneği ki genç kuşakda D tutunabilir.

Bu arada forumdaki tartışmaya biraz baktım da çok hararetli görünüyor. Bunların olması bir bakıma iyi çünkü dilin gelişimini sağlayacak dış unsurlara zemin hazırlıyorlar.

acehreli:
dmd'nin ürettiği kodun yavaşlığı: Hem dmd zamanla iyileşecek hem de program hızına önem verenler zaten gdc'yi kullanabilirler. gdc, senelerdir pişmekte olan gcc'nin derleme gücüne sahip.
D'nin kaç çeşit derleyicisi var? Bir yerde ldc ve dil (biz Türklerin yaptığı) şeyler olduğunu gördüm. Anlam veremiyorum, niye bu kadar fazla? Ayrıca dmd'yi kullanmak için Linux'da gcc de olması neden gerekiyor?

acehreli:
dmd ile şu anda gelen çöp toplayıcı Java'nın ilk zamanlarındaki gibi bazı durumlara çok uygun olmayan bir çöp toplayıcı ama bu, daha iyi çöp toplayıcı olmasına engel değil. (Tam da şu sıralarda istenen çöp toplayıcının kullanılabilmesine yönelik çalışmalar yapılıyor.)
Katılıyorum ve bu konu bazı zaman göz ardı edildiğini düşünüyorum. Yani mesele programımızın geliştirme anında iyi çalışması değil. Çok kullanıcılı sistemlerde ve belleğin kritik seviyeye çıkmasına neden olabilecek uygulamalarda bile programın çökmemesi gerekir. Bunu da GC sağlamalı yoksa Go'nun Pi hesabındaki gibi salak bir durum (geçen baktım 1.01'i çıkarmışlar ama denemedim, belki bellek yamyamlığı düzelmiştir) olabilir.

acehreli:
Dolayısıyla, hız farkı varsa bugünkü D gerçekleştirmeleri yüzünden var. D'nin kendisinin C'den yavaşlığı söz konusu değil. Dilin özünde gelen bir yavaşlık yok. Nasıl C++ bile C'den daha hızlı olabiliyorsa, D de benzer nedenlerden dolayı C'den ve C++'tan hızlı olabiliyor.
Henüz hız testi hiç yapmadım ama şu derleyici seçimi ile ilgili aklımaki soruları giderebilirsem sıkı bir asal sayı bulma algoritmasında test etmeyi ve eski projeme kaldığım yerden devam etmeyi düşünüyorum...:)

acehreli:
C'nin C++'tan daha hızlı olduğunu iddia edenler de olmuştur. Üst düzey bir dilin alt düzey bir dilden nasıl hızlı olabileceğine inanmak güç gelir ama öyle olmaz. Örneğin C++'ın şablonları kodun daha hızlı çalışmasını sağlayabilir. Bunun bir örneğini görmek için:

  http://acehreli.org/turkcecpp/cpp_ogrenmek.html

İngilizce aslı da, "Learning Standard C++ as a New Language" şurada: http://www2.research.att.com/~bs/papers.html
Teşekkürler, daha önce okumamıştım. Birazdan başlayacağım okumaya ama uzun olduğu için iki güne yayabilirim...

acehreli:
D'nin kendisinin getirdiği bir yavaşlık söz konusu değil. O yüzden D'nin alt katmanlara uygun olmadığı düşüncesi yanlış. D tam tersine, bütün katmanlarda kullanılabilmeyi hedefleyen bir dil. Üstelik hızlı programlara yönelik olanakları zaten bulunduğu için onları kullanıverince program da daha hızlı çalışır.
Peki biz Windows ortamında D yazılımı geliştirirken aslında C++ ile geliştirilen bir işletim sisteminde çalıştığımız için grafik sunucusu alt katman ise biz üst katmanda D'nin hızını ölçmeye çalışıyorsak hata mı yaparız? Ayrıca arada GtkD gibi katmanlar olduğunu düşünürsek, sanırım bunlar da C++'da yazılıyor öyle değil mi?

acehreli:
D düzenli ifadeler konusunda şu anda dünya şampiyonudur ;) ama bu hızının ölçülebilir bir etkisi hangi programda hissedilebilir acaba?
Bunu bilmiyordum ve deneyeceğim. Hatta D Konsol'da denemeyi düşünüyordum. Gerçi D'nin Perl kadar iyi olabileceğini bilmiyordum. Denemek için sabırsızlanıyorum...:)

acehreli:
Başka önemli olan, aynı derecede doğru çalışan programların hangi dilde daha hızlı yazılabildiğidir. D'yi öğrenmeye başladıktan sonra ben artık ne C yazmak istiyorum ne de C++. Hamallık hissini bilirsiniz... :)
Evet, daha güzel betimlenemezdi...:)
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
acehreli (Moderatör) #13
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Zaman bulunca başka yanıtlarım da olacak.

Salih Dinçer:
acehreli:
D düzenli ifadeler konusunda şu anda dünya şampiyonudur ;) ama bu hızının ölçülebilir bir etkisi hangi programda hissedilebilir acaba?
Bunu bilmiyordum ve deneyeceğim.

Phobos'taki değil, FReD kütüphanesinin ctRegex olanağından bahsediyorum. Andrei'nin şuradaki sunumunun 60 numaralı slaytında bir grafik var:

  http://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2012/T…

Orada FReD/RT diye gösterilen, kütüphanenin düzenli ifade komutunu çalışma zamanında ayrıştıran ve kullanan çözümü. FReD/CT ise aynı komutu derleme zamanında ayrıştırarak tam da o komuta özel bir motor derliyor:

import std.regex;
auto r1 = regex("^.*/([^/]+)/?$");        // çalışma zamanında
enum r2 = ctRegex!("^.*/([^/]+)/?$");     // derleme zamanında 

Ben buna benzer becerileri derleme zamanında halledebilen bir tek C++'ı biliyorum ama düzenli ifadelerin gerçekleştirmelerine çok uzak olduğum için orada ne kadar zor olacağını bilmiyorum.

Ali
acehreli (Moderatör) #14
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #12
Salih Dinçer:
D'nin kaç çeşit derleyicisi var? Bir yerde ldc ve dil (biz Türklerin yaptığı) şeyler olduğunu gördüm. Anlam veremiyorum, niye bu kadar fazla?

dil, D ile yazılan bir D derleyicisi idi. Devam edildiğini sanmıyorum.

Benim bildiğim üç D derleyicisi var. Çok mu yani? :)

1)  dmd: Bu aşamada bundan başkasının kullanılması bence anlamlı değil çünkü dili geliştirenlerin derleyicisi bu. Bütün eksik ve yeni olanaklar bunda gerçekleşiyor. Başka derleyiciler bunun gerisinde kalmak durumundalar.

2) gdc: Bu, dmd derleyicisinin ön tarafını (front end) senelerin gcc'sinin arka tarafı (back end) ile birleştiren bir proje. gcc aslında bir C derleyicisi değildir. gcc de başka her derleyici gibi iki taraftan oluşur:

  • Ön taraf programlama dillerini bilir. Şimdilik bildiği diller şunlar: http://gcc.gnu.org/frontends.html

gdc henüz ana gcc sürümüne bağlı değil. Zamanla D de o listeye eklenecek.

  • Arka taraf mikroişlemci mimarilerini bilir. Şimdilik bildiği mimariler şunlar: http://gcc.gnu.org/backends.html

Bu ayrımın yararı çok büyüktür. Böylece N tane dil M tane mimaride desteklenmiş olur. D, N+1'inci dil olmaya çalışıyor. Böylece hem başka mimarilere de açılacak hem de gcc'nin çok iyi kod üreten arka tarafından yararlanmış olacak. dmd'nin kendi arka tarafı gcc'ninkinden daha yavaş.

gdc mecburen dmd'yi arkadan takip ediyor. Şu anda dmd 2.059 sürümünde ama gdc onun 2.057 sürümünün ön tarafını kullanıyormuş: https://bitbucket.org/goshawk/gdc/wiki/Home

3) ldc: Bu da arka taraf olarak LLVM denen ortamı kullanan bir D derleyicisi. Bunun mantığı da aynı: ön tarafta farklı diller, arka tarafta farklı mimariler. Eğer sitesini doğru bulduysam son gelişmesi iki sene önceymiş: http://www.dsource.org/projects/ldc/wiki/Release…?action…

Ayrıca dmd'yi kullanmak için Linux'da gcc de olması neden gerekiyor?

Öyle olduğunu bilmiyorum. Bir yerden yanlış bir izlenim mi edindin acaba?

Peki biz Windows ortamında D yazılımı geliştirirken aslında C++ ile geliştirilen bir işletim sisteminde çalıştığımız için grafik sunucusu alt katman ise biz üst katmanda D'nin hızını ölçmeye çalışıyorsak hata mı yaparız?

Öyle bir ilgi göremiyorum. D de C++ da derlemeli dil olduklarına göre işletim sisteminin veya kütüphanelerinin nasıl geliştirilmiş olduklarının hız açısından bir önemi yoktur. Sonuçta makine kodu durumundalar. İşletim sistemi kabul edip bize sunduysa da hızı da yeterlidir.

Ayrıca arada GtkD gibi katmanlar olduğunu düşünürsek, sanırım bunlar da C++'da yazılıyor öyle değil mi?

GtkD gibi katmanlar aslında pek katman değil. D, C kütüphanelerini doğrudan çağırabiliyor. GtkD de aslında Gtk'nin C kütüphanesindeki işlevlerin D dilinde sunulması. Katman varsa da oldukça ucuz işlev çağrılarından oluştuğunu sanırım.

Ali
Avatar
Salih Dinçer #15
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Cevaplar için teşekkürler, çok aydınlatıcı oldu...

Ali Çehreli:
Salih Dinçer:
Ayrıca dmd'yi kullanmak için Linux'da gcc de olması neden gerekiyor?
Öyle olduğunu bilmiyorum. Bir yerden yanlış bir izlenim mi edindin acaba?
Yeni bir Linux dağıtımı yüklediğimde, sitesinden indirdiğim DMD'nin son yükleme paketinin (sanırım deb olsa gerek) bağımlılıkları olduğunu ve GCC ile alakalı kütüphanelerin yüklenmesi gerektiği uyarısını aldım. Herhalde DMD object kodu ürettikten sonra GCC backend tarafında işlemciye göre binary dosyayı meydana getirmek için bu kütüphanelere ihtiyaç duyuyor olmalı?
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Sayfa:  1  2  sonraki 
Forum: Duyurular RSS
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-18, 04:11:23 (UTC -08:00)