09-04-2019, Saat: 09:38
(07-04-2019, Saat: 20:12)coyistik Adlı Kullanıcıdan Alıntı: C/C++ 'ı kıyaslayamayız malesef çok yanlış olur. Diğerlerinden çok farklı çünkü. Biraz reklam gibi olacak ama açıklama ihtiyacı hissettim.
Yeri doldurulabilecek bir dil değil C++, hız kolaylık vs bakımından kastediyorsan eğer bu olabilir ki zaten montaj diller bunu sağlamak için ortaya çıktı . Haliyle gayet doğal. Kaldı ki Delphi gibi yüksek seviyeli bir dil kendi muadilleri içinde kıyas edilebilir. C dünyasında ise durum bunlardan farklı. Tüm bu dillerin derleyicileri ilk c ile yazıldı. " c based languages " şeklinde aratırsan ne demek istediğim anlaşılabilir. Bir çoğu fortran,pascal vs hariç tutuyorum. Sektörel olarak farklı olsalarda neden kıyaslanmaz dediğime geleyim.
C++ herkesin harcı bir dil değil ve herkeste yazamaz. Bu dil üretim bandını oluşturan unsur. Dillerin çoğunda dili yazanlar herşeyi düşündüğü için geliştirecek kişiye pek birşey bırakılmıyor ,hazır yiyici gibi davranıyor. Lüks ve kolaylık, kütüphanelere bağımlı ve mayışarak yazılıyor. Genelde hep otomasyon hep benzer metadolojileri takip ediyorlar. C++ ise bir sınır yok her paradigma kullanılabilir. C++17 ile zaten sözdizimdeki büyük değişiklikleri MODERNC++ kavramını esgeçiyorum derleyici eklentilerini saymıyorum bile. Hem göz korkutucu hem de sözdiziminde ki yabancılıklar bitmek bitmiyor. Tüm bunlarla birlikte tembelliği imkansız kılıyor.
Dört dil öğreniyormuş gibi hissedeceksin yani eğer giriş yaparsan bu dile ve de delphi bilginin yada herhangi bir programlama bilginin hiç yardımı da dokunmayacak. Genelde herkes C++ hakkında fikir sahibi olur ama olmamalı. Okullarda okutulan %5'lik bir dilimi sadece. Sözdizim ve algoritmadan ibaret ki aynı dilin içinde içerisinde birbirinden çok farklı alanlar olabiliyor bunu iş ilanlarına baktığında daha kolay anlarsın. Kastettiğim aynı dilin içinde bir çok farklı dünya bir çok farklı uzmanlık alanı. Çünkü çok geniş ve teferruatlı.
Ama garanti edebilirim ki C++ da ne yaptığını bildiğin sürece ne geliştirme hızı anlamında ne verim bakımından hiçbir eksi dönüş almazsın hele modern c++ aldığı ivmeden sonra .net ile windows yazmak insanı attan inip eşeğe binmek ile aynı mesafeye koyacaktır. Bilgisayara tam hakimiyetiniz olması tarifsiz. Tabi bunları yeterli bilgi olduğunu varsayarak söylüyorum. IOCTL, COM, WinRT, WDM, MFC, CRT ... vs bilindiği varsayılarak.
Biraz da assembly ile arabulucu olmadan herşeye uzanabiliyor ve manipüle edebiliyor olmak harika bir duygu ama bu da ülkemizde değeri anlaşılamamış bir dil. Yapılan en çok şey programlama dili (derleyici), oyun motoru, işletim sistemi, sürücü, gömülü sistemler. Diğerleriyle bu tür şeyler çoğu zaman çılgınlık hadi oyun motorunu filan anlarımda. Ama bir bilmeyen için bir socket yazması veya mail göndermesi bile oldukça fazla zor. Bunun birkaç method ile montaj dilerde gönderebilirken. Şu yıllarda zaten temel kurumsal yazılımlar ve otomasyonları olsun crud sorgularla gui ile çalışması her dilde kolay.
Delphi, bundan 24 yıl önce ortaya çıkmış dünyanın en hızlı derleyicisine sahip olmuş, son 10-12 yıldır derleyici ve IDE ile nerede ise hiç ilgilenilmemesine rağmen, bana kalırsa hâla eline kimsenin su dökemediği programlama ortamıdır.
Gerektiğinde C/C++ kadar güçlüdür, çünkü düşük seviye programlamaya da müsaade eder. Pointer'lara desteği yerleşik olarak vardır, başka diller gibi (C#, ..) programcılarını bu güçten mahrum etmek için debelenmez. Bir inline assembler'a sahiptir. Hız ve performans mı lazım, o zaman kapı sonuna kadar açıktır. C++ konusunda biraz dil fanatiği olduğunuzu gözlemliyorum. Buna hiç gerek yok. Her iş her dil ile -belki- yapılabilir ama her işi o işin erbabı olan dil ile yapmak daha yerinde bir davranış olur. Bu bağlamda işletim sistemi seviyesinde uygulama geliştirilecek ise(kernel device driver vb), zaten C'den başka mantıklı bir alternatif yoktur. Ancak işletim sistemi C ile yazıldı diye; C Pascal'dan son derece üstündür demek de doğru değildir.
C / C++ güçlü ve esnek ama bir o kadar da riskli programlama dilleridir. Bu dillerde uygulama geliştiren programcının diğer dillerde uygulama geliştiren programcılardan çok daha dikkatli olması gerekir. Çünkü, her türlü veri türü her türlü veri türüne atanabilmektedir, Pointer'lar her yerdedir, tip güvenliği yoktur. Oysa Delphi'de tüm bu güç mevcuttur ancak bazı kurallara tabiidir. Elbette her yazılımcının C/C++ bilmesi kendisi için oldukça faydalıdır. Çünkü düşük seviyeye inmiş oluyor. Pointer'lara ister istemez bulaşmış oluyor. Dolayısı ile hafıza mimarisine de bulaşmış oluyor, değişkenlerin hafızada kapladıkları alanları hesap edebilir hale geliyor vs. Ancak bu imkanlar Delphi'de merak edenler için yok mu ? Elbette VAR. Sadece biraz merak gerekiyor. Delphi nispeten zor görünen tüm detayları programcısından mükemmel bir şekilde gizlemeyi başarabilmiştir. Bence bu yönü ile fazlası ile takdiri hek eder.
Bir C/C++ programcısının basit bir Windows uygulamasını API iskeletine göre oluşturması; belki de 30-40 dakika alırken, bir Delphi programcısı için bu süre bir kaç saniyeden fazla değildir. Arka planda herşey aynıdır, sadece Delphi tüm bu ayrıntıları sizden gizler ve pek çok şeyi çok akıllıca otomatize eder. Bu da iş anlamında size hız sunar. Tabii benim kişisel tercihim her zaman düşük seviye bilgiye haiz olmak yönündedir. Ancak bu her şeyi de Assembly ile yazacağız anlamını taşımaz. Herşeyin bir yeri ve zamanı vardır.
Bilgisayara tam hakimiyetin C/C++ ile hiç bir ilgisi yoktur. Bu tamamen ayrı bir genel kültürdür. Zamanla oturan API bilgileri, işletim sisteminin çalışma mekanizmaları, donanımsal çevre cihazlarının iç yapıları ve kontrol mekanizmaları vb. Bunlar herhangi bir dilin tekelinde değildir. Bu bilgilere haiz olan birisi herhangi bir dil ile istediği hedefe çok daha rahat ulaşabilir. Ayrıca gerçekten isteyen, öğrenmeye bayılan, zorluklardan yılmayan, bir hata ile karşılaştığında etrafından dolanmak yerine bodoslama üzerine gidebilen her programcı sadece C/C++ ile değil; her şey ile başa baş mücadele edebilir. Yani C/C++ isteyen herkesin harcıdır. Bu sadece bir dildir,bir araçtır; fazla abartmamak lazım.
Son söz olarak; bana kalırsa Delphi sistem seviyesine bu kadar yakın olabilen, native derleyebilen, işletim sistemi API'lerini rahatça çağırabilen ve bu kadar kullanışlı ve efektif olan yegane dildir.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...