Vlákno názorů k článku
Zdrojový kód MS-DOS je na GitHubu od Diskobolos - Já bych to nezatracoval. Jedná se o poctivý...

  • Článek je starý, nové názory již nelze přidávat.
  • 1. 10. 2018 14:01

    Diskobolos (neregistrovaný)

    Já bych to nezatracoval. Jedná se o poctivý assembler, viz. např. formátování disku (https://github.com/Microsoft/MS-DOS/blob/master/v2.0/source/FORMAT.ASM). Jen ať se mládež podívá, jak to dříve dělalo :-)

  • 1. 10. 2018 14:17

    ted (neregistrovaný)

    Dnesni mladez neumi programovat ale googlit. Nasledne pouzivat CTRLC CTRLV. Bez jakychkoliv hlubsich znalosti.
    PS: Mluvim jako clovek co zazil strojovy kod u pocitacu jako ZX Spectrum, Didaktik Gama, PC XT (8086), atd. Dnes jsem za to nevyslovne vdecen. Aplikace, ktere programuji dnes samozrejme ve vyssich programovacich jazycich, jsou velice rychle a pametove absolutne nenarocne a to paradoxne i v momente kdy se pracuje s velkymi daty.

  • 1. 10. 2018 14:41

    null null (neregistrovaný)

    @ted

    Spíš mluvíš jako zapšklý pamětník, který moc neví o dnešním programování ...

  • 1. 10. 2018 15:08

    ted (neregistrovaný)

    To je váš subjektivní názor. Důkazy o mém tvrzení mám od nás z práce u některých čerstvých absolventů VŠ (paradoxně dost častý výskyt). Jakýkoliv framework co najde, použije, nedejbože zuby nehty prosazuje. Že je to obvykle o 150% pomalejší, než když to po něm přepíšeme buď já nebo kolega včetně testů, měření časů daných operací a důkladného logování, student na to reaguje obvykle slovy "Aháááá, tak to jsem netušil". Holt zkušenosti a praxe jsou prostě zkušenosti a praxe.

    Pořád lepší pamětník, který si dokáže uvědomit jak data v paměti mohou leckdy nabobtnat, než student, který si myslí, že framework je univerzální řešení na vše. Vždyť to přeci používají na facebooku, tak to musí fakčit. Jenže my nejsme facebook.

  • 1. 10. 2018 15:28

    null null (neregistrovaný)

    @ted

    Ano je to můj názor.

    No, tak za prvé bych řekl že ani ty jsi zkušený z nebe nespadl, ale když už teda asi ano, tak za druhé teda jak to že nějakému tomu po-školákovi bobtnají data, napíše to 1,5 * pomalejší když "dnes samozrejme ve vyssich programovacich jazycich, jsou velice rychle a pametove absolutne nenarocne a to paradoxne i v momente kdy se pracuje s velkymi daty."
    No přiznám že mám s "mladšími kusy" podobné problémy, ale že by jenom kopírovali z webu a dnešní programovací jazyky byly bezproblémové (bezp., optimalizace ....) bych rozhodně neřekl. spíš naopak. A kéž by ti mladí radši občas něco odněkud zkopírovali správně, než zmatlali vlastnoručně, když už neumí použít hubu na to, aby se poradili ...

  • 1. 10. 2018 15:31

    null null (neregistrovaný)

    @ted

    PS: Občas potkám i nějaké staré mistry a to taky někdy stojí za to ...

  • 1. 10. 2018 15:44

    ted (neregistrovaný)

    Ano .. i tihle experti existují, potvrzuji. Ty to obvykle nebaví.Ale mají ego jako kráva a jsou si svým názorem naprosto jisti. Opět dokud jim není ukázáno a opakovaně změřeno, že smyčka, která dělá totéž, co napsal dotyčný expert po svém trvá 450 milisekund misto jejich 2.6 sekundy a místo 650 mega ram potřebuje jen 2.5 mega.

  • 1. 10. 2018 15:40

    ted (neregistrovaný)

    když "dnes samozrejme ve vyssich programovacich jazycich, jsou velice rychle a pametove absolutne nenarocne a to paradoxne i v momente kdy se pracuje s velkymi daty."

    Nevím jestli jste pochopil, ale právě ta vybičovanost z dřívějšího slabého HW tehdejší doby mě (ne jim, ale mě osobně) dnes umožňuje myslet stále tak, jako by systémových prostředků bylo sakra málo a bylo potřeba neplýtvat. Ani časem, ani pamětí, ani diskem, ani sítí, ani čímkoliv.

    Dnešní mládež má systémových prostředků dostatek, a tak si jich neváží. V testu s mikrodaty mu to běhá obstojně, ale jak se to pošle do produkce s mnohem většími daty, sčítá se bajt k bajtu a milisekunda k milisekundě a pak aplikace tuhne a dělá různé psí kusy, logy na serverech bobtnají, místo dochází, stroj swapuje jak o život.

    Čím to je? Nikdo tyhle studenty neučí pořádně myslet do hloubky. Vše je tak nějak povrchní, látané, slepované, googlené.

    Zmiňovaným průserářům samozřejmě radíme jak to udělat lépe a nezabastlit to tunou odpadu, o kterém dotyčný ani neví jak funguje, nebo na jaké konkrétní řešení daný autor daného frameworku chtěl své dílo použít, které ne až tak zcela sedí na naše potřeby. Jenže za půldenní školení nejsme placeni.

    Na druhou stranu jsou i studenti, kteří s IT co se svého studia nemají vůbec nic společného, třeba jeden je stavař, ale od dětství ho to skutečně zajímá a má to jako svůj koníček. Jeho kód je mnohem pružnější než kód toho, který prošel VŠ.

  • 1. 10. 2018 15:49

    null null (neregistrovaný)

    @ted

    No pochopil a bojuju s tím taky. Nevěř tomu, že dnes není potřeba to hlídat. Není to sice jako v časech 8-bitů s pár kilo paměti, a i s tím se lze lehce setkat i dnes, ale shodit server datovou zhovadilostí není nic tak neobvyklého - jeden k druhému, pak někdo přimatlá třetí a už to jede ... To ale není tím co jsi psal, to je osobní leností a nezájmem. Neprofesionalitou. To ano. Ale že by to dnes řešili jazyky vyšší úrovně, to neplatí ani z daleka ... Proto jsem se ozval. Fakt bych byl radši kdyby mi tu někteří výjímečníci kód zkopírovali a jazyk to dořešil za ně, ale tak to fakt nefunguje. Ve finále je za tím nezájem, lenost a hloupost - ale neřekl bych že to platí pro nějako majoritní skupinu - jsem ochoten uznat půl na půl a taky uznávám že jsem nepotkal 1/2 světa.

  • 1. 10. 2018 16:08

    ted (neregistrovaný)

    Osobní lenost a nezájem. Ano. Například teď řeším rekurzivní funkci po jednom borcovi s VŠ. Jedná se o PHP. V parametrech, které té funkci předává má docela hutnou datovou strukturu, mnohaúrovňové asociativní pole. Samozřejmě si ji jako parametr dáva při volání rekurze znovu a znovu.

    Co se stane, když mu to vletí 150x do sebe. No octne se ta hutná struktura 150x v zásobníku.

    Hele Franto, pojď sem prosímtě. Podívej se. Když před parametr v definici funkce dáš ampersand, pak předáváš jen referenci. a NE KUR*A DO HAJZ*U UZ 150x TU TVOU 15TI MEGOVOU STRUKTURU VŠECH VÝSLEDKŮ Z DB SE VŠEMI DATY, KTERÉ NAVÍC V TOMHLE ŘEŠENÍ K NIČEMU NEPOTŘEBUJEŠ. Zákazník mě (MĚ .. CHÁPEŠ .. MĚ) naposled jeb*l za to, že ten upgrade je ještě horší než před tím.

    A takhle já tu občas teču :(

  • 1. 10. 2018 17:08

    null null (neregistrovaný)

    @ted

    No to teču taky. Pár takových kusů, mladých i starších, máme taky. To se pozná rychle, otázka je co s tím. Code review zase zdržuje a obtěžuje ostatní, taky vyvolává mezi některými dokonce dlouhodobé spory. Oh, jak lidské ... A bez toho zápalu to je prostě marný, je to marný, je to marný ....
    Pak je tu ale ještě množinka horlivých s velkým egem, tam to učení jde taky pomalu. Ale aspoň jde ...

  • 1. 10. 2018 22:59

    Miloslav Ponkrác (neregistrovaný)

    Takže na zásobníku se ocitne jediný pointer na to asociativní pole. A to i bez reference.

    Protože všechny proměnné jsou (jako v každém dynamicky typovaném jazyce) jen jména s jednoduchou strukturou s odkazem na hodnotu.

    Navíc pokud je pole jen pro čtení, tak existuje stále jedna jediná kopie pole, ať jí předá na kolik bambiliónů míst chce. Protože pole se zkopíruje až při změně pomocí mechanismu "copy on write".

  • 1. 10. 2018 23:38

    t (neregistrovaný)

    Miloslav Ponkrác: "Takže na zásobníku se ocitne jediný pointer na to asociativní pole. A to i bez reference."

    Nemate pravdu.

    PHP:

    $t=array();
    for ($i=0;$i<2000;$i++)
    $t[]="fucking ".$i;

    rekurze($t,0);

    function rekurze($t,$level)
    {
    echo $level." ".memory_get_u­sage()."\n";
    $t[]="novy prvek";
    if ($level<20)
    rekurze($t,$le­vel+1);
    }


    php test2.php
    0 503536
    1 573256
    2 642944
    3 712632
    4 782320
    5 852008
    6 921696
    7 991384
    8 1061072
    9 1130760
    10 1200448
    11 1270136
    12 1339824
    13 1409512
    14 1479200
    15 1548888
    16 1618576
    17 1688264
    18 1757952
    19 1827640
    20 1897328

    Zajimave ale je ze pokud vynechame radek $t[]="novy prvek"; tedy nemodifikujeme pole, pak se alokovana pamet nemeni.


    php test2.php
    0 503336
    1 503368
    2 503368
    3 503368
    4 503368
    5 503368
    6 503368
    7 503368
    8 503368
    9 503368
    10 503368
    11 503368
    12 503368
    13 503368
    14 503368
    15 503368
    16 503368
    17 503368
    18 503368
    19 503368
    20 503368

  • 1. 10. 2018 23:45

    t (neregistrovaný)

    s referenci:

    <?

    $t=array();
    for ($i=0;$i<2000;$i++)
    $t[]="fucking ".$i;

    rekurze($t,0);

    function rekurze(&$t,$level)
    {
    echo $level." ".memory_get_u­sage()."\n";
    $t[]="novy prvek";
    if ($level<20)
    rekurze($t,$le­vel+1);
    }

    ?>


    php test2.php
    0 503560
    1 503592
    2 503592
    3 503592
    4 503592
    5 503592
    6 503592
    7 503592
    8 503592
    9 503592
    10 503592
    11 503592
    12 503592
    13 503592
    14 503592
    15 503592
    16 503592
    17 503592
    18 503592
    19 503592
    20 503592

    S referenci s unikatnim prvkem

    <?

    $t=array();
    for ($i=0;$i<2000;$i++)
    $t[]="fucking ".$i;

    rekurze($t,0);

    function rekurze(&$t,$level)
    {
    echo $level." ".memory_get_u­sage()."\n";
    $t[]="novy prvek ".$level;
    if ($level<20)
    rekurze($t,$le­vel+1);
    }

    ?>

    test2.php
    0 503560
    1 503632
    2 503672
    3 503712
    4 503752
    5 503792
    6 503832
    7 503872
    8 503912
    9 503952
    10 503992
    11 504032
    12 504072
    13 504112
    14 504152
    15 504192
    16 504232
    17 504272
    18 504312
    19 504352
    20 504392

    Chovani hashmapy v PHP, nebo jakze se to jmenuje :)

    Porad lepsi jak bez reference. :)

  • 2. 10. 2018 7:17

    null null (neregistrovaný)

    @t

    Nenapsal jsi která verze PHP. Každopádně u PHP 7 to funguje v podstatě stejně. Když pole modifikuješ, tak se vytvoří pro danou proměnou nové a to se modifikuje. Když to uděláš pro pole které je má referenční vztah a modifikuješ ho, tak se vytvoří nové, na něj ukazuje reference a to se mění, pouze ale proty, které mají tento referenční vztah.

  • 2. 10. 2018 7:47

    null null (neregistrovaný)

    @t

    Jinými slovy můžeš sice předávat proměnou a ona se nerozkopíruje, nicméně jakmile změníš její hodnotu tak se zkopíruje do nové, navíc ještě se scope. S použitím ampresandu se mění pro všechny které na které ukazuje, takže by se dalo říct, že se zkopíruje méněkrát. Tedy pro php 7.1:


    echo 'Start:'. memory_get_usage() . "\n";
    $array = array_fill(0, 100000, 'x');
    echo 'Allocked:'. memory_get_usage() . "\n";
    function case1($array)
    {
    $array[0] = 1;
    echo 'Changed:'. memory_get_usage() . "\n";
    return $array;
    }
    $array = case1($array);
    echo 'End:'. memory_get_usage() . "\n";

    Start:358720
    Allocked:4553120
    Changed:8747488
    End:4553120

    Pokud bude proměná vrácena z funkce do nové, 'End' bude samozřejmě 8747488. Opět přijde na zkopírování. Ale pokud je použita PHP Reference:

    echo 'Start:'. memory_get_usage() . "\n";
    $array = array_fill(0, 100000, 'x');
    echo 'Allocked:'. memory_get_usage() . "\n";
    function case2( & $array)
    {
    $array[0] = 1;
    echo 'Changed:'. memory_get_usage() . "\n";
    }
    case2($array);
    echo 'End:'. memory_get_usage() . "\n";

    Start:353328
    Allocked:4547728
    Changed:4547752
    End:4547752

    Jak je vidět, při předávání proměných a jejich změnách, byť nepatrných může usage vyletět na násobky ...

  • 2. 10. 2018 0:51

    Miloslav Ponkrác (neregistrovaný)

    Což je přesně to, co jsem napsal. Pokud se pole nemění, můžete si jeho kopii předat klidně miliardkrát jako parametr funkce/metody, a žádná paměť se nealokuje. Stačilo umět číst, a nemusel jste mi odporovat, abyste zjistil, že mám pravdu, a následně se mnou souhlasil.

    Pro mě jsou hlavně cennou zkušeností počty plusů a mínusů pod mým příspěvkem, kde jsem to napsal. Momentálně je tam vidět, že pouze 1 (plus) člověk něco umí, a 5 (mínusů) lidí umějí kulové a neví, která v programování bije.

    Vy jste nakonec zjistil, že mám pravdu.

    A já vám ještě prozradím sladkou novinu, že toto zdaleka není vlastnost jen PHP. Stačilo by o tom programování něco vědět.

    Ale nenechte se pánové rušit. Dále nadávejte na mladé, jak nic neumějí. Je to v kurzu. Když ještě přidáte plačky, jak jsou ženy v IT diskriminovány, a do toho si zanadáváte na Linuse Torvaldse, jak hruše se chová - tak jste zcela moderní a progresivní kousci.

  • 2. 10. 2018 7:12

    null null (neregistrovaný)

    @Miloslav Ponkrác

    No, konkrétně u PHP jsou ty pravidla pro interní reprezentaci dat. typů a hodnot lehce složitější a změnily se podstatně mezi verzemi 5.* a 7.* ale nenech se rušit v přepočítávání nějaký +/-

  • 2. 10. 2018 7:36

    Miloslav Ponkrác (neregistrovaný)

    Je zvláštní, kolik keců naděláte. Přitom já jsem psal průzračně a jednoduše, a nezpochybnili jste ani čárku z toho co jsem napsal. Kolik slovní vaty a slovní mlhy se snažíš vypouštět, abys to nemusel přímo napsat.

    Takže se nenech rušit v nadávání na to, jak je mládež špatná v programování.

  • 2. 10. 2018 8:13

    null null (neregistrovaný)

    @Miloslav Ponkrác

    1. Nauč se číst, já se mládeže zastal s tím, že je to o lenosti a hlouposti, nikoliv o věku, rozumbrado
    2. To co jsi napsal platí jenom pro php 7+ . Pro php 5 to tak úplně neplatí protože ta používá tabulky s odkazy ta uložené proměnné, takže jakákoliv alokace způsobila nárust paměti - ne přímo o samotnou proměnou, ale o zápisy do jednotlivých tabulek - byly 2, tedy : 2 * 8 B tuším per nová proměná ... nevysvětli jsi nic krom toho že dokud proměnou nezkopíruješ tak se nevytváří nová, ale o tom jak pracuje s interními referencemi - což se liší pro php 5 a 7 jsi neplácl ani to "liší se" ... takže výsledek je akorát tvoje polomoudro které ví 3/4 programátorů které to aspoň trochu zajímá a ještě napůl správně + samozřejmě hromada keců, urážek a šťopuchanců.
    3. V souvislosti se spatlanými programy nebyla řeč jenom o alokaci proměných ale absenci správných návyků vůbec.

  • 2. 10. 2018 8:44

    t (neregistrovaný)

    Miloslav Ponkrác
    Zpochybnil. Vy jste v prvni vete psal ze na referencich nezalezi. At tak ci tak, ze se predava vzdy pointer. A ja proste jen ukazal ze zalezi a to jako dost. Takze pouziti referenci proste znacne zmensuje uziti RAM konkretne v techto pripadech a to u jakekoliv appky je vitana vlastnost. Psal jste i o COW, coz samozrerjme taky funguje, ale nevyvraci to fakt, ze na referencich proste ZALEZI a basta fidli. Ad slovni vata. no pokud vam vadi 4 ukazky kodu, mereni a vysvetleni predrecnika, poridte si ctecku psaneho textu, ta vam to precte a nemusite cist slovni vaty. :) A nebo to proste nectete a je klid.

  • 1. 10. 2018 16:15

    Petr M (neregistrovaný)

    Jj, denšní produkti VŠ ani netuší, že třída (rep. instance objektu) má nějaký overhead v podobě tabulky metod, VMT, volitelně tabulky se jmény metod/atributů,... Pak se používá třída místo struktury a najednou se swapuje, i když je tam jenom zlomek toho, co vezmou v paměti čistý data.

  • 1. 10. 2018 17:11

    null null (neregistrovaný)

    @Petr M

    Záleží jak kde (jazyk) se s datovými strukturami zachází ... Ale obecně ano, čím víc balastu, tím víc balastu no ... Někdy to zase pomůže čitelnosti a vůbec ... Člověk u toho prostě musí přemýšlet ....

  • 1. 10. 2018 20:28

    j (neregistrovaný)

    2Kentan z Montargi ...

    "Záleží jak kde (jazyk) se s datovými strukturami zachází ..."
    "Spíš mluvíš jako zapšklý pamětník, který moc neví o dnešním programován..."

    Zalezi jenom na tom, ze ten debil co ti pise o tom nema ani paru. On vubec netusi ze to neco sezere pamet. A pricina je mimo jiny prave v tech jazycich, ktery vsechno delaji "samy", takze ten patlal vubec nevi, ze to nekde alokuje pamet. Jeste horsi sou pak vytvory, ktery ani neumoznujou s tim neco udelat, protoze prece GC a dalsi krutoprisny samoserozni veci. Pak to vypada tak, ze hello world ma 8MB ... a nedelam si prdel ani trochu vyzkousej si to, nahod si posledni visualko od M$, mozna se ani do tech 8MB nevejdes. To co ve skutecnosti ani zdaleka nepotrebuje ani 1kB.

  • 1. 10. 2018 20:43

    null null (neregistrovaný)

    @j

    IMO nemůžeš debatu o výhodách a nevýhodách vyšších programovacích jazyků, byť jenom o alokaci paměti a GC, sploštit na velikost "Hello World". To je v praxi něco jako "pokusy platné ve vakuu".
    Kdybys pak takovou velikostní soutěž chtěl vyhrát, tak to napiš v asembleru a máš vyhráno - dokud v tom nebudeš muset napsat třeba web Amazonu kde se každý den věci přidávají a mění s důrazem na uživatele a výdělek, nikoliv velikost v [kB] nebo [MB] když jenom denní pohyby dat mezi uzly mají v [TB].
    Automatická správa paměti má své výhody a své nevýhody, záleží na tom na co a kde to potřebuješ.

  • 2. 10. 2018 7:45

    Miloslav Ponkrác (neregistrovaný)

    A jsou lidi s pomýlenými názory, kteří si myslí, že objekt/třída = automaticky neefektivita a overhead. I takoví se vyskytují mezi námi.

    Jsou lidí, kteří si pletou syntaktický cukr programovacího jazyka (třeba třídy) a myslí si, že to automaticky povede k neefektivní binárce a velké spotřebě paměti.

    Objektové programování je především programátorské paradigma, nikoli nutně neefektivní program s enormní spotřebou paměti.

    To budou asi ti nezkušení a neznalí mladí programátoři, co nic neumějí...

  • 2. 10. 2018 0:00

    vládík (neregistrovaný)

    já si zrovna nevzpomínám že bi ucitel na hodině ukazoval použití struktur párkrát se o tom sice zmínil ale příkladů na to moc nebylo obvikle to bylo stylem :
    class <nazev> {
    <typ> pronenna {get;set;}
    ...
    }
    zajímavé taky je že u jednoho příkladu (pohyb autíček(libovolného počtu) po dráze) jsem od učitele slišel že to nejde udelat bez listů a tríd a přitom z vlastní skušenosti vím že hodně věcí jde udělat bez struktur/tříd a to stilem:
    float []polevektoru_x;
    float []polevektoru_y;
    ...
    a ten libovolnej počet jde řešit tím že naklikat tam 10000 objektů to by si komise teda dala práce aby zjistili že to spadne

  • 2. 10. 2018 0:56

    Miloslav Ponkrác (neregistrovaný)

    Petr M. >> "Jj, denšní produkti VŠ ani netuší, že třída (rep. instance objektu) má nějaký overhead v podobě tabulky metod, VMT, volitelně tabulky se jmény metod/atributů,... Pak se používá třída místo struktury a najednou se swapuje, i když je tam jenom zlomek toho, co vezmou v paměti čistý data."

    Vy z toho programování také moc neumíte, že ne?

    Ve velké řadě programovacích jazyků nemá třída oproti struktuře overhead naprosto žádný, pokud se budeme bavit o datových členech (atributech). Objektové programování není primárně o neefektivitě.

  • 2. 10. 2018 7:49

    null null (neregistrovaný)

    @Miloslav Ponkrác

    Primárně ne, přesto tam nějaký impact je. Neznám ale všechny jazyky evidentně na rozdíl od tebe ...

  • 2. 10. 2018 7:50

    Petr M (neregistrovaný)

    Z principu, třída má vždycky overhead. Obsahuje metody (= funkce a nějakou strukturu ukazatelů na ně) a atributy (tam se to neliší od struktury s daty až na to, že je tam pár ukazatelů navíc - metody atd.). Navíc funkce, která implementuje metodu, musí mít skrytý parametr s odkazem na datovou strukturu (this v C++, self v ObjectPascalu,...).
    Pokud zavedeš polymorfismus a dědění, tak se zavedou ještě tabulky VMT, reference na třídu předka apod.

    Hodně z toho sice dokáže vyházet kompilátor, ale v případě, že chceš několik instancí třídy, neobejdeš se bez předávání reference na data (tam je overhead minimální - v podstatě skrytý předání parametru funkce). Pokud máš jedu instanci, je to zbytečný overhead. A pokud chceš dědit, tak jinou možnost, než přidat VMT, v podstatě nemáš (a to už je často efektivnější DI nad prostými daty).

    V případě dynamické alokace třídy máš navíc k instanci ještě nějaký header na heapu, který je použitý pro správu paměti (minimálně velikost bloku + odkaz na další použitý blok), předpokládejme 16B v 64b systému. Uděláš pole[16] a máš na heapu režii 16B. Zavoláš v metodě pro init pole objeků 16x konstruktor a jdi kde? Storage třída + 16x datová třída, to je 272B jenom v režii heapu... 17x víc, než by zabralo prostý pole dané velikosti, získaný přes malloc.

    A čitelnost je diskutabilní. Bez použití tříd totiž nemusím dělat override indexace pole a podobný vopičárny, jde použít přímo nativní indexování v kompilátoru, inkrement pointeru,... Prostě je to pole, použiju data[5].size a je to.

  • 1. 10. 2018 20:21

    j (neregistrovaný)

    2ted: "...logy na serverech bobtnají, místo dochází, stroj swapuje jak o život."

    nj, to je easy, tak se prohlasi ze za to muze ddos a jede se dal. Priklad? Co te napadne ze se stane kdyz vydas novou hru? Nj, napadne i pomerne slusnyho blbce, ze bude naval ze? A PRESNE tady je moznost vyuzit ty cmoudy. Potrebujes vykon, ale potrebujes ho na 14 dnu, mozna mesic. Ale svist to ze to nefunguje na ddos je prece jednodussi, no ne?

    A cim to je? Mno on je totiz nikdo neuci myslet, ne do hloubky, ale vubec. Ale na tom se tak nejak nic nezmenilo, to neni zadna novinka, jen dneska mnohem vic lidi ceka, ze je jako v ty skole nekdo neco nauci, kdyz prave tam to ucej ti nejvetsi pitomci. Kdyby byli jini, tak prece nedelaj za 30 ucitele, kdyz muzou za 300 programovat. (BTW: chces jit ucit ucne drzet v ruce pilnik? Mno tak na to musis mit VS ... kdo toto "vymyslel" tak musel mit mist drzky opravdu velkou PYCU)

    Pred tema 30+ lety zadny skoly a it/programovani/... nebyly a tudiz se kazdej musel pekne vsechno naucit sam === sam si najit informace, sam si to vyzkouset. Dokonce i kdyz si chtel hrat hru, musel si hodne veci vedet a umet. Ne jako dneska ze si kliknes na ikonu a tim koncis.

  • 2. 10. 2018 6:14

    Miloslav Ponkrác (neregistrovaný)

    Marně přemýšlím, kde se mi zdál ten sen, když jsem se před 30 lety učil programovat na Západočeské univerzitě, když žádný školy IT/programování nebyly. A nutno říci, že to byla překvapivě dobrá škola. Tehdy lektoři na univerzitách byly špičky v oboru, ne jako dnes.

  • 1. 10. 2018 20:11

    j (neregistrovaný)

    2ted: Dnesni mladez uz neumi ano guuglit napisou svuj domaci ukol sem a cekaj ze tu dostanou vysledek.

    Navic naprosto netusej co vlastne dela HW, netusej ani co dela SW ... nemaj vlastne vubec paru o programovani, protoze jim voe nekdo rek ze za to voe bude skvara. Klidne se ti muze stat, ze prijde "programator" a netusi co to je smycka. Zato je schopnej se stebou dokrve hadat o tom, kterej "frejmwork" je lepsi.

  • 1. 10. 2018 20:46

    null null (neregistrovaný)

    @j

    Netušej. Z mého pohledu je jich nejvíce na webu už z podstaty použitých jazyků. Prostě se s tím nesetkají, dokud nedostanou trafic nebo nějaké větší data. To může trvat i několik let ...

  • 2. 10. 2018 11:02

    Karel (neregistrovaný)

    Kdyby jen netušili. Oni někdy i anti-tuší. To se pak dozvíte, že procházet všechny prvky ve smyčce by bylo pomalé, takže místo toho použili Linq s .Where a jako bonus přihodili .OrderBy.

    Touhle "magií jak zpracovat pole hodnot v konstantním čase" jsou prolezlí zejména uchazeči, co mají v životopise několik funkcionálních jazyků. Někteří si za tím dokonce stojí a sypou z rukávu termity jako "lazy evaluation" nebo dnes populární "paralelně".

    * Zaprvé je špatná škola, což je patrné už z obvyklé mantry "ve škole nás učili, že..."
    * Zadruhé jak píšete - nikdy nezpracovávali takový objem dat, aby se to projevilo.
    * Zatřetí jsem za to vlastně rád. Podstatná část mé pracovní náplně spočívá v ladění výkonu aplikací. Je to rok od roku snadnější. Ne že bych se nějak extra zlepšoval, ale profilery fungují rok od roku lépe a vývojáři tam sází čím dál tím větší boty. To pak stačí třebas vyměnit List za Dictionary, report rázem místo 20 minut běží 2 minuty a já mám splněno, protože report zase dobíhá dříve, než timeout uživatele odhlásí.

    Autoři by to mohli udělat také, ale prostě je to nenapadne a na 100 záznamech to funguje bleskově. Já ladím až na datech zákazníka, kde je záznamů třebas 20 milionů a místo 89 milisekund to běží čtyři hodiny. Profiler obvykle píchne prstem přesně na ten řádek, kde je problém. Kupříkladu minulý týden to byl jeden legrační substring. A ano, autor si myslel, že substring je oprace fungující v konstantním čase.

  • 2. 10. 2018 11:34

    null null (neregistrovaný)

    @Karel

    Dovedu pochopit že člověk který na to nemá školy (třeba nadšenec), nebo je snad škola kterou má špatná jak píšeš, že si na tomto prostě musí alespoň jednou vylámat zuby. Ale zlom podle mě přichází tehdy, když se s těmito tématy onen člověk setká, vykašle se na to, nejeví zájem a patlá dál ...