Má Python budoucnost?

ByCzech

  • *****
  • 1 873
    • Zobrazit profil
    • E-mail
Re:Má Python budoucnost?
« Odpověď #450 kdy: 15. 06. 2016, 10:27:31 »
Pokud vim, tak postovane benchmarky nepodvadi outsourcovanim provadeni opraci do asm/c/c++ knihoven, jako tvuj kod ;).

PS: Java snad nema specializovane matematicke knihovny? ;D

1. Téma této diskuse se týká Pythonu, ne Javy

2. Pointa příspěvku nebyla ohledně toho co má který jazyk, ale ohledně toho, jak to je s benchmarky


noef

  • *****
  • 897
    • Zobrazit profil
    • E-mail
Re:Má Python budoucnost?
« Odpověď #451 kdy: 15. 06. 2016, 10:30:58 »
Pokud vim, tak postovane benchmarky nepodvadi outsourcovanim provadeni opraci do asm/c/c++ knihoven, jako tvuj kod ;).

PS: Java snad nema specializovane matematicke knihovny? ;D

1. Téma této diskuse se týká Pythonu, ne Javy

2. Pointa příspěvku nebyla ohledně toho co má který jazyk, ale ohledně toho, jak to je s benchmarky

Nasel jsi snad nejaky podobne zavadny kod, jako jsi napsal, v te benchmarksgame? V opacnem pripade tvuj prispevek nema zadnou pointu, protoze asi vsichni vi, ze podvadet se da :).

ByCzech

  • *****
  • 1 873
    • Zobrazit profil
    • E-mail
Re:Má Python budoucnost?
« Odpověď #452 kdy: 15. 06. 2016, 10:34:15 »
Njn, když ono je to s těmi testy takové ošidné. Když bych měl parafrázovat: Nevěřím žádnému benchmarku, který jsem si sám nezfalšoval...

Kupříkladu:

C

Kód: [Vybrat]
#include <stdio.h>
 
int main ()
{
   long a;
   long sum = 0;

   for( a = 0; a < 200000000; a++ )
   {
      sum += a;
   }

   printf("sum: %ld\n", sum);
   return 0;
}

Tak tenhle benchmark sis zfalšoval opravdu hezky. Viděl jsi assembler, který gcc vygeneruje?
Kód: [Vybrat]
    .cfi_startproc
    subq    $8, %rsp
    .cfi_def_cfa_offset 16
    movabsq $19999999900000000, %rsi
    movl    $.LC0, %edi
    xorl    %eax, %eax
    call    printf
Ten cyklus se vyhodnotí během kompilace a nic se nepočítá. Takový syntetický příklad je ale úplně k ničemu. Zkus si místo konstanty načíst horní mez cyklu ze vstupu a bude to vypadat úplně jinak.

Ano, přesně to jsem napsal, včetně toho, že to je o několika strojových instrukcích, že? A o tom je pointa mého příspěvku. Jak je to často s těmi benchmarky. Že jsou v podstatě nicneříkající nebo udělané tak, jak se komu hodí do krámu, takže ohánět se jimi je úplně k ničemu. Ke každé části v mém příspěvku se dá namítat. Protože je téma diskuze ohledně Pythonu, jsou námitky převážně rozvinuty v příspěvku na něm.

Neříkejte, že vám přece jen uchází pointa, že to není o language war, ale upozornění na to, jak je to s benchmarky.

noef

  • *****
  • 897
    • Zobrazit profil
    • E-mail
Re:Má Python budoucnost?
« Odpověď #453 kdy: 15. 06. 2016, 10:53:06 »
Ta benchmarks game se snazi implementovat realne algoritmy a kod, ktery tam je, je od profiku v danych jazycich.

Moje pointa je, ze pokud neco naimplementujete naivne v Jave a pustite to na defaultnim JVM, tak to pojede mnohem rychleji (klidne o rady), nez kdyz udelate to stejne naivne v Pythonu a pustite defaultnim interpreterem.

A to si myslim i odrazi dost tech "zpackanych" benchmarku valejicich se na blozich, proste pokud chcete vykon v Pythonu stejny, jako dostanete bez prace v Jave, musite vynalozit specialni usili - napr. prepsat cast aplikace aby pouzivala externi knihovnu, prekladat to necim specialnim atp.

Co jsem cetl, tak pomalost Javy oproti C++ je pouze v pripade malych projektu - kdyz JIT jede dlouho nad velkymi enterprise vecmi, tak pry bezne dosahuje lepsiho vykonu, nez C++, protoze dynamicky provadi mnohem vice pokrocilych optimalizaci podle hotspotu v dobe behu, ne jen pri kompilaci nebo provadeni jedne ulohy (na to je C++ rozhodne lepsi). To je duvod, proc se to pouziva na ty obrovske veci - (relativne) jednoduchy velmi rozsireny jazyk + solidni vykon.

ByCzech

  • *****
  • 1 873
    • Zobrazit profil
    • E-mail
Re:Má Python budoucnost?
« Odpověď #454 kdy: 15. 06. 2016, 11:01:11 »
Pokud vim, tak postovane benchmarky nepodvadi outsourcovanim provadeni opraci do asm/c/c++ knihoven, jako tvuj kod ;).

PS: Java snad nema specializovane matematicke knihovny? ;D

1. Téma této diskuse se týká Pythonu, ne Javy

2. Pointa příspěvku nebyla ohledně toho co má který jazyk, ale ohledně toho, jak to je s benchmarky

Nasel jsi snad nejaky podobne zavadny kod, jako jsi napsal, v te benchmarksgame? V opacnem pripade tvuj prispevek nema zadnou pointu, protoze asi vsichni vi, ze podvadet se da :).

A vy jste si prošel ty kódy, udělal testy a nic jste v nich nenašel? Jestli jste to neudělal, jakou pointu má váš příspěvek?

Já si se svým příspěvkem práci dal a pointa z něj vyplývá doufám dobře. A podle reakcí ji zdá se ji vidí i jiní...


ByCzech

  • *****
  • 1 873
    • Zobrazit profil
    • E-mail
Re:Má Python budoucnost?
« Odpověď #455 kdy: 15. 06. 2016, 11:09:34 »
Ta benchmarks game se snazi implementovat realne algoritmy a kod, ktery tam je, je od profiku v danych jazycich.

Moje pointa je, ze pokud neco naimplementujete naivne v Jave a pustite to na defaultnim JVM, tak to pojede mnohem rychleji (klidne o rady), nez kdyz udelate to stejne naivne v Pythonu a pustite defaultnim interpreterem.

A to si myslim i odrazi dost tech "zpackanych" benchmarku valejicich se na blozich, proste pokud chcete vykon v Pythonu stejny, jako dostanete bez prace v Jave, musite vynalozit specialni usili - napr. prepsat cast aplikace aby pouzivala externi knihovnu, prekladat to necim specialnim atp.

Co jsem cetl, tak pomalost Javy oproti C++ je pouze v pripade malych projektu - kdyz JIT jede dlouho nad velkymi enterprise vecmi, tak pry bezne dosahuje lepsiho vykonu, nez C++, protoze dynamicky provadi mnohem vice pokrocilych optimalizaci podle hotspotu v dobe behu, ne jen pri kompilaci nebo provadeni jedne ulohy (na to je C++ rozhodne lepsi). To je duvod, proc se to pouziva na ty obrovske veci - (relativne) jednoduchy velmi rozsireny jazyk + solidni vykon.

Opět bych mohl reagovat mým příspěvkem. Stále uchází pointa... S části se s tím co píšete souhlasit dá, v zásadě nejsem proti, ale říkáte to způsobem, kterým to tlačíte jednostranně směrem, který se vám hodí a tím to kroutíte a ohýbáte. Celkový obraz je jiný.

Python vs implementace Pythonu (jsou i implementace běžící nad JVM)

Rychlost Javy (JVM) vs GUI apky v Javě

atd. viz. můj příspěvek... Už to bylo řečeno.

PS: Osobně nemám nic proti Javě, Pythonu ani C ;-). Ohledně PHP už by to bylo složitější, a to jsem v tom napsal takovou hromadu věcí, až to hezké není :)

Kit

Re:Má Python budoucnost?
« Odpověď #456 kdy: 15. 06. 2016, 11:22:23 »
A vy jste si prošel ty kódy, udělal testy a nic jste v nich nenašel? Jestli jste to neudělal, jakou pointu má váš příspěvek?

Já si se svým příspěvkem práci dal a pointa z něj vyplývá doufám dobře. A podle reakcí ji zdá se ji vidí i jiní...

Ta pointa uvedených benchmarků je naprosto skvělá.

Navíc příklady v běžných benchmarcích jsou silně umělé. Nikdo přece nebude chtít sečítat čísla 1..N nebo implementovat nějaký sort v Pythonu, že?

gamer

Re:Má Python budoucnost?
« Odpověď #457 kdy: 15. 06. 2016, 11:34:36 »
Neříkejte, že vám přece jen uchází pointa, že to není o language war, ale upozornění na to, jak je to s benchmarky.
Bohužel pointa uchází tobě, tvrdíš, že jsou benchmarky k ničemu a sám vyrobíš benchmark, který je naprosto úplně mimo a vyvozuješ z něho závěry o kosmické rychlosti C oproti jiným jazykům.

ByCzech

  • *****
  • 1 873
    • Zobrazit profil
    • E-mail
Re:Má Python budoucnost?
« Odpověď #458 kdy: 15. 06. 2016, 11:49:39 »
Neříkejte, že vám přece jen uchází pointa, že to není o language war, ale upozornění na to, jak je to s benchmarky.
Bohužel pointa uchází tobě, tvrdíš, že jsou benchmarky k ničemu a sám vyrobíš benchmark, který je naprosto úplně mimo a vyvozuješ z něho závěry o kosmické rychlosti C oproti jiným jazykům.

Tak tyhle závěry jste si vyvodil sám. Já vůbec ne. Já upozorňoval na to, jak je to s benchmarky. Nedělal jsem z toho závěry. Můj příspěvek je o tom, jak se dají věci ohýbat v benchmarcích. Nehodnotil jsem ani jednotlivé jazyky ani ohledně nich nedělal závěr. Jen jsem je použil na demonstraci toho, jak je to se syntetickými benchmarky tak, aby to bylo zřetelně vidět. Pokud to stále nechápete, tak už nevím jak vám to mám vysvětlit...

gamer

Re:Má Python budoucnost?
« Odpověď #459 kdy: 15. 06. 2016, 12:13:19 »
Tak tyhle závěry jste si vyvodil sám. Já vůbec ne. Já upozorňoval na to, jak je to s benchmarky. Nedělal jsem z toho závěry. Můj příspěvek je o tom, jak se dají věci ohýbat v benchmarcích. Nehodnotil jsem ani jednotlivé jazyky ani ohledně nich nedělal závěr. Jen jsem je použil na demonstraci toho, jak je to se syntetickými benchmarky tak, aby to bylo zřetelně vidět. Pokud to stále nechápete, tak už nevím jak vám to mám vysvětlit...
Takže tvrdíš, že benchmarky na benchmarksgame jsou podobně vadné, jako ten tvůj benchmark? Po pravdě nevím, co se snažíš říct. Že se dá bechmark udělat úplně blbě a je naprosto nevypovídající? To všichni víme. Jsou takové i benchmarky na benchmarksgame? Nemyslím si.

noef

  • *****
  • 897
    • Zobrazit profil
    • E-mail
Re:Má Python budoucnost?
« Odpověď #460 kdy: 15. 06. 2016, 12:13:49 »
Neříkejte, že vám přece jen uchází pointa, že to není o language war, ale upozornění na to, jak je to s benchmarky.
Bohužel pointa uchází tobě, tvrdíš, že jsou benchmarky k ničemu a sám vyrobíš benchmark, který je naprosto úplně mimo a vyvozuješ z něho závěry o kosmické rychlosti C oproti jiným jazykům.

Tak tyhle závěry jste si vyvodil sám. Já vůbec ne. Já upozorňoval na to, jak je to s benchmarky. Nedělal jsem z toho závěry. Můj příspěvek je o tom, jak se dají věci ohýbat v benchmarcích. Nehodnotil jsem ani jednotlivé jazyky ani ohledně nich nedělal závěr. Jen jsem je použil na demonstraci toho, jak je to se syntetickými benchmarky tak, aby to bylo zřetelně vidět. Pokud to stále nechápete, tak už nevím jak vám to mám vysvětlit...

Uz to pisu ponekolikate, benchmarksgame se prave snazi nemit umele ukoly navrzene pro vyhru jednoho jazyka/prekladace/interpretu - ty algoritmy pocitaji vetsinou i neco smysluplneho a ne uplne trivialniho, takze je tam prostor pro optimalizace na strane prekladace/VM. Rozhodne se tam nedeje, ze prekladac vse vypocita v dobe prekladu a vysledny program provadi jen vypis vysledku :D.

PS: Ja Python, prestoze se mi jako jazyk moc nelibi a mnohem radeji mam Ruby, respektuji. Na skriptovani jeho misto chapu. Ale stejne jako si myslim, ze JavaScript/Ruby/Bash/PowerShell neni vhodny na psani weboveho backendu (a obecne jakehokoliv projektu s LOC v tisicich), tak si to stejne myslim o Pythonu. Vim, ze dost lidi nesouhlasi, ale ja preferuji automatickou typovou kontrolu od prekladace a ne manualni smoleni testu vyvazujici chybejici typovou kontrolu.

ByCzech

  • *****
  • 1 873
    • Zobrazit profil
    • E-mail
Re:Má Python budoucnost?
« Odpověď #461 kdy: 15. 06. 2016, 12:18:54 »
Tak tyhle závěry jste si vyvodil sám. Já vůbec ne. Já upozorňoval na to, jak je to s benchmarky. Nedělal jsem z toho závěry. Můj příspěvek je o tom, jak se dají věci ohýbat v benchmarcích. Nehodnotil jsem ani jednotlivé jazyky ani ohledně nich nedělal závěr. Jen jsem je použil na demonstraci toho, jak je to se syntetickými benchmarky tak, aby to bylo zřetelně vidět. Pokud to stále nechápete, tak už nevím jak vám to mám vysvětlit...
Takže tvrdíš, že benchmarky na benchmarksgame jsou podobně vadné, jako ten tvůj benchmark? Po pravdě nevím, co se snažíš říct. Že se dá bechmark udělat úplně blbě a je naprosto nevypovídající? To všichni víme. Jsou takové i benchmarky na benchmarksgame? Nemyslím si.

Hele ty nerudný človíčku, buď té lásky a běž si vkládat slova do úst někomu jinému. Tenhle způsob diskuze mě nebere. Díky.

gamer

Re:Má Python budoucnost?
« Odpověď #462 kdy: 15. 06. 2016, 12:25:27 »
Hele ty nerudný človíčku, buď té lásky a běž si vkládat slova do úst někomu jinému. Tenhle způsob diskuze mě nebere. Díky.
Jen se snažím dobrat smyslu toho tvého "benchmarku", ale asi se mi to nepodaří...

ByCzech

  • *****
  • 1 873
    • Zobrazit profil
    • E-mail
Re:Má Python budoucnost?
« Odpověď #463 kdy: 15. 06. 2016, 13:13:40 »
Hele ty nerudný človíčku, buď té lásky a běž si vkládat slova do úst někomu jinému. Tenhle způsob diskuze mě nebere. Díky.
Jen se snažím dobrat smyslu toho tvého "benchmarku", ale asi se mi to nepodaří...

Potřetí a naposled: Smysl mého PŘÍSPĚVKU je o tom, že se snažím upozornit, že benchmarky mají často špatnou vypovídací hodnotu, že se s výsledky dá velmi snadno ohýbat, že je to často porovnávání hrušek s jablky, že teoreticky je teorie a praxe to samé, ale prakticky to tak není atd. atp.

Napadá vás všechno možné, jen ne to, o čem můj příspěvek je.

.

Re:Má Python budoucnost?
« Odpověď #464 kdy: 15. 06. 2016, 14:04:21 »
Všem milovníkům benchmarků doporučuji prostudovat následující stránky:
https://www.techempower.com/benchmarks/

Jen aby se vám z toho ale nezamotala hlava. :) Ten tolikrát vychvalovaný Spring v o několik řádů rychlejší Javě je v něm totiž například pomalejší než flask s Pythonem. A to se bavíme o reálných problémech webového backendu, žádné syntetické přičítání jedničky. Jsou tam i zdrojové kódy, tak můžete začít hledat, kde soudruzi udělali chybu a přidat vlastní verzi, která tomu Pythonu natře zadek.. :D

Tak se ukažte, jestli máte svaly i někde jinde než pod jazykem.

P.S.: Tahle diskuse mi připomíná souboje děcek v mateřské školce. Slovní spojení jako brutálně rychlá java, o několik řádů rychlejší, atd jsou zpravidla v praxi naprosto nesmyslné. Pokud si pro svůj problém náhodou nevyberete opravdu nevhodný nástroj, jsou rozdíly mezi jednotlivými jazyky zpravidla do jednoho řádu, často ještě mnohem menší a v nemálo případech o nich rozhoduje především kvalita knihoven. Tiše se tak pomíjí skutečnost, že nevhodné zpracování problému programátorem (které je v praxi naprosto běžné) klidně  způsobí 100 násobné zpomalení výsledného programu, takže zvolený jazyk/framework je téměř irelevatní.