Java Neden İyidir ?

0
anonim
Java 'nın .Net'e karşı üstünluklerini anlatan bir sunum Kafası karışanlar için iyi bir kaynak olabilir. www.manageability.org/manageabilityWiki/WhyJavaIsBetterThanDotNet sitesindeki en göze çarpan maddelerin alındığı bu sunumu sizde seveceksiniz :)

Java Neden iyidir?

Editörün Notu: Hazır ortalık ısınıyorken olgunlaşma yolunda emin adımlarla ilerleyen rakip Mono (özgür yazılım modeline uygun .NET ortamı) sitesine de bir göz atmakta fayda var, Mono 1.0 Beta 1 çıkmış durumda!

Görüşler

0
sundance
Valla .NET'e karşı JAVA'yı savunmak, bence çok da güçlü olmayan bir boksörün karşısına ünvan maçı için bir boksör eskisini getirmekten çok farklı değil.

Özür dilerim ama, Java kendi arkasını toplayabiliyor mu bir de .NET ile mücadele edecek ? Her geçen sürümünde biraz daha hantallaşmakta, biraz daha problemli olmakta. Platform bağımsız diye yıllardır yalan yere reklamı yapılan java, bırakın platformu, ciddi kullanımda olduğu yerlerde alt-version bile bağımsız değil. Program Java 1.4.2 istiyor, programın konsolu ise 1.3.1 istiyor diye bela olan ticari programlar var ortada (bkz. Symantec)

Dahası benim makinamda kıytırık bir browser apleti çalıştırmam için 13MB J2RE indirmem gerekirken ve en basit işlerde bile Celeron seviyesi bir makina hıçkıra hıçkıra çalışırken, bir gıdım hafızası ve cpusu olan telefonlar vs. nasıl tamamen java olacak onu da ayrıca merak ediyorum.

Öte yandan .NET tarafını da savunuyor değilim, o tarafta çok fazla bilgim olmamasından çok bir şey söyleyemeyeceğim. Sadece bir programın guisi için 25Mb'lık download gerekmesi bana aptalca geliyor.

Bin kere söyledim, bir kez daha söylüyorum, Java'ya verilen bütün bu gazlar, on yıla yakın süredir pohpohlamanın dörtte biri Python'a yapılsaydı şu anda Python Java'dan çok daha portable olurdu... Bir dakka yaw, Python şu haliyle bile Java'dan daha portable :)
0
sundance
Bütün bunlar bir yana, Java Neden İyidir sunumu güzel olmuş. Bunu belirtmeden yukardakileri saydırmak biraz haksızlık olur.

(Fakat benim tarafımdaki çekinceler aynı şekilde korunmaktadır :)
0
malkocoglu
Bir konu daha var: Şu anda nesnesel diller arasında ivme Java arkasında olduğu için, bütün yeni yaklaşımlar, tartışmalar, yeni açılar Java "üzerinden" yapılmaktadır. Eğer Java denilen bu trene atlamazsanız, bu yüzden bu tartışmalardan "geri" kalırsınız. Nesne/tablo bağlantıları, Jakarta Struts'ta gördüğünüz araçlar, vs, hep bu ivmenin bir parçasıdır. Çünkü teknolojisinin kabul görmesini ve en geniş yelpazeye ulaşmasını isteyen herkes, gerçekleştirimi Java ile yapmaktadır. Yani Java bilgi işlemin lingua franca'sı, ortak dili olmaya yaklaşmaktadır.
0
malkocoglu
Java dilinin sözdizim olarak dehşet bir dil olmadığı doğru; Fakat burada "ortanın iyisi" bir durum ile karşı karşıyayız. Etraftamizda C sözdizimini kullanmazsa ölebilecek adamlar var. Ç++'in bir zamanlar niye bu kadar ünlü olduğunu başka türlü açıklamak mümkün değil. Bu programcılar, yavaş yavaş 'daha temiz' bir yapıda olan Java'ya geçtiler, çünkü sözdizim benziyordu, bu sayede çok büyük şok yaşamadılar. Java dili şu anda, orta karar ama temiz biz dil yapısındadır, fakat esas gücü arkasındaki API'lar ve ürünlerdir. Bu desteğin gelmesi için kritik bir eşik noktanın geçilmesi gerekiyor galiba, bence o noktaya gelinmesini Java, C'ye benzemesine borçlu. Sonrasi tavuk-yumurta, yumurta-tavuk dongusunde gidiyor.




0
malkocoglu
Hantallaşma derken: Bu büyük ölçüde Java'yi nerede kullandığımıza bağlı. Java'yi bugünkü Java yapan, servis programcılardan gelen destektir. Applet'et mapplet'ler filan gibi şeylere şahsen çıktığından beri bulaşmadım, görsel programlar için "hareket halinde kod" kavramı kulağa çici gelse de pratikte aksaklıklar oluyor, çıktığında da öyledi, hala öyle. Bu yüzden Java'yi arka plan kodlarda kullanmak en iyisi. Tekrar söyleyim: Java, sektörün nihayet hakkında hemfikir olabildiği yeteri kadar iyi bir dildir, ve uygulama servisleri, API'ları, vs ile çok kullanışlı bir haldedir.
0
FZ
Dahası benim makinamda kıytırık bir browser apleti çalıştırmam için 13MB J2RE indirmem gerekirken ve en basit işlerde bile Celeron seviyesi bir makina hıçkıra hıçkıra çalışırken, bir gıdım hafızası ve cpusu olan telefonlar vs. nasıl tamamen java olacak onu da ayrıca merak ediyorum.

Burada bazı şeyleri netleştirmekte fayda var sanırım, ben de bir Java programcısı değilim o yüzden bilenlere soruyorum:

- Sunumda Java çalıştırmak için gerekli yegane şey olan JRE büyüklüğü olarak 8 MB denmiş, 8 ile 13 arasında 5 MB fark var ki duruma göre epey önemli bir fark kabul edilebilir.

- Bir gıdım CPU´su ve hafızası olan cep telefonlarında benim de bildiğim kadarı ile J2ME gibi bir şey kullanılıyor, oyunlar falan çalışıyor bu telefonlarda vs. ama tabii Standart Edition ile Mobile Edition arasında ne fark vardır, J2ME´de neler yapılamaz mesela? Bunların da açıklanmasında fayda var.

- Bu arada bir de bir Debian kullanıcısı olarak, Debian´cıların Java´ya pek sıcak bakmadıklarını hatırlıyorum ve Linux ortamlarda Java kurmanın tereyağından kıl çeker gibi olmadığını, başkaları tarafından geliştirilmiş Java runtime kullanıldığını falan.

Öte yandan .NET tarafını da savunuyor değilim, o tarafta çok fazla bilgim olmamasından çok bir şey söyleyemeyeceğim. Sadece bir programın guisi için 25Mb'lık download gerekmesi bana aptalca geliyor.

.NET Runtime evet yaklaşık 20 MB civarı ancak söz konusu runtime tıpkı Java Runtime ortamında olduğu gibi kullanılan ya da kullanılabilecek olan binlerce sınıf içeriyor, yani GUI bunun sadece bir kısmı soket programlamadan, XML işlemeye, şifrelemeden dosya işlemlerine, veritabanı bağlantılarından multithreaded mevzulara, bir programın kendisi hakkında bilgiyi runtime esnasında edinmesine ve daha binlerce şeye kadar her tür fonksyion, sınıf, vs. bu çalıştırma ortamının içinde. Burada hepsinin bir arada olmasına itiraz edilebilir, ayrı ayrı lib.ler olsun denilebilir ancak Java´cılar olsun .NET´çiler olsun böyle tümleşik paket halinde bir runtime ortamını tercih ediyorlar gördüğüm kadarı ile yani çekirdek işlevlerin hepsi bir arada, ayrı ayrı lib.ler ve bunların birbirlerine bağımlılıkları ile uğraşılmıyor görebildiğim kadarı ile.


Bin kere söyledim, bir kez daha söylüyorum, Java'ya verilen bütün bu gazlar, on yıla yakın süredir pohpohlamanın dörtte biri Python'a yapılsaydı şu anda Python Java'dan çok daha portable olurdu... Bir dakka yaw, Python şu haliyle bile Java'dan daha portable :)

Valla son zamanlarda Linux olsun Windows olsun böyle GUI´li uygulama falan geliştirmek isteyen arkadaşlarımın hepsine Python + wxWidgets tavsiye ediyorum, kastırıcı bir durum varsa gidin ağır yük kaldıracak kısmı C ile ya da Fortran ile yazın, geriye kalan her şeyi Python ile yapın, ilgili yerde Python bu C ya da Fortran ile yazılmış programlara girdi girip çıktıyı alsın insanlar, programcılar, kullanıcılar mutlu olsun diyorum ;-)

Not: Ciddi anlamda henüz ne Python ne Java ne .NET kullandım, sadece hepsi ile ufak tefek kurcalamalarım oldu dolayısı ile ben de kendimi uzman kabul etmem, umarım hepsinde daha deneyimli olanlar daha detaylı eleştiri yazarlar. Bu arada sunumu ben de beğendim, bağımsız yazılım geliştirmeyi vurgulaması bakımından güzeldi.
0
FZ
Aaaa!!

FM Forum geri dönmüş! :)

Hadi orada da Java tartışalım :-P
0
robertosmix
JAVA'ya karşı Python'u savunmak, biraz garibime geldi. Herşeyden önce şurada bir kavram karmaşası yaşanmakta. Arkadaşlar, JAVA denilen programlama dili JRE,J2EE yada JME demek değil. Bunlar sadece Sun Microsystems'in dağıttığı API'ler. Ayrıca JAVA demek Sun Microsystems'in dağıttığı Sanal Makinelerde demek değil. JAVA, (Evet her ne kadar Sun Microsystems'in çıkarttığı bir programlama dili olsada) artık günümüzde Sun Microsystems'e yada onun çıkarttığı API'lere bağlı değil. JAVA, bugün C'nin ulaştığı son nokta. Hangi yazılım mühendisi olursa olsun, bugün sistem çözümleme, modelleme, kodlama aşamalarında bile JAVA'dan daha pratiğini ve daha akıllısını bulamaz. Tabii eğer biz mühendislik disiplini dışında yazılım geliştiriyor isek, oturup kod yazmaktan başka bir aktivitemiz yoksa, çok fazla birşey değişmez. Ha Python'da yazmışız ha JAVA'da yazmışız. Kaldı ki JAVA işimizi Python'dan bir kaç kat daha kolaylaştırmaktadır.
Hızlı bir JAVA istiyorsanız, neden GNU Java Compiler'ı (gcj) kullanmıyorsunuz? Hem Sanal Makineye de ihtiyaç duymazsınız. Ayrıca GNU Classpath'de size yeter, artar bile. İstediğiniz işletim sistemi için uygulama geliştirebilir, yada geliştirdiğiniz uygulamaları bir çok sistem için derleyebilirsiniz.
Eğer bir applet, sizden JRE yada J2EE filan istiyorsa bu JAVA'nın problemi değil, applet'i geliştirenlerin problemidir. Nihayetinde, bu gibi eklentilere ihtiyaç duymadan çalışan o kadar çok applet varki. (Bkz: Yahoo Games'deki Satranç appleti) Ayrıca JAVA o kadar minimal bir dil'ki, bırakın cep telefonlarını, bugün SmartCard'lar bile (yani kredi kartlarınız, cep telefonlarınıza taktığınız SIM Kartlar) JAVA ile programlanıyorlar. (Bkz: JavaCARD) Kaldıki bunların hiçbiri sanmıyorum ki python yada benzeri diller ile yapılabilsin.

0
sundance
Garip geldiyse açıklamaya çalışayım. Python'a bugüne kadar JAVA'nın gelişmesi için gösterilen sabır ve ilgi gösterilse, hem çok daha kolay yazılım üretilirdi, hem çok verimli olurdu hem de baştan beri bahsedildiği hali ile çok daha portable olurdu.

İşte bu yüzden Python'u savunuyorum. Aslında bu savunmak da sayılmaz, iki çocuk arasında karşılaştırma yapmak gibi "Yahu şu şımarıkta ne buluyorsunuz, diğeri daha küçük önünde zaman var ama şimdiden çok daha başarılı yerlere gidiyor" diyorum.

Java'nın yapıp da Python'un yapamadığı şeyler de gittikçe azalmakta, bu kadarını da aradaki yılların farkına ve SUN başta olmak üzere üreticilerin verdiği gaza veriverin rica edeceğim.

Tek bir soruya birileri cevap versin, bakın bakalım sisteminizde şu anda kaç tane JAVA tabanlı kaç tane Python tabanlı program kullanıyorsunuz ?
0
osmantat
ya kusra bakmayın, burda yeniyim "robertosmix" demiş oldugu GNU Java Compiler hakkında bilgi almak istedim ama özel mesaj yazılmıyormus bulamadım. bundan dolayı buraya yazıyorum. Yani burda benim bu şekilde compile yaptıgım programım Wince 5.0 kurulu olan bir embedded systemde de calısırmı demek oluyor?
mail adresim: osmantat@gmail.com

0
upux
Ben Java teknolojileri ile uğraştığım için belirtilen sorulara cevap yazak istiyorum.

Sırasıyla gidersek;

Özür dilerim ama, Java kendi arkasını toplayabiliyor mu bir de .NET ile mücadele edecek ? Her geçen sürümünde biraz daha hantallaşmakta, biraz daha problemli olmakta. Platform bağımsız diye yıllardır yalan yere reklamı yapılan java, bırakın platformu, ciddi kullanımda olduğu yerlerde alt-version bile bağımsız değil. Program Java 1.4.2 istiyor, programın konsolu ise 1.3.1 istiyor diye bela olan ticari programlar var ortada (bkz. Symantec)

Java'nın kendi arkadasını toplamaktan kasıtedilen nedir ? Bunun yanında Java, .NET ile mücadele etmiyor; .NET, Java ile mücadele ediyor. Bu ayrımı gözden kaçırmıyalım lütfen.

Java teknoloji ile uzun yıllardır proje geliştiren biri olarak sürümlerinin hantallaşması cümlesini kabul edemem. Java'nın yeni çıkan her sürümünde performans sorun olmamıştır. Java 'nın şu anda için sağlam sürümü 1.4.2 'dir ve çok yakında Java 1.5 çıkacaktır (beta versiyonu java.sun.com [java.sun.com] adresinden indirilebilir).

Java geri doğru uyumluluğu en çok olan teknolojiler arasındasdır, arkadaşımızın bahsettiği durumda ise hata Java da değil Symantec'dir.

Dahası benim makinamda kıytırık bir browser apleti çalıştırmam için 13MB J2RE indirmem gerekirken ve en basit işlerde bile Celeron seviyesi bir makina hıçkıra hıçkıra çalışırken, bir gıdım hafızası ve cpusu olan telefonlar vs. nasıl tamamen java olacak onu da ayrıca merak ediyorum.

JRE (Java Runtime environment) 1.3 boyutu 8 MB'dir. JRE 1.4.2 ise 13 MB'dir bunun sebebi ise Java 1.4 ile beraber gelen Loglama, XML API , vb .. API lerden kaynaklanmaktadır. Zaten Applet leri çalıştırabilmek için JRE 1.3 yeterde artar ama JRE 1.4 kullasanız bile hala 13 mb

Bizde bankalara Java teknolojisini kullanarak büyük projeler yazıyoruz ama hiç birinde sunucunun hıçkırdığını işitmedik. Daha önceden de değidim gibi yazılan kodun günahı Java ya atılamaz.


Java ile cep telefonlarına nasıl program yazılır ki ? Şöyle ki : Bu sorunun cevabını vermeden önce Java 'nın ilk çıkış amacının ufak araç gereçleri programalak için olduğunu lütfen unutmayalım. Biraz teknik konuşursak, Cep telefonlarına Java teknolojisi ile uygulama yazmak istersek J2ME (Micro Edition) http://java.sun.com/j2me/index.jsp [java.sun.com] kullamamız gerekli. J2ME'nin içerisinde standart Java 'nın içerisinde olan çoğu API yoktur ayrıca JVM (Java Virtual Machine) yerine KVM (Kilobyte Virtual machine ) vardır. Bütün büyük telefon üreticileri Java teknolojilerine tam destek vermektedir. Şahsen ben T610 ericsson cep telefonunla, Java ile yazılmış bir çok oyunu zevkle oynuyorum.

Taşınabilirlik (portable)

Java'nın savunduğu en önemli özelliklerden birisi bu kaldi ki Java bu sayede populer oldu, slogani bile var "Bir kere yaz her yerde çalışır". Yazılmış olan yanlış kodların/projelerin sonuçlarını Java teknolojilerinin üzerine yıkmak, vicdanın kabul edebileceği bişey değildir.

GUI meselesi
GUI (Graphical User Interface) Java 'da çok geniş, derin ve güçlüdür. Türkiye'mizde ise bundan 5 sene öncesinden kalmış fikirler hala hüküm sürmektedir şöyle ki : Java'da GUI yazılmaz, Java yavaştır gibi. Biraz antenleri açık tutmak ve kendimizi güncellemiz gerektiğini düşünüyorum çünkü elin çinlisi Java ile ofis uygulamaları yazıyor (word, excel gibi) bkz : http://www.evermoresw.com/weben/index.jsp [www.evermoresw.com] ürünün ismi EIOffice


Java 'ya yatırım
Java'ya bir pazarlama politikası uygulanarak herkesin kafasına sokulup sonrada yatırım yapıldığını mı zannediyorsunuz ?

Sun microsystem'in ortaya çıkarttığı bişeydir ama Java dan para kazanmıyor, en son çıkarttıkları Java desktop, Java enterprise system gibi ürünleri hariç (akillari yeni başlarına geldi). Birde kendi reklamlarını yapıyorlar haklı olarak.

Başımdan geçen bir olayı anlatayım, bu .NET Türkiye de çok reklamı yapıdığı için bende gittim Sun ile görüştüm ve üniversitelerde Java teknolojilerinin tanımını yapmak istediğimi söyledim. Aldığım cevap beni çok şaşırtmıştı, söyle dendi : Java Sun 'ın malı değil, halkın malı bu yüzden Java tanıtımı için cebimizden para verip tanıtım yapamayız , dendi.

Java getirmiş olduğu sistem sayesinde gelişmektedir. Java 1.5 'in içerisinde konacak olan yenilikler üyeler tarafından oylanarak belirlenir. Bunun gibi bir sistem başka teknolojide var mi bilmiyorum , bkz : www.jcp.org [www.jcp.org]

Ama oysaki Linux sistemlerinde Linus Torvalds bir kapı koruyuculuğu söz konusudur. Sun Microsystems bu rölünü çoktan yok etmiştir.

Kısacası Java ye yatırım yapılıyorsa bu izlenen doğru politikalar ve doğru mühendisliğin bir sonucudur, yoksa yukarıdan zembil ile inme durumu söz konusu değildir.

Java babamızın malı değil
Sonuçta Java yı savunmamın sebebi , onu çok sevdiğimdinden veya Sun yalakalığı ile bir alakası yok. Nesneye yönelik felsefeyi kendi içerisinde uygulayan en iyi dillerden bir tanesi (bu konuda garanti verebilirim) , Geniş kutaphane destegi, geri doğru uyumluluğu ve daha sayamadığım bir çok özelliği ile Java teknolojileri Turkiye 'nin gelişiminde önemli rol oynabilir.
Amacımız paramızın yurt dışına çıkmasını engellemek olmalıdır.




0
tongucyumruk
Java Sun 'ın malı değil, halkın malı bu yüzden Java tanıtımı için cebimizden para verip tanıtım yapamayız

Benim sözlüğümde halkın malı olan yazılım = Özgür yazılım. Java'nın ne kadar özgür yazılım olduğu biraz su götüür bir mesele.
0
sametc
bravo cok guzel acıkladın..
+1000 000

JAVA'yı savunmam gider ozguryazilim olan pythonu savunurum.. evet doğru java yavas heryerde.
0
upux
Java'nın kendi içerisindeki tüm kütüphanalerin kaynak kodları açıktır.

Özgür yazılım olmamasından kasıt edilen JVM 'ın kodlarının kapalı olmasına değiniliyor. Bunun sebeplerinden en önemlisini size şu şekilde açıklayabilirim;
JVM'in kodunun açık olmamasındaki sebep Java comminity Process' de ( http://www.jcp.org [www.jcp.org]) tartışma ve demokratik bir ortamda yapılan oylama/çalışmalar sonucu ortaya çıkan belirtimlere (specification) bağlılığı sağlamaktır. Eğer JVM açık kaynaklı olsa, Sun 'ın veya IBM 'in belirtimlere bağlı kalarak ortaya cıkarttığı JVM, kolaylıkla değiştirilir ve bu belirtimlere sadık kalınma süreci sona erebilir.
Fakat bunun yanında belirtimlere sadık kalınarak yazılmış bir JVM kodlarınıda incelemeniz de mümkün, bu projeye http://www.kaffe.org/ [www.kaffe.org]

Sun microsoytems'in açık kaynak dünyasına vermiş olduğu en büyük destek projelerini ise http://jakarta.apache.org [jakarta.apache.org]

sitesinde inceleyebilirsiniz.

Valla su götürür mü, getirir mi bilemem ama öncelikle aşağıdaki sayfayı bir ziyeret etmenizi öneririm

http://www.cs.berkeley.edu/%7Eflab/languages.html [www.cs.berkeley.edu]

Sourceforge.net de ki projelerin hangi dillerde yazıldıklarına ait bilgiler. Sizde en güncel bilgilere bu adresten ulaşabilirsiniz http://sourceforge.net/softwaremap/trove_list.php?form_cat=160

ben buraya sadece ilk 9 gösteriyorum.
C++ 13641
C 13548
Java 12243
PHP 9162
Perl 5577
Python 3296
Visual Basic 1863
JavaScript 1770
C# 1524

şunuda belirtmek isterim ki 3 ay evveline gore kıyaslanırsa Java 'nın ivmesi diğer dillere nazaran daha fazladır diyebilirim.

rasyonellik çercevesinde olayları incelersek, Java teknolojileri epey bir tercih edildiğini görüyoruz, acaba bunun sebebi Java'nın yavaş olması olabilir mi :)

0
malkocoglu
||Java'ya bir pazarlama politikası uygulanarak ||herkesin kafasına sokulup sonrada yatırım ||yapıldığını mı zannediyorsunuz ?

Sun başkanı Scott McNealy'nin 1996'da bir konuşmasını seyretmiştim, cebinden bir Java cipını çıkarmıştı (anahtarlık yapmış), iste şirketin geleceği burada vs gibi sözler söyledi. Bir kelimesi ilgimi çekti, "Java bedava, bana bu dilden nasıl para kazanacksin diye soruyorlar" cevabı: "Java dilini İnternet'ten indirebilirsiniz, ama bir Sun makinasını bir tıklama ile indiremezsiniz ... " Yanlız, aynen IBM PC'lerin IBM'i aştığı gibi, Java'da Sun'i astı. Bundan pek şikayetçi olduklarını zannetmiyorum, sadece donanımlarının Java ile en iyi şekilde çalışmasi ile yetiniyorlar. Eğer kontrol etmeye çalışsalar, MŞ'ın ekmeğine yağ sürerler, teknolojinin büyümesini engelleyebilirlerdi. Java stratejleri şimdiye kadar doğru işledi. Mesela MS'i tam zamanında mahkemeye vererek Java'yi asimile etmelerini engellediler. Zaten MS'in bu .NET ve Ç# işlerine hız vermesi biraz da Java'ya dokunamamalarından ileri geliyor.


0
mentat
buyuk sistemler, backend, oo demisken bir sorum olacak..

diyeli ki icq benzeri, iri kiyim bir chat server yaziyoruz. kullanici sayisi belirli degil, ama cok. ortalikta bir suru nesne (class instance) yaratilip duruyor. garbage collector (copcu desem tutar mi?) devreye girdiginde, ortaliktaki binlerce nesneni lesini toplarken server oksurur tiksirir. java'da garbage collectoru sanirim tetikleyebilmek mumkun, ama tetiklediginde alet hobaaa seklinde tum copleri toplamaya girisiyor. bunu incremental (ufak ufak adimlarla) yapmak ise benim bildigim kadariyla mumkun degil. ancak java'da tecrubeli oldugumu soylemiyorum, aman.

sozun ozu, gc'yi kontrol etmek mumkun mu? "basla" dan daha kapsamli bir kontrol tabi..
0
lifesdkver0_1
sun'ın jvm'inde zannediyorum bu aşamada gc'yi kontrol edebilecek henüz bir şey yok. ancak spesifikasyonlara dahil edilmesi için sunulmuş öneriler var ve hali hazırda sun dışında geliştirilmiş jvm implemantasyonlarında bunun için bir şeyler eklenmiş.

bu aşamada yapabileceğiniz, yazılımınızı object pool kullanarak dizayn etme; nesneleri null'lama gibi etraftan dolaşan çözümler. ancak bunlar da çoğu zaman efektif olarak kullanılamıyor ve gc'ye daha fazla yük bindiriyorlar.

ilgili bir link:
http://www-106.ibm.com/developerworks/library/j-jtp01274.html [www-106.ibm.com]
0
malkocoglu
Aman nesne havuzu islerine girmeyin. "Nesne havuzu" gibi parlak fikirler, veri tabani baglanti havuzu gibi dogru bir fikri alakasiz yerlere uygulamak isteyenlerden cikiyor. Bu konu hakkinda asagidaki roportahj faydali olabilir.

http://www.bilgidata.com/yazi.jsp?dosya=a_shawn_bayern.xml

0
upux
GC 'yi ancak tetikleyebiliyorsunuz, bunun haricinde bir kontrol yok. Yanliz büyük sunucuların üzerinde çalışan Java uygumaları için değişik parametrik ifadeler ile GC ve/veya hafıza kullanımı gibi olayları optimize etminiz mümkün.
or :
> java -server IcqSunucu
gibi

veya bellegi en optimum bir şekilde kullanmak için
> java -server -XX Aggresive IcqSunucu
seçenekleri mevcut ve gayette güzel sonuç veriyorlar.

0
anarkhos
java sanal makinasinda calisma zamaninda secilebilecek ve aktive edilebilecek degisik GC algoritmalari bulunuyor. tam bahsettiginiz gibi incremental bir algoritma da 1.4 ile dahil edildi. bu algoritma sayesinde daha sik araliklarla daha kucuk cop toplama islemleri yapiliyor. beklendigi gibi GC duraksamalarini daha az belirgin hale getirse de genel olarak uygulama performansini dusuruyor.
benim kanimca bu algoritma daha cok sunucu tarafinda degil de istemci tarafinda kullanilmali. sunucu ile istemci arasinda zaten network oldugu icin kullanicinin bekleme suresi icin cok kesin araliklarla sinirlanmis bir beklentisi olmayacagi icin GC duraksamasi burada onemini yitiriyor.
0
malkocoglu
Ufak araliklarla cop toplama destegi JDK 1.2'den beri var. Detaylari asagidaki baglantida bulabilirsiniz.

http://www-106.ibm.com/developerworks/java/library/j-jtp11253/

0
sundance
Öncelikle oldukça detaylı ve açıklayıcı cevap için teşekkür ederim.

İkinci olarak yanlış gördüğüm bir iki şeyi düzeltmek isterim.

Hata Symantec'de demek biraz kolaya kaçmak bence. Zira bahsedilen dünyanın en büyük networklerini dinleyen IDS'lerinden bir tanesi ve arkasında acaip bir çalışma var (Manhunt). Basitçe "kötü yazmışlar" demek doğru değil.

Öte yandan tek kötü örnek de Manhunt ya da SESA değil (bunlar bu ürünlere yakın olduğumdan seçtiğim şeyler). Bir başka örnek de yine dünyanın önde gelen iletişim firmalarından Critical Path (eskiden ISOCORE'du)ın Türkiye'de 10 milyon kullanıcının üstünde sms mesajlaşması için kullanılan, dünya çapında yüz milyonlar seviyesinde müşterisi olan SMSC Gateway. Bunlar direkt olarak benim bire bir işleyişini gördüğüm en büyük ölçekli yazılımlar, bunlara dayanarak sözkonusu sözleri sarfettim.

Tabi, bunu da kötü yazmışlar diyebilirsiniz ama çok inandırıcı olmaz.

SUN'a gelince yaklaşık 5 yıllık SUN tecrübesi olan birisi olarak diyebilirim ki SUN'ın yaptığı en büyük beceriksizlik değil JAVA (SUN türkiye'den hiç bahsetmiyorum bile).

Ve bu hikaye böyle uzar gider. Daha fazla tartışmanın çok da anlamı yok. Sadece söylediğim Python güzel işler yapıyor görüyoruz, JAVA hakkında devamlı bir şeyler duyuyoruz, ama ne son kullanıcı seviyesinde, ne şirketsel bazda adam gibi çalışan, az kaynak tüketen bir şey daha göremedik. Aman nolur Eclipse demeyin bana...


Neyse böyle işte. Tekrar detaylı bilgiler ve urller için teşekkürler. Herne kadar JAVA'yı alemin şımarık çocuğu olarak görsem de bunlardan da birçok yeni şey öğrendim.
0
upux
Hata Symantec'de demek biraz kolaya kaçmak bence

Sizin yazmış olduğunuz üzere Symantec firmasının yazdığı uygulamada değişik JVM ler'e ihtiyac duyulması çok kritik bir hata olmamakla (hata bile denemez) beraber tamamen firmanın sorumluluğunda olan bir durum. Bunun kolaya kaçmak ile bir alakası yok, bende işin içerisinde olan biri olarak durum çok açık

Ayrica firmanın büyüklüğü ile yazdığı programların kalitesi gibi bir durum karşılaştırılsa Microsoft 'un yazmış olduğu tüm kodlara güvenmemiz gerekmez mi ? Ne de olsa gelmiş geçmiş en değerli/zengin şirket o.


Python teknolojisi hakkinda bir bilgim yok ama sourceforge.net den baktigim kadariylar yavas yavas saglam adimlarla ilerliyor ama Java teknolojisinin sahip olduğu ivmenin çok uzağında.

...ama ne son kullanıcı seviyesinde, ne şirketsel bazda adam gibi çalışan, az kaynak tüketen bir şey daha göremedik. Aman nolur Eclipse demeyin bana...

Valla bu cümleniz çok iddeali, adam gibi bisey gormek icin vaktiniz olursa sizi bizim şirkete davet etmek isterim.
Kaynak dediginiz sey RAM mi ? Donanım fiyatlarının düşüşe geçtiği bir zamanda (-ki uzun zamandır böyle), bu şekilde ki bir yaklaşımı çok benimsemiyorum.


0
sundance
Önceki yazdıklarınıza eyvallah, gerçekten tartışılır mevzular, adam gibi yazılım kavramını daha yüzyüze tartışmak lazım.

Fakat son paragraftaki -kanımca- yanlışı düzeltmeme izin verin.

Bilgisayar Bilimleri'nde ilk öğretilen şeylerden biri Bir yazılım hazırlanırken hızı etkileyen etkenler önem sırasına göre, algoritma, yazılım ve donanımdır.. Donanım fiyatları ilk günden itibaren devamlı düşüştedir, fakat bu "ramler de ucuzladı" diyerek savunma noktası olamaz.

Ayrıca "yazılım için yurtdışına para gitmesin, para ülkemizde kalsın" gibi çok güzel bir yaklaşımın içinde kaynakların verimli kullanılması da bulunmalıdır.

Neyse, güzel tartışmaydı ben kendi adıma yeni şeyler öğrendim. Ben JAVA'yı biraz daha inceleyeyim, siz de Python'a biraz göz atın :)
0
upux
Benim kastettiğim olay tam olarak bu değildi, tabi ki kaynaklar iyi kullanılmalı.

Benim demek istediğim, C ile Java arasındaki 8 katlık hız farkı (söylentilere göre) donanım fiyatlarının düşmesi ve kalitenin artması sebebiyle hissedilemeyecek boyutları indirgenmesi.

Bir yazılımda dikkat edilmesi gereken en büyük hususlardan bir taneside algoritma, yazılım ve donanımdır yanında maliyettir
Zaten Java'nın C gibi dillere nazaran tercih edilmesindeki sebeblerden bir tanesi de maliyetleri (hızlı proje bitimden dolayı) inanılmaz derece düşürmedir.

Bende Python'u merak ettim, dökümanlarını incelemeye başlayacağım. Tşk
0
malkocoglu
8 kat hiz farkinin hangi durumlarda oldugunu belirtmemiz gerekiyor. BILGI ISLEM uygulamalarinda bir Java uygulamasi ve C++ uygulamasi arasindaki fark asagi yukari %20 civardir, yani C++ 1.2 daha hizlidir. Bunun sebebi de bilgi islem uygulamalarinin islem zamaninin cogunu veri tabaninda harcamalaridir. Veri tabani da, disarida, C++, Java, Perl, Eiffel, vs. icin hep ayni zaman harcayacak bir kara kutudur.

Java icin Sikca Sorulan Sorular:

http://www.bilgidata.com/yazi.jsp?dosya=a_sss.xml

0
sundance
FM'de geçen sene yayınlanan habere ve benchmarka [www.fazlamesai.net] dikkatinizi çekmek isterim.

Java ve hııııııııııııııııııııııııııııııııııııııııııııııııııııııııııııııııııııııııııız derken aklıma geldi :)
0
lifesdkver0_1
Criticial Path hakkında biraz daha açıklama yapabilir misin sundance? anlamadım, hali hazırda kullanılan ve 10 milyon kişinin sms trafiğini idare eden bir sistemin hangi kısımları kötü?

küçük ölçekli benzer bir server geliştirmeye çalışıyorum ben de.
0
FZ
Hazır konu Java ve masaüstü uygulamalardan açılmışken:

- http://freemind.sourceforge.net/

FreeMind isimli bir Mind Mapping yazılımı kullanmaya başladım. Kullanma amacım geliştirdiğimiz yazılım projeleri ile ilgili dokümantasyon oluşturmak ve bir ``mind mapping´´ yazılımının bana sunduğu görsel yapının avantaj sağlayacağını düşündüm.

1 günlük incelemenin ardından görebildiğim kadarı ile bu Java tabanlı masaüstü programı istediğim özelliklerin %90´ına sahip. Programı kullanırken herhangi bir performans sorunu yaşamıyorum. Windows 2000 Server ortamındayım ve Task Manager ile özet bilgi aldığımda javaw.exe hafızada 18 MB civarı yer kaplıyor görünüyor. Programla ilgili tek karşılaştığım hata da benim sistemin Türkçe klavye kullanması yani Türkçe locale ile ilgili bir büyük harfe dönüştürme hatası (XML olarak dosyayı depolarken) ve bunu da küçük bir Perl ``one-liner´´ ile hallettim.

Not: Java ile alakası yok ama sistemin veriyi depolarken XML kullanması da artı puan böylece yazılacak ekstra bir program çalışan web sitesindeki dosyaları analiz edip buradan üreteceği uygun XML verisini FreeMind dosyası içine yerleştirerek otomatik olarak yapısal dokümantasyon üretilmesini sağlayabilir (tabii gönül isterdi ki Java ya da .NET kullanıyor olalım, dokümantasyon mevzusu daha otomatize edilmiş olsun falan ;-)
0
FZ
Bir ekleme, yukarıda bahsettiğim programın paketlenmiş hali yaklaşık 700 KB. Bunu da göz önünde bulundurmakta fayda var.
0
FZ
Yukarıda FreeMind örneğini vermiştim. Bugün katıldığım bir tanıtımda da Kratis firmasından bir yetkili ( http://www.kratis.com/tr/default.asp ) Fransız KXEN firmasının bir veri madenciliği yazılımını gösterdi. JAVA ile yazılan ve hayvani istatistik, matematiksel modelleme yapan bir program. Bir örnek vermek gerekirse 20.000 satırlık bir veriyi 40 farklı değişken için modellemesi ve açıklamalı sonuçları getirmesi yaklaşık 40 saniye sürdü! Arayüzde pek ``eye-candy´´ yoktu ama yapması gereken işi bir hayli sağlam ve hızlı yapıyordu görebildiğim kadarı ile.

Java tartışmalarına küçük, güncel bir katkı.
0
acil_vakka
Ben .NET programlama uğraşıyorum. Genel olarak VB.NET kullanıyorum ancak C# ve J# (Java Sharp) gibi dilleri de inceleme imkanım oluyor.


Bana kalırsa işlevsellik itibari ile Java Geleceğin programlama dili olma konusunda C ve VB kıyasla çok daha başarılı olacaktır. Ben her nekadar kullanmasamda yaşadığım problemlerden dolayı biliyorum ki Java'nın platform bağımsız olarak geliştiriliyor olması harika bir özellik. .NET meydan okurmu konusunda ben düşünüyorum acaba .NET Javaya meydan okuyabilecekmi? Zira .NET Windows sistemlerde güzel olmasına karşın Linux, Unix ve MacOS gibi kurumsal alanda çok fazla kullanılan işletim sistemlerininde düşünülmesi gerekiyor. Biraz kritik yapılırsa ve global anlamda düşünülürse Java'nın bağımsızlık politikasının onu 1 numara yaptacağı konusunda herkez bana katılacaktır kanısındayım. Sıkıysa VB.net ile oyun yazıp Windows CE veya Symbian OS altında oynamayı deneyin. Veya VB ile yazdığınız bir yazılımı Symbian OS ile senkronize edecek bir yazılım yazmayı deneyin. Bakalım siz ne karara varacaksınız.
Görüş belirtmek için giriş yapın...

İlgili Yazılar

Java Data Mining API

anonim

The Java Data Mining API (JDM) veri madenciliği araçlarına erişmek için standart bir Java API oluşturma çalışmasıdır. JDM JDBC'nin veri tabanları için yaptığını, veri madenciliğinde yapmayı vaad ediyor ve veri madenciliğini de java programcısının alet kutusuna ekliyor. Burada bulabileceğiniz makale de temel veri madenciliği yapıları ile basit bir JDM uygulamısının gerçekleştirimi anlatılıyor.

Java Teknolojileri Televizyonda

anonim

Java Teknolojileri Derneği'nin katkılarıyla Java teknolojileri artık Türkiye'nin Teknoloji Televizyonu'nda.

Günlük yaşantımızın içerisine çoktan giren Java teknolojilerini ne kadar biliyor musunuz? Tüm dünyanın göz bebeği olan Java teknolojileri hakkinda fikir sahibi olmak ister misiniz? Fikir sahibi olmanın ötesinde Java teknolojilerini oğrenmek ister misiniz?

Java Kodları İçin Arama Motoru

anonim

Projenizi tamamlamak için eksik olan Java kodunu bulamadınız mı? turk.internet.com'daki habere göre, IBM, Berkeley Üniversitesi ile birlikte Java geliştiriciler için, en küçük kodların bile yer alacağı bir arama motoru geliştiriyor. Beta testindeki çalışmanın, bu yıl sonuna kadar tamamlanacağı bildiriliyor.

Inek, Bol dil destekli midlet!

murat09

Inek, java destekli Siemens cep telefonları için çoklu dil desteği bulunan bir midlet. Bu program MMC içeren GSM telefonlarında Java ile sözlük kullanımını sağlıyor. Extra dil dosyaları halihazırda ücretsiz indirilebiliyor. InekoğluInek adlı yardımcı program ile de kendi sözlük dosyalarınızı oluşturabiliyorsunuz. Program midlet.org'ta da listelenmiş. Türkiye'de yazılan bu programın web sitesi ise: www.tepetaklak.com/tr/inek
Not: Bu haber şaka değildir.

JBoss ile Küme (Cluster) Oluşturmak

malkocoglu_2

Bir küme (cluster), birden fazla servis noktasının (node) birarada çalışmasından meydana gelen kütledir. Bu servis noktalarının genelde ortak bir amacı vardır. Bir servis noktası bir ayrı makina da olabilir, aynı bilgisayarda çalışan birden fazla süreç (process) de olabilir. JBoss dünyasında bir küme iki şeyi yapar: Çökme Toleransı (Fault Tolerance) ve Yük Dağıtımı (Load Balancing).