Java ile C# Arasındaki Farklar (Karşılaştırma)

Java ya da C# programlama dilleri arasındaki farkları, ortak yönlerini öğrenmek makalemizin ana konusu. Nesneye yönelik programlama (OOP) kavramını bu makaleyi okuyanların bildiğini varsayıyoruz. Zaten her iki programlama dilimizde son derece güçlü ve şu anda piyasada yaygın olarak kullanılan üst düzey dillerdir. İkisi arasında bariz farklar olduğunu söylemek çok da doğru değil, Java daha önce ortaya çıktı ve daha yaygın kullanılıyor fakat Microsoft teknolojileriyle programlamaya alışmış birisi için de C# dilini öğrenmek çok kolay. Önemli olan kanımca iki dil arasında seçim yaparken sizin hangi dilde daha rahat programlama geliştirdiğiniz. Zaten eğer bağımsız programlar yazmayacaksanız, çalışmış olduğunuz şirketin profiline uyum sağlayacaksınız.

Java ve C # güçlü ve statik olan benzer programlama dilleridir. Hem sınıf-tabanlı (class based), nesne yönelimli (object oriented), hem de çöp toplama (garbage collection) gibi etkin bellek kullanma özelliğine sahiptir. Sun tarafından üretilen Java’yı Oracle firmasının satın aldığını hatırlatalım, C# ise Microsoft’un Java teknolojisinden etkilenerek ürettiği ve .NET platformu içerisine yerleştirdiği nesneye yönelik dilidir.

Java ile C# Dillerinin Benzerlikleri

  • Her iki dilde çöp toplama özelliği ile etkin bellek kullanımı söz konusudur.
  • Her iki dilde bir ara dile derlenir ve koşturulur.
  • Her iki dilde de çoklu kalıtım yoktur, tekli kalıtım vardır.
  • Her iki dilde de çok kanallı nesneler senkronize edilebiliyor.
  • Her iki dilde de global tipte bir sabit tanımlanamaz.
  • Her iki dildeki operatörler hemen hemen aynıdır.
  • Her iki dilde anahtar sözcüklerin büyük bölümü aynıdır.
  • Her iki dilde dizilere erişimde sınır kontrol edilir.

Java ile C# Dilleri Farkları

  • C++ dilindeki struct yapısı C# da korunmuş, Java’da bulunmuyor.
  • C# da goto kavramı var fakat buna karşın Java da continue ve label ifadeleri bulunuyor.
  • C# da delegate kavramı ile fonksiyondan fonksiyona parametre aktarımı söz konusu.
  • Yordamlara parametre iletimi ref, out gibi özelliklerle belirtilebiliyor.
  • C# da attribute kavramı var; Java’da ise derleyiciler için direktifler yok.
  • C#’ da pointer kavramından bahsedilebilir. ‘unsafe’ anahtar sözcüğü kullanılırsa bellek erişilebilir duruma geliyor.
  • C# da operatör overloading varken, Java’da bu kavram yok.

Java ile C# Karşılaştırması

Yukarıdaki tablolara dikkatle bakılırsa bu iki dilin birbirine ortak yönü oldukça fazladır. Farkları ise temelde bariz farklar olmayıp bazı kavramların karşılığı diğerinde olmuyor ya da farklı ifadelerle destekleniyor. Yani size şu dilde programlama yapın diye direk tavsiyede bulunmak istemiyorum. Her yiğidin yoğurt yiyişi farklıdır. Genelde Java kendine özgü platformu ve dili ile .NET platformu içinde yer alan bir öğe olan C# diline nazaran daha çok tercih edilmektedir.

Piyasada ise daha kolay yazılım yapmak isteyenler Visual Studio ortamında C# dilini kullanırken, bizim gördüğümüz kadarıyla daha kurumsal firmalar, programlama dili olarak Java’yı tercih etmektedirler. Üstelik ülkemizde de Java uygulama geliştiricileri daha az da olduğu için daha kıymetli. Oracle’ın satın almasıyla da destek artarak devam ediyor. Zira yüksek ölçeklenebilir kurumsal uygulamalar veritabanı olarak Oracle’ı uygulama geliştirme ortamı olarak da Eclipse ortamında Java dilini tercih ediyorlar. Karar sizin, bir an önce birisini seçin ve hemen hayallerinizi gerçekleştirmeye başlayın.

2 Yorum

  1. Java ile C bazı noktalarda benzerlik olarak birbirine çok benziyor. OOP konusunda ve özellikle MVC konularında detaylı makaleler ile bilgilendirme yapmanız hepimizin işine yarayacaktır. Gayet akıcı ve güzel bir anlatım biçimi ile konu açıklanmış. Emeğinize sağlık.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.