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

Java Kongresi İzlenimleri

FZ

18 Haziran 2005 Cumartesi, sıcak bir İstanbul sabahı. Yatmadan önce son hatırladığım şey kan çanağı gözlerle Practical Common Lisp kitabından bir bölüm okuduğum idi ancak güneş çoktan doğmuştu ve bir FM edtörü olarak yakından takip etmem gereken bir Java etkinliği vardı. Apar topar kalk, banyo, hemencecik bir şeyler giyin ve dışarı fırla...

İstanbul Bilgi Üniversitesi Dolapdere tesisleri dolu dolu bir etkinliğe ev sahipliği yapmak için hazır görünüyordu. Tanıdığım en iyi Delphi programcısı olan dostumla buluşup açılış konuşmasıyla başlayacak etkinliği izlemek için BS-1 salonuna doğru yol aldım.

Java Kitap Projesi - Bölüm 7

anonim

Türkçe Java Kitap Projesinin yeni bölümü yayında. Yeni bölümün içeriği:
Arayüz (Interface)
Birleştiricilik
Arayüz(Interface) ve Soyut sınıflar(Abstract classes)
Arayüz(Interface) ile çoklu kalıtım(Multiple inheritance)
....

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?

OBSS - Eclipse Plugin Geliştirme Eğitimi

huseyin

Bir Sabancı Üniversitesi iştiraki olan ve Java ile kurumsal çözümler geliştirmek üzere yola çıkmış OBSS firması her hafta, çalışanların bilgi ve tecrübelerini yükseltmek , yeni konuları takip etmesini sağlamak amacıyla şirket içi eğitimler düzenliyor.

JBuilder'ın Kodları Açılmıyor

freethings

Geçtiğimiz günlerde Borland'dan bir bilgi verilmemesine karşın TheRegister.com'da geçen, Borland JBuilder'ın kaynak kodlarının açılacağı haberi, Borland tarafından doğrulanmadı.