Beyin Fırtınası: Java mı yoksa Python mı daha hızlı?

evet ama bu statik tipe girmez sen orda o değişkene gene istediğini verebilirsin

Evet zaten statik demedim ben de. Sadece dedim ya, hangi tiplerle işlem yaptığını bildirmek için. Statik olmayınca böyle çözümler getiriliyor diyorum. İstediğin değeri geçirebilirsin, ama orada liste geçirmelisin diye belirtildiyse o kurala uymak mantıklı olur.

anladım ama neden

bunu onun yerine altarnetif olarak yapıyorlar direk yapsalar

Bilmem Guido Van Rossum hocamıza sormak lazım :smiley:

1 Beğeni

bence gelecekte yapıcaklar sonuçta python gelişen bir dil her ihtimal var

Dilin amacına, çalışma şekline aykırı.

Belki isteğe bağlı olarak böyle bir özellik getirebilirler ama dediğim gibi, dilin çalışma şekline aykırı.

1 Beğeni

neden aykırı bu…

birde bunu yaparlarsa çoğu kütüphane çalışmaz doğru değilmi

Sonuçta değişkenin tipini belirtmez isen çalışmaz fikrimi değiştirdim bence yapamazlar
Sonuçta Python modülleri sayesinde ayakta kaliyor

Java hello word programı çalışma süresi:

real	0m0,255s
user	0m0,132s
sys	0m0,029s

Python’da çalışma süresi:

real	0m0,059s
user	0m0,051s
sys	0m0,008s

Python daha kısa gibi görünüyor ancak kodlar uzadıkça değişkenlik gösterebilir.

1 Beğeni

Java’nın başlarken yavaş olduğu bilinen bir durumdur.

2 Beğeni

Anladığım kadarıyla javada basit kodlarda böyle durumlar oluyormu

Nasıl yani anlamadım?

O zaman javada mikro uygulamalar değilde makro uygulamalar mi daha hızlı oluyor

Hayır bunun kodun boyutuyla alakası yok. Bu iş tamamen algoritma ve sanal makinenin işleyişiyle alakalı.

1 Beğeni

Bu cümleden ve sizin dedikleriniz sen bunu cikardim

Ben bunu onaylamadım, sadece yavaş başlamasının bilinen bir durum olduğunu söyledim. Kod isterse tek satır isterse binlerce satır olsun Java açılışta yavaşlık gösterebilir.

1 Beğeni

Mesela fibonacci dizisini recursive hesaplayan bir program yazın. 100. sıradaki sayıyı bulması zaman alacaktır. İstediğiniz kadar optimizasyon yapın, sonuç değişmeyecektir. Basit bir kod olmasına rağmen.

Siz özellikle Java’dan mı bahsettiniz?

fmap = lambda o, *f: [q(o) for q in f]
fib_util = lambda n: fmap(fib_util(n-1), lambda i: i[1], sum) if n else (0, 1)
fib = lambda n: fib_util(n)[0]

from timeit import timeit

print("10.000 çağırmanın ortalaması:", timeit("fib(100)", globals = globals(), number = 10_000) / 10_000, "saniye.")

Evet javadan bahsediyordu ama konuyada destek verdi