| Zobrazit předchozí téma :: Zobrazit následující téma |
| Autor |
Zpráva |
Fila
Založen: 31. 07. 2007 Příspěvky: 853
|
Zaslal: 20. leden 2011, 23:10:27 Předmět: |
|
|
Hm, vidim ze jsem byl ponekud nepochopen (u Augiho a OndraSeje me to ponekud prekvapuje, z cehoz usuzuji, ze jsem se mel vyjadrit ponekud obsahleji, nez sem jen prsknout ten odkaz).
Augi -- jasne ze je to vypocetne narocny problem a ne "realita vetsiny programatoru", ktera casto spociva v psani klikacich aplikaci, kde stejne nejvic cekas na uzivatele, vykresleni ikonky nebo odpoved databaze. Pokud ale chceme nejakym zpusobem srovnavat rychlost jazyku a programovacich stylu, je jasne, ze se musime zamerit na vypocetne narocne problemy a ne na neco, kde nam staci prakticky cokoliv... No a vzhledem k tomu, ze se ve hrach maji tendenci vypocetne narocne problemy objevovat, tak jsem to sem hodil. Nemam samozrejme jakoukoliv ambici tim argumentovat proti pouziti Flashe na 2D klikacku bez nejakeho vypocetne narocneho algoritmu.
OndraSej -- ta prezentace IMO nema za cil ukazovat, ze nejde neco implementovat v Jave rychle, ale ze pokud to implementujes tak jak to implementuje bezny Franta programator, co se rozhodne pouzit objekty, tak to podle toho taky bude behat.
Nevidim co se ti nezda na metodice mereni. Toto neni paper, ale prezentace, tam se s tim asi nebude treba moc stvat (ja taky ve slidech nevysvetluju, jak presne jsem zmeril, ze se me nejakou upravou zrychli implementace, kdyz je ucelem studentum ukazovat co ji zrychli a proc).
S tim tretim bodem se da souhlasit pouze castecne -- ano, ty optimalizace graduji a v urcitem bode prepnou do jineho jazyka, a ten bod by se dal posunout smerem dopredu i dozadu. Na druhou stranu nektere optimalizace jsou natolik "drobne", ze je musis provest az v momente, kdy mas dost rychly kod, ktery nebrzdi jine veci. Napr. vektorizace dost casto pomuze az v dobe, kdy zlepsis vyuziti cache a nebrzdi te pamet, jinak je ti k nicemu. No a stejne tak to muze byt s prechodem od Java k C, netvrdim ze musel nastat primo v tom momente kde v te prezentaci, ale v urcitem momente by se uz jemnejsi optimalizace nemusely vubec projevit pres jine brzdy.
Kazdopadne jeste jednou zduraznuji, ze ten priklad nemel slouzit k obecnemu porovnani C vs. Java, natoz pak k obecnemu argumentu co pouzivat na hry (tu jde opravdu primarne o to, co vsechno do hry musime naprogramovat). Ja jsem jej postoval, protoze obsahuje porovnani opravdu efektivni implementace s prebujelou super-obecnou implementaci ve vyssim jazyku. Jeho hlavni teziste je ale IMO v tom ze ukazuje i serioznejsi optimalizace kodu (tzn. az tech nekolik poslednich kroku, kde se ukazuji zakonitosti chovani algoritmu na modernich CPU a neodstranuje se programatorsky balast). |
|
| Návrat nahoru |
|
 |
Augi

Založen: 28. 07. 2007 Příspěvky: 782 Bydliště: Čerčany
|
Zaslal: 20. leden 2011, 23:54:28 Předmět: |
|
|
V zásadě souhlasím, ale ...
| Fila napsal: |
| Pokud ale chceme nejakym zpusobem srovnavat rychlost jazyku a programovacich stylu, je jasne, ze se musime zamerit na vypocetne narocne problemy a ne na neco, kde nam staci prakticky cokoliv... |
Já to tak jasně nevidím - programovací jazyky a styly jde srovnávat i dle jiných kritérií, např. produktivity pro daný problém.
Ale přijde mi jako nesmysl je srovnávat - každý se hodí na něco jiného. Je lepší Ferrari nebo Iveco?  |
|
| Návrat nahoru |
|
 |
OndraSej

Založen: 28. 07. 2007 Příspěvky: 767 Bydliště: Brandýs nad Labem
|
Zaslal: 20. leden 2011, 23:55:48 Předmět: |
|
|
Fila> pokud jde o ten zacatek, tak opravdu ne, tohle neni kod v kategorii "bezny franta programator co ma rad objekty", ale v kategorii "pisu co mozna nejblbejsi kod". Pokud chtel autor rict, ze kdyz napise spatny kod, tak funguje spatne, pak OK (ale to neni nic prekvapiveho, takze si mohl usetrit cas). Pokud ale chce ukazat, ze nektere koncepty "nefunguji", resp. ze se pro danou ulohu nehodi, tak je mel pouzit nejlepsim moznym zpusobem a srovnavat to s nejlepsim moznym resenim.
No napada me jeste jedno vysvetleni - autor na prvnich cca 50 slidech moc netusi o cem mluvi, takze zamenuje pojmy jako "vyhozeni" immutability s "vyhozenim tuny naprosto zbytecnych a ucelove pridanych alokaci"... Ale popravde receno, i tak si myslim, ze ten prvni priklad je totalne mimo realitu.
K metodice reseni - u Javy je obvykle dat JITu cas na zahrati (resp. srovnat dva casy - cas hned po startu a cas po zahrati). Druha vec je, ze jestli meril ty casy jenom z jednoho behu, tak muzou byt kvuli nepresnostem mereni dost mimo. _________________ http://trionteam.net |
|
| Návrat nahoru |
|
 |
Fila
Založen: 31. 07. 2007 Příspěvky: 853
|
Zaslal: 21. leden 2011, 00:43:33 Předmět: |
|
|
| Augi napsal: |
V zásadě souhlasím, ale ...
| Fila napsal: |
| Pokud ale chceme nejakym zpusobem srovnavat rychlost jazyku a programovacich stylu, je jasne, ze se musime zamerit na vypocetne narocne problemy a ne na neco, kde nam staci prakticky cokoliv... |
Já to tak jasně nevidím - programovací jazyky a styly jde srovnávat i dle jiných kritérií, např. produktivity pro daný problém.
Ale přijde mi jako nesmysl je srovnávat - každý se hodí na něco jiného. Je lepší Ferrari nebo Iveco?  |
Vsak ja psal srovnavat rychlost (a myslel jsem rychlost provadeni kodu, ne jeho zapisu . Srovnavat Ferrari a Iveco jde, specifikujes-li aplikaci -- v rychlosti prepravy jednoho pasazera to vyhraje Ferrari, v rychlosti/moznosti prepravy vetsiho nakladu Iveco, no a obecne je srovnavat nejde stejne jako ty jazyky... |
|
| Návrat nahoru |
|
 |
aimia
Založen: 20. 12. 2009 Příspěvky: 55
|
Zaslal: 21. leden 2011, 19:28:59 Předmět: |
|
|
Předně bych se rád uvedl na pravou míru můj první komentář. Jak uvedl Flash(mimochodem dík za obhajobu ), reagoval jsem na původní autorovu otázku. Odpovídal jsem v práci, v rychlosti přečetl první stránku a nevšiml si že vlákno pokračuje dál. Proto má odpověd vyzněla trochu mimo mísu.
EOSIE
AS3, Python apod. jsem zmiňoval hlavně pro rychlost a jednoduchost psaní. Samozřejmě že pokud bych chtěl udělat super 3D akčí řežbu, použiju co nejrychlejší jazyk, takže např. C++. Ale pokud budu dělat hru logickou, použiju to nejrychlejší řešení - třeba Python. Myslím že začátečník by neměl být ze startu zaplaven spousty informacemi. Takže takový start s PyGame je dle mě optimální. Navíc si člověk hned vyzkouší, co vše to obnáší, jestli je to to co chce dělat apod. Stahováním různých knihoven, tvořením vlastních aby se mi psalo co nejjednodušeji mě jen zdrží od vlastní tvorby.
To že je C++ archaický je můj osobní názor. Když si to přeberu, výkon počítačů roste, jsou tlaky na rychlost vývoje(čím rychleji vyvinu, tím míň zaplatím vývojářům, tím větší šance na návratnost a výdělek...), tudíž roste používání skriptovacích jazyků (nebo když to trošku přeženu, i použití různých konfiguračních xml je jakési skriptování, a ty se teď používají snad všude), začínají se vyvíjet grafické tooly tvořící programy "bez programování"... Netvrdím že Java je nejlepší na světě, jen se mi líbí že píšu míň kódu(např. na C++ mě strašně sere, psát nějaké stupidní .h soubory), který je navíc oproti C++ bezpečnější apod.
Stálé používání C++ ve firmách mě taky zajímá. Mě osobně opravdu přijde programovat v C++ jako čirý masochismus. Tak jsem se na to ptal na jednom pohovoru 0a dostal jsem pěknou odpověď - že používají C++, protože v něm mají vyvinutý systém, který je už obrovský, starý 20 let, a přepsat jej by stálo desítky miliónů
PS: Mimochodem jsem moc nepochopil jak píšeš že v C je OOP. Já myslel že C je neobjektový jazyk, že OOP přišlo až s C++. Jestli to tak není, rád se nechám poučit. |
|
| Návrat nahoru |
|
 |
pcmaster

Založen: 28. 07. 2007 Příspěvky: 1827
|
Zaslal: 21. leden 2011, 19:44:41 Předmět: |
|
|
No LOL. Tak ja napriklad pracujem ako C++/DX/HLSL programator a je absolutne nepredstavitelne pouzivat cokolvek ine ako C++. To by bol cisty masochizmus
EDIT: Tento prispevok mal asi 20 riadkov, ale kto by to cital Tak som to po sebe zmazal a tu je vycuc:
Vykonne kompy -> jebme na to a pisme (len) nevykonny kod = PURE EVIL.
C++ ide aj bez ".h"
PyGame na zaciatok - ma to vyhody aj velmi nebezpecne nevyhody.
OOP nemusi mat nic spolocne s akymkolvek konkretnym jazykom. Nemyl si pojmy.
Jo, btw, skoro denne tam robim aj s Pythonom a tym druhym jazykom v Autodesk Maya. A je mi z nich zle, ako som to tu uz par krat asi napisal  _________________ Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est. |
|
| Návrat nahoru |
|
 |
VladR
Založen: 30. 07. 2007 Příspěvky: 1322 Bydliště: Greater New York City Area
|
Zaslal: 21. leden 2011, 19:51:19 Předmět: |
|
|
Ak spracovavas / vizualizujes kvanta dat - myslim terabajty / petabajty, tak zabudni na Javu.
Potrebujes C++ a server farmu s OpenCL a zopar Tesiel k tomu.
Ja som nedavno spravil kvantum optimalizacii do C++ kodu a usetrilo to kopec prachov, ktore by sa museli vrazit do nakupu / spravy vykonnejsich servrov.
A to ani ten povodny kod nemusi byt nejak extra spraseny, ale robit v C++ optimalizacie tiez nie je bezna zalezitost a de facto nic z toho by sa nedalo spravit v Jave (napr. cache-friendly array traversal), ktora navyse na rozdiel od C++ kontroluje kazdy jeden pristup do pamate.
Stale budu aplikacie ktore budu potrebovat vystavit vykon na doraz ciste z toho najzakladnejsieho principu - prachy - je proste lacnejsie spravit SW, ako HW.
Mozno to netvori 50% objemu prace v C++ na celom svete, ale to ma pravdupovediac ani nezaujima... |
|
| Návrat nahoru |
|
 |
Marek

Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 21. leden 2011, 20:44:30 Předmět: |
|
|
Já si C v OOP nevymyslel (i když je fakt, že jsem nad tím uvažoval už před X lety na tomto fóru). Prostě jsem přišel do existujího projektu a všichni to tam používali. Měli jasně daná pravidla, jak se objekty v tom projektu mají dělat. Tady je popsáno, jak to děláme:
http://cgit.freedesktop.org/mesa/mesa/tree/src/gallium/README.portability
Pozn.: Linux kernel je taky z větší části objektový. Na FI máme kernel development kurz a tam jsme třeba udělali virtuální network driver, co pravidelně posílal odpověď na ICMP echo. To celé jsme napsali za chvilku s méně jak 100 řádky kódu, kde od IP vrstvy nahoru všechno fungovalo samo (tzn. byl to fakt funkční network driver). Takže i tento typ projektu se dá dělat rychle a jednoduše. To jen tak pro příklad.
Hodně lidí taky tvrdí, že v jednom jazyku se píše líp než v druhém nebo že "jeden jazyk je lepší jak druhý". To jsou všechno jen osobní preference, protože, přiznejme si to, v jiném jazyku buď neumíte, nebo umíte, ale velkej projekt byste v tom stejně napsat nedokázali, takže vlastně neumíte. Podle mě na gramatice a sémantice jazyka zas tak moc nezáleží, pokud ten jazyk používá zaběhnuté postupy (tzn. není to nějaký psycho jazyk).
Ve skutečnosti závisí na těchto věcech:
- Jestli je jazyk imperativní (případně jiný...).
- Jestli má garbage collector.
- Jak velké a propracované má knihovny v základním balíku (to má největší vliv na použitelnost jazyka).
- Jak rychlý je kód za běhu, případně na jakých zařízeních ten kód běží.
Teď si představte, že máte C#, kde není žádný .NET Framework, prostě máte jen ten jazyk a k němu pár knihoven, co jste si někde stáhli na netu. Psali byste v něm? Třeba jo, ale 99% firem by od něj uteklo. Bez ohledu na to, jak úžasný ten jazyk je. A to je právě problém jazyků jako C, C++, ale třeba taky Haskell a mnoho dalších. Běžný business software se v tom přestává dělat, protože tam nejsou zaběhnuté postupy vývoje a unifikovaný framework, každý si to dělá podle sebe a většinou sám. _________________ AMD Open Source Graphics Driver Developer |
|
| Návrat nahoru |
|
 |
Fila
Založen: 31. 07. 2007 Příspěvky: 853
|
Zaslal: 21. leden 2011, 21:31:55 Předmět: |
|
|
aimia -- k tomu ze je jednodussi zacit napr. s Flashem -- ja uz to tu zminoval vickrat, ano, pokud chces delat primarne hru, dle meho nazoru ne, pokud chces byt primarne programator. Abych to vysvetlil -- u me i u okoli dost jasne vidim, ze pokud se naucis nizkourovnovy jazyk, nebrani ti to nijak v uceni-se vysokourovnoveho (proste jen pises v necem "komfortnejsim"), zatimco kdyz se naucis ten vysokourovnovy, je strasne tezke naucit se psat v nizkourovnovem a nebyt v tom totalni prase, protoze uz si prave zvykly nepremyslet nad nekterymi detaily.
A k tomu o neustale rostouci rychlosti pocitacu -- zase zalezi na aplikaci, kdyz mas jednoduchou hru, ktera potrebuje 10 % vykonu dnesniho stroje, nemusi te moc zajimat, ze by mohla byt 10x uspornejsi. Ale kdyz se snazis udelat neco technicky na spici, tak nechces, aby tva hra mela na dnesnim HW stejne moznosti, jako mela poradne optimalizovana hra na HW starem 10 let... A to nemluvim o jinych odvetvich, kde je rychlost kodu vylozene veci penez (napr. servery online her nebo obecne HPC). |
|
| Návrat nahoru |
|
 |
Mem

Založen: 28. 07. 2007 Příspěvky: 1959 Bydliště: Olomouc
|
Zaslal: 22. leden 2011, 09:12:31 Předmět: |
|
|
| Eosie napsal: |
přiznejme si to, v jiném jazyku buď neumíte, nebo umíte, ale velkej projekt byste v tom stejně napsat nedokázali, takže vlastně neumíte.  |
To, že ty umíš jen jeden jazyk dobře, ještě neznamená, že nejsou lidé, kteří umí dobře víc jazyků současně, a mohou si z nich skutečně vybírat, a ne být jen nuceni okolnostmi jako ty Takže takovéhle obecné soudy bych si fakt nechal od cesty _________________
 |
|
| Návrat nahoru |
|
 |
Marek

Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 22. leden 2011, 09:30:51 Předmět: |
|
|
| Mem napsal: |
| Eosie napsal: |
přiznejme si to, v jiném jazyku buď neumíte, nebo umíte, ale velkej projekt byste v tom stejně napsat nedokázali, takže vlastně neumíte.  |
To, že ty umíš jen jeden jazyk dobře, ještě neznamená, že nejsou lidé, kteří umí dobře víc jazyků současně, a mohou si z nich skutečně vybírat, a ne být jen nuceni okolnostmi jako ty Takže takovéhle obecné soudy bych si fakt nechal od cesty |
Ty moc dobře víš, že těch jazyků umím dost. Pointa ale byla, že umět dobře jazyk taky znamená umět ho maximálně využít (tzn. mít i pořádnou dávku praxe), nikoliv jen znát syntaxi nebo dělat malinký programy. Pak se totiž obvykle zjistí, že člověk, který umí jen tyhle 2 věci, je absolutně nepoužitelnej ve větším projektu, takže neumí (vím, že přeháním, ale prostě to tak vidím).
Bohužel ani ty si nemůžeš jazyk moc vybírat a seš nucen okolnostmi. Jsou to ty věci, které jsem zmiňoval, kvůli kterým si vybíráš jazyky, tj. kvalita frameworku a dostupnost pomocných nástrojů, garbage collector, popř. rychlost kódu (no u tebe asi ne...). _________________ AMD Open Source Graphics Driver Developer |
|
| Návrat nahoru |
|
 |
rezna
Založen: 27. 07. 2007 Příspěvky: 2156
|
Zaslal: 22. leden 2011, 09:40:50 Předmět: |
|
|
| myslim ze to tu brzo locknu - protoze tenhle demagogickej pristup co tu prosazuji Fila a Eosie nikam nevede |
|
| Návrat nahoru |
|
 |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 22. leden 2011, 10:54:28 Předmět: |
|
|
Čili uplatníš moc k vyjádření nesouhlasu s jejich názory? Jak ubohé
PS: Doufám, že jsem tě nasral, neb to byl účel mého příspěvku. Už se těším na ban.
PS2: Ale už mě fakt štve, že jakmile se rozjede jakákoli zajímavá diskuse, tak se hned hrozí lockem. Lock není nástroj pro fóra, která jsou téměř mrtvá. Tam je totiž může zabít úplně. _________________ www.FRANTICWARE.com |
|
| Návrat nahoru |
|
 |
Mem

Založen: 28. 07. 2007 Příspěvky: 1959 Bydliště: Olomouc
|
Zaslal: 23. leden 2011, 12:04:15 Předmět: |
|
|
| Eosie napsal: |
| Bohužel ani ty si nemůžeš jazyk moc vybírat a seš nucen okolnostmi. Jsou to ty věci, které jsem zmiňoval, kvůli kterým si vybíráš jazyky, tj. kvalita frameworku a dostupnost pomocných nástrojů, garbage collector, popř. rychlost kódu (no u tebe asi ne...). |
No právěže ne, i v IS si vždycky vybíráme, v čem zrovna udělat klienty (na Win platformě ještě pořád Delphi, MFC, WinForms - tam je fakt celkem šumák, v čem se ty formuláře naklikají, a základní ORM uděláš v čemkoliv, a základní knihovny tě moc netankují), to samé pro webové věci (PHP vs. ASP.NET, i když tady už samozřejmě rozhoduje účel projektu víc). Ono kolikrát i ty věci v základních knihovnách (frameworku) jsou dotažené jen napůl (kryptografie, kódování, exporty, komponenty...) a člověk si to musí stejně upravit pro svůj projekt, aby to šlapalo, takže nějaký výchozí limit bych v tom taky neviděl.
Pro klienta z Kansasu jsme teď zvažovali pro jeho projekt širokou škálu možností (a všechny bych samozřejmě zastřešil, takže výběr tím fakt limitovaný není) - teď to má v Delphi 7, narážíme samozřejmě na problémy (unicode, styly z Vist/7, hires ikony apod.), nabízí se přejít na Delphi 2005+, nebo komplet přesat v .NET, nebo dokonce Flash (protože je tam dost custom painting a flash se už stejně používá pro embedované tutoriály), nebo přejít na webové řešení, mobilní webové klienty nebo porty pro Android a iOS (u toho už bych tedy musel znásilnit flashe a posilu )
Prostě není jediné správné řešení ani pro konkrétní úkol, dá se pořád dobře vybírat z velké množiny na základě vlastních kritérií a není to vnuceno jen tím, co člověk zná, a co ty nástroje nabízí (protože prakticky každý už toho nabízí dost hodně na to, aby se to v praxi dalo použít). A výjimky jako psaní kernel driverů nebo high-performance computing pak jen potvrzují pravidlo  _________________
 |
|
| Návrat nahoru |
|
 |
rezna
Založen: 27. 07. 2007 Příspěvky: 2156
|
Zaslal: 23. leden 2011, 12:29:42 Předmět: |
|
|
| frca napsal: |
Čili uplatníš moc k vyjádření nesouhlasu s jejich názory? Jak ubohé
PS: Doufám, že jsem tě nasral, neb to byl účel mého příspěvku. Už se těším na ban.
PS2: Ale už mě fakt štve, že jakmile se rozjede jakákoli zajímavá diskuse, tak se hned hrozí lockem. Lock není nástroj pro fóra, která jsou téměř mrtvá. Tam je totiž může zabít úplně. |
WTF? - jaka zajimava diskuze? - tohle je cistej flamewar o tom ze fila a eosie umi C a je to nejlepsi jazyk na svete a vsichni ostatni nam polibte prdel |
|
| Návrat nahoru |
|
 |
|