Python vs Java

0
xMaster
Java ile Python arasında ufak bir karşılaştırmayı yazının devamında bulabilirsiniz...
Python
Python, Java gibi üzerinde ihtiyaç duyabileceğiniz her nesneyi hazır bulabileceğiniz bir dil. Java ile bir kaç şekilde karşılaştırabiliriz.
  • Java gibi standartlaşmış değildir. Ama Python kodundan derlenmiş java class elde edebilirsiniz. Bunun için Jython sitesine bakabilirsiniz.
  • Python'da kod yazmak biraz zahmetlidir. Python boşluklara ve tablara tamammen duyarlıdır. Blok yapıları boşluklarla sağlanır. Java'da ise bloklar için "{}" (Küme parantezleri) kullanılır.
  • Python'da yazılmış bir kod Java'da yazılmış koddan çok daha hızlı çalışıyor.
  • Python'un kaynak kodu açıktır. Hiç hatasız bir şekilde yeniden derleyebiliyorsunuz. İsterseniz kendi Python dağıtımınızı yapabilirsiniz.
  • Java'nın kendi içerisinde GUI kütüphanesi vadır. Python'un ise kendi üzerinde Tk taşıyor. Tkinter'i kendi projelerinizde kullanabiliyorsunuz. 27 Mayıs 2004 tarihinde çıkan 2.3.4 Final versiyonunda Tix paketi de içerisine eklenmiş. Ama bunlarda sizin ihtiyaçlarınızı karşılamıyorsa wxPython'u Boa Constructor ile kullanarak bir çözüm bulabilirsiniz. Python için bu tarz çok grafik kütüphanesi vardır. Bunlara ulaşmak için Python'un kendi sitesini inceleyebilirsiniz. http://www.python.org
  • Python için Java'nınki kadar çok gelişmiş ideleri yok (En azından şimdilik).
  • Python'da Java'da nesne tabanlıdır.
  • Java GCC ile rahatlıkla (hala bir kaç eksiği var) exe yapılabiliyor ama Python için hala exe ye çevirecek derleyiciler yok olanlar ise yanında Python ve ihtiyacı olan dosyaları taşıyarak bu sorunu çözmeye çalışıyor. Örneğin py2exe.

Python ile ilgili daha detaylı bilgi için aşağıdaki linkleri inceleyebilirsiniz

Görüşler

0
ahmetaa
Bir java programcisi olarak bir kac yorum,

- Python'da yazilan kodun Java'dan hizli calistigi iddiasi kannatimce yanlis, ya da en azindan ispata muhtactir. referans lutfen. Buna karsin ben size Java'nin C++'tan hizli olabilecegini (pek cok durumda) gosterebilirim.
- Python kodu aciksa, Java kodu da aciktir.. java.sun.com'dan VM ve tum J2Se kodunu indirip derleyebilirsiniz. Sun Java kodunu degistirip dagitamazsiniz, ama uc dort tane degistirilip dagitilabilir aktif acik kodlu Java projesi var (Kaffe gibi)
- java icin alternatif OS native grafik kutuphanesi olan SWT'de mevcuttur.

saygilar.

0
xMaster
Python dili javadan yavaştır bunu kabul ederim. Ama ideal ortamlarda. Çünki java kodunu çalıştırabilmek için sistem birsürü güvenlik önlemlerinden geçiriyor artı java çok fazla RAM kullanıyor. bunları her iki dilde de otomasyon programı yazmış olan birisi olarak söylüyorum. aslında javanın çalışma hızı çoğunlukla daha iyi ama sisteme getirdiği yük düşünülürse daha yavaş çalışıyor.
0
ahmetaa
O zaman "yavas" degil, daha coksistem kaynagi tuketir deyiniz.. (ki gene de ozellikle GUI olmayan uygulamalarda buna pek katilmiyorum) :). Bu arada Java 5 ile uygulamalarinin baslangic hizi arti. Bellek fiyatlari dustukce, miktarlari da arttikca o yondeki kaynak kullanimi da onemini yitirmeye basladi..
"Java kodunu calistirabilmek icin bir suru guvenlik onlemlerinden geciriyor" demisisniz, bu bana cok makul bir gerekce gibi gorunmedi. Ne gibi mesela? JAva'nin guvenlik mekanizmasi sanal makine kullanmasidir. yani her uygulama kendi bellek yonetim sistemine sahip oldugundan isletim sistemi uzerinde dogal olarak calisan uygulamalardan daha guvenlidir. Kendi bellek meknizmasini kullanmasi ise bilakis performansini arttirir, dusurmek. Ornegin Java'da nesne olusturma hizi C++'tan cok daha yuksektir.
Saygilar..
0
malkocoglu_2
"birsürü güvenlik önlemlerinden geçiriyor" derken Applet'lerden mi bahsediyorsunuz? Cunku servis tarafi Java kodu, engelsiz her kaynaga erisebilir, veri tabanindan baglanti acmak, dosyaya yazmak, vs gibi.
0
lifesdkver0_1
9 dil üzerinden benchmark [www.osnews.com].
0
bm
Eski/orjinal: http://www.bagley.org/~doug/shootout/craps.shtml [www.bagley.org]

Simdiki hali: http://shootout.alioth.debian.org/ [shootout.alioth.debian.org]

Yanliz bunlarin ne olctugu ortada degil tabi, ama insanlar seviyorlar boyle oynamayi.
0
lifesdkver0_1
Tabi bu test aslında çok fazla bir şey ifade etmiyor. Sonuçta temel operasyonlar ve misal nesne oluşturma gibi ortak vir dert yok. daha kapsamlı testler için bkz:
http://shootout.alioth.debian.org/ [shootout.alioth.debian.org]
0
FZ
Görülen o ki Sun Microsystems programcıları da kendi şirketleri tarafından geliştirilen bu dili pek de öyle sihirli değnek olarak görmüyorlar:

http://www.internalmemos.com/memos/memodetails.php?memo_id=1321
0
ahmetaa
Bu tur benchmark islemlerine mikro benchmark adi verilir ve kendi baslarina genellikle bir anlam ifade etmezler (basit for dongusu icinde dizi olusturmak, bir dosyadan string okumak gibi). Bu site ozellikle Mono ve .Net savnucusu oldugundan .Net'i kayirici haber ve konularda icerige bakmadan onune geleni yayinlamada pek heveslidir.. Su makaleleri inceleyin, bu makale dahil cesitli sekillerde konuya yaklasiliyor.

http://www.idiom.com/~zilla/Computer/javaCbenchmark.html
0
mentat
dediginde haklisin, cache problemleri falan mikro testlerde..

ancak verdigin link de gayet java yanlisi gozuktu bana.

teknik olarak c++ savunma derdim olmasa da, biraz tartismaya c++'ci (ne?) olarak gireyim ben de..

pointer probleminde dogru tespit yapmis yazida ornegin. ancak bunu ogrendigin andan itibaren dikkatli olursun. gc allocation'i hizlandirabilir, ama yine orta halli bir projede, zaten kendi memory managerini yazar cozersin benzer problemi (ki cok da kolay, ac bi devasa memory pool, global new operatorunu yeniden tanimla.. hmm, vazgectim, tamam cok da basit degil, ama binlerce dokuman var ortalikta), ve boylece gc'nin gercek islevi olan garbage collection yuzunden cikan diger dertlerle de muhattap olmassin. halen cevabini arastirmaktayim, java gc'sini incremental olarak calistirmak mumkun mu? ya da yeniden configure etmek. benim bir milyon orphan objemi aklina estiginde temizlemesin diyemiyor muyum, birak daginik kalsin ya gibi..

neyse, dil yaristirmak sacma. hele bu sekilde daha bir sacma, bana c++ standartlarini koruma dernegi para mi veriyor? niye koruyayim. c++ pekcok olanak sunar, bu olanaklardan en berbati da malesef berbat kod yazma olanagi. ve genelde duzgun, orta halli bir c++ programcisi olmak icin 5 yilda kirk firin ekmek yemek gerekli. 5 yilin son ikisi ilk uc yilda ogrendiklerini unutmaya calismakla gecer ustune ustluk. (skoylu'ye buradan selamlar, aman c++'dan once c ogretmeyin zavalli beyinlere, agac yasken egilmesin, unutacak daha cok kotu aliskanlik sonucta)

ayni sey sanirim java ve diger pekcok dil icin gecerli degil. ve soranlara da once bir java ogrenin derim direk, hem sacma sapan isler yapmaniza izin vermez, hem de nesne tabanli falandir.

neyse, vizirdamaya basladim.. son soz, dil savaslari, isletim sistemi savaslari, ya niye bunca fanatigiz biri bana bunu anlatabilir mi? dilleri savunmadaki enerjimizi, dilleri hakkiyla ogrenmeye versek?

not: su 9 dil karsilastirmasinda verilen ornek c++ kodlari kesinlikle c++ degil c bu arada..

not2: yazinin tamamini okumadim, ama bir ara uzun uzun interpreted bir dilin compiled bir dilden "teorik" olarak daha hizli olabilecegini tartismistik, cache missleri, branch'leri akillica tahmin etmek icin interpreted bir dilin elinde daha cok bilgi var (runtime iste) sonucta. ama sanirim o kadar zeki interpreter (VM mi demem lazim illa) su anda yok sanirim ortalikta..
0
ahmetaa
Ayrica, benchmark tablosuna bakarmisiniz.. Toplamda javayi harciyor ama aslinda sadece bir benchmarki hesaba katmazsaniz Java 1.4.2 en basta gorunen Visual C++'tan bile iyi... Art niyet aramayayim da ne yapayim..
0
xMaster
NOT: Bende java programcısıyım.
0
mascix
bende henüz neden bu kadar tuttuğunu anlayamadım bu python dilinin.
aslında güzel bir özellik olan indention dan bloklamadan kıllandım şahsen. kodlar her ne kadar düzgünde görünse anlaşılması o kadar kolay değil gibi.
0
tongucyumruk
Aslında Indent ile bloklama python'un sadece en göze batan özelliği ve Emacs'ın Python-mode'u ile kullanıldığında okunabilir kodu, pratik bir şekilde yazmaya da izin veriyor. Dahası alışması da zor değil. 2 yıla yakın zamandır Python ile kod yazıyorum, aldığım indentation error sayısı iki veya üçtür. Ancak bunların yanında Python'un o kadar da göze batmayan, ve Python öğrenmeye girişmediğiniz sürece göremediğiniz birçok güzelliği vardır.

Örneğin Python'da fonksiyonel programlama yöntemlerine yönelik bazı kavramlar da vardır. Herşey (fonsiyonlar, değişkenler, sınıf tanımları, herşey) bir nesnedir mantığından yola çıkıldığı için kodla çok güzel taklalar atmanız mümkündür. Ayrıca list comprehensions (bunun bir türkçe karşılığı olmalı!) gibi hayatı kolaylaştıran bazı yapılar sayesinde Python ile kod yazmak tam bir zevktir.

Ailenizin robotu yazdı...
0
FZ
Yanlış: "Python'da Java'da nesne tabanlıdır."

Doğru: "Python da Java da nesne tabanlıdır."
Görüş belirtmek için giriş yapın...

İlgili Yazılar

Hibernate Performans Testi

malkocoglu_2

Java dünyasnın sevilen aracı Hibernate hakkında bir performans testi gerçekleştirildi. Bu yeni teknolojiyi, yerini almaya talip olduğu eski veri erişim teknolisi JDBC ile kafa kafaya yarıştırdık. İlk sonuçlar gelecek vaad edici gözüküyor. Önbellek kulanımı, kullanım rahatlığı açısından geleceğin araryüzü olmaya talip Hibernate, bu sınavdan yüzünüm akıyla çıktı gibi gözüküyor.

Detaylar için

http://www.bilgidata.com/pdfs//hibernateperftest.pdf

Editörün notu: Bu belge de LaTeX ile yazılmış, bu bir tesadüf olamaz! ;-)

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.

Java SE 6 çıktı

bozokhun

Uzun süredir beklenen Java SE 6 sonunda çıktı. Bir çok yeni özelliğin yanısıra performans artışlarıyla da gündemde olan Java SE 6'yı NetBeans 5.5 ile beraber indirebilirsiniz.

Türkçe Java Teknolojileri Belgeleri

ahmetaa

Hacettepe Üniversitesi Bilgisayar Müh. ögrencileri güncel Java teknoloji ve kütüphaneleri konusunda Türkçe belgeler hazırlamışlar. Türkiye'de bu konuda büyük bir eksiklik vardı, yazanlara ve projeye ön ayak olanlara teşekkürler.

Java teknolojileri belgeleri

Java'nın Başı Türkçe ile Dertte

oaygun

Başınıza gelmiştir. Java temelli pek çok yazılımın kurulumunda, önce işletim sisteminin yerel ayarlarını değiştirmek (genellikle ABD, İngilizce), yazılımı kurmak ve sonra tekrar Türkçe'ye almak gerkmektedir. Bunun nedeni de 'i' harfidir. Alfabemizin 11 ve 12. harflerinin nelere kadir olduğunu gösteren bir makale: http://java.sys-con.com/read/46241.htm