C#nedir?com
 
YAZAR HAKKINDA
Sefer Algan
Sefer Algan
http://www.seferalgan.com
İletişme geçmek için tıklayın.
71 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler:  C# / VC#/.NET Sefer Algan
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Başlangıç
Kategori : C# / VC#/.NET
Yayınlanma Tarihi : 19.7.2003
Okunma Sayısı : 24149
Yorum Sayısı : 0     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
XML - Deniz Kılınç
emre TAŞ
yazının devamı >
emre TAŞ
Decompiling and Reverse Engineering .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Masaüstü mü ? İnternet Mi? .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
.Net Kavramları - .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Yeni Başlayanlar için - .Net Radyo
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer
Conda install environment.yml Package 12.4.2021
Turhal Temizer
Mac OS/X Removing CUDA 12.4.2021
Burak Selim Şenyurt
Tie Fighter Değil, Project Tye! 12.4.2021
Burak Selim Şenyurt
Stackoverflow Sevgi Anketinde Yıllardır Bir Numara Çıkan Programlama Dili Rust Kimdir? 12.4.2021
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
Yeni Nesil İş Uygulamalarının Mimarı C# ve Diğer Diller
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
C# ve Diğer Diller
 

Şirket yöneticileri geliştirilecek proje için bir programlama dilini seçmek zorunda kaldığında genelikle şu soruyu sorar : Hangi programlama dili ile projeyi en etkin ve en hızlı şekilde müşterime sunabileceğim hale getirebilirim? Bu sorunun çözümüne ulaşmak o kadar da kolay olmuyor maalesef. Çözüme zor ulaşmada programlama dillerinin fazla olmasının etkisi omakla beraber her bir programlama dilinin sunduğu standart kütüphanenin farklı olmasının da etkisi oldukça fazladır. Özellikle günümüz iş uygulamaları birden fazla platformu destelemek zorunda kalmıştır. Buda seçilecek uygulama geliştirme ortamının önemini açıkca göstermektedir. Uygulamaların internet ortamına taşınması ile birlikte bir programlama dilinden beklenen özelliklerde doğal olarak değişmiştir. 1970’ li yıllarda bir mikroişlemciyi programlamak ne denli önemli olduysa 2000’li yıllarda interneti programlamak o kadar önemli olmuştur.

 

İnternet’in iş dünyasına girişi ile birlikte geliştirilen uygulamalardan beklenenler de değişmiştir. Bu durum doğal olarak uygulama geliştiricileri doğrudan etkilemiştir. İnternet ortamında çalışan ve dağıtık yapıda çalışabilen çok yönlü bir uygulama geliştirmek eski yöntemlerle imkansız değildir ancak inanılmaz derecede zaman ve insan gücü gerektirmektedir. Bu zorulukları aşmak için gelişen teknolojiye ve isteklere paralel olarak programlama dilleri de doğal gelişim içine girmiştir. Bu yazıda son yıllarda iş ve kişisel uygulama geliştiricilerin adını sıkça duyduğu C# programlama dili ve diğer dillerle olan ilişkisi anlatılacaktır. C# programlama dilinin sunduğu imkanları anlatmaya başlamadan önce programlama dillerinin tarihsel gelişimine göz atmak gerekir. Zira C# dili yıllardır yoğun bir şekilde kullanılan C,C++ ve JAVA dillerinin temelleri üzerine kurulmuştur. Şunu da hemen belirtelim ki, son geliştirilen ilk geliştirilenden çoğu zaman daha iyi olacaktır. Bu yüzden eski ile yeniyi karşılaştırırken ticari amaçları bir kenara bırakıp objektif bir gözle değerlendirmek gerekir.

 

 

         C#’ı konuşmadan önce C, C++ ve C# ile  yakından ilişkili olan JAVA’dan bahsetmek gerekir.

 

C dili ve Yapısal Programlama

 

Düşündüklerimizi makinelere yaptırma isteğimizin bir sonucu olarak programlama dilleri doğmuştur. Makineleri anlamak insanoğlu için o kadar da kolay olmamıştır. Zira makinelerin(bilgisayarların) anladığı dilden konuşmak insanlar için gerçekten zor bir iştir. Gün geçtikçe makineleri anlamak ve onları programlamak için yeni arayışlar içine girildi. Somutlaştırılmış makine komutları sayesinde bilgisayarları daha etkili bir şekilde yönetmek mümkün hale gelmiştir. Zaman ilerledikçe bilgisayarlar sadece belirli bilimsel hesaplamaları yapmak için kullanılan araç olmaktan çıkıp insanların yaşamlarında rutin işleri yapabilecek araç haline geldi. Bilgisayarların insanların ihtiyaçlarına hızlı bir şekilde cevap verebilmesi için onları hızlı bir şekilde programlamak gerekiyordu. Klasik yöntemlerle(makine komutlarıyla) hızlı çözümler üretilemez hale gelince daha yüksek seviyeli programlama dillerine ihtiyaç duyuldu. 1980’li yıllarda en çok kullanılan programlama dili olan “C” bu anlamda atılmış büyük bir adımdır. Yapısal programlama modeli her ne kadar C dilinden önce de yapılıyor idiyse de asıl büyük gelişmeler C dili ile birlikte olmuştur. C gibi makine diline göre  yüksek seviyeli programlama dilleri ile büyük projeler yapılabiliyordu. Artık uygulamalar sadece bilimsel çalışma aracı olmaktan çıkıp iş dünyasında kullanılabilen uygulamalar haline geldi. Bütün bu iyi gelişmelerin yanında zaman su gibi akıp gidiyordu, buna paralel olarak projeler büyüyor ve teknoloji artan ivmeyle gelişiyordu. Yavaş yavaş anlaşıldı ki C dili çok büyük projelerde yetersiz kalıyordu. Yeni bir programlama modeline ihtiyaç duyuldu ve C++ dilinin temelleri atıldı.

 

C++ ve Nesne Yönelimli Programlama

 

Yapısal programlama modeliyle çok büyük projeleri kontrol altına almak neredeyse imkansızdır. Bu sorunun üstesinden gelmek için yeni bir model gerekiyordu. Nihayet Bjarne Stroustrup tarafından C dili baz alınarak yeni bir programlama dili geliştirildi. Bu dilin adı : C++’tır. C++, C’nin üzerine inşaa edildiği için ilk başlarda “C with Classes”(Sınıflı C) olarak adlandırıldı. Peki bu dil C’den farklı olarak programcılara ne sunuyordu? C++ dilinin sunduğu en büyük yenilik nesne yönelimli programlamayı destekliyor olmasıdır. Nesne yönelimli programlama tekniği günümüzde de yaygın bir şekilde kullanılan bir tekniktir. Bu teknik gerçek hayatı modellemede büyük bir başarı sağlamaktadır. Söz gelimi bir projeyi parçalara ayrıp bu parçalar arasında programlama yolu ile bağlantılar kurmak çok basit hale gelmiştir. Nesne yönelimli programlama tekniği proje geliştirme aşamasında burada sayamayacağımız birçok kolaylık sağlamaktadır.

 

C++ dilinin diğer bir özelliğide C programcılarına hitap etmesiydi. C dilindeki temel kurallar aynen C++ dilinde de mevcuttur. Bu yüzden C++ dilini ve nesne yönelimli programlama tekniğine geçiş yapmak için C dilini iyi bilmek gerekir. Daha doğrusu C++ dilini sadece nesne yönelimli programlamayı destekliyor şeklinde düşünmemek gerekir. Günümüzde birçok alt seviye işlemlerde(haberleşme, işletim sistemi, aygıt sürücüleri) C++ dilinin yoğun bir şekilde kullanılması bunun bir kanıtıdır.

 

İnternetin Gelişimi ve JAVA Dili

 

İnterneti’in gelişimi bilgisayar dünyasındaki en önemli ilerlemelerden biridir. Programlama dünyasında JAVA dilinin ortaya çıkması en az internetin ilerlemesi kadar önemlidir. Çünkü C ve C++ dilleri ile yalnızca belirli sistemlere yönelik uygulamalar geliştirilebiliyordu. Oysa internet sayesinde birçok farklı sistem birbirine bağlanır hale gelmiştir. Artık sistemlerden bağımsız uygulama geliştirmek gerekiyordu. Daha doğrusu interneti hedef alacak uygulama geliştirmek gerekiyordu. Programcılar gelişen internet ortamına yabancı kalamazdı. Bu amaç doğrultusunda Sun Microsystems isimli firma önceleri OAK olarak anılan JAVA isimli programlama dilini ortaya çıkardı. JAVA, dil olarak C++ dilinin devamı gibi düşünülebilir. Ama amaç tamamen farklıdır. Zira Sun firması ortaya JAVA dili ile birlikte yeni bir uygulama geliştirme modelide sunmaktaydı. Bu programlama modelinde en büyük hedef sistemler arası taşınabilir kod yazmaktır. Yani bir uygulamayı hem Microsoft platformunda hemde  Unix ve Linux platformlarında çalıştırabilmek hedeflenmiştir. Böylece geliştirilen uygulamalar işletim sistemi ve işlemciden  bağımsız hale gelecektir.

Peki sistemler arası bu yüksek taşınabilirlik nasıl olmaktadır? Cevabı basit : Ara Dil. Evet, JAVA dilinde yazılmış kodlar derlendiğinde kodlar makine komutların çevrilmeden “ara kod” denilen “bytecode” a çevrilmektedir. Bytecode’a çevrilen program çalıştırıldığında Java Sanal Makinesi devreye girer ve uygulamanın çalıştırıldığı sisteme özgün makine kodunu üretir. Bu durumda Sun firmasının bir çok sistemde çalışabilecek Java Sanal Makinesi üretmesi gerekiyordu. Nitekim zamanla günümüzde yaygın kullanılan bütün sistemlerde sorunsuz çalışabilecek Java Sanal Makineleri geliştirildi. Hatta şu an için bazı cep telefonları ve çeşitli sim kartlarında bile JAVA programlarını çalıştırabilecek Java Sanal Makineleri mevcuttur.

 

JAVA ile C++ dili her ne kadar birbirine çok benzer olsada aynı kategoride değildir. Elmayla armutu karıştırmamak gerekir. Eğer “JAVA mı C++ mı” diye bir soru sorulursa cevap “her ikisi de” olacaktır. Çünkü ikisininde kullanım amacı farklıdır. Bir firma bir proje için hiçbir zaman bu iki dilden birisini seçmek durumunda kalmayacaktır. JAVA ile aynı kefeye koyabileceğimiz dil birazdan anlatacağım C# dilidir.

 

C# Dili ve .NET Platformu

 

JAVA’nın platform bağımsız kod üretmedeki başarısı su götürmez bir gerçektir. Bir çok kurumsal dev projede JAVA dilinin ve J2EE platformunun olanaklarından faydalanılması bunun en önemli göstergesidir. Günümüzde büyük projelerde birden fazla programlama dili kullanılabilmektedir. Ancak JAVA’nın diller arası uyumlu çalışmaya destek verememesi JAVA’nın bir eksikliği olarak görülmüştür. Diller arası uyumlu çalışma alanında en büyük başarıyı Microsoft firması sağlamıştır. Son dönemlerde sıklıkla kullanılan COM teknolojisi bu uyumluluğa bir örnektir. COM sayesinde farklı dillerde yazılan yazılım parçacıkları diğer bir uygulamada kullanılabilmektedir.

 

JAVA’nın programlamadaki büyük bir boşluğu doldurması onun en büyük rakibi olan Microsoft firmasının gözünden kaçmadı. En sonunda Microsoft’un bir ürünü olan Visual Studio yazılım geliştirme aracına JAVA yı da ekleme kararı aldı. Visual J++ adı altında Windows platformuna entegre edilen JAVA dili bu platformda pek başarılı olamadı. Bu oluşumun başarılı olmadığını gören Microsoft yeni arayışlar içine girdi. Microsoft başkasının malını kendi ürününe entegre etmek yerine kendi ürününü geliştirmeye karar verdi ve .NET yazılım geliştirme platformunu ortaya çıkardı. .NET temel felsefe olarak J2EE platformuna benzemektedir ancak .NET’in derinliklerine daldıkça çok yeni kavramlarla karşılaşırız. Bu yeniliklerden en önemlisi “diller arası uyumluluk” tur. J2EE platformunda sadece JAVA dili kullanılıyorken .NET platformunda birçok dil kulanılabilmektedir. Bu dillerin sayısı oldukça fazladır. Üstelik Microsoft tarafından .NET platformu için sıfırdan yeni bir dil tasarlanmıştır. Yapı olarak C++ ve JAVA dilllerine benzerliği ile bilinen bu dil Anders Hejlsberg tarafından geliştirilen C# (C Sharp)’tan başka bir şey değildir..

 

JAVA, C++ diline nasıl benziyorsa C# dilide C++ ve JAVA’ya benzemektedir. Programlama modeli yine her üç ortamda da nesne yönelimlidir. Değişen şey bu modelin uygulanış şeklidir. C++’ta kaynak kod derleyici tarafından makine koduna, JAVA’da bytecode’a C#’ta ise IL(Intermediate Language-Ara Dil)’a çevrilmektedir. Burda vurgulanması gereken en önemli nokta JAVA’da bytecode JAVA sanal makinesi tarafından yorumlanarak çalıştırılırken, .NET’te IL kodları  derlenerek çalıştırılmaktadır. Hemen şunu da belirtelim ki, derleme işlemi yorumlama işleminden performans açısından daha öndedir.

 

C# dil olarak C++ ve JAVA’ya çok benzemektedir. Bu yüzden C# dilini konuşurken .NET platformunu göz önünde bulundurmalıyız. Dilleri sadece birer araç olarak görmemizde fayda var. İsterseniz lafı daha fazla uzatmadan JAVA/J2EE ve C#/.NET’i karşılaştırıp benzerliklerini ve farklılıklarını ortaya koyalım ardından C#’ı diğer .NET dillerinden ayıran özellikleri inceleyip “neden C#” sorusuna cevap arayalım.

C# ile .NET mi JAVA ile J2EE mi?

 

Saf C# ve JAVA dilleri düşünüldüğünde birkaç nokta dışında bu iki dil birbirine benzemektedir. Bu yüzden karşılaştırma yaparken bu dillerin kullanıldıkları platformlarıda göz önünde bulundurmak gerekir. İsterseniz madde madde her bir özelliği iki platform için değerlendirelim.

 

1-) Mimari : .NET ve J2EE çalışma biçimi olarak birbirine çok benzer. Her iki platformda da uygulama kaynak kodu ara bir koda dönüştürülür. Aradaki en büyük fark bu ara kodun işletilmesi sırasında görülür. .NET’te ara kod çalışma zamanında derlendikten sonra çalıştırılırken JAVA’da yorumlanarak çalıştırılır.

2-) Çalışma Zamanı(Runtime) Mimarisi : J2EE platformundaki Java Sanal Makinesi ile .NET platformundaki CLR(Common Language Runtime) birimi eşdeğerdedir. JVM, bytecode’un işletilmesinden sorumlu iken CLR, IL kodlarının işletilmesinden sorumludur.

3-) Sistemler Arası Taşınabilirlik : Teorik olarak C# ve JAVA ile yazılmış uygulamalar sistemden bağımsızdırlar. Günümüzde C# ile .NET ortamında geliştirilen uygulamaların bir çok mobil cihazda ve Windows sistemlerinde kullanıldığını düşünürsek bu teorinin yavaş yavaş gerçeğe dönüştüğü görülebilir. Yakın bir gelecekte .NET altyapısının Linux versiyonunun da çıkacağı bilinmektedir. JAVA ise bu konuda kendisini çoktan kanıtlamış durumdadır.

4-) Diller Arası Uyumluluk : J2EE platformunda sadece JAVA dili kullanılırken .NET ortamında C#,C++,VB.NET ve hatta JAVA dili bile kullanılabilmektedir. Üstelik farklı dillerde yazılmış parçacıklar diğer bir dilde sorunsuzca kullanılabilmektedir. Bu sayede bütün programcıların .NET platformunda rahat programlama yapabilmesi sağlanmıştır. .NET uyumlu herhangi bir dilde geliştirilen bütün uygulamalar aynı ara koda dönüştürüldüğü için .NET dilleri arasında büyük performans farklılıkları meydana gelmez.

5-) Web Servisi Kullanımı : Web Servisleri dağıtık yapıda geliştirilen uygulamaların temel parçası olmuştur. Özellikle iletişimin XML tabanlı olması web servislerinin önemini göstermektedir. Her iki dil ile web servislerine erişmek mümkün olsada C# ile bir web servisini kullanmak oldukça kolaydır. C# ve .NET’in web servislerine kolay erişmesi bir avantaj olarak görülebilir.

6-) Bellek Yönetimi : C#’ta aynen JAVA’da olduğu gibi kullanılan nesneleri toplama programcının görevi değildir. Kullanılmayan gereksiz nesneler gereksiz nesne toplayıcısı tarafından zamanı geldiğinde bellekten silinirler. Buna rağmen C# programcıları isterse belleği kendileri de yönetebilir. Yani C# dilinde bellek adreslerini tutan göstericiler(pointer) hala kullanılabilmektedir. JAVA dilinde bu imkan yoktur. C#’ı JAVA dan ayıran en büyük fark budur. Zira gösterici kullanımı sayesinde geriye dönük uyumlulukta sağlanabilmektedir. Örneğin parametre olarak bir gösterici alan sistem fonksiyonunu C#’ta kullanmak mümkündür.

7-) Veri Tipleri : C# dilinin temel felsefesi herşeyin bir nesne olmasıdır. Temel veri türleride dahil olmak üzere herşey birer nesne olarak tanımlanır. C# ve JAVA sağladığı temel veri türleri bakımından birbirlerine çok yakındır.

8-) Tekrar Kullanılabilirlik : Nesne yönelimli programlama modelinin en önemli özelliği geliştirilen sınıfların paketlenerek sonradan tekrar tekrar farklı uygulamalarda kullanılabilmesidir. C#’ ta sınıflar isim alanları(namespace) içerisinde paketlenerek diğer uygulamalar içinde kullanılabilir. Java’da ise sınıflar “package” dediğimiz bir kavramla paketlenir. Sonuç olarak her iki dilde eşit oranda bu özelliği desteklemektedir. Ancak C#’ta sınıfların organizasyonu daha estetik bir şekilde düzenlenmektedir.

9-) Kontrol Mekanizmaları : Kodların içinde en çok görülen bloklar olan for,while ve if gibi yapılar her iki dilde de vardır. C#’ta JAVA dilinde olmayan ayrıca foreach döngüsü bulunmaktadır. foreach döngüsü ile koleksiyon tabanlı nesnelerin elemanları arasında tek yönde rahatça dolaşılabilmektedir.

10-) Türetme ve Çok Biçimlilik : Nesne yönelimli programlama modelinin C++ dilinden beri kullanılan mekanizmaları olan türetme ve çok biçimlilik her iki dilde de mevcuttur. C++’tan farklı olarak C# ve Java’da sadece tekli türetme mevcuttur.

11-) İstisnai Durumları Yönetme : Uygulamların en büyük düşmanı olan istisnai durumların(exceptions) her iki dilde de ele alınış biçimi hemen hemen aynıdır.

12-) Sınıf Kütüphanesi : Veritabanı ve dosya işlemleri gibi burada sayamayacağımız bir çok temel işi yapan sınıflar .NET ve J2EE platformunda mevcuttur. Gerek bu sınıfların organizasyonu gerekse de sınıfların kullanılış biçimi bakımından .NET platformunun daha avantajlı olduğunu söyleyebiliriz.

 

Bütün bu maddeler bir bütün olarak ele alındığında C#’ın JAVA’dan bir kademe önde olduğu görülmektedir. Bu durum elbette proje yöneticilerinin seçimlerini etkilemektedir. Microsoft faktörünüde göz önünde bulundurursak C# ve .NET’in gelecekte çok iş yapacağını söylemek için müneccim olmaya gerek yok. Bu arada JAVA’nın halen yaygın bir şekilde kullanıldığını da gözardı etmemeliyiz. Bu durum C# ve JAVA’nın seçiminde sadece teknik özelliklerin değil aynı zamanda Windows ve Linux’te olduğu gibi sosyal etkenlerinde rolü bulunduğunu gösteriyor.

 

Buraya kadar söylediklerimden belki şöyle bir soru işareti doğmuş olabilir : “C# mı JAVA mı” sorusunu “C# mı C++ mı” şeklinde sorsak neler değişir? Cevap : Çok şey değişir. Evet C#’ın JAVA ile olan ilişkisi C++ ile olan ilişkisinden tamamen farklıdır. C# ile JAVA’yı ancak saf dil olarak karşılaştırabiliriz. Yani dilin sentaksından bahsediyorum. Bu iki dilin kullanıldığı ortam farklıdır. Birinde bir sisteme özgün makine kodu üretilirken diğerinde sistemden bağımsız ara bir kod oluşturulmaktadır. Bu durumda C++ ve C#’ı bir bütün olarak karşılaştırmayı kişisel olarak doğru bulmuyorum. Çünkü ikisi farklı kategorilerde yarışıyor. Eğer bir gün .NET’in ürettiği ara koddaki komutlar ile çalışan mikroişlemci geliştirilirse o zaman belki C# ile C++’ı karşılaştırabiliriz. Peki C# mı C++? Cevap : Her ikiside. Eğer şirketiniz Intel işlemciler için bir işletim sistemi geliştiriyorsa elbette C++ ve C dilleri seçilmelidir. Şirketiniz dağıtık yapıda çok geniş bir çalışma ağı olan bir uygulama geliştiriyorsa o zaman C# ve .NET’i seçmeniz daha doğru olacaktır. Bu seçim bir projede hangi dilin kullanılacağını değerlendirmek içindi. İşe bir de programcılar açısından bakalım. Bir programcının hem C++ hem C# hemde JAVA bilmesine gerek var mı? Bence gerek var yada yok. Kesin bir cevabı verilemez bu sorunun. Daha doğrusu bir programcı ihtiyaç dahilinde herhangi bir programlama dilini kullanabilmelidir. Ancak şunu da unutmayalım ki iyi bir programcı çok sayıda programlama dili bilen demek değildir. İyi bir programcı .NET platformunda olduğu gibi programlama dilinden bağımsız kod üretebilmelidir.

 

Diğer .NET Dilleri ve C#

 

Daha öncede dediğim gibi .NET paltformunda bir çok programlama dilini kullanabiliriz. Bu dillerin en önemlileri C#, VB.NET, C++.NET ve J# dilleridir. Bu dillerden bir tanesinin özel bir konumu vardır. Tahmin edeceğiniz gibi bu dil C#’tır. C# .NET platformu için sıfırdan geliştirilmiş yeni bir dildir. Diğer diller ise eski versiyonları değiştirilerek .NET’e uyumlu hale getirilmiştir. Özellikle Visual Basic dilinin devamı gibi görünen VB.NET dilinde bir çok radikal değişiklik yapılmıştır. Örneğin VB dili nesne yönelimli programlama tekniğini destekler hale getirilmiştir. Bu eklentilerin çok başarılı oloduğu söylenemez. Çünkü bu şekildeki zoraki eklentiler dilin en başta tasarlanma amacına uygunluğunu ortadan kalkmaktadır. Bu amaçla Microsoft, hem nesne yönelimli programlama tekniğine tam destek veren, C++ dilinin güçlü özelliklerinden yoksun olmayan ve aynı şekilde Visual Basic dilinin kolaylığından esinlenerek C# dilini çıkardı.

 

Peki .NET dilleri arasında C#’ı tercih etmemize neden olacak başka neler var? Her şeyden önce C# öğrenilmesi kolay bir dildir. Az sayıda anahtar sözcük içermesine rağmen bir çok olanağı programcının hizmetine sunmuştur. C# nesne yönelimli programlama diline tam destek verdiği içinde seçilebilir. C#’ta değişken kavramı neredeyse kalkmıştır. Bunda bütün temel veri türleri de dahil olmak üzere bütün sınıfların Object diye adlandırılan bir sınıftan türetilmesinin etkisi vardır. C# dili güç ve hızlılık arasındaki dengeye estetik bir şekilde korumaktadır. Temsilci ve olaylarla VB’deki olay mantığına benzer bir model sunarken aynı zamanda göstericileri kullanmaya imkan vererek C++ dilinin güçlü özelliklerinden yoksun bırakmamıştır. .NET sınıf kütüphanesinin büyük bir kısmı C# ile geliştirilmiştir. Yani bu kütüphaneyi en etkin biçimde C# ile kullanabiliriz. Dahası C# dili .NET’in çalışma mimarisi de gözönünde bulundurularak sıfırdan tasarlandığı için .NET’in bütün olanaklarından en etkin biçimde C# ile faydalanabiliriz.

 

C# için söylenebilecek son söz :  C#, modern programlama tekniklerine tam destek veren, internet çağının gerektirdiği tüm yazılım bileşenlerini geliştirmeye izin veren, hızlı ve etkin bir şekilde kodlama yapılabilen, C++ ve JAVA’nın güzel yönlerini alıp geriye dönük uyumluluğu JAVA’da olduğu gibi gözardı etmeyen bir programlama dilidir.

 

Sonuç

 

İnternet’in ve haberleşme teknolojisinin çok ileri bir seviyede olduğu bir dönemde internet üzerinde kullanılabilecek yazılım bileşenlerini programlamak son derece önem kazanmıştır. Her ne kadar C# ve JAVA öncesi dillerle herşey yapılabiliyor olsada projelerin boyutlarının büyümesi bu dillerin artık yetersiz olduğunun bir göstergesidir. Özellikle yeni nesil iş uygulamalarında C#  ve JAVA, C++’tan bir adım önde görünüyor. Tabi bu durum C++ dilinin kötü olduğunu göstermez. Nitekim C# ve JAVA dillerinin her ikiside C++ dilini örnek almıştır. Değişen tek şey günün ihtiyaçlarıdır. Aynı zamanda C# dili JAVA, C++.NET, VB.NET ve J# gibi diller önünde de bir adım önde görünüyor.

Makale:
Yeni Nesil İş Uygulamalarının Mimarı C# ve Diğer Diller C#, Visual C# ve .NET Sefer Algan
  • Yazılan Yorumlar
  • Yorum Yaz
Bu konu hakkında yayınlanan yorum bulunmamaktadır.
"Yorum Yaz" tabını kullanarak sizde yorumlarınızı yazabilirsiniz.
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor