Forum: D Programlama Dili RSS
D mi c++ mi
acuster #1
Üye Nis 2012 tarihinden beri · 4 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: D mi c++ mi
Konuyu nereye açmam gerektiğine karar veremedim eğer yeri yanlışssa taşırsanız sevinirim.
Konuya gireyim;

Daha once soruludugundan eminim ama soruyu biraz kişiselleştirerek soracagım.

Simdi abilerim ablalarım. Bir anadolu teknik lisesinini veri tabanı bolumunde son sınıf ogrencisi 2 arkadaşız. .net ve onun üstüne c# öğrendik. Ama tahmin edersinizki devlet okullarında ki programla eğitimi çok düşük bir düzeyde.
Koskoca bir yılda dizilere geldik artık siz anlayın kaliteyi :D.

Daha çok sistem programcılıgı veya sistemsel düzeyde çalışmayı planlıyoruz. (Aslında planlıyorum arkdaş bana uyuyor :D).
Kendi işimizi kurmayı planlıyorduk. C# veya java üstüne insanlara program geliştirmek gibi bir idealimiz vardı. Ama c++ her zaman gönlümde bir yara olmustur bende ona donelim sistemsel düzeyde çalışmasakta "qt" si var daha başka geliştirme ortamları gene istediğimizi yaparız dedim. Ama sistemsel düzeydede çalışabiliriz. Çok laf salatası yaptım farkındayım bunun ama bir yere geliyorum.

D dili hakkında c#, java ve c++'ın iyi yanlarını aldı ondan mükemmel  veya c ve c++'ın kütüphanelerini kullanabiliyor mükemmel ya gibi laflar dolanıyor gerçekliğini bilemem hiç birinde uzman değilim ve d dili üzerine çalışmadım. D dilinin yeterli populerliğe ulaşamaması ve gene aynı sebeple çalışma alanın kısıtlı kalacağı korkusu var üzerimde hafiften.
Şimdi gidip c++ öğrensem istediğim an d diline dönebilirim ama başladıgım şeyin üstüne uzmanlaşmak istiyorum açıkçası.
Konuya vereceğiniz cevaplar büyük ihtimal aklımda başka sorular doğuracak. Açıkçası şu an kendimi tam anlatamadıgımdan o sorulara güveniyorum.
Siz bize c++ mı d dilini mi önerirsiniz. Nedenleriyle açıklarsanız sevinirim. Zahmet olmazsa d dili hakkında yukarda dediklerim doğru mu veya yanlıs mı araya sıkıstırırsanız mutlu olurum acıkcası.


Ahmetcan UĞUR.
acuster #2
Üye Nis 2012 tarihinden beri · 4 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Sizi kolayca ikna edebileceğim yanılgısına düşmeyeceğim. Biz programcılar dil tercihi konusunda oldukça garibizdir. Bir programcının kitapçıda rastladığı "Falanca Programlama Dili" isimli bir kitaba karşı tepkisi herhalde şunun gibi bir şeydir: "Kendime bu dilde hoşlanmadığım bir şey bulana kadar 30 saniye süre tanıyorum." Bir programlama dilini edinmek oldukça uzun ve güç bir iştir. Getireceği tatmin de hem çok uzun vadede gelir, hem de kesin bile değildir. Böyle zorlu bir maceraya atılmayı daha başından engelleyecek nedenler aramak aslında bir savunma mekanizması olarak görülmelidir. Şüpheli ve riskli bir yatırım olduğu için, bu konuda çabucak olumsuz bir karar vermek aslında programcı için büyük bir rahatlıktır.

Tanıtım yazısında yazdıgı durumdayım acıkcası :D.

Bu arada kimse yoğurdum ekşi demez fakat d dilinin eksilerinide anlatırsanız sevinirim.


Ahmetcan UĞUR.
Bu mesaj 2 defa değişti; son değiştiren: acuster; zaman: 2012-04-29, 20:39.
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ı
Yanıtlanan mesaj #1
Hoşgeldin Ahmetcan! :)

acuster:
D dili hakkında c#, java ve c++'ın iyi yanlarını aldı ondan mükemmel  veya c ve c++'ın kütüphanelerini kullanabiliyor mükemmel ya gibi laflar dolanıyor gerçekliğini bilemem hiç birinde uzman değilim

Bir tanesi dışında hepsi doğru. C++ kütüphanelerini kullanabilmesi için iki koşul gerekiyor: o kütüphane çoklu kalıtım kullanmamış olmalı çünkü D çoklu kalıtım desteklemiyor (ama birden fazla arayüzden (interface) türetmeyi yine de destekliyor), ve o kütüphanenin arayüzünde (sanıyorum) şablon kullanılmamış olmalı çünkü D'nin şablonları C++'ınkilerden çok daha yetenekli olduğundan C++'ın şablonları desteklenmiyor. Doğru hatırlıyorsam yapılabilirmiş ama galiba D derleyicisi de neredeyse bütün C++ dilini içermek zorunda kalırmış.

Uygulamada bence C++ kütüphanesi ile uyumlu olmadığını kabul etmek daha akıllıca. Zaten QtD bile bildiğim kadarıyla Qt'nin C işlevlerini çağırıyor.

D dilinin yeterli populerliğe ulaşamaması ve gene aynı sebeple çalışma alanın kısıtlı kalacağı korkusu var üzerimde hafiften.

O korkudan hepimizde biraz var. :)

Şimdi gidip c++ öğrensem istediğim an d diline dönebilirim ama başladıgım şeyin üstüne uzmanlaşmak istiyorum açıkçası.

Doğrudur. Duyduğuma göre Java'dan gelenler de D'ye kolay geçiyorlarmış. Ben D'yi C++'çı gözüyle öğrendim ama onda bile şaşırtıcı bilgiler ve öğrenecek şeyler oldu.

Siz bize c++ mı d dilini mi önerirsiniz. Nedenleriyle açıklarsanız sevinirim.

Ben C++ veya D diyemem. :) Bugün iş ilanlarında hiç D aranmadığına göre o açıdan bakınca yanıt C++ olur. Kendi firmanızda D kullandığınızda da D programcısı bulmakta zorlanabilirsiniz. Ama bir yerden de başlamak gerekiyor. Eğer D'de karar verirseniz iş ilanlarına D yazan firma siz olursunuz.

Ben D'yi modern programlama kavramlarını içerdiği için seviyorum. D'yi öğrendikten sonra başka dillerin bazı bölümleri tanıdık gelecektir. Örneğin Python'un coroutine, list comprehension, ve generator gibi kavramları D'de aralıklarla hallediliyor. D'nin sınıfları Java'daki gibi referans türü, yapıları C++'taki gibi değer türü. İsimsiz işlevler her fonksiyonel dilde var, temsilciler C#'ta var, vs. Ben çok kavram öğrendim ve öğrenmeye devam ediyorum. :)

Ve tabii dilin ortamı da çok önemli. Kimler ilgileniyor? Forumları nasıl? Yardım bulunuyor mu? O sorulara da cevap vermek gerek. Kişinin kendisine de bağlı. Go'nun, Python'un, Haskell'in, vs. ortamları da hep çok iyidir ama kişi birisini benimser ve o ortama uyar. Dil seçiminde bence bu da önemli. Sonuçta kimse bizi zorlamıyor; neden sevmediğimiz ortama takılalım. :)

Ali
acuster #4
Üye Nis 2012 tarihinden beri · 4 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Hoşbulduk hocam.

Bilgisayarımda şuan qt var gerçekten cok beğendim eclipse veya netbeans ten daha kullanışlı geldi açıkcası qtd gibi bir ortam açıkcası d dili için bende bir artı olusturdu yanlız anlamadıgım nokta

Uygulamada bence C++ kütüphanesi ile uyumlu olmadığını kabul etmek daha akıllıca. Zaten QtD bile bildiğim kadarıyla Qt'nin C işlevlerini çağırıyor.

Bunu biriz açar mısınız? Açıkçası programlama konusunda sizden geri oldugum için şurayı anlamadım D dilinin yanında c mi yazmak zorundayız yada ben anlamadım.

Size yapmak istediğim işi anlatayım. Firmalara kurumsal cozumler üretmek sadece masa üstünde sınırlı olmadan sunucu ve web alanı dahil firmanın yazılım işlerini üstlenmek. Siz piyasada benden eskisiniz bu konu hakkında benden çok bilginiz var.

İlk başta .net le beraber aspx ve c# ile çalışmayı düşünmüştüm. Sonra sistemsel alanıda düşünürek fikrimi değiştirip c++ ve php'ye karar vermiştim. D dili burda beni tatmin edebilir mi?
D dili sanıyorum digitilmars tarafından geliştiriliyor. Adamlar hiç kimse ilgilenmiyor bunla vazgeçtik derse  dil şuanki haliyle c++ gibi stabil ve her işi yapacak düzeyde mi?

Küçümseme olarak algılamayın ama bu sitede geliştirilen projelere bakıyorum. Pişti veya kelimematik çok komplike projeler değil insanlar boş vakitlerinde geliştirmesine rağmen sanırım tamamen bitmemişler. c# kullanılarak suanki işe göre bitebilirlerdi gibi geliyor yada daha komplike projeler yapılabilirdi gibime geliyor. Ha şimdi diyeceksiniz çok biliyorsan yaz bizle paylaş paşam. Ki haklısınızdır benim programlama bilgim şu an onları bile yapacak düzeyde değil fakat. Gelmek istediğim nokta bu dil yüzünden mi yani dil şuanlık bu kadar mı izin veriyor? 3 yıl kadar geliştirilen ve sanıyorum son 1-1.5 yıldır stabil dediğniiz versiyonda bulunan dilde insan değişik projeler bekliyor.
Sormak istediğimi hüsnü kalp ile düşünürseniz sormak istediğimi anlarsınız sanıyorum kötü bir niyetim yok.

Bu arada e-mail ile sordugum soruma cevap vermiş Ali hocam onuda burada paylaşayım.


> Derleyici mi tam anlamadım ama soyle göstereyim D 2.059 derken
> dil değişiyor mu

D dili, Andrei Alexandrescu'nun "The D Programming Language" (TDPL) kitabında açıkladığı dildir. Kısa zaman önceye kadar D'ye D2 deniyordu çünkü D'nin D1 diye anılan eski bir çeşidi daha vardı ama D1 bu sene sonunda emekliye ayrılacağı için artık bu günkü D'ye D2 yerine kısaca yalnızca D deniyor.

Aslında D 2.059 diye bir şey yok. Herhalde dmd 2.059 diyorsun. Kitapta anlatılanları tamamıyla destekleyen bir derleyici henüz yok. En fazla destekleyen derleyici dmd. Şu anda onun 2.059 numaralı sürümündeyiz. Hâlâ eksik tarafları var. Doğal olarak bir sürü de hatası var.

Hatalar giderildikçe ve eksikleri azaltıldıkça derleyicinin yeni sürümü çıkıyor. Tekrar: dilin değil, derleyicinin yeni sürümü çıkıyor.

Biraz yalan söylüyorum aslında: Dil kullanıldıkça bazı ufak eklerin çok yarar getireceği de görülüyor ve her derleyici sürümünde böyle ekler de bulunabiliyor. 02.058'de gelen => lambda söz dizimi ve 2.059'da gelen UFCS olanağı çok önemli ekler oldular. Dili çok daha kolaylaştırdılar.

> kodun bazen bu bu versiyon güncellemeleri nedeniyle çalımadıgı
> durumlar olabiliyormus

Eski derleyiciye uygun yazılan kod örneğin derleyicinin hataları giderildikçe geri kalabiliyor. Bundan sonra önemli bir şey kalmadı. 2.058 ve 2.059 ile dil çok kullanışlı hale gelmiş oldu.

Ahmetcan UĞUR
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ı
acuster:
D dilinin yanında c mi yazmak zorundayız yada ben anlamadım.

Hayır, C yazmak zorunda değiliz. D'nin çok kullanışlı bir özelliği, C kütüphalerini kullanabilmesi. Biz D yazıyoruz. D'nin içinde örneğin printf()'i çağırıyoruz (bir C işlevidir) ve çalışıyor. Önemli bir konu. QtD gibi kütüphaneler de hep o olanak sayesinde var.

Siz piyasada benden eskisiniz bu konu hakkında benden çok bilginiz var.

Ona başka arkadaşların yanıt vermesini bekleyeceğim. Eskiyim ama bahsettiğin konularda hiç deneyimim yok.

dil şuanki haliyle c++ gibi stabil ve her işi yapacak düzeyde mi?

Evet, dil stabil. Her ürünün olduğu gibi derleyicilerinin eksiklikleri ve hataları var. Onlar da yine her üründe olduğu gibi yavaş yavaş gideriliyor.

yani dil şuanlık bu kadar mı izin veriyor?

Hayır. Dilin izin vermediği bir şey yok. Derleyicilerin eksiklikleri de önemli boyutlarda değil. Bir örnek: işlev parametrelerinin 'scope' olarak işaretlenmesinin hiçbir etkisi yok. Yararlı bir olanak ama olmasa da oluyor işte. Hatta hiçbir önemi yok. Çünkü öyle bir olanak C++'ta, C'de, Java'da ve başka dillerde de yok. Eksikler böyle uç olanaklar yani. Gündelik programlamada Önemli değil.

3 yıl kadar geliştirilen ve sanıyorum son 1-1.5 yıldır stabil dediğniiz versiyonda bulunan dilde insan değişik projeler bekliyor.

Benim öyle bir beklentim yok. Benim öncelik verdiğim iş, bir an önce "D Programlama Dili" kitabını İngilizceleştirmeyi bitirmek. Şu anda Türkçe'si 684, İngilizce'si 332 sayfa olmuş. Çok kabaca %48.5'u bitmiş. :D Bir çok ay sonra hepsi bitecek. Kendi adıma o bitmeden ciddi bir projeye girmeyeceğim.

Çoğu zaman olduğu gibi senin dil seçimine biz karar veremiyoruz. :) D'nin geleceği konusunda garanti vermemiz de olanaksız olduğundan belki de en sağlamı oturmuş bir dile odaklanmandır. C++'ın durumu da C++11 ile daha da iyiye gitti. Ama sen de kötü niyetle söylemediğimi kabul edersen, C++11'in getirdiği yararların yeni programcıları etkileyeceğini de pek düşünmüyorum.

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ı
Hoş geldiniz...

Bence etkin olarak bir dil seçmek yerine etkin bir şekilde programlama yapmak daha önemli. Yoksa istediğiniz zaman dil değiştirip bir ay da bilemediniz ikinci ayda o seçtiğiniz dilde program yazabilirsiniz. Ben program yazmaya GwBasic ile başlamış, QBasic ile devam etmiştim, sonra Assembly, Pascal, Delphi derken C ve türevleri ile OOP'e  giriş yaptım.

Neticede kendimi D'de buluverdim...:)

Bu kadar dil bende vakit kaybı oldu mu, hayır? Her dil bir binan inşaası gibi yeni tuğlalar kattı bana...
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:
Bu kadar dil bende vakit kaybı oldu mu, hayır? Her dil bir binan inşaası gibi yeni tuğlalar kattı bana...

Aynen katılıyorum. (Ben dil çeşitliliği konusunda senden çok geriyim ama. :)) D bu yüzden iyi bir dil: içinde çok modern, çeşitli ve yararlı olanaklar var.

Şimdi aklıma geldi: Geçende bir konuda fonksiyonel programlamanın saflık (purity) kavramının ne kadar yararlı olduğu geçiyordu. Çok doğru. D'de de fonksiyonel programlama olanakları var. 'pure' anahtar sözcüğü de var. Aynı tartışmada D'nin saflık kavramını nasıl bir adım öteye götürdüğü ve işlevlerin kendi içlerinde istedikleri kadar saf olmayabilecekleri ama arayüzlerinden bakıldığında saf görünebilecekleri söylendi. Bu üstünlük Ahmetcan'ın alıntı yaptığı Neden D makalesinde de geçer:

  http://ddili.org/makale/neden_d.html

İşte D'deki fonksiyonel saflığın tanımı da budur: saf bir fonksiyon içerisinde geçici ve özel değişiklikler yapılabilir. Bu tür fonksiyonların bildirimlerine pure koyulur:

pure uint fib(uint n)
{
  ... döngülü kod ...
}

Saflık kavramını böylece gevşek bırakan D, iki açıdan yarar sağlamış olur: bir tarafta çok sağlam bir saflık garantisi, öte yanda döngülü gerçekleştirmeler tercih edildiği durumlardaki kodlama rahatlığı. Bundan daha güzel bir şey olabilir mi...

Yine D'yi övmeye başladık. :)

Ali
acuster #8
Üye Nis 2012 tarihinden beri · 4 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Cevaplarınız için saolun öncelikle.

Valla hocam cok fena ovdunuz :D. Kendimi "D" ye başlamamak için bir sebep göremiyorum hatta eğer elinizde tanıtım sunusu varsa kendi okulumda sunu yapabilitem var. Yoksa bile beraber bir tane hazırlayabiliz.
Avatar
Racih (Moderatör) #9
Üye Ağu 2009 tarihinden beri · 126 mesaj · Konum: Antalya
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
D dili gerçekten iyi fakat tam olarak arayüz kütüphaneleri iş görmüyor. Qtd güncel qt 4.6 sonrasıyla derlenmiyor. Sadece gtkd var. FltkD, wxD bunlar aktif değil. Qtd 2011 in eylülünden beri pasif. Qtd bari çalışsa oturup bir şeyler yazmaya çalışırız fakat talep olmadığından hiç dmd dışında pek aktif proje yok.

Stackoverflow daki soru aktifliği bile durumu açıklıyor.
http://stackoverflow.com/questions/tagged/d
Kadir Can #10
Üye Haz 2010 tarihinden beri · 413 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Gerçekçi olmak gerekirse mesleki anlamda C++ ve hatta sistem tarafına girmeyecekseniz Java öneririm.Kendi işinizi kuracaksanız D pratik bir tercih olabilir; ama bir şirkete girerken D şu an için işe yaramayacaktır.Kendi işinizi kursanız bile D bilen eleman bilmek zor olacaktır.
Avatar
Salih Dinçer #11
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Evet, bazı bağlayıcılar (binders) çok geriden takip ediyor olabilir. Bu da biraz ilgi ile orantılı. Ama inanıyorum ki bir gün patlama yaşanabilir; Japonlar'dan ve/veya biz Türkler'den...:)

Bu arada GDC'ye baktım 2.57'den itibaren derliyor ki bu fena sayılmaz:
http://bitbucket.org/goshawk/gdc/wiki/Home#installation

Gerçi lambda ve UFC olayları olmamasından dolayı DMD'yi tercih edebiliriz...
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:
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-20, 01:22:11 (UTC -08:00)