Aslında çoook güzel bir tartışma oluyor. Okuması da çok keyifli. Hatta gaza geldim ben de 1-2 şey yazayım istedim.

Ben Pascal->C->Delphi yolunu izlemiş bir programcıyım. Şu anda da yoğun olarak Delphi kullanıyorum. Ayrıca zaman zaman C++, Python, Php, C#, Visual Basic ve Java ile ilgilenmişliğim var. Bu dillerin tamamını kendime yetecek, orta seviye bir uygulama geliştirebilecek kadar biliyorum. Ama Delphi'yi daha uzun süre kullandığımdan daha iyi biliyorum.

Peki neden Delphi, neden C++ değil?
Benim delphi'ye geçtiğim dönem C++ ile windows için görsel program geliştirmek çok zordu. Borland'ın C++ builder'ı vardı ama Delphi kadar yaygın değildi. Ve bulunduğum yerde C/C++ bilen yoktu. Herkes Delphi kullanıyordu. Tabi o zamanlar internet de pek aktif değildi. En hızlı Modem 33600kpbs idi. Bu sebeple de dopal olarak Kaynak sıkıntısı olmayan (Ingilizcem de yeterli değil.) Delphi iyi bir tercihdi.

Delphi gibi bir IDE kullanmak gerçekten de programın geliştirilme sürecini ciddi anlamda kısaltıyor. Bazı arkadaşlar "aynı programı C'de daha kısa sürede yazarım" diyebilir belki. Ancak Delphi'yi iyi bilen birinden daha hızlı yazamazsınız (Görsel arabirim dahil). IDE'nin müthiş kolaylıkları var.

Ancak; bu kolaylık beraberinde ciddi bir sorunu da getiriyor. IDE her şeyi o kadar kolaylaştırıyor ki bir müddet sonra gerçek programlama mantığından kopuyorsunuz. Zira IDE üzerinden hiç kod yazmadan pek çok şeyi yapabilir hale geliyorsunuz. Bu beraberinde tembelliği getiriyor.

Bu konuda şöyle bir örnek vereyim; Yaklaşık 6 ay kadar önce plattform bağımsızlık amacıyla Delphi'yi bırakıp Java'ya geçmeye karar verdim. Netbeans IDE'yi indirdim. Sonra Eclipse'i indirdim. Sonra Idea'yı indirdim. Hiç birine ısınamadım. Kullanamadım. Hep Delphi'nin kolaylıkları önümde durdu. Aynı sebeple Visual Studio'ya da alışamamıştım mesela. Keza Python'dan da aynı sebeple vazgeçtim.

Bundan senelerce evvel bir arkadaşa Delphide kendi komponentlerimi yazmak istiyorum demiştim. Bana cevaben "hazır yazılmışı var. Amerikayı yeniden keşfetmenin anlamı yok. Amaç program yazmak. Ele alınır bir ürün çıkarmak. O kadar detayla uğraşma" demişti. Ben de o zamanki imkansızlıklardan dolayı fazla üzerinde duramamıştım. Ancak son 2-3 yıldır delphi de kendi yazdığım bir kaç komponenti kullanıyorum. Evet Amerikayı yeniden keşfediyorum. Delphi sağladığı müthiş kolaylıklar yüzünden hep "Amerikayı keşfe gerek yok. Adam zaten keşfetmiş" mantığını zihnimize yerleştirdi. Şimdi hiç bir IDE'ye alışılamıyor.

Bugün QT Creator ile C++ çalışıyorum.
Eclipse'de Java ile Android programlama yapıyorum ve Delphi ile Datasnap üzerinden birbirlerini haberleştiriyorum. Yani artık diğer IDE'lere de alışmaya başladım. Artık tembellikten sıyrılıyorum iyice. Evet Tembellik yapıyordum her işi IDE yükleyerek.

Tabi tembellik desek de piyasa şartları gereği davranmak gerekiyor kimi zaman. Yoksa işsiz kalıyorsunuz. C veya C++ bilen birinin iş bulması Java, C# bilen biri kadar değil. Hal böyle olunca da herkes arka planı bırakıp ön planla ilgileniyor. Bugün pek çok kimse GTK, WxWidget, QT gibi framework/Grafik araç takımlarından haberdar değil.

Bugün C++ ile QT, GTK, WxWidget gibi alternatif görsel kütüphaneler mevcut. Hatta iyi ingilizceniz varsa internette oldukça çok kaynak var. Yani gerektiğinde kendi grafik kütüphanenizi yazabileceğiniz kadar kaynak. Örneğin ben şu anda C++ ile QT üzerinde program geliştirmek için kendimi eğitiyorum. (Bu konuda elinizde Türkçe kaynak falan varsa alabilirim. Zira ingilizcem yeterli değil. Gerçi kodlardan aradığım şeyleri dil farketmeksizin buluyorum ama amaç mantığını öğrenmek).


Yanlış hatırlamıyorsam Görsel kısmın çok önemli olmadığı yazılmıştı. Asıl önemli kısmın arka planda ki kodların olduğu söylenmişti. Bir programcı açısından doğru bir düşünce gibi. Ancak eğer görsel kısım iyi olmayınca arka planın da bir önemi kalmıyor pek çok sektörde. Örneğin; Yıllar önce bir şirkete programcı olarak girmiştim. Visual Basic'te yazılmış bir muhasebe programı vardı. Arka plan yani kodlar karman çorman ve kötüydü. Ama programın her formu başka bir renkteydi. Biri sarı, diğeri yeşil, öbürü pembe... O zaman çok şaşırmıştım. "Bu programı kimse almaz. Programın her tarafı yamalı. Tam düzgün çalışmıyor. Bu programı Delphi ile baştan yazalım." dedim. Ayrıca her formun farklı renklerde olmasını da eleştirdim. Aldığım cevap çok enterasandı. "Kodları sen görüyorsun. Müşteri görmüyor. Ayrıca her formun ayrı renklerde olması programı güzel gösteriyor. Pek çok kişi sırf bu yüzden alıyor programı".

Çok uzun yazdım. Ayrıca yazarlığım çok da iyi olmadığından bazı kopukluklar olabilir. Kusura bakmayın.

Özetle; Hangi programlama dilini çok iyi biliyorsanız, onunla hızlı program geliştirirsiniz. Java, Delphi, Python, PHP ve C# gibi diller amaca yönelik dillerdir. C/C++ ise daha alt düzey dillerdir. Web sitesi yazacaksanız bunu C++ ile de yapabilirsiniz. Sonuçta 1-2 yönlendirmeye bakar iş. Ancak PHP ile daha hızlı yazarsınız. Zira birileri sizin C/C++ ile yazmanız gereken kodları zaten yazmış, hazırlamış. Size sadece kullanmak kalmış. C/C++ ile Delphi'de yazdığınız bir programın aynısını yazabilirsiniz. Sonuçta windows apileri kullanılıyor. Siz oturup o apileri kullanarak C/C++'da da aynı programı yazabilirsiniz. Ama Delphi kullanırsanız daha kolay yaparsınız. Adamlar yazmış, hazırlamış.

Sonuçta tüm dillerin arka planlarında C/C++ var.


On 24-04-2012 17:51, Atıf CEYLAN wrote:
Hocam bu konu ilk acildiginda benzer seyleri ifade etmistim. Yani kisilere gore bu kavramlar degisir ve kirimizi mi guzel? mavi mi? sorusunu tartismak gibi olur bir nokta da filan diye... Sonra ne olduysa is C ile uygulama gelistirmek zor is filan gibi bir noktaya kaydi. Ben kendi adima bu noktaya takildim. O nedenle boyle ornekler verip duruyorum. Israrla elma mi daha lezzetli armut mu daha yesil deyip duruyoruz. Ayrica java ile kod gelistirmedim, sanirim gelistirmeyecegim de...
Bakin bu da kisisel bir sey oldu. Sanirim dugum noktasi burasi.

_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

Cevap