Zpět na seznam článků     Zpět na článek

Komentáře ke článku

 
 
 BBCode
marwyn | 82.113.54.*31.10.2012 13:31
Funguje to tak, že se překládá to, co je právě v daný okamžik potřeba - no tak prave takhle to nefunguje. Na cilovem stroji se pozadovana assembly prelozi cela do strojoveho kodu a vysledna binarka se ulozi v cache. Pri pristim behu programu uz se nemusi prekladat a bezi nativne z cache. K opetovnemu prekladu dojde pouze pri zmene assembly. Mozna by nebylo od veci si o tom neco precist, zacit muzes treba tady: [link] z cechoz vypichnu dve veticky: Prior to execution, MSIL is converted to machine code. It is not interpreted.
sukovanej | E-mail | Website | ICQ 42741845226.9.2012 20:26
K těm chybám - asi by bylo nejlepší, kdybys mi osobně napsal na email. (na profilu zde na webu je tuším uveden)

To, že mám rád přírodní vědy, nemusí nutně znamenat, že jsem inteligentní - co víc měl jsem víceletou zkušenost se spolužákem, který měl doma chemickou laboratoř a zajímal se o kvantovou fyziky, ale byl opravdu bez vší shovívavosti tupý jak poleno :D.

Na druhou stranu opravdu nejsem idiot. Moc sice nechápu vztah mezi puntičkářstvím a matematikou, ve které to mimochodem bývá právě naopak (musí se dávat velký pozor na to, kolik je výsledků, protože dost často jich může být stejně třeba 5 jako nekonečně mnoho a ne jeden).

Máš naprostou pravdu, jsem docela líný člověk. Ovšem přesně takovou vlastnost by měl každý programátor (ač tímto směrem jdu pouze částečně) mít, ne ? :)

Rychlost je otázkou času, kterého já kvůli studiu a aktivit nemám opravdu na rozdávání. Komentář mě určitě neodradil! Byl věcný, což je u mnoha uživatelů naprosto neznámé adjektivum.
w0ng26.9.2012 19:48
Těch chyb je tam spousta. Možná jsem to trošku přehnal i já. Možná jsem se moc vrhnul na tebe, když mě rozčiluje ta tvoje čeština, ale taky pravopis dalších 5 milionů lidí tady v ČR. Nic to ale nemění na tom, že pokud něco dáváš na web, měl by sis to přečíst.

To, že máš rád přírodní vědy, ve mě evokuje, že bys měl být inteligentní (pochopit co se jak píše) a tak trošku puntičkář (výsledek třeba v matice je většinou správný jen jeden). Proto je vidět jen to lajdáctví, to mě trošku rozčílilo. Ale spíš jako osobní útok to ber jako povzdech nad obecnou situací.

C# mám rád, doufám, že tě tyhle komentáře neodradí a budeš pokračovat! BTW vůbec si nereagoval na moje doporučení o zrychlení.
sukovanej | E-mail | Website | ICQ 42741845226.9.2012 19:29
No, jelikož jsem se už tak hloupě představil a neprávem nařkl kolegu splite, tak si nechci ještě více zvýšit svoji reputaci pesimisty, cholerika a egoisty...

Ovšem, už jen to, jakým způsobem jste napsal komentář...
Mám pocit, že buď Váš operační systém nezná češtinu, nebo Vy neznáte diakritiku.

Stejně tak ale přiznávám, že nejsem dokonalý. Co víc, čeština je ta poslední věc, která mě zajímá. Jsem spíše přírodovědně založen, což mě ale neopravňuje dělat v článku chyby.

Spíše mi napište, kde konkrétně jsem udělal chybu a obratem ji opravím :).

Mimochodem, ještě jednou se omlouvám spite-ovi. Doufám, že si ještě popovídáme u dalších článků. Mám teď dokončen díl typu Hello world, na kterém není, co vymýšlet, ale v dalších dílech se zkusím řídit, jak Vy říkáte, "lvl2" způsobem tutoriálu.
w0ng26.9.2012 0:33
Souhlasim, ze moc cz tutorialu na „vyssim levelu“ neni, hodil by se. Kazdopadne je toho dost na to, aby se clovek dozvedel vse dulezite pro slusny zacatek a stihl se treba naucit anglicky :-).

Chapu, ze toto „dilo“ ma byt urceno pro zacatecniky.. Opravdu bych se presto nebal trosku zrychlit.

Co me ale NEHORAZNE IRITUJE, kdyz uz je to v sekci „clanky“ je ta cestina!!! Opravdu nemas cas si po sobe vsechno jednou precist, nez to sem hodis? Nebo to nepomaha? Ja bych se pod tohle opravdu nepodepsal!

Jelikoz se stejne chystam cist asi vsechny dily, opakovani je matka moudrosti (doufam ze se dostaneme nekam dal, i kdyz timhle tempem :-\..), nabizim, ze kdyz mi (vecer, nez to budes chtit upnout) posles text, obratem ti ho poslu zpet s opravenymi chybami.

Opravdu si myslim, ze buh vynalezl pravidla cestiny, aby poznal debily na prvni pohled. Kazdopadne chapu, ze clovek z roztrzitosti neco prehledne.

Jestli to planujes na vic nez 3 dily (takovy smutny standard), doporucuju zrychlit a zvazit moji „nabidku“. :-)
splite | 92.62.224.*25.9.2012 17:29
Ah, tak to nemělo vyznít jako nadávání na autora, nedej bože kvůli věku (A bez explicitního upozornění... Nikdy bych si toho nevšiml a ani mě nenapadlo to jakkoliv zkoumat, proč taky... Ale egoista jsem.) to se omlouvám, bylo to nadávání na "všeobecný přehled" který světu .net vládne. A ten je občas mizernej - třeba opět ten GC - v c++ si každý psal GC sám, staral se o alokaci jak o vlastní dítko a věděl, jak to funguje. Když to někde leaklo, dalo se to s jistým úsilím dohledat. V MS slíbili, že starost o alokaci paměti je prehistorická věc a že to mají pořešené. Nemají. Teda mají, ale nejde to střílet úplně bez rozmyslu. Problém je, že se to tak na první, "začátečnický" pohled zdá - a když to leakne, hledejte za který event to kde visí... Když nám v rámci honění trika nedali ani weak delegáty - ten paskvil co za weak delegáty vydávají, jednou tam jsou a jednou ne aniž by GC proběhlo, to se nedá uznat. Pak na codeplexu najdete dokonalou knihovnu která vám i vyvenčí psa, jenže oni při návrhu nemysleli na GC... Takže je mimo ty kalkulačky nepoužitelná.

Právě že já se k GC taky dostal později a s hrůzou jsem si uvědomil, co všechno jsem dělal absolutně špatně. Kdyby někdo na začátku řekl "hele, ale bacha!" tak všechno mohlo být jinak.

Vycházet z toho, že typický čtenář lehce hackerského soomu v životě neviděl datový typ je trochu... Ehm... Právě proto bych se nebál "lvl 2" tutoriálů. V češtině jich moc není, i když jestli někdo chce dělat v c#, češtinu stejně moc neřeší...

A ten nativní? Ona to zas až taková hloupost není, jen je to dost hudba budoucnosti. CLI interpreter (sic! :D Já vím, on to interpreter není, ale když už jsem v tom urážení .net... Náš Senior programátor vždy říkal, že interpreter se pozná podle toho, že si for() neprochází jako cyklus, ale jako dloooouhou sadu. A byl překvapený, že třeba Java už to nedělá. No, jsme asi mladí a máme posunutou hranici čemu se dá nadávat do interpreterů :) ) pro linux už jakž takž je, takže proč nejít o krok dál. Jde jenom o nástroj co převede push&pull stack systém do registry systému, což samozřejmě není vůbec nic "jen složitého", je to přímo extrémní, ale třeba jednou... Jen taková šuškanda, co se ani nedá citovat.
sukovanej | E-mail | Website | ICQ 42741845224.9.2012 19:32
Tak jednak bych byl shovívaví s použitím slova interpret v souvislosti s .Netem ! A že by se dalo v .Netu psát nativní kód ? Podle mě, blbost největšího kalibru...

Co dodat na zbytek komentáře... Je to seriál pro začátečníky, proboha! No já nevím jak Vy, ale já se ke Garbage collectoru dostal trochu později a ze všeho nejdříve mě zajímala samotná algoritmizace a struktura jazyka.

Stejně tak dále LAMBDA funkce, delegáty...

Já v seriálu počítám s tím, že čtenář v životě neviděl datový typ. Jsou to možná pěkné návrhy na díly o jeden řád výše, ale nyní je to naprosto irelevantní.

Jakože i s tím JITem souhlasím, ale to je opět záležitost pro programátory, kteří se dostali přes programování kalkulaček. Když člověk dělá aplikaci, kde jsou pro samotný běh programu ze začátku potřeba nějaké dll (a nedej bože externí), je jasné, že to potrvá déle.

Jinak jde vidět, že o tématu něco víte, o to nic. Ale příště bych to prosil bez té polevy a spíš se mi zdá, že tyto věci sdělujete mě, než čtenářům. Mě to říkat nemusíte, rád se přiučím, ale (s prominutím) idiota na základě nějaké věkové diskriminace a egoismu za mě nikdo, prosím pěkně, dělat nemusí !
splite | 92.62.224.*24.9.2012 9:56
Noooo, někde jsem četl že by interpreter mohl odpadnout, že by se snad dalo překládat i do nativního jazyka, ale ruku do horké vody za to nedám.

JIT: Tak to píšeš pěknou ptákovinu, to je čistá demagogie od m$, tohle může platit u aplikace typu hello world, ale když děláš něco podstatně složitějšího, stejně se bez ngenu (což je nástroj od ms - takže JIT je v pohodě, ale tady kluci radši máte kompilátor) a optimalizace při instalaci neobejdeš. A pak ještě nadáváš na pomalé HDD, protože čistý WPF projekt po založení referencuje se všemi depandency kolem devadesáti .dll - takže pokud přihodíš své další, klikneš na .exe nic se pět sekund neděje (ani preloader nenaskočí protože probíhá JIT kompilace a "on-the-fly" se na hdd hledá těch 90+ knihoven), takže si klikneš ještě párkrát s tím že "asi zamrzlej dvojklik" - no a pak jen koukáš jak se ti pouští pět programů.

Jinak doufám, že přestože basic tutorial, tak nás provedeš skrze největší špeky c# :) Konkrétně třeba GC, který je sice fajn, ale ať si MS tvrdí co chce, rozhodně se na paměť musí myslet páč GC vyžaduje slušné zacházení s eventy / bindingem atd, no však píšeš tutorial k c# tak víš :) Oficiálně má Dispose odhlašovat jen nemanažované věci, ale... Eh... To prostě nejde. A pak ten nechutnej "bug" s fragmentací big heapu - dvoumegová c# aplikace se dá "bugnout" tak, že udělá OutOfMemory. To se nám tedy v praxi ještě nepovedlo, ale je dobré o tom vědět.

Ještě z patra špeky jsou lambda extension funkce - kupříkladu .Single() - stáhni dotPeak a dekompiluj si jí, to je NESKUTEČNÁ prasárna. Z paměti vypadá nějak takhle:


public static T Single(this IEnumerable<T> input, Func<bool, T> delegate)
{
bool dupl;
T result;
T def = default(result);

foreach(T item in input){
if(delegate(item))
{
if(result != def)
result = item;
else
dupl = true;
}
}
if(dupl)
throw new Exception("single není single");
return item;
}


Tak - a teď si představ, že máš kolekci s 1.000.000 tříd kde první a druhá jsou duplicitní (a tohle už je z praxe, bylo jich teda asi jen 400k ale stejně) a nějaký pěkný, netriviální delegát který třeba něco počítá - co to udělá? Na první krok iterace najde "zásah", na druhém najde duplikaci - a každej normální člověk by řekl, že dál už se iterovat nemusí, protože DALŠÍ duplikace mě nezajímají, vím že není single a víc mě nezajímá. Ne tak lidé od m$, ti si proiterují i zbylých 999.998 itemů. Úplně zbytečně. To je optimalizace že bych plakal.



On c# je príma jazyk. To určitě. Dělám v něm osm hodin denně už cca třetí rok. Jen se musí umět používat. Na miniaturní aplikacích se ty největší boty nestihnou projevit, ale jsou tam a u středně velkých až větších už o nich opravdu musíš vědět, jinak šeredně zapláčeš.

Stránky: 1