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

Quake 2 Motoru Java'ya Port Edildi!

anonim

id Software'in yazdığı ve GPL lisansı ile dağıttığı Quake 2 motoru Java'ya port edildi. Yeni motoru herhangi bir sırf yapmak için yapılmış projeden ayıran şey performansının C ile yazılmış orjinal motorun performansını yakalayıp hatta geçebilmiş olması. Henüz 1.0 versiyonu çıkmamış olmasına rağmen şimdiden C hızında çalışan bir oyun motorunun üretilebilmiş olması Java'nın akıllardaki imajına uymasa da akla ilginç fikirler getirmiyor değil.

11. JTS | Web uygulama güven(siz)liği 2.0 | Huzeyfe Önal | JTPD

tanerdiler

Bu ay 11. düzenlenecek olan Java teknolojileri saatleri 29 Temmuz 2010 Perşembe günü JavaDergisi sponsorluğunda Bahçeşehir Üniversitesi Yazılım ve Bilişim Kulübü'nün katkılarıyla Bahçeşehir Üniversitesi Beşiktaş kampüsünde ( D konf salonu - zemin kat konferans salonu ) gerçekleştirilecektir. Konuğumuz Huzeyfe ÖNAL web ve bilgi güvenliği alanında seminer verecektir.

Java Ruby el ele, beraber mutlu günlere

anonim

Daha önce Javacılar ile Rubyciler arasında birbirlerini hor görmelerin yaşandığı Fazlamesai'ye ilginç bir haber.

Haber Spring framework için bir hızlı prototip geliştirme projesi. Proje varolan Spring ve Hibernate iş mantığı ve nesnelerinizi kullanarak ve fazladan yeni bir şey öğrenmenize gerek kalmadan yeniden derleme ve konfigürasyon dosylarını değiştirme gibi prototip üretimi sırasında sizi yavaşlatan işlerden JRuby ile yazılmış bir kontrolcü kullanarak kurtulmanızı sağlıyor. Prototip sizi tatmin ettiği zaman tek yapmanız gereken, hiçbir değişiklik yapmadan JRuby kontrolörü çıkarıp yerine Java olanını eklemek. Proje 1000 satırdan daha az kodla yazılmış ve var olan projelerinize kolayca entegre edilebilir. Proje ile ilgili ayrıntılara buradan erişebilirsiniz.

Kitap: Kurumsal Java Çıktı

malkocoglu_3

Servis tarafı Java çözümlerini örnekli ve uygulamalı olarak anlatan Kurumsal Java adlı kitabımız çıktı. Kitap tamamen JBoss, Spring, ITracker, JmxMonitor gibi açık yazılım ürünleri üzerinden ve konuları hakkında yazılmıştır. Kitabın içindekiler listesi buradadır.

Java'nın Bir Kalesi Daha Fethediliyor

anonim

Konu şu: Pascal ile Cep Telefonu için programı geliştirme. Yani Pascal, Java'nın kalelerinden birisi olan cep telefonlarına (biraz dolaylı da olsa) el atıyor...