3/11/2017

C#.NET vs Java: Genel İzlenimler ve Geçiş Süreci

QBasic, Pascal, VB6 ile başlayan başlayan yazılım merakım, kısa süreli bir VB.NET tecrübesi ile profesyonelliğe geçiş yaptıktan sonra, çok büyük oranda C# ile devam etti. Java ile, çok büyük çaplı olmasa da, geliştirdiğim bir yazılım da vardı.

Son 9 aydır sadece Java üzerinde çalışıyorum. Dili zaten bildiğim için çok yadırgamadım ama iyice tecrübe ettiğimi söyleyebilirim. Bu geçişi yapanların neler yaşabileceğini kısaca burada bir özetlemek istedim. İleride bu başlıkları daha kapsamlı bir şekilde, kendi gözümden anlatacağım.

Dil:

Java, C#' ile çok benzer bir. Syntax olarak yadırgamayacaksınızdır kesinlikle. Hatta ve hatta çok basit bir geçiş olacağını söyleyebilirim. Şimdilik  Java 7'i ile geliştirme yapıyorum (8 ile başlamıştık ama elde olmayan nedenlerden 7'ye downgrade etmek durumunda kaldık; fakat tekrar bir upgrade geliyor). Java 7 kullanacaksaksanız, C#'a baya hasret kalacağınızı söyleyebilirim. Java 8 ile bu özlem biraz dinebilir :) 

Not: En sık yapacağınız hata String karşılaştırma :)

Geliştirme ortamları:

İlk başta, Eclipse ile başlayıp, mutsuz süren bir hayatım vardı başlangıçta. Visual Studio'dan sonra attan inip eşşeğe binmeye benziyor :) Fakat, İsviçre çakısı gibi mübarek. 

Son 9 aydır ise IntelliJ IDEA kullanıyorum. Community Edition idare ediyoruz; ama Ultimate versiyonu da kesinlikle verdiğiniz parayı hakeder.  Sadece, debug ederken mevcut işletilen satırı geri alabilsem, herşey mükemmel olacaktı.

Diğer taraftan Maven denen zıkkım ile iyi başlamasa da münasebetimiz; artık mutlu mesut geçiniyoruz. Bilmeyenler için söyleyeyim, dependency management (Nuget) ve build için (Çok doğru olmasa da MSBUILD gibi de diyebiliriz) kullanılıyor. Çok esnek bir platform ve zengin bir ekosistemi var. Diğer araçları tecrübe imkanım olmadı açıkçası, ama Gradle da ikame olarak yaygın kullanıyor.

Platform:

Java köklü bir platform. Bu noktada .NET ile karşılaştıracak olursak, bir developer olarak çok yadırgamayacağınızı söyleyebilirim.  Temel kütüphanelere alışmak biraz vakit alacak elbette ama Google amcam sağolsun, varlığı kuvvet veriyor.

Projemizde, bir OSGI container üzerinde çalışacak bir uygulama geliştiriyoruz. Değişik bir bir kafa var burada :) Belki bir ara bildiğim kadarıyla anlatmaya çalışırım.

Burada ufak bir not belirtmem gerekirse, şart olmamakla birlikte, Java uygulamanız muhtemelen bir Linux sunucu da çalışacaktır. Temel bir Linux bilgisi de gerekli olabilir.

Geri kalanını da anlatmakla bitmez herhalde :) .NET ve dünyası elimizde büyüdü diyebiliriz ama Java ile de bir 10 yıl daha geçecek ki ben de size burayı hakkını vererek anlatayım. 









Hiç yorum yok: