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

Yazılım pazarında çığır açan Türk imzalı proje: WTP

FZ

Internet tabanlı çözümler geliştiren uygulayıcıların iş yükünün büyük bölümünü ortadan kaldıracak Web Tools Platform projesi hayata geçiyor. Grup temelli açık projelere ev sahipliği yapan Eclipse Foundation’ın önemli atılımlarından biri olan Web Tools Platform (WTP), İnternet üzerinde iş yapmanın kolay yolunu gösteriyor. Tüm İnternet temelli teknolojileri birleştirebilen ilk ve tek ortam olan WTP, 2005’in Ağustos’unda kullanıma sunulacak. Web Tools Platform projesi, Internet uygulamaları geliştirme kolaylığı sağlamasının yanı sıra, emek yoğun işlerdeki çalışma sürecini hızlandırıyor.

SourceForge'daki ilk NASA Programı ve Daha Sağlam Java Kodları

anonim

Theserverside.com sitesinde yer alan habere göre NASA Java PathFinder ismindeki JVM'yi SourceForge sitesinde yayımladı.

Bu JVM programınızın çalışması sırasında ortaya çıkabilecek bütün durumaları simule ederek olası hatalarla ilgili bir rapor hazırlıyor.

Red Hat JBoss'u satın alıyor

vst

Bugün Marc Fleury'nin yaptığı açıklamada, Red Hat ile JBoss'un imzaladığı anlaşmaya göre Red Hat'ın JBoss'u satın alacağı duyuruldu. Bu da gelecekte özgür kurumsal uygulamalarda biraz daha profesyonel(!) servis alabilmek anlamına geliyor. Umarız, büyük kuruluşların bilgi işlem uzmanlarının "Özgür yazılım kullanağız, ama karşımızda kurumsal muhatab yok ki!" gibi haklı serzenişlerini dindirir.


Açıklamanın tam metni | JBoss websitesindeki haber

Evans Data: EMEA Bölgesinde Perl/Python/PHP Kullanımı Düştü

anonim

Bir araştırma şirketi olan Evans Data'nın yakın zamanda Avrupa, Ortadoğu ve Africa'da (EMEA) yaklaşık 400 programcı üzerinde yaptığı bir araştırma ilginç bir sonuç buldu: PHP kullanan programcıların sayısında %25'lik bir düşüş yaşandı ve PHP'yi gelecek projeler için incelemeyecek (evaluate) ve kullanmak istemeyecek programcılar aynı dönem için %40 kadar arttı. EMEA bölgesinde Perl kullanımı %20 kadar düştü. Python kullanımı da aynı şekilde bir düşüş yaşadı, bunun oranı ise %25. Python'u ileri projeler için incelemek istemeyen programcılar %17 kadar arttı.

J2EE Yahoo Gurubu - J2EE-tr

malkocoglu_3

J2EE ve servis tarafı Java konuları hakkında konuşmak/tartışmak için J2EE-tr adlı yeni bir Yahoo gurubu başlattık. İlgili olanlar ekteki adresten guruba erişebilirler. Gurupta JMS, EJB, RMI, JBoss, Struts, Hibernate konularında yazılar olacak, ayrıca yazılım mimarileri, test etmek (JUnit), Extreme Programming gibi konular da işlenecek, sorular cevaplanacak.