Neden C#

Life Hunter

Lapis Toplayıcısı
En iyi cevaplar
0
Merhaba bugün size C# programlama dilinin avantajlarından bahsedeceğim. Tarihsel bilgilerde var. Yazının sonlarına doğru Java hakkındaki düşüncelerimi bir kaç cümle ile dile getirdim.

C programlama dili olaya taşınabilirlik katınca herkes tarafından kullanılan bir dil oldu. Ayrıca C düşük seviye dillerin yapabildiklerinide yapıyordu. Hemde inline asm falan destekliyordu. Ayrıca anahtar kelimeleri olsun, yerleşik standart kütüphaneleri olsun, geliştiricilere pek çok kolaylık sağlıyordu. Halen C düşük seviyenin gözdesi, sistem programlamanın vaz geçilmezidir. C hatta pek çok dilin sözdizimi ve anahtar kelime refaransıdır.

Sonra geliştiriciler OO(Object Orianted)'ya ihtiyaç duydu. Yani yazdıkları kodu tek sefer yazıp koddan kod türetmeye. İnstance'lara falan ihtiyaç duydular. OO'nun temelleri C++ ile atılmadı. Eiffel vb de vardı. Delphi falan da vardı. Yani tam olarak OO C++ ile başlamadı. Ama C++'ın OOP(Object Orianted Programming)'si hiçbir dilde yoktu çıktığında.

C++ C üstüne inşa edildiği için de, C kullananlar C++'a geçtiler. Fakat C++ OOP'un ardından STL geliştirmeye başladı.STL artık C'yi OOP kullanmaktan öte birşeydi. Pek çok yeni şey içeriyordu.

O nedenle C++'ı kullanan 2 tür geliştirici vardır:
C kafası ile kullanan ve STL üstüne kullananlar.
Günümüzde STL işi teknik anlamda ilerletse de, asıl C++'ın ayakta kalması daha çok C'ciler sayesinde olmuştur.
Tabi STL'cilerin oyun motorları geliştirmesi vb. de farklı bir nokta. Ama C++'ın ayakta kalmasını sağlayan C'ciler sayesindedir.

İlerleyen zamanlarda geliştiriciler şunu gördüler, OOP iyi güzel ama, C++ ile OOP yazarken proje çok büyüyor, binlerce satır kod ortaya çıkıyor ve bellek yönetimi, istisnalar vb. şeyler geliştiricinin çok da ilgilenmesi gerekmeyen kısımlar geliştirme sürecinde çok yer kaplıyordu. Ayrıca C/C++ direk makine üstünde çalıştığı için derin çökmeler makineye zarar veriyordu. Bunun gibi birkaç sorun daha toplandı ve Java ortaya çıktı. Otomatik bellek yönetimi, wrapped exceptions, VM environment. Geliştiricilerde
C++'tan direk Javaya geçtiler. Çünkü yazdıkları kod makinede değil VM(Sanal Makine) de çalışıyordu. Ayrıca C++ STL de bazı sistemler işlemci seçiyordu. En basitinden OS bazlı farklılıkar ortaya çıkıyordu. Java bunu da yine VM(FW) sayesinde çözdü.

Tam da bu noktada projesi geniş olanlar Java'ya geçti, Eski C kafasındakileri etkilemedi. Çünkü C kafasındaki geliştiriciler yapacakları şeyi C de de yapabiliyorları. C++'a ihtiyaç yoktu onlar için. Ardından Microsoft'un geliştirme ortamına ilk girişleri başladı. Visual Basic dilini çıkardı, onun peşine IDE olarak Visual Studio yu çıkardılar.(Visual Studio'nun eski sürümlerinde Java desteği vardır)
Microsoft Javayı Windows'a bazı ek özellikler ile geliştirmek istedi. Fakat Sun Micro Systems Java'yı özgür ve kendi taraflarında tutacaklarını söyledi.

Microsoft bu durumun üzerine .Net platformunu halka açtı. Yani Microsoft Java ile anlaşamayınca .Net'i yayınladı.

Ardından Delphi geliştiricilerinden bir adama neredeyse Java kopyası bir dil yazdırdı. Adam zaten dil geliştiricisi olduğu için, Microsoft o adamı iyi çalıştırdı.
Ve ortaya hepimizin bildiği, son zamanların en popüler dillerinden biri olan C# çıktı.

İlk başta C# Java nın kopyasıydı. Ama sonrasında C# kendini geliştirdi. Microsoft tüm ürünlerinde C#/.Net kullanmaya başladı. C# Microsoft'un hem kendi ürünlerinde, hem de geliştiricilere sunduğu hizmetlerde teknolojinin birincil dili oldu.

LINQ müthiş bir şeydir. .Net çok stabil ve birbiriyle uyumlu yapılar içeren bir kütüphanedir. .Net de bir şey geliştirirken sürekli yeni şeyler ortaya çıkmaz. Arkaplandaki kodları değişir. Bu major versiyonlarda olur, minor versiyonlarda olmaz. Bazı method'lara yeni parametreler gelir. Çok gerekli ise yeni namespace ve sınıflar eklenir. Ayrıca dökümantasyonu harikadır .Net'in.
Her class'tan, parametreden, exception'dan, herşeyden dökümantasyon fırlar. Yapısı birbiriyle komple tutarlıdır. C#/.Net de çok az bir kısımda kullanılmayan sınıflar, kodlar vardır. Onlar da genelde ya zorunluluktan yada şuanki genel geliştirici kitlesinin halen onlara başvurmasından olayı tutulur.

Ayrıca .Net piyasada görebileceğiniz en mature kütüphanelerdendir..Net 2.0'da yazılan kodlar .Net 4.6'da bile çalışır. Ancak .Net 4.6'da onun yerini daha kolay ve kısa method'lar alabilir. Ayrıca C#'ta keyword'ler sadece veri türlerini işaret etmez, async-await asynchronous programming'i muhteşem derecede kısaltan bir keyword ikilisidir.

Bunun dışında TPL(task parallelism libray) multithreading uygulamaları otomatik yönetir.
thread açıp işlem yapmak yerine, direk QueueUserWorkItem denir. O thread'leri kendisi açar, kuyruklamayı kendisi yapar.

şu an hem asynchronous, hem multi-threaded, hem multi-tasking tek bir yöntemle yapılıyor Async Task'larla.

Yani öyle thread'lerle uğraşmak falan artık hiç de baş ağrıtmıyor, sistemin tutarlı çalışması da buna göre çok iyi oluyor. Thread'ler birbirlerini kaynaklarına erişip erişmeyeceklerini seçiyor. Siz sadece prototip task'ler yazıyorsunuz. Ortak veya ayrı kullanılması vb optimizasyonlar .Net'e ait.

Sonuç:
Yani C# şu an piyasa kullanabileceğiniz language featrues bakımından en geniş dildir. Yapı olarak da çok tutarlı bir kodlaması var. .Net piyasa da görebileceğiniz en stabil çalışan, en mature kütüphanelerdendir.

Java 3-4 senedir ölen bir dildir. Ama kısa sürede ölmez. Rahat bir 10 yıl gene popüler kalır, ama sonradan işi bitmeye başlar. Neden Java yazayımki demeye başlar geliştiriciler. C# çoğu konuda Java dan daha üstün şu an. Eğer C# bu gidişle giderse Java nın yerini alacak. Ama bu gidişe devam edebilir ise, hiçbir şey kesin değil.

@CrafterMan24 @ProgramlamaİleİlgilenenHerkes
 

Life Hunter

Lapis Toplayıcısı
En iyi cevaplar
0
Dotnet'in kölesi olmaya hiç mi hiç niyetim yok.
Ayrıca C# ile Javayı yarıştırman bile aptalca.
Cahil cahil konuşmayın.

bkz:saçma sapan konuşma LA
C# ile Java neden yarıştırılmasın? Ha burda ikisinin arasında bir kıyaslama yapmadım. Java hakkındaki görüşlerimi belirttim. C# language featrues bakımından piyasadaki en geniş dil. Ben Microsoft fanboyu değilim. Çoğu ürününü sevmem. Ama biraz C# kullanınca ne kadar güçlü bir dil olduğunu anladım.

Edit: Tartışma yapılırken biraz daha saygılı olman gerekir.
 

P4RS

Elmas Madencisi
En iyi cevaplar
0
Java ile ilgili güzel bir yazı okuyun:

Java Basittir.


Java, kendisine yakın güçteki dillerin en basitidir. Örneğin, Java model olarak aldığı C++’tan çok daha kolaydır. C++’ın çok güçlü bir dil olduğu tartışılmaz. Ama C++ ve C# çoğu bir dilde bulunması çok da şart olmayan karmaşık birçok özellik içermektededir. Bütün bu özelliklerin öğrenilmesi çok zaman alır. Oysa Java gereksiz çok fazla özellik içermez. Ve Java’da bir özelliğin öğrenilmesi ve kullanılması çok kolaydır. Başka dillerde çok zor yazılan işlemler Java’da çok basit ifadelerle gerçekleştirilebilmektedir.

Java’nin basitliği yanlış anlaşılmamalıdır. VisualBasic/ASP, Delphi/Pascal, Perl, PHP gibi dillerden ve ortamlardan daha basit değildir. Bu sayılan diller çok kolay öğrenilebilen, kısa zamanda yeterli düzeye ulaşılabilen dillerdir. Ancak bu dillerde yapılabileceklerin belli bir sınırı vardır. Bu dillerde büyük çaplı ve karmaşık işler yapamazsınız veya yapmanız durumda çok zorluk çekersiniz. Oysa Java programlamanın her dalında iddia sahibidir. Her geçen gün Java yeni bir alanda söz sahibi olmaktadır. Bu bağlamda ’basit’ demek, ’çok gelişmiş işlemlerin basit bir şekilde yapılabilmesini sağlayan’ demektir. Yoksa ’programcı bunu anlamaz’ diye düşünülmesinden ötürü hiçbir özellik dışarda bırakılmamıştır.

Java Nesneye Yöneliktir.

Java tamamen (bazı kişilere göre %99) nesneye yönelik’tir. Diğer bazı diller gibi nesneye yöneliklik sonradan dile eklenmemiştir, başından beri Java’da bulunmaktadır. Bir Java programında olabilecek her şey ya nesnedir ya da bir nesnenin parçasıdır. Java nesneye yönelik programlamayı sadece mümkün değil aynı zamanda kolay kılmıştır. Java’da bir nesnenin yapılması, kullanılması, geliştirilmesi, başka bir yere aktarılaması çok kolaydır.

Java Dağıtıktır.

Java ’dağıtık’ bir dildir. ’Dağıtık’ birden fazla bilgisayarda çalışan programların bir biriyle uyumlu çalışabilmesidir. Bir yazılım parçasının bir kısmının bir makinede diğerinin başka makinede aynı anda çalışması mümkündür. Bu yüzden Internet’in dilinin Java olduğu söylenmektedir. Günümüzde tek bir makine üzerinde çalışan, başka hiçbir yerle bağlantısı olmayan uygulama kalmamış gibidir. birçok işletme Interenet üzerinden iş yapmaktadır. birçok işletmede birden fazla makine birbirine bağlı olarak çalışmaktadır. Bu yüzden Java dağıtık programlama için en uygun çözümlerden biridir.

Java Sağlamdır.

Java sağlam bir dildir. Programlamadaki hataların çoğu daha yazılma aşamasında anlaşılabilmektedir. Yazılma aşamasında anlaşılmayanlar, programın çalışması esnasında yakalanabilmektedir. Bir ’exception’la, programda hatanın ne olduğu, nerede olduğu ve hangi işlemi yaparken olduğu bile belirtilebilmektedir. Başka dillerin aksine çalışma esnasında bir Java programı "Bir hata oldu!" deyip çökmez. birçok durumda hataya rağmen program çökmeden çalışmaya devam eder. Hata olması durumunda da programı çalıştıranlar hatayı ayrıntılarıyla öğrenme olanağına sahip olur.

Java Güvenlidir.

Java güvenli bir dildir. Java diliyle virüs yapılamaz. hiçbir virüs bir Java programına bulaşamaz. Bir Java programının yaptığı her hareket takip edilir. Kötü niyetli bir program, bir işlemi eğer izin verilmediyse yapamaz. Bu özellik, Internet gibi herkesin başkasının makinesine erişebildiği bir ortmada çok önemlidir. Java’yı güvenlik gereksinimi yüksek birçok firma bu yüzden tercih etmektedir.

Mimarilere Yansızdır.

Sıradan kullanıcıların bildiğinin aksine dünya üzerinde birçok işletim sistemi vardır. Hatta kullanıcın çoğunun iyi bildiği Windows işletim sistemi bazı bilgisaya alanlarında hiç kullanılmaz. UNIX/Linux, Apple Mac, IBM’in çeşitli işletim sitemleri dünya işletim sistemi pazarında büyük yer tutmaktadır. birçok masaüstü kullanıcısının tek bildiği işletim sisteminin, bazı sektörlerde adı dahi geçmemektedir. Java’da yazılan bir program hemen hemen bütün işletim sistemlerinde hiç değiştirmeye gerek duymaksızın çalışır. Diğer dillerde bu özellik yoktur. Hatta Windows’un bir versiyonunda çalışan program diğer bir versiyonda çalışmayabilmekte, bazen makinenin çökmesi gibi büyük sonuçlar bile doğurabilmektedir. Windows’u üreten Microsoft firmasının yazdığı programlar bile kendilerinin işletim sistemlerinin bazılarında çalışmamaktadır. Kendilerinin yazdığı belgelerde hangi işletim sistemlerinin hangi versiyonlarında hangi programlarının çalışmadığını belirtilmektedir. Bu durum bütün işletim sistemi ve bütün programlar için geçerlidir. Ürettiği yazılımların her platformda çalışmasını isteyen firmalar giderek daha çok Java’ya yönelmektedir.

Java Taşınabilirdir.

Java programları her ortamda aynı veya benzer bir şekilde çalışır. Her ortam/makine için ayrı bir program yazmaya gerek kalmaz. Programcı programın çalışacağı makinenin durumunu göz önüne almak zorunda kalmaz. Bir programın görüntüsü çalıştığı hey yerde hemen hemen aynıdır. C programları da hemen hemen her işletim sisteminde yeniden derlenmek suretiyle çalışabilir. Ama programcı bunun için hazırlık yapmalıdır. Bir işletim siteminde tamsayı -2^15 ile 2^15 arasında değer alırken diğerinde -2^31 ile +2^31 arasında alabilir. Ama Java bu farkları programcıya şeffaf kılar. Programcı her işletim sistemi ve her sürüm için ayrı bir program yazmak zorunda kalmaz.

Java Yorumlanır.
Java ’yorumlamalı’ bir dildir. Yani bir Java programının komutları, çalışırken makinenin anlayacağı formata çevrilir. Java’da bu Java Virtual Machine (JVM) tarafından yapılır. Bunun avantajı bir programın kullanıdığı standart kütüphanelerin programla birlikte taşınması zorunluluğunu ortadan kaldırmasındır. Bir yorumlayıcı herhangi bir ortamda varsa, bir dildeki standart her özellik o ortamda var demektir. Programla birlikte bu kütüphanelerin de taşınması gerekmez. Bu da bir Java programının bir makineden başka makineye indirilmesini çok hızlandırır. Çünkü sadece programcının yazdığı nesneler yolculuk yapar. Applet’lerin çalışma prensibi budur. Ana makinede bulunan applet, tarayıcı tarafından kullanıcının makinesine alınır ve çalıştırılır. Java ortamı, yani JVM tarayıcının içinde mevcutur.

Java Yüksek Başarımlıdır.

Diğer dillerde olmayan birçok özelliğe sahip olmasına rağmen, Java’da bunun için fazla bir performans kaybı yoktur. Java’nın ilk versiyonlarında çalışan programlar diğer dillerde yazılan eşdeğerlerine göre elbette yavaştır. Ancak Java’nın gelişmesiyle birlikte Java bu farkı, üstün özelliklerinde vazgeçmek zorunda kalmaksızın kapatmaktadır. En son Java sürümüyle birlikte JIT (Just-In Time-Tam Zamanında Derleme) teknolojisi devreye girmiş bulunlaktadır. Bununla birlikte Java programları, diğer dillerde en iyi yazılmış programların hızını hemen hemen yakalayabilmektedir. Java yapılması ’imkansız’ gibi görüneni çok da fazla performans kaybına yol açmadan yapar.

Java’nın yavaşlığı en fazla eleştiri alan özelliklerden biridir. Bir programın hızlı çalışması, makinelerin hafıza veya işlemcisini terfi ettirerek çözülebilir. İşlemcinin ve hafızanın çok ucuzladığı günlerde, bu, bir işletme için pek fazla maddi bir yük değildir. Bir programcının sağlam, güvenli ve Java’nı sahip olduğu üstün özelliklere sahip program üretmesi daha fazla masraflıdır. Bir işletmenin, durup dururken bir programın makineyi çökertmesinden dolayı katlanacağı külfet az değildir. Programı yapanların bile hatayı anlamak için saatlerce bazen günlerce uğraşması işletmeye yine maliyet olarak yansıyacaktır. Bu kadar eleştiri almasına rağmen Java’nın giderek daha fazla yaygınlaşmasının elbette nedenleri vardır. Java’nın yavaşlığından sadece Java’yı bilmeyenler ve kullanmayanlar şikayet etmektedir. Ancak Java ’hızla’ yayılmaktadır.

Java Çok Kanallıdır.

Java dili başından ’çok kanallıdır’ (multi-threaded’dir). Çok kanallılık, bir programın aynı anda birden fazla işlemi yürütebilmesi demektir. Bir program herhangi bir şeyi beklerken arada başka bir işlemi gerçekleştirebilir. Beklenen olay gerçekleşince ilk işlem kaldığı yerden aynen devam ettirilir. Üstelik bunun için programcının fazla bir şey yapması da gerekmemektedir. Çok kanallılık birçok dilde hiç yoktur. C++ gibi dillerde de dilin özelliği değil, ona sonradan eklenmiş kütüphanelerle kullanılabilmektedir. Ama Java’nın kendisi doğuştan çok kanallıdır. Bu yüzden çok kanallı program yapmak için en kolay dil Java’dır.

Java Dinamiktir.

Java’da bir programla kullandığı birimlerin (kütüphaneler,modüller veya sınıfların) birbirine bağlanması çalıştırma anında yapılır. Buna ’sonradan bağlama’ (late binding) denir. Kullanılan birimlerin iç yapısı değiştirildiğinde, bu birimleri kullanan programın değişmesi gerekmez. Yeter ki birimlerin dışarıdan çağırma şekilleri değişmesin. Oysa C++ gibi dillerde herhangi bir değişiklikte (bu bir modülün iç yapısında çağıranları ilgilendirmeyen çok ufak bir değişiklik bile olsa) herşeyin yeniden işleme tabi tutulması gerekir. Buna da ’erken bağlama’ (early binding) denir. Java’da late-binding bu özellik olmasaydı, Java kütüphanlerindeki her hata düzeltme ve değişiklikte dünyadaki bütün programları yeniden işleme tabi tutmamız gerekirdi ki bu mümkün değildir.

Sonuç
Java iyi bir programlama dilidir. Giderek yaygınlaşması, diğer dillerin giderek Java’ya benzemeye başlaması ve taklitlerinin çıkması da bunu göstermektedir. Java’yı tercih etmeyenler elbette olmuştur ve olacaktır. Ama buzdolabının bile Java bildiği bu dönemde bu dili hiç bilmemek, tümüyle yok saymak bilgisayar alanında var olmak isteyen insanlar için büyük bir eksiklik olacaktır.

(Alıntıdır)
 

CoffeeBeat

Zindev
En iyi cevaplar
0
C# ile Java neden yarıştırılmasın? Ha burda ikisinin arasında bir kıyaslama yapmadım. Java hakkındaki görüşlerimi belirttim. C# language featrues bakımından piyasadaki en geniş dil. Ben Microsoft fanboyu değilim. Çoğu ürününü sevmem. Ama biraz C# kullanınca ne kadar güçlü bir dil olduğunu anladım.

Edit: Tartışma yapılırken biraz daha saygılı olman gerekir.
Bak sana şöyle anlatıyım.
Ben 2 satır konsol kodu yazarım,istediğim sistemde.Televizyon olsun,Bilgisayar olsun,Uzay üstü olsun java yükleyip çalıştırırım.
Sen 2 satır kod yazarsın,Mono kütüphanesiyle uğraşırsın,her platform için ayrı bir kod yazarsın.
C# sadece Windows için kullanışlı bir dil.
Java daha geniş,Televizyonlara,Otobüs Monitörlerine,Otomatik Kapı Açma Sensörlerine hatta bazı akıllı klavye sistemlerinin çipine bile yazılabiliyor.
Java şu ana kadar 3 MİLYON farklı cihazda çalıştırıldı ve HALA kullanılıyor.
C#'in gitmesi demek windows işletim sistemindeki programların çoğunun gitmesi demek.
Java'nın gitmesi demek,Hayatın durması demek.(Metro sistemleri,Sinema Sistemleri,Asansörler aklınıza ne geliyorsa)

Bu yüzden Java çok fazla kullanılan bir dil,Java'nın windowsta kullanılma oranına bakıp 'ölü bir dil' demek her zaman kolay.Fakat hiç java'nın elektronik aletlerde kullanılma oranına baktın mı ?

Saçma Sapan Konuşma Dememin Sebebini En Iyı Bu Video Açıklar;

Umarım yanlış düşünceni düzeltmişimdir.
 

Life Hunter

Lapis Toplayıcısı
En iyi cevaplar
0
Java ile ilgili güzel bir yazı okuyun:

Java Basittir.


Java, kendisine yakın güçteki dillerin en basitidir. Örneğin, Java model olarak aldığı C++’tan çok daha kolaydır. C++’ın çok güçlü bir dil olduğu tartışılmaz. Ama C++ ve C# çoğu bir dilde bulunması çok da şart olmayan karmaşık birçok özellik içermektededir. Bütün bu özelliklerin öğrenilmesi çok zaman alır. Oysa Java gereksiz çok fazla özellik içermez. Ve Java’da bir özelliğin öğrenilmesi ve kullanılması çok kolaydır. Başka dillerde çok zor yazılan işlemler Java’da çok basit ifadelerle gerçekleştirilebilmektedir.

Java’nin basitliği yanlış anlaşılmamalıdır. VisualBasic/ASP, Delphi/Pascal, Perl, PHP gibi dillerden ve ortamlardan daha basit değildir. Bu sayılan diller çok kolay öğrenilebilen, kısa zamanda yeterli düzeye ulaşılabilen dillerdir. Ancak bu dillerde yapılabileceklerin belli bir sınırı vardır. Bu dillerde büyük çaplı ve karmaşık işler yapamazsınız veya yapmanız durumda çok zorluk çekersiniz. Oysa Java programlamanın her dalında iddia sahibidir. Her geçen gün Java yeni bir alanda söz sahibi olmaktadır. Bu bağlamda ’basit’ demek, ’çok gelişmiş işlemlerin basit bir şekilde yapılabilmesini sağlayan’ demektir. Yoksa ’programcı bunu anlamaz’ diye düşünülmesinden ötürü hiçbir özellik dışarda bırakılmamıştır.

Java Nesneye Yöneliktir.

Java tamamen (bazı kişilere göre %99) nesneye yönelik’tir. Diğer bazı diller gibi nesneye yöneliklik sonradan dile eklenmemiştir, başından beri Java’da bulunmaktadır. Bir Java programında olabilecek her şey ya nesnedir ya da bir nesnenin parçasıdır. Java nesneye yönelik programlamayı sadece mümkün değil aynı zamanda kolay kılmıştır. Java’da bir nesnenin yapılması, kullanılması, geliştirilmesi, başka bir yere aktarılaması çok kolaydır.

Java Dağıtıktır.

Java ’dağıtık’ bir dildir. ’Dağıtık’ birden fazla bilgisayarda çalışan programların bir biriyle uyumlu çalışabilmesidir. Bir yazılım parçasının bir kısmının bir makinede diğerinin başka makinede aynı anda çalışması mümkündür. Bu yüzden Internet’in dilinin Java olduğu söylenmektedir. Günümüzde tek bir makine üzerinde çalışan, başka hiçbir yerle bağlantısı olmayan uygulama kalmamış gibidir. birçok işletme Interenet üzerinden iş yapmaktadır. birçok işletmede birden fazla makine birbirine bağlı olarak çalışmaktadır. Bu yüzden Java dağıtık programlama için en uygun çözümlerden biridir.

Java Sağlamdır.

Java sağlam bir dildir. Programlamadaki hataların çoğu daha yazılma aşamasında anlaşılabilmektedir. Yazılma aşamasında anlaşılmayanlar, programın çalışması esnasında yakalanabilmektedir. Bir ’exception’la, programda hatanın ne olduğu, nerede olduğu ve hangi işlemi yaparken olduğu bile belirtilebilmektedir. Başka dillerin aksine çalışma esnasında bir Java programı "Bir hata oldu!" deyip çökmez. birçok durumda hataya rağmen program çökmeden çalışmaya devam eder. Hata olması durumunda da programı çalıştıranlar hatayı ayrıntılarıyla öğrenme olanağına sahip olur.

Java Güvenlidir.

Java güvenli bir dildir. Java diliyle virüs yapılamaz. hiçbir virüs bir Java programına bulaşamaz. Bir Java programının yaptığı her hareket takip edilir. Kötü niyetli bir program, bir işlemi eğer izin verilmediyse yapamaz. Bu özellik, Internet gibi herkesin başkasının makinesine erişebildiği bir ortmada çok önemlidir. Java’yı güvenlik gereksinimi yüksek birçok firma bu yüzden tercih etmektedir.

Mimarilere Yansızdır.

Sıradan kullanıcıların bildiğinin aksine dünya üzerinde birçok işletim sistemi vardır. Hatta kullanıcın çoğunun iyi bildiği Windows işletim sistemi bazı bilgisaya alanlarında hiç kullanılmaz. UNIX/Linux, Apple Mac, IBM’in çeşitli işletim sitemleri dünya işletim sistemi pazarında büyük yer tutmaktadır. birçok masaüstü kullanıcısının tek bildiği işletim sisteminin, bazı sektörlerde adı dahi geçmemektedir. Java’da yazılan bir program hemen hemen bütün işletim sistemlerinde hiç değiştirmeye gerek duymaksızın çalışır. Diğer dillerde bu özellik yoktur. Hatta Windows’un bir versiyonunda çalışan program diğer bir versiyonda çalışmayabilmekte, bazen makinenin çökmesi gibi büyük sonuçlar bile doğurabilmektedir. Windows’u üreten Microsoft firmasının yazdığı programlar bile kendilerinin işletim sistemlerinin bazılarında çalışmamaktadır. Kendilerinin yazdığı belgelerde hangi işletim sistemlerinin hangi versiyonlarında hangi programlarının çalışmadığını belirtilmektedir. Bu durum bütün işletim sistemi ve bütün programlar için geçerlidir. Ürettiği yazılımların her platformda çalışmasını isteyen firmalar giderek daha çok Java’ya yönelmektedir.

Java Taşınabilirdir.

Java programları her ortamda aynı veya benzer bir şekilde çalışır. Her ortam/makine için ayrı bir program yazmaya gerek kalmaz. Programcı programın çalışacağı makinenin durumunu göz önüne almak zorunda kalmaz. Bir programın görüntüsü çalıştığı hey yerde hemen hemen aynıdır. C programları da hemen hemen her işletim sisteminde yeniden derlenmek suretiyle çalışabilir. Ama programcı bunun için hazırlık yapmalıdır. Bir işletim siteminde tamsayı -2^15 ile 2^15 arasında değer alırken diğerinde -2^31 ile +2^31 arasında alabilir. Ama Java bu farkları programcıya şeffaf kılar. Programcı her işletim sistemi ve her sürüm için ayrı bir program yazmak zorunda kalmaz.

Java Yorumlanır.
Java ’yorumlamalı’ bir dildir. Yani bir Java programının komutları, çalışırken makinenin anlayacağı formata çevrilir. Java’da bu Java Virtual Machine (JVM) tarafından yapılır. Bunun avantajı bir programın kullanıdığı standart kütüphanelerin programla birlikte taşınması zorunluluğunu ortadan kaldırmasındır. Bir yorumlayıcı herhangi bir ortamda varsa, bir dildeki standart her özellik o ortamda var demektir. Programla birlikte bu kütüphanelerin de taşınması gerekmez. Bu da bir Java programının bir makineden başka makineye indirilmesini çok hızlandırır. Çünkü sadece programcının yazdığı nesneler yolculuk yapar. Applet’lerin çalışma prensibi budur. Ana makinede bulunan applet, tarayıcı tarafından kullanıcının makinesine alınır ve çalıştırılır. Java ortamı, yani JVM tarayıcının içinde mevcutur.

Java Yüksek Başarımlıdır.

Diğer dillerde olmayan birçok özelliğe sahip olmasına rağmen, Java’da bunun için fazla bir performans kaybı yoktur. Java’nın ilk versiyonlarında çalışan programlar diğer dillerde yazılan eşdeğerlerine göre elbette yavaştır. Ancak Java’nın gelişmesiyle birlikte Java bu farkı, üstün özelliklerinde vazgeçmek zorunda kalmaksızın kapatmaktadır. En son Java sürümüyle birlikte JIT (Just-In Time-Tam Zamanında Derleme) teknolojisi devreye girmiş bulunlaktadır. Bununla birlikte Java programları, diğer dillerde en iyi yazılmış programların hızını hemen hemen yakalayabilmektedir. Java yapılması ’imkansız’ gibi görüneni çok da fazla performans kaybına yol açmadan yapar.

Java’nın yavaşlığı en fazla eleştiri alan özelliklerden biridir. Bir programın hızlı çalışması, makinelerin hafıza veya işlemcisini terfi ettirerek çözülebilir. İşlemcinin ve hafızanın çok ucuzladığı günlerde, bu, bir işletme için pek fazla maddi bir yük değildir. Bir programcının sağlam, güvenli ve Java’nı sahip olduğu üstün özelliklere sahip program üretmesi daha fazla masraflıdır. Bir işletmenin, durup dururken bir programın makineyi çökertmesinden dolayı katlanacağı külfet az değildir. Programı yapanların bile hatayı anlamak için saatlerce bazen günlerce uğraşması işletmeye yine maliyet olarak yansıyacaktır. Bu kadar eleştiri almasına rağmen Java’nın giderek daha fazla yaygınlaşmasının elbette nedenleri vardır. Java’nın yavaşlığından sadece Java’yı bilmeyenler ve kullanmayanlar şikayet etmektedir. Ancak Java ’hızla’ yayılmaktadır.

Java Çok Kanallıdır.

Java dili başından ’çok kanallıdır’ (multi-threaded’dir). Çok kanallılık, bir programın aynı anda birden fazla işlemi yürütebilmesi demektir. Bir program herhangi bir şeyi beklerken arada başka bir işlemi gerçekleştirebilir. Beklenen olay gerçekleşince ilk işlem kaldığı yerden aynen devam ettirilir. Üstelik bunun için programcının fazla bir şey yapması da gerekmemektedir. Çok kanallılık birçok dilde hiç yoktur. C++ gibi dillerde de dilin özelliği değil, ona sonradan eklenmiş kütüphanelerle kullanılabilmektedir. Ama Java’nın kendisi doğuştan çok kanallıdır. Bu yüzden çok kanallı program yapmak için en kolay dil Java’dır.

Java Dinamiktir.

Java’da bir programla kullandığı birimlerin (kütüphaneler,modüller veya sınıfların) birbirine bağlanması çalıştırma anında yapılır. Buna ’sonradan bağlama’ (late binding) denir. Kullanılan birimlerin iç yapısı değiştirildiğinde, bu birimleri kullanan programın değişmesi gerekmez. Yeter ki birimlerin dışarıdan çağırma şekilleri değişmesin. Oysa C++ gibi dillerde herhangi bir değişiklikte (bu bir modülün iç yapısında çağıranları ilgilendirmeyen çok ufak bir değişiklik bile olsa) herşeyin yeniden işleme tabi tutulması gerekir. Buna da ’erken bağlama’ (early binding) denir. Java’da late-binding bu özellik olmasaydı, Java kütüphanlerindeki her hata düzeltme ve değişiklikte dünyadaki bütün programları yeniden işleme tabi tutmamız gerekirdi ki bu mümkün değildir.

Sonuç
Java iyi bir programlama dilidir. Giderek yaygınlaşması, diğer dillerin giderek Java’ya benzemeye başlaması ve taklitlerinin çıkması da bunu göstermektedir. Java’yı tercih etmeyenler elbette olmuştur ve olacaktır. Ama buzdolabının bile Java bildiği bu dönemde bu dili hiç bilmemek, tümüyle yok saymak bilgisayar alanında var olmak isteyen insanlar için büyük bir eksiklik olacaktır.

(Alıntıdır)
C# ilk zamanlarında tamamen Java kopyası bir dildi zaten. Java varken yüzüne bakılacak bir dil değildi. Ama aynı kalmadı. Sürekli kendini geliştirdi. Bu saydığım özelliklerin çoğu yeni özellikler zaten. C# kendini sürekli geliştiriyor. Sürekli yeni şeyler ekleniyor. Java eskiden çok güçlü bir dil olabilirdi. Hala çok güçlü bir dil. 10 sene daha popüler kalacak. Ama bu C#'ın kendini geliştirmesine engel olmuyor.
 

CrafterMan24

Arduino is my life :C
En iyi cevaplar
0
C#'ın syntax bakımından kolay bir dil olduğu doğru, ancak ben C# ve Java gibi sanal dilleri pek de sevmiyorum.
Performans kaybı desen var, kısıtlamalar (Tabi C# bu kısıtlamaların bir kısmına sahip olmayan tek .NET dili denilebilir) desen o da var. Neyseki Native C# derleyicileri çıkmaya başladı, rahatça .NET'e veya başka şeylere bağlı kalmadan program yazılabiliyor C# dilinde. Ne yazık ki benzer durum Java için de geçerli, ancak Java'nın .NET'ten çok büyük bir üstünlüğü var. Çamaşır makinesinden tut bulaşık makinesine, buzdolabından tut 10 yıl önceki cep telefonlarına, Linux da Windows da Mac OS da, kısacası neredeyse elektronik her şey Java kullanıyor / kullanabiliyor. .NET dilleri sadece Windows platformunu desteklerken, Java uygulamaları neredeyse platform bağımsız. Uygun API'lerle Java'lı akıllı buzdolabınızda bile Java programı çalıştırabilirsiniz. Ancak daha önceden de dediğim gibi, bu Java'yı .NET dillerinden daha performanslı yapmıyor. Bu yüzden performanslı bir şey arıyorsanız size en uygunu C++ veya C'dir, ki bunlar da benim favori dillerim. C++'yı genelde Cross Platform uygulamalarımda kullanırken C'yi de işletim sistemimi yaparken kullanıyorum, işletim sistemi yapma konusunda C++'dan çok daha fazla esneklik gösteriyor.
 

Epistomoloji

Lapis Toplayıcısı
En iyi cevaplar
0
Bak sana şöyle anlatıyım.
Ben 2 satır konsol kodu yazarım,istediğim sistemde.Televizyon olsun,Bilgisayar olsun,Uzay üstü olsun java yükleyip çalıştırırım.
Sen 2 satır kod yazarsın,Mono kütüphanesiyle uğraşırsın,her platform için ayrı bir kod yazarsın.
C# sadece Windows için kullanışlı bir dil.
Java daha geniş,Televizyonlara,Otobüs Monitörlerine,Otomatik Kapı Açma Sensörlerine hatta bazı akıllı klavye sistemlerinin çipine bile yazılabiliyor.
Java şu ana kadar 3 MİLYON farklı cihazda çalıştırıldı ve HALA kullanılıyor.
C#'in gitmesi demek windows işletim sistemindeki programların çoğunun gitmesi demek.
Java'nın gitmesi demek,Hayatın durması demek.(Metro sistemleri,Sinema Sistemleri,Asansörler aklınıza ne geliyorsa)

Bu yüzden Java çok fazla kullanılan bir dil,Java'nın windowsta kullanılma oranına bakıp 'ölü bir dil' demek her zaman kolay.Fakat hiç java'nın elektronik aletlerde kullanılma oranına baktın mı ?

Saçma Sapan Konuşma Dememin Sebebini En Iyı Bu Video Açıklar;

Umarım yanlış düşünceni düzeltmişimdir.
3 milyon değil 3 MİLYAR hocam, çok geniş bir dil ve hayatın her yanında kullanılıyor. Fakat ben tarafsızım her dil kendi alanında iyidir bence :(
 

CrafterMan24

Arduino is my life :C
En iyi cevaplar
0
Bak sana şöyle anlatıyım.
Ben 2 satır konsol kodu yazarım,istediğim sistemde.Televizyon olsun,Bilgisayar olsun,Uzay üstü olsun java yükleyip çalıştırırım.
Sen 2 satır kod yazarsın,Mono kütüphanesiyle uğraşırsın,her platform için ayrı bir kod yazarsın.
C# sadece Windows için kullanışlı bir dil.
Java daha geniş,Televizyonlara,Otobüs Monitörlerine,Otomatik Kapı Açma Sensörlerine hatta bazı akıllı klavye sistemlerinin çipine bile yazılabiliyor.
Java şu ana kadar 3 MİLYON farklı cihazda çalıştırıldı ve HALA kullanılıyor.
C#'in gitmesi demek windows işletim sistemindeki programların çoğunun gitmesi demek.
Java'nın gitmesi demek,Hayatın durması demek.(Metro sistemleri,Sinema Sistemleri,Asansörler aklınıza ne geliyorsa)

Bu yüzden Java çok fazla kullanılan bir dil,Java'nın windowsta kullanılma oranına bakıp 'ölü bir dil' demek her zaman kolay.Fakat hiç java'nın elektronik aletlerde kullanılma oranına baktın mı ?

Saçma Sapan Konuşma Dememin Sebebini En Iyı Bu Video Açıklar;

Umarım yanlış düşünceni düzeltmişimdir.
Pislikler! Çekin elinizi Java'mdan (Videoyu izledikten sonra halim)
Hayır anlamadığmı adam ne güzel Küresel Isınmayı durduracaktı o düğmeye bassaydı :'(
Bir saniye... Öyle bir düğme varsa neden basmıyorlar?!?!?!?!?!?!
 

Centeglassered

Kızıltaş Madencisi
En iyi cevaplar
0
This is racist dude.
Ciddiyim biraz Windows bazlı yazılmış.[DOUBLEPOST=1440688677,1440688647][/DOUBLEPOST]
Pislikler! Çekin elinizi Java'mdan (Videoyu izledikten sonra halim)
Hayır anlamadığmı adam ne güzel Küresel Isınmayı durduracaktı o düğmeye bassaydı :'(
Bir saniye... Öyle bir düğme varsa neden basmıyorlar?!?!?!?!?!?!
ŞŞT!
 

P4RS

Elmas Madencisi
En iyi cevaplar
0
C# ilk zamanlarında tamamen Java kopyası bir dildi zaten. Java varken yüzüne bakılacak bir dil değildi. Ama aynı kalmadı. Sürekli kendini geliştirdi. Bu saydığım özelliklerin çoğu yeni özellikler zaten. C# kendini sürekli geliştiriyor. Sürekli yeni şeyler ekleniyor. Java eskiden çok güçlü bir dil olabilirdi. Hala çok güçlü bir dil. 10 sene daha popüler kalacak. Ama bu C#'ın kendini geliştirmesine engel olmuyor.
sadece windows üzerinde çalışmak istiyenler c#
tüm sistemlerde çalışmak istiyenler ise Java ya gitsinler
10 yıl sonra görüşürüz
 

Life Hunter

Lapis Toplayıcısı
En iyi cevaplar
0
Bak sana şöyle anlatıyım.
Ben 2 satır konsol kodu yazarım,istediğim sistemde.Televizyon olsun,Bilgisayar olsun,Uzay üstü olsun java yükleyip çalıştırırım.
Sen 2 satır kod yazarsın,Mono kütüphanesiyle uğraşırsın,her platform için ayrı bir kod yazarsın.
C# sadece Windows için kullanışlı bir dil.
Java daha geniş,Televizyonlara,Otobüs Monitörlerine,Otomatik Kapı Açma Sensörlerine hatta bazı akıllı klavye sistemlerinin çipine bile yazılabiliyor.
Java şu ana kadar 3 MİLYON farklı cihazda çalıştırıldı ve HALA kullanılıyor.
C#'in gitmesi demek windows işletim sistemindeki programların çoğunun gitmesi demek.
Java'nın gitmesi demek,Hayatın durması demek.(Metro sistemleri,Sinema Sistemleri,Asansörler aklınıza ne geliyorsa)

Bu yüzden Java çok fazla kullanılan bir dil,Java'nın windowsta kullanılma oranına bakıp 'ölü bir dil' demek her zaman kolay.Fakat hiç java'nın elektronik aletlerde kullanılma oranına baktın mı ?

Saçma Sapan Konuşma Dememin Sebebini En Iyı Bu Video Açıklar;

Umarım yanlış düşünceni düzeltmişimdir.
Bende sana şöyle söyliyeyim. C# ile de elektronik işini halledebilirsin. Java kadar popüler olmayabilir. Ama C#'ın diğer platformlara destek vermemesi Microsoft'un istemediği bir şey. Yapamıyacaklarından değil. .Net'in yeni özelliklerini biraz inceler isen nasıl geliştiğini görürsün. Zaten yazı da da dediğim gibi,
C# javanın yerini daha almadı. Ama böyle ilerlemeye devam ederse alacak. Çok iyi ilerleme gösteriyor şu an.
 

CoffeeBeat

Zindev
En iyi cevaplar
0
Bende sana şöyle söyliyeyim. C# ile de elektronik işini halledebilirsin. Java kadar popüler olmayabilir. Ama C#'ın diğer platformlara destek vermemesi Microsoft'un istemediği bir şey. Yapamıyacaklarından değil. .Net'in yeni özelliklerini biraz inceler isen nasıl geliştiğini görürsün. Zaten yazı da da dediğim gibi,
C# javanın yerini daha almadı. Ama böyle ilerlemeye devam ederse alacak. Çok iyi ilerleme gösteriyor şu an.
Eee si şarpçı efendi bize TAHMIN değil SONUÇ gerek.
Java 8 ile gelen özellikleri bilmeden yazdın bu konuyu.
C# ne kadar ilerliyorsa Java'da bir o kadar ilerliyor.
Örnek olarak Java 8 ile gelen JavaFX8 kütüphanesi,bu kütüphane ile o kadar sağlam şablonlar çıkıyor ki aklın hayalin durur;
Linki görebilmek için üye olmanız gerekiyor. Giriş yap veya üye ol.



 

Vienicome

Hayalet Avcısı
En iyi cevaplar
0
Bende javaya geçmek istiyorum fakat C ile karşılaştırınca acayip kötü bir performansı var ki şahsen yapacağım şeyin sisteme bindireceği yük konusunda takıntım vardır :(
 
Üst