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

İki listenin Hikayesi: Java yerine Ruby

anonim

Her şey haftalık işlerinizin basit bir listesini yapıp bunu dünya ile paylaşabilmenizi sağlayan Ta-Da list'in bir kopyası olan Bla-Bla list'in Geert Bevin tarafından yazılması ve duyurulması ile başladı.

Java ile Cep Telefonlarına Yönelik Uygulama Geliştirme - 1

FZ

``Ne? Hala Java uyumlu bir telefonunuz yok mu? Çok da dert etmeyin. Araştırmalar, 2006 yılına kadar tüm cep telefonu modellerinin Java uyumlu olacağında hemfikir. Peki, geliştirici olarak bize düşen ne? Tabi ki bu cihazları sefil kullanıcıların ihtiyaçlarına ve de çoğunlukla eğlencelerine uygun şekilde programlamak. Cep telefonlarımızı, kıstlı da olsa birer bilgisayar haline getirecek bu teknolojiyle bu güne kadar neler yapıldığını ve neler yapılabileceğini görmek istiyorsanız midlet.org adresini hemen ziyaret edin (tamam, önce yazıyı okumayı bitirin, sonra ziyaret edin - ve evet, ileride oyun da yazacağız!)´´

Selem Delül´ün J2ME teknolojisi ile cep telefonu programlama konusunu ele alacağı yazı dizisinin ilk bölümünün devamını ileriseviye.org sitesinde okuyabilirsiniz.

NetBeans Java IDE ile Türkiye Yollarında

FZ

Eclipse ile sıkı bir rekabet içinde olan NetBeans'in artık bir de televizyonu var, daha doğrusu sanal televizyonu. Nisan ayındaki bölümlerde ise küçük bir Türkiye turu izleyebilirsiniz. ;-)

Java SE 6 u10

auselen

Sun, uzun süredir beklenen ve Java'nın masa üstü biçimi olan J2SE'nin dağıtımını daha kullanışlı hale getireceği umut edilen J2SE6u10'u bir süre önce çıkardı.

Sun® firmasından olumlu bir adım

roktas

Son birkaç gün içinde Simon Phipps'in de belirttiği gibi sessiz sedasız önemli bir gelişme oldu ve Sun, Java dağıtımını belirleyen lisans şartlarını gevşetti. Bu değişikliğin en önemli sonucu Java'nın artık diğer Özgür Java gerçeklemeleriyle (GCJ, Kaffe, GNU Classpath vb.) birlikte (fakat onlarla karıştırılmadan) dağıtılabilecek olması. Daha da açık söylemek gerekirse Sun Java'yı Debian veya Ubuntu'da non-free depodan 'apt-get install sun-java5-jre ' komutuyla kurabileceksiniz, ilk paket hazır durumda.