Java vs C# vs C++

07Kıvanç07

Decapat
Katılım
19 Mart 2020
Mesajlar
9
Öncelikle merhaba. Bu konu hakkında bir sürü konu açılmış. Hepsine detaylı bir şekilde incelememe rağmen sonuca varamıyorum. C++ için temel deniyor, C# için daha geniş deniyor, Java daha mantıklı deniyor. Tam C# ile C++ arasında bir karar veriyorum bu sefer de Java ile arada kalıyorum. İkisi de birbirine benziyor deniyor. Herkes farklı bir şey söylüyor. Ve benim özel olarak ilgili olduğum bir alan yok, programlamada klasik oyun yapacağım demiyorum. Veya masaüstü program tarzı bir şey yapacağım demiyorum. Veya Web sitesi tasarlayacağım da demiyorum. Çünkü her site de her forumda her yazılım dilini her alana yöneltebiliyorlar. Bu yüzden hangisini seçersem hangi alanlarda ilerleyeceğimi açıklarsanız çok sevinirim.
 
C++ yazılımın 4 işlemi gibidir. C++ kodlayabilirsen program kodlayabilirsin.
 
Yıl 2020, hala programlama dillerini karşılaştıranlar var. Yazık. Cidden yazık.

Programlama dillerini iyi-kötü olarak değil, projenin hedefine göre yazmalısın. Projenin amacı ne ise ona uygun. Multi-platform ise Java mesela. Bu kadar basit ve net.
 
C# ve Java birbirlerine çok yakın diller. C++ biraz daha ağır karmaşık gibi.
Öncelik hangisi olmalı dersen, ben C# derim.
C# - SQL server - ASP.NET artık MVC revaçta iş ilanlarında MVC Framework bilenler tercih sebebi.
Neden C# derseniz arayüz rahatlığı veritabanı işleri ve en önemlisi oop(nesne yönelimli programlama).
Java hariç saydıklarıma gelince,
Microsoft'un desteği. Visual Studio gibi bir arayüz SQL server gibi bir arayüz.
Java'yı yabana atmıyorum çünkü C# Java'nın temelleri üzerine kurulan ve geliştirilen bir dil.
Buradan javanında ne kadar güçlü ve çok kullanışlı bir dil olduğu anlaşılıyor.
Tercih öğrenmek isteyen arkadaşa kalmış.
Java öğrenmek istersen oracle teknolojileri üzerine gitmen gerekir.
C# öğrenmek istersen Microsoft teknolojilerine yönelmen gerekir.
İyi bir analizden sonra oracle mı Microsoft mu :)
 
Yazılım mühendisiyim, fikir vereyim :) Diller pazardan limon alır gibi seçilmez, şirket projeye göre ihtiyaçlar neyi gerektiriyorsa ona göre altyapı, dil ve teknolojiyi seçer. Bazen proje gelir Java ile yazılır, başka proje C++'la yazılır. Bir yazılım mühendisinin işi sadece programlama değildir, öyle olsa 2 yıllık programcılık bölümü olmazdı ama kod yazar tabiki, şimdi anlatacağım.

Örneğin gömülü sistemlerde, sistem programlamada, oyun programlamada ve savunma sanayide ağırlıklı C/C++ kullanılır. Bir askeri savaş simülasyonu C++/Qt ile geliştirilir, oyun motorları aynı şekilde. Ya da Windows gibi bir işletim sistemi.

Java ve .NET daha çok kurumsal ve ticari uygulamalarda kullanılır. Ağırlıklı olarak web ve masaüstü çözümler için tercih edilirler. Bunun nedeni arkasındaki şirket desteği ve bir kurumsal uygulamanın ihtiyacı olan birçok paradigmayı hazır sunmalarıdır. Java, Android geliştirme içinde çok sık kullanılıyor ama son zamanlarda Java ile kuzen olan Kotlin dili tercih ediliyor o tarafta. Bu da Google'dan kaynaklı. Java ile kurumsal tarafta en çok kullanılan framework Spring Framework'dür.

Şimdi gelelim soruna. C++'la web uygulaması yazılır mı? Evet. Java'yla gömülü sistem programlanır mı? Evet. C#'la mobil uygulama yazılır mı? Evet. Ama tercih edilmez güzel kardeşim. Bunların güçlü olduğu ve kendilerini kanıtladıkları alanlar var. Projede hangisinin, nasıl kullanılacağını Yazılım Mimarı ve teknik lider belirler, tabi çalıştırdıkları yazılımcıların teknik bilgisini de göz önüne alarak.

Yazılım mühendisliği ise programlamayı da kapsayan ama ondan çok daha geniş bir kavramdır. Burada yazmakla bitmez. Projede kullanılan SDLC, geliştirme metodolojisi, SRS,BRD dökümanları, onlarca çeşit diyagramlar, tasarım desenleri, mimari örüntüler vs vs Yani programlama dili ve kodlama kısmı büyük tablonun sadece bir parçasıdır :) Kodlamasına başlamadan önce aylarca analizi yapılan yazılım projeleri var biliyor musun? Örneğin bir savaş uçağının teknik analiz ve gereksinim dökümanlarını çıkarmak 2-3 yıl vakit alıyor. Bizim E-Devlet uygulamasının analiz dökümanları 6-7 ayda hazırlandı. Sen hiç SOLID, XP, Scrum gibi kavramları duydun mu?

Projeye göre dil ve platform seçimi ise birçok parametreye göre yapılır. Önce sistem mühendisleri ve yazılım mimarları bunun analizini çıkarır. Öncelik performans mı? İşin içinde donanım var mı? Ulaşılabilirlik, bakım maliyeti, bilanço ne olacak? Bizim elemanlarımız bu dili biliyor mu veya ne kadar sürede öğrenir uygularlar? Zamanında yetiştirebilir miyiz? Yani birçok şeye göre seçilir, örneğin bazen mantıksız da olsa mecburiyetten kalkıp X diliyle Y işini yapabilirler. Bu yüzden diller araçtır, amaç ise ürünü ortaya çıkarmaktır. Ürün de yazılımdır.

O yüzden sen o dil bu dil diye çok kafanı takma. Bir dili öğren ama iyi öğren. Her konuda fikrin olsun ama bir konuda uzmanlığın olsun. Onu da artık web, mobil, oyun, sistem hangi alanda gitmek istiyorsan ona göre seç ve bu dil karşılaştırmalarıyla vakit kaybetme. İşin kodlama kısmı sadece buzdağının görünen kısmıdır, eğer sen mühendisliğiyle ilgilenmek istiyorsan çok daha geniş bakmalısın olaya. Başarılar.

buzdagi.jpg
 
Son düzenleme:
Benim de içimde ukde olarak kalmış bazı şeyler var. DEÜ Elektrik Elektronik Mühendisliğini terk etmeden önce orada C diliyle ilgili ders aldım. Bir noktaya kadar ilerlemiştim. Daha öncesinde de heves edip kendi imkanlarımla C++ diline giriş yapmıştım. Ancak bazı şeyler yüzünden hayatım hedeflerimin dışına doğru ve epey olumsuz şekilde ilerledi. Bu işler yarıda kaldığı için bildiğimi de unuttum neredeyse.

Hala hevesimi yitirmedim. Buna rağmen ileride hangisini öğrensem/ilerletsem diye henüz karar veremedim. Daha önce aydınlatıcı bir görsele rast gelmiştim.
DLcUHW0W0AAsRol.jpg


Hala kararsızsan, öylesine bir tane göster dersen bile Python veya C++ tavsiye edebilirim. Python kolay olduğu için bu işlere başlangıç yapacak olanlar için uygun. C++ ise hem kendisi güçlü olduğu gibi yanına başka bir tane öğrenirsen (Java veya Python) epey geniş kullanım alanına hitap edebilirsin.

Ben mühendislik fakültesindeyken bilgisayar mühendisi olan arkadaşlara da okul da C# veriyorlardı. Kendileri de ikinci dil olarak Java seçmişlerdi. Bu ikili de fena sayılmaz.
 
Öncelikle merhaba. Bu konu hakkında bir sürü konu açılmış. Hepsine detaylı bir şekilde incelememe rağmen sonuca varamıyorum. C++ için temel deniyor, C# için daha geniş deniyor, Java daha mantıklı deniyor. Tam C# ile C++ arasında bir karar veriyorum bu sefer de Java ile arada kalıyorum. İkisi de birbirine benziyor deniyor. Herkes farklı bir şey söylüyor. Ve benim özel olarak ilgili olduğum bir alan yok, programlamada klasik oyun yapacağım demiyorum. Veya masaüstü program tarzı bir şey yapacağım demiyorum. Veya Web sitesi tasarlayacağım da demiyorum. Çünkü her site de her forumda her yazılım dilini her alana yöneltebiliyorlar. Bu yüzden hangisini seçersem hangi alanlarda ilerleyeceğimi açıklarsanız çok sevinirim.

"Hangisini secersem" diye bir sey yok. Insanlar "Java secenler" ve "C# secenler" diye ikiye ayrilmiyorlar. Yetismis insanin yeni dil ogrenmesi cok kisa surer. Cogu mulakat zaten dil agnostik sekilde yapilir. Istedigin dilde takilirsin. Zaten bu isi profesyonel yapacaksan 30+ sene sektorde bulunacaksin. Bir suru dil, teknoloji ogreneceksin; ogrenmek zorundasin. Basladigin dilin, hayatinin geri kalanina etkisi ε kadar.
 
Öncelikle merhaba. Bu konu hakkında bir sürü konu açılmış. Hepsine detaylı bir şekilde incelememe rağmen sonuca varamıyorum. C++ için temel deniyor, C# için daha geniş deniyor, Java daha mantıklı deniyor. Tam C# ile C++ arasında bir karar veriyorum bu sefer de Java ile arada kalıyorum. İkisi de birbirine benziyor deniyor. Herkes farklı bir şey söylüyor. Ve benim özel olarak ilgili olduğum bir alan yok, programlamada klasik oyun yapacağım demiyorum. Veya masaüstü program tarzı bir şey yapacağım demiyorum. Veya Web sitesi tasarlayacağım da demiyorum. Çünkü her site de her forumda her yazılım dilini her alana yöneltebiliyorlar. Bu yüzden hangisini seçersem hangi alanlarda ilerleyeceğimi açıklarsanız çok sevinirim.

Programlamaya giriş konuları bütün dillerde aynıdır. O yüzden hangil dil ile başladığınızın pek bir önemi yok. İstediğiniz bir dili seçebilirsiniz.
 
En mantıklısını yapıp yazı tura atabilirsiniz. Fark olmayacak. Eğer sonuçtan pişman olursanız endişelenmenize de gerek yok, çünkü diğeri de çıksaydı yine pişman olacaktınız.
 

Yeni konular

Geri
Yukarı