İçeriğe atla

C Sharp ve Visual Basic .NET karşılaştırması

Dil Geçmişi

C# ve VB.NET sözdizimsel olarak çok farklı geçmişlere sahip çok farklı dillerdir.

Adından da anlaşılacağı gibi, C# sözdizimi, ilk olarak 1970'lerde Bell Laboratuvarlarında (AT&T) Dennis Ritchie tarafından geliştirilen temel C programlama diline dayanmaktadır. Java ve C++, sözdizimleri de C sözdizimini temel alan diğer iki programlama dilidir, dolayısıyla ortak bir görünüm ve izlenimi paylaşırlar.

BASIC (Beginner's All-purpose Symbolic Instruction Code), 1960'larda Dartmouth College'da geliştirilmiştir. Bu dil, işlemciye ve markaya özel ana bilgisayarlar ve donanım için yazılmış derleyici dilinin kullanım zorluklarını aşmanın bir yolu olarak ortaya çıkmıştır. Programlama, mantıksal yapısının donanımı aşacak şekilde korunmasından ziyade pazarlama amaçları doğrultusunda donanıma bağımlı hale getirilmiştir. Tam da bu soruna bir cevap niteliğinde, Microsoft'un işletim sisteminin başarısı, tüketicileri donanıma özgü cihazların kısıtlamalarından kurtarmak ve bu görevleri işletim sisteminin içinde kapsüllemek olmuştur. Derleyici sayesinde kod "taşınabilir" hale gelmiş, bugün hem Visual Basic .NET hem de C# aynı CLR (Ortak Dil Çalışma Zamanı) ortamını kullanmaktadır.

Microsoft ve HP, başlangıçta bir ISO standart dili oluşturmakla ilgilenmişlerdir. Ancak, HP desteğini geri çekince, ISO bilgisayar dili asla bir uluslararası standart olarak hayata geçmemiştir. BASIC dili, programlamayı daha erişilebilir hale getirerek bilgisayar biliminin gelişiminde önemli bir rol oynamıştır. Derleyicilerin kullanımı sayesinde, kodun taşınabilirliği sağlanmış ve farklı platformlarda çalıştırılmasına imkan verilmiştir.

VB.NET'in kökenleri, BASIC programlama diline uzanır. İlk olarak, BASIC, üniversite öğrencilerine bilgisayar programlamaya giriş amaçlı "temel" bir dil olarak sunulmuştur ve ismi de bu amacı doğru bir şekilde yansıtıyordu. 1970'lerde, dönemin mikro bilgisayar üreticileri BASIC'i hem basit bir ROM gömülü programlama dili hem de giriş/çıkış kontrolü için bir yarı işletim sistemi olarak kullanmaya başladı. 1980'lerin başında, dil Microsoft tarafından benimsendi ve 1990'lar boyunca "hızlı uygulama geliştirme" (RAD) aracı olarak Windows programlama için satılan "Visual Basic" diline/platformuna dönüştürüldü. Bu dönemde PowerBuilder gibi diğer RAD araçlarıyla doğrudan rekabet etti. Visual Basic başarılı bir geliştirme platformu olmasına rağmen, Microsoft 2000'lerin başında .NET Framework ve ilgili Visual Studio geliştirme platformunu piyasaya sürdüğünde, 6. sürümü (VB6) ile birlikte kullanımdan kaldırıldı. Bu dönemde, Microsoft mevcut C++ ve VB6 dillerini yeni "Tümleşik Geliştirme Ortamı (IDE)" içerisinde iki yeni programlama dilinin temelini oluşturmak için kullandı. Bu diller C# ve VB.NET olarak adlandırıldı.

2010 yılında C# ve VB.NET dilleri, Microsoft tarafından birlikte evrimleştirilmeye başlanmıştır. Bu yaklaşım "ortak geliştirme stratejisi" olarak adlandırılmıştır. Şubat 2017'de Microsoft, 2010'dan beri uygulanan ortak geliştirme stratejisini sona erdirme ve C# ile VB.NET'in bağımsız olarak evrimleşmesine izin verme kararını açıklamıştır. Bu karar ile birlikte, C#, Microsoft tabanlı geliştirme dilindeki baskın konumunu güçlendirmiştir. Geliştiriciler, Visual Studio 2017'de ilk kez görünen VB 15 sürümünde, yeni C# 7.3'ün içerdiği bazı dil yeteneklerinin bulunmadığını fark edecektir.

Dil Karşılaştırılması

C# ve VB.NET, sözdizimi açısından oldukça farklı olsalar da, aralarındaki farklılıklar esasen yüzeyseldir. Her iki dil de Microsoft tarafından aynı .NET Framework geliştirme platformunun bir parçası olarak tasarlanmıştır. Aynı zamanda Microsoft'un aynı dil geliştirme ekibi tarafından geliştirilir, yönetilir ve desteklenir. Her iki dil de aynı ara dile (IL) derlenir ve bu dil aynı .NET Framework çalışma zamanı kitaplıklarına karşı çalışır. Aşağıda daha ayrıntılı olarak ele alınacak bazı programlama yapıları farklılıkları olmasına rağmen, bu farklılıklar esasen sözdizimseldir. Ayrıca, Microsoft tarafından VB6'dan dönüştürmeye yardımcı olmak için sağlanan Visual Basic "Uyumluluk" kitaplıklarından kaçınıldığı takdirde, VB'deki neredeyse her komutun C#'da ve bunun tersi bir karşılığı vardır. Son olarak, her iki dil de işlevselliklerini genişletmek için .NET Framework'ün aynı temel sınıflarını referans alır. Sonuç olarak, birkaç istisna dışında, bir dilde yazılmış bir program, basit bir sözdizimi dönüştürücü aracılığıyla diğer dile çevrilebilir. Bu görev için birçok açık kaynaklı ve ticari ürün mevcuttur. Diller arasındaki temel farklar, arayüzlerin uygulanmasında ve olayların bildiriminde, tetiklenmesinde ve işlenmesinde bulunabilir. Her iki dil de yüksek seviyeli programlama dilleri olsa da, VB.NET bazı açılardan biraz daha yüksek bir soyutlama düzeyini korur.

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">C (programlama dili)</span> programlama dili

C, yapısal bir programlama dilidir. Bell Laboratuvarları'nda, Ken Thompson ve Dennis Ritchie tarafından UNIX işletim sistemini geliştirebilmek amacıyla B dilinden türetilmiştir. Geliştirilme tarihi 1972 olmasına rağmen yaygınlaşması Brian Kernighan ve Dennis M. Ritchie tarafından yayımlanan "C Programlama Dili" kitabından sonra hızlanmıştır. Günümüzde neredeyse tüm işletim sistemlerinin yapımında %95'lere varan oranda kullanılmış, hâlen daha sistem, sürücü yazılımı, işletim sistemi modülleri ve hız gereken her yerde kullanılan oldukça yaygın ve sınırları belirsiz oldukça keskin bir dildir. Keskinliği, programcıya sonsuz özgürlüğün yanında çok büyük hatalar yapabilme olanağı sağlamasıdır. Programlamanın gelişim süreciyle beraber programlamanın karmaşıklaşması, gereksinimlerin artması ile uygulama programlarında nesne yönelimliliğin ortaya çıkmasından sonra C programcıları büyük ölçüde nesne yönelimliliği destekleyen C++ diline geçmişlerdir.

<span class="mw-page-title-main">Pascal (programlama dili)</span> yüksek seviyeli programlama dili

Pascal bilgisayar programlama dili pek çok öğrenciye bilgisayar programlamayı öğreten ve çeşitli versiyonları bugün hâlâ yaygın olarak kullanılmaya devam eden en önemli programlama dillerinden biridir. İlk Macintosh işletim sisteminin çoğu ve TeX Pascal ile yazılmıştır.

<span class="mw-page-title-main">BASIC</span> programlamaya yeni başlayanlar için kullanımı kolay anlaşılır bir programlama dili

BASIC 1964'te John George Kemeny ve Thomas Eugene Kurtz tarafından New Hampshire, ABD'de icat edilmiş, günümüzde de çeşitli türevleri kullanılmakta olan yüksek düzey bir programlama dili. Farklı türevleri birçok işletim sisteminin parçası olarak sunulmuştur.

<span class="mw-page-title-main">C♯</span> programlama dili

C#; Microsoft tarafından .NET Teknolojisi için geliştirilen modern bir programlama dilidir. Sözdizimi C-like bir deneyim sunar.

<span class="mw-page-title-main">Visual Basic</span>

Visual Basic, Microsoft tarafından, Basic programlama dili üzerinde geliştirilmiş, olay yönlendirmeli, üst seviye, nesne tabanlı ve görsel bir programlama dilidir. Öğrenilmesi de kullanılması da oldukça kolaydır.

<span class="mw-page-title-main">Yazılım</span> bilgisayarın somut olmayan çalıştırılabilir bileşeni

Yazılım, değişik ve çeşitli görevler yapma amaçlı tasarlanmış elektronik aygıtların birbirleriyle haberleşebilmesini ve uyumunu sağlayarak görevlerini ya da kullanılabilirliklerini geliştirmeye yarayan makine komutlarıdır.

<span class="mw-page-title-main">Digital Research</span>

Digital Research Dr. Gary Kildall tarafından CP/M işletim sistemi ve yan ürünlerinin geliştirilmesi ve pazarlanması için kuruldu. Mikrobilgisayar döneminin ilk büyük yazılım şirketiydi.

Nesne tabanlı programlama dili, nesne kullanımını destekleyen ve kapsülleme ilkesine uyan programlama dillerini tanımlar. Ancak nesne tabanlı programlama dilleri, kalıtım gibi nesne yönelimli programlama dillerine özel özellikleri taşımazlar. Bu durumda nesne tabanlı programlama dilleri nesne yönelimli programlama dillerinin altkümesini oluşturur.

<span class="mw-page-title-main">.NET Framework</span> Yazılım

.NET Framework, Microsoft tarafından geliştirilen, açık İnternet protokolleri ve standartları üzerine kurulmuş bir "uygulama" geliştirme platformu. Daha önce Sun Microsystems tarafından geliştirilmiş olan Java platformuna önemli benzerlikler göstermektedir.

<span class="mw-page-title-main">Programlama</span> bilgisayar probleminin orijinal formülasyonundan çalıştırılabilir bilgisayar programlarına yönlendiren süreç

Programlama ya da diğer adı ile yazılımlama, bilgisayarın donanıma nasıl davranacağını anlatan, bilgisayara yön veren komutlar, kelimeler, aritmetik işlemlerdir. Diğer bir tanımla programlama, bilgisayar programlarının yazılması, test edilmesi ve bakımının yapılması sürecine verilen isimdir.

Microsoft Visual Studio, Microsoft tarafından geliştirilen bir tümleşik geliştirme ortamıdır (IDE). Microsoft Windows, Windows Mobile, Windows CE, .NET Framework, .NET Compact Framework ve Microsoft Silverlight tarafından desteklenen tüm platformlar için yönetilen kod ile birlikte yerel kod ve Windows Forms uygulamaları, web siteleri, web uygulamaları ve web servisleri ile birlikte konsol ve grafiksel kullanıcı arayüzü uygulamaları geliştirmek için kullanılır.

VCL, Delphi, C++ Builder ve Kylix yazılım geliştirme ortamlarında kullanılmak üzere Borland tarafından Object Pascal kullanılarak geliştirilmiş bileşen tabanlı bir yazılım kütüphanesidir.

Bilgisayar biliminde sözdizimsel şeker, alternatif ifade yolları olan bazı ifadelerin kullanımını ve okunmasını kolaylaştıran sözdizimsel ögelere verilen addır. Bu şekilde dilin insanlar tarafından kullanımı kolaylaşır: ifadeler daha net bir şekilde anlatılabilir, bu nedenle bazı insanlar bu alternatif biçimi tercih edebilirler.

Programlama paradigmaları, programlama dillerini özelliklerine göre sınıflandırmanın bir yoludur. Diller birden fazla paradigma içinde sınıflandırılabilir.

Bilgi işlem platformu, bir uygulama yazılımı çalıştırmak için donanım mimarisi ve bir yazılım çerçevesi, yazılım, çeşitli bazı kombinasyon veya sıralamalarını içermektedir. Tipik platformlarda bir bilgisayar mimari, işletim sistemi, programlama dilleri ve ilgili kullanıcı arabirimi içerir.

<span class="mw-page-title-main">MonoDevelop</span>

MonoDevelop Linux, OS X ve Windows işletim sistemleri için geliştirilmiş bir açık kaynak tümleşik geliştirme ortamıdır. .NET framework ile Windows uygulamaları geliştirenlerin, alternatif olarak Mono kullanarak geliştirme yapmalarına olanak tanımaktadır. Linux ve Mac OS X için .NET teknolojilerini kullanma olanağı sunar.

<span class="mw-page-title-main">Ayrıştırıcı (yazılım)</span>

Ayrıştırıcı, girdi verilerini alır ve girdinin yapısal bir temsilini vererek, süreçte doğru sözdizimini kontrol eden bir veri yapısı oluşturan bir yazılım bileşenidir. Ayrıştırma öncesinde veya sonrasında başka adımlar izlenebilir veya bunlar tek bir adımda birleştirilebilir. Ayrıştırıcı, genelde girilen karakter dizisinden belirteçler oluşturan ayrı bir sözcük tabanlı analiz motorunu takip eder. Ayrıştırıcılar elle programlanabilir veya bir ayrıştırıcı üreteci tarafından otomatik olarak veya yarı otomatik olarak oluşturulabilir. Ayrıştırma, biçimlendirilmiş çıktı üretimlerini tek bir şablonda tamamlama görevi görür. Bunlar, farklı etki alanlarına uygulanabilir, ancak bir derleyicinin girdi ve çıktı aşamaları gibi genellikle bir arada sunulur.

.NET Compact Framework .NET Framework'ün bir versiyonudur. Kişisel dijital yardımcılar (PDA'lar), cep telefonları, fabrika denetleyicileri, alıcı kutuları gibi kaynak kısıtlı mobil ve gömülü cihazlarda çalışacak şekilde tasarlanmıştır. .NET Compact Framework, .NET Framework ile aynı sınıf kitaplıklarından bazılarını ve ayrıca .NET Compact Framework denetimleri gibi mobil aygıtlar için özel olarak tasarlanmış birkaç kitaplığı kullanır. Ancak, kitaplıklar, .NET Framework'ün tam kopyaları değildir.

Windows Runtime, 2012 yılında ilk olarak Windows 8 ve Windows Server 2012'de tanıtılan platform tabanlı bir uygulama mimarisidir. WinRT, C++/WinRT, C ++/CX, JavaScript-TypeScript, yönetilen kod dilleri C Sharp ve Visual Basic .NET (VB.NET) 'in geliştirilmesini destekler. WinRT uygulamaları, hem x86 hem de ARM mimarisini doğal olarak destekler ve daha fazla güvenlik ve kararlılık sağlamak için sandbox ortamında çalışabilir. WinRT bileşenleri, yerel, yönetilen ve betik dilleri dahil olmak üzere birden fazla dil ve API arasında birlikte çalışabilirlikle tasarlanmıştır.

SpiderBasic, Fantaisie Software tarafından geliştirilen, yerleşik BASIC kurallarına dayanan yeni bir web istemci tarafı programlama dilidir. iOS ve Android için mobil uygulama da dahil olmak üzere çok karmaşık, pencereli tabanlı web uygulamalarının geliştirilmesine olanak tanır. Karmaşık ve reaktif GUI, 2D oyunlar ve daha birçok şeyi tutarlı bir şekilde ele almak için geniş bir komut seti sağlar. Her kütüphane ve komut aynı şekilde davranır ve daha kolay ve daha hızlı öğrenme için benzer sözdizimine sahiptir.