Programlama Dili - C# Programlama Dili
C# Programlama Dili, .NET Framework ve Programlama Dilleri Tarihinde Önemli Adımlar
" Biz programcılar, daha iyinin arayışı içinde olan bir kitleyiz; daima yazdığımız programların performansını, verimliliğini ve taşınabilirliğini arttırmanın yollarını ararız. Ayrıca kullandığımız araçlardan da pek çok şey bekleriz. Özellikle de programlama dilleri söz konusu olduğunda... Pek çok programlama dili mevcuttur, fakat sadece bir kaçı gerçekten müthiştir. Bir programlama dilinin müthiş olması için, güçlü ve aynı zamanda esnek olması gerekir. Söz dizimi kısa ve öz, ama net olmalıdır. Önümüze engel çıkarmadan doğru kodun üretilmesini kolaylaştırmalıdır. En son teknoloji özelliklerini desteklemelidir, fakat sonu bir yere varmayacak modalardan kaçınmalıdır. Son olarak, müthiş bir programlama dili neredeyse özet sayılabilecek bir niteliğe daha sahip olmalıdır: Dilin, yaptığımız işe uygun olduğunu hissedebilmeliyiz. C# işte böyle bir dildir. "
Ne güzelde tanımlamış Herbert Schildt " C# Complete Reference " kitabında; programlama dillerinde iyiyi. Zira bu gün için bir uygulamayı çok farklı programlama dilleri ile gerçekleştirebilirsiniz. Tabi son cümle için hala tereddütlerim olduğunu söylemek istiyorum.
Bu kısa ama etkili olduğunu düşündüğüm girişten sonra herkese merhabalar. Bu makalede özellikle Microsoft 'un son yıllardaki en büyük adımlarından biri olan C# ( C Sharp ) programlama dilinin gelişimi ve öncesindeki programlama dillerine ilişkin bilgiler vermeye çalışacam. Kaynak olarak C# The Complete Reference ( Herbert Schildt ) kitabını baz aldım. Zira Microsoft C# Ürün Müdürü Prashant Sridharan bu kitap için " Herbert Schildt, her programcının sahip olması gereken bir kaynak hazırlamış. " diyor. Eeee... " kimse yoğurdum kara demez " elbette
C# Nedir? , Ne değildir?
C# ; Microsoft 'un gelecek vaadeden " .NET ortamının çatısını oluşturan .Net Framework 'ü " desteklemek-geliştirmek amacıyla geliştirdiği bir programlama dilidir. C# 'ın baş mimarı olan Anders Hejlsberg aynı zamanda 80 'li yıllarda büyük başarı sağlayan Turbo Pascal 'ı yazan bir programlama dehasıdır. Bu faktörlerin yanında C# çoğu otorite tarafından kabul edilen ve dünyanın en " başarılı " iki dili olan : C ve C++ ' tan türetilmiştir.
Kişisel olarak C# dili ile tanışmam , şuan için boş zamanlarımda geliştirmeye çalıştığım CSL projesi ile başladı. Özellikle bir programlama dili kullanarak başka bir alanda bir programlama dili geliştirmek çok zordur. CSL projesinin ilk zamanlarında çektiğim zorluklardan sonra, uzun zaman önce yazdığım " C++ ın yaratıcısı Bjarne Stroustrup ile röpörtaj " makalesi aklıma geldi. Makalede bahsi geçen C# üzerinde kısa bir araştırma yaptıktan sonra ozamanlar sadece boş zamanlarımı değerlendirmek için yaptığım bu projede C# 'ın çok daha etkili olduğunu düşünüp CSL 'i C++ yerine C# ile yazmayı uygun gördüm.
Programlama Dilleri Tarihinde Önemli Adımlar
60 ' lı yıllarda özellikle Pascal gibi önemli başarılar elde etmiş programlama dilleri, yapısal programlama ( structured programming ) mantığı ile oldukça büyük ilerlemeler kaydetti. 70 'li yıllara gelindiğinde Dennis Ritchie Unix İşletim sistemi kullanan bir DEC bilgisayar üzerinde " C " dilini yarattı. C programlama dili ozaman için büyük bir adımdı ve 80 'li yıllarda en yaygın kullanılan programlama dili haline geldi. Fakat gelişen teknoloji beraberinde daha gelişmiş programları ve komplike sistemleri ortaya çıkardı. Çok kısa bir süre sonrada C dili artık yetersiz gelmekteydi.
1979 yılında nesne yönelimli programlama ( OOP, Object Oriented Programming ) yöntemi ilk kez kayda değer bir hale geldi. Bu değer Bjarne Stroustrup 'un yazdığı C++ diliydi. C++ aslında tamamen C dili üzerine kurulmuş, yani onun tüm özelliklerini içeren ve ayrıca nesne yönelimli programlama yöntemi kazandırılmış bir dildi. Bu sayede C++ dili C ye göre hem çok daha etkili oldu hemde kullanıcıların dili öğrenmek için harcayağı zamandan tasarruf sağlayarak yumuşak bir geçiş ve dolayısıyla yaygınlaşmasında avantajlar sağladı. Sonraki 10 yıl sonunda C++ artık dünyada en çok kullanılan ve en iyi programlama dili olarak gösteriliyordu.
" C++ 'ın keşfinin bir programlama dili ortaya çıkarmaya yönelik bir girişim olmadığını anlamak kritik bir öneme sahiptir. Bilakis, C++ zaten çok başarılı bir dilin gelişmiş haliydi. Dillerin gelişimi ile ilgili bu yaklaşım - mevcut bir dil ile başlayıp, onu daha da ileriye taşımak - bu gün bile devam etmekte olan bir trendin öncüsü oldu. " ( Herbert Schildt )
Programlama dillerindeki bu gelişmelerden sonra en büyük adım Java ile oldu. 1991 'de Sun Microsystems tarafından geliştirilen dilin arkasındaki en güçlü isim James Gosling 'di. Java söz dizimi ve felsefesi C++ 'tan alınan yapısal ve nesne yönelimli bir dildir. Özellikle Internet 'in oluşması ile Java büyük bir hız kazandı. Aslında bunun nedeni çok basitti. O zamana kadar programlama dilleri ile yazılan programların çoğu belirli işletim sistemleri ve işlemciler için yazılıyordu. Yani kodun taşınılabilirliği karşısında Java en iyi yöntemdi. Java 'nın sunduğu platform bağımsız ( cross-platform ) teknolojisi bir anda büyük bir çevre tarafından kabul gördü. Yazılımcılar sistemlere göre program geliştirmektense yazılan kodun heryerde kullanılmasını tercih ettiler. Elbette internete bağlı birbirinden farklı bu sistemlerin ortak veya ayrı noktalarda aynı uygulamaları kullanabilmesi için.... yada her nasıl ise öyle olması için
" Gosling ve arkadaşları yeni ve yenilikçi özelliklere odaklanmakta serbesttiler. Tıpkı Stroustrup 'un C++ 'ı geliştirirken " tekerleği yeniden icat etmesine " gerek olmadığı gibi, Gosling 'ın de Java 'yı geliştirirken bütünüyle bir dil icat etmesi gerekmiyordu. İlaveten Java 'nın ortaya çıkışıyla C ve C++ yeni bilgisayar dillerinin üzerine inşa edileceği onaylanmış bir katman oluyordu. " ( Herbert Schildt )
Tabi java 'nın da eksik yönleri vardı...
Java platform bağımsız bir kodlama için JVM ( Java Virtual Machine ) kullanıyordu. Java kaynak kodu " bytecode " denilen bir koda çeviriyor, ve gerektiğinde JVM ile programı çalıştırıyordu. Yani JVM 'nin olduğu her sistemde her kod aynı muameleyi görüyor, böylece kodun işletim sistemi veya işlemciye göre tekrar derlenmesine gerek kalmıyordu. Fakat bu aynı zamanda Java 'nın diğer programlama dilleri ile uyum içinde çalışması ( cross-language interoperability ) için dezavantaj oluşturuyordu.
İşte bu noktada bir gereksinim ortaya çıkıyordu...
C# 'ın Doğuşu
1990 'lı yılların sonlarına doğru Microsoft 'un programlama dehası Anders Hejlsberg C# dilini yarattı. 2000 yılının ortalarında C# 'ın ilk alfa versiyonu piyasaya çıktı. C# programlama dili ; C, C++ ve Java ile bağlantılı bir dil olarak yapıldı. Bunun bir tesadüf olduğunu düşünmeyin. Bunlar dünyada en yaygın kullanılan ve sevilen dillerden üçüdür. Hejlsberg 'de aynı Stroustrup ve Gosling gibi tekerleği yeniden icat etmektense mevcut bir dili geliştirmeyi uygun görmüştür.
Eğer bu diller arasında bir bağlantı kurmak gerekirse. C# programlama dili; C dilinin söz dizimini ve C++ dilinin nesne yönelimli programlama yöntemlerini ve tekniklerini almıştır.
C# 'ın Java ile olan ilişkisi ise özel bir durumdur. Zira C# 'ta Java gibi C ve C++ dillerinden özellikler almış ama aynı zamanda Java gibi platform bağımsız kod amaçlı tasarlanmıştır. Yani C# dili, Java dilinden türememiştir. En iyi tarafı ise C, C++, C# veya Java dillerinden birinde iyi olmanız diğer tüm dillerdede size büyük kolaylıklar sağlar.
Tüm bu diğer dillerle olan bağlantısına rağmen C# beraberinde pek çok yenilik, özellik getirmiştir. Zaten diğer başarılı dillerin doğuşunda da aynı trend yaşanmıştır. İşte bu noktada C# : bileşen yönelimli bir dil ( component-oriented language ) olarak nitelendirilmiştir. Zira C# bileşenleri yazmak için bütünleşik destek içermektedir. Bunların içinde en önemlisi; karışık dillerin olduğu bir ortamda çalışabilme becerisidir.
Dikkat ettiyseniz, birbirinden türeyen her dil bir önceki dilde eksik olan bir özelliği tamamlarayarak ilk adımları atmıştır. C++; C deki nesne eksikliğini, Java; C++ daki platform bağımsızlık özelliğini ve son olarak C# hem hepsinde olan özellikleri hemde Java 'da olmayan uyumlu çalışma desteğini almıştır.
.NET Framework Nedir? ( .NET Çatısı ) ve C# ile Arasındaki Bağlantı...
Makalenin başındada söylediğim gibi C# programlama dili .NET Framework için kod geliştirmek-desteklemek amacı ile tasarlanmıştır. C# dilinde kullanılan ve her programlama dilinde bulunan kütüphaneler aynı zamanda .NET Framework tarafından kullanılan kütüphanelerdir. Yani C# dilini .NET ortamından ayırsanız bile bir biri ile sıkı sıkıya bağlıdır. O yüzden .NET Framework 'ün C# için önemini anlamak çok önemlidir.
.NET Framework bileşen yönelimli uygulamaların geliştirilmesini ve yürütülmesini destekleyen bir ortam tanımlamaktadır. Bu sayede; farklı programlama dilleri, farklı işletim sistemleri ile çalışabilme özelliğine sahiptir. ( Mesala şuanda C# kodlarıın *nix sistemlerde çalışabilmesi için yapılan uygulamalardan biri > go-mono.com )
.NET Framework ve C# 'ın arasındaki en önemli iki ilişki : Ortak dil çalışma zamanı ( CLR - Common Language Runtime ) ve .NET sınıf kütühanesidir.
CLR - Common Language Runtime : Programların çalışmasını idare eden, programların taşınabilirliğini sağlayan, aynı zamanda diğer avantajlarının dışında karışık dilde programlamayı destekleyen ve güvenliği sağlayan parçadır.
.NET Sınıf Kütüphanesi : Programınızın çalışma ortamına erişmesine imkan veren parçadır. Mesala bu sınıf kütüphanesi tanımlanan özelliklerle kısıtlı kalırsa kodlarınız .NET ortamında rahatça çalışır.
İşte bu nokta C# için en önemli özelliklerden biridir. Aynı kodun her yerde çalışması...
Sonuç olarak; ben size güvenilir kaynaklardan okuduğum, araştırdığım ve öğrendiğim bilgiler doğrultusunda C# programlama dili ve ona kadar gelinen tarihte oluşan olayları anlattım. Her programlama dili bir öncekinden pek çok özellik almış ve yenilerini ekleyerek programcılara yeni olanaklar sağlamıştır. Bu sayede dilin yaygınlaşması ve çabuk adaptasyonu sağlanmıştır.
C# : Platform bağımsız oluşu ve aynı zamanda Microsoft 'un .NET strateji açısından kritik öneme sahip bir dil olmasından dolayı gelecek vaadeden ve kullanıcıların mutlaka dikkate alması gereken bir dil.
" Bilişim tarihi boyunca programlama dilleri, programlama ortamındaki değişiklikleri ve programlama hakkındaki düşüncelerimizde ve programlamaya yaklaşımımızdaki değişiklikleri barındıracak şekilde gelişmiştir. C# da bir istisna değildir. Süregelen geliştirme, adaptasyon ve yenilik sürecinde C# halihazırda ön sırada yer almaktadır. C#, her profesyonel programcının göz ardı etmekten kaçınacağı bir dildir. " ( Herbert Schildt )
Eğer C# ilginizi çektiyse....
Web : Microsoft .NET Framework Software Development Kiti download edin
Visual Studio .NET yazılımı edinin.
Tarih : 29-Eylül-2002
Kaynak : The Complete Reference C# ( Yazar : Herbert Schildt ), Çeşitli Internet Siteleri
Alıntı : The Complete Reference C# ( Yazar : Herbert Schildt )
5 ziyaretçi (44 klik)