Portál AbcLinuxu, 30. dubna 2025 20:04
Tiskni
Sdílej:
Navíc on ten HW není až tak brutální, jak si někdo možná myslí, rozhodně to není desetikánosek nejakého lowend, spíše dvojnásobek. A na dostatečně velkých testovacích datech se problém projeví tak jako tak, to obvykle nelze pomocí HW dohnat.Ale u desktopovych aplikaci, o kterych je tu rec, muze byt problem sehnat vetsi testovaci data. Ja treba si nemyslim, ze jsou vsechna ta IDE napsana zrovna efektivne, protoze vidim, jak rychle se to vyviji. Uz to samo o sobe je problem. Navic co jsou dobra "testovaci data" pro odezvu IDE? O tom to prave je. Je jednodussi vzit opravdu velky program a v IDE ho otevrit, vyzkouset zda se to da pouzit, a napsat, ze to proste chce ty a ty HW pozadavky. Co na tom, ze efektivita se nekde ztratila.
Co na tom, ze efektivita se nekde ztratila.Jj teďka programuju PICy. Nejvíc mě fascinujou ty super nadupaný programátory, zvláště když já mám zastrkaný drátky do LPT portu
Ono asi trošku narazíš, až budeš chtít ty dráty do LPT připojit k notebooku.No problemo. Většina notebooků má GPIO, stačí vyvíst. Pokud bych fakt chtěl vyvíjet na notebooku PICy, tak bych stejně asi potřeboval tyhle starý porty. Minimálně bez sériáku bych se neobešel, a přes něj to jde taky.
A není jednodušší připojit jednoho brouka do USB než hledat GPIO uvnitř notebooku (a přijít o záruku)?No jenže usb převodníky (třeba LPT) je dost drahá sranda. Najít GPIO není zas takovej problém. BTW to mě připomíná, že jsem chtěl přenášet data po zvukovce...
A když už máme toho brouka v USB, proč mu neudělat trošku chytřejší firmware?Tohle bych nepsal někomu, kdo se už měsíc snaží napsat vlastní USB stack a je z toho mírně agresivní
Ach... ty vlastně nechceš použitelný nástroj... tak to jo.No já nevím, školní usb programátor pro FPGA desku (obsahuje asi nějakej FTDI nebo uC) se zablokuje pokud se nevhodně pustí programování a neodblokuje se ani po rebootu. Musí nastat unplug. Takže třeba práce přes vzdálenou plochu je taková ruská ruleta.
BTW to mě připomíná, že jsem chtěl přenášet data po zvukovce...Jak to chceš modulovat?
Chtel jsem tím demonstrovatNo to nemusíš. To už jsem zkoušel. Jen je problém že neodhadneš hlasitost a že většina převodníků je δ-σ, takže potřebuješ dobrou modulaci (i kvůli šumu co se přidává po drátě). Jinak hudba jde prát i do LPT (resistor-ladder…základ všech moderních DAC) – to už jsem zkoušel taky.
ta sw implementace USB do atmegy je kdo ví jaká..někdy to jde, někdy ne.. lepší je hodit tam rovnou ft232r a mít po problémech..
tak tak člověk si ušetří občas dost problémů jak s hw tak sw na PC
navíc ft232r může být i opticky oddělen.. vím že třeba usbasp programátor chodí dobře, ale sw usb bootloader v atmega128 mi nechodil téměř vůbec
takže než se pak trápit, tak tam nacpu ftčko a je to
nezbytné nářadíza které ostatní budou muset platit desetitisíce a ještě bude schopen si ho přizpůsobit dle požadavků (za to se myslím chtějí další desetitisíce). Tolik k tvému širokému rozhledu.
mě MCU programování prozatím i jako studenta živí, takže myslím, že mám rozhled docela dobrý. Je pravda, že bych ho neměl, kdybych to do teď dělal jako koníček na drátkách z lpt
Nejvíc to bude vidět na vývoji pro jednočipy nebo třeba mobily – na pomalém PC ti bude IDE sotva choditCoz ale je v podstate jen dusledek toho, ze vyvojare toho IDE nikdo nenutil pouzivat to IDE na pomalem PC ;–) .
museli pálit mozkový čas při návrhu takového IDE místo času procesorového (jeden důkaz za všechny: GNU)
Můžete mi osvěžit paměť? Jaké IDE vyprodukoval GNU projekt? (preventivně: případnou odpověď "Emacs" beru jen jako hloupý vtip).
Jeden moloch s jedním názvem? Žádný. Provázané malé programy? No skoro mě to nutí říct, že IDE s názvem GNU.
Asi bude nejprve potřeba vyjasnit si pojmy. Takže co podle vás znamená to "I" ve zkratce IDE?
Emacs není IDE, ale OS.
Hm, takže Emacs řeší správu paměti? Správu procesů? Filesystémy? Síťovou komunikaci? Drivery pro hardware? Ono občas nezaškodí se trochu zamyslet, než člověk zopakuje nějaký hloupý vtip, a rozmyslet si, jestli je na něm aspoň něco málo pravdy…
Asi bude nejprve potřeba vyjasnit si pojmy. Takže co podle vás znamená to "I" ve zkratce IDE?Jedno okno nebo
good for noobs? To asi těžko.
Hm, takže Emacs řeší správu paměti? Správu procesů? Filesystémy? Síťovou komunikaci? Drivery pro hardware? Ono občas nezaškodí se trochu zamyslet, než člověk zopakuje nějaký hloupý vtip, a rozmyslet si, jestli je na něm aspoň něco málo pravdy…insmod lepsi_nalada.ko && insmod trocha_smyslu_pro_humor.ko. Jestli dneska při vstávání někoho něco kouslo do nohy nebo do řiti, tak je mi to sice líto, ale vinen tomu kupodivu nejsem.
Jedno okno nebo "good for noobs"? To asi těžko.
Pokud jsem něco zásadního nepřehlédl, jediná zmínka o IDE v tom odstavci má u sebe poznáku "who?" s odkazem na "avoid weasel words". Což je přesně podstata mé námitky: vývojové prostředí - beze všeho. Ale integrované?
Aby bylo jasno: netvrdím, že je IDE nutností nebo správnou volbou, a sám už pár let žádné nepoužívám. Ale považuji za nesmysl vydávat za IDE něco, co je de facto jeho pravým opakem. IDE vznikla právě proto, aby zastřešila do jednoho rozhraní sadu různýc nástrojů (editor, překladače, linker, debugger, profiler, …). Jestli je to lepší nebo horší, to je složitá otázka; ale rozhodně je to něco jiného.
Jestli dneska při vstávání někoho něco kouslo do nohy nebo do řiti, tak je mi to sice líto, ale vinen tomu kupodivu nejsem.
Což ovšem nic nemění na to, že prohlášení Emacsu za operační systém v sobě nemá ani tu špetku pravdy, která je pro dobrý vtip potřeba. To už má Emacs blíž k tomu IDE…
Pokud jsem něco zásadního nepřehlédl, jediná zmínka o IDE v tom odstavci má u sebe poznáku "who?" s odkazem na "avoid weasel words".Spíš my šlo ukázat o to, že je tu i jiný názor (jehož zastáncem já jsem) i když ještě asi uplně ne s ostrými hranami.
Ale integrované?Definuj! Co je přesně ta integrace? GUI? Pro ty co mají klávesnici před monitorem jen z důvodu zpětné kompatibility určitě. Že všechno vypadá jako že to patří do jednoho balíku? Když si Microsoft, tak určitě. Co potom Dev-C++ (co si odmyslíme ten one-hand udělátor)? A co když integrovanost spočívá v tom, že všechny programy se ovládají jediným myšlenkovým principem (stejné zkratky, příkazy, filozofie, usw.) a dají se mezi sebou propojovat (jakože Qemu je schopné nabídnout port na attachnutní GDB (ale jako i třeba terminálu – to všechno patří do té filosofie), které zase dovede použít Emacs pro mixování kódu a assembleru, které využívá objdump pro disassemble…) To není integrovanost? IMHO víc než u některých IDE. Zvláště když se stačí naučit princip u jednoho z nich a vše ostatní už jde tak nějak samo od ruky. Jaký je reálný rozdíl v programu, nástrojích a modulech pokud nepočítám písmenka?To IMHO také byly cíle GNU projektu před tím než vůbec nějaké GNU existovalo. Holt to zatím trošku drhne, ale co v reálném světě binární je, že?
aby zastřešila do jednoho rozhraní sadu různýc nástrojů (editor, překladače, linker, debugger, profiler, …).Všechno to myslím začalo jako GNU Compiler Collection (což je víc nástrojů, ne jeden), pak se začali přidávat i jiné nástroje, pak nástroje, které výslovně nepatřili do GNU,… No tak holt ne Enviroment, ale Collection. Jaký je rozdíl?
Což ovšem nic nemění na to, že prohlášení Emacsu za operační systém v sobě nemá ani tu špetku pravdy, která je pro dobrý vtip potřeba. To už má Emacs blíž k tomu IDE…Ew, bite me!
jako bysteJo, jo. Bysme (bychom ať se vyhnu ještě nějakému nacistovi) toho přehlédli. Kdybychom jen mohli. Ale no ták.
Jo, jo. Pamatuju ještě takový malí editor VRML z dávných dob. Ten ten kód též důmyslně chápal a dovedl perfektně napovídat. No nakecal toho fakt tuny. Se docela divím, že takový modul za ta léta do Emacsu/Vimu/čehokoliv ještě nikdo nenapsal.očekávám od toho napovídání*
které vychází z toho, že editor „chápe“ třídy a metody – ne že jen hloupě napovídá slova, která se vyskytují v souboru/projektu.
proklikávání se ke zdrojákům volaného kóduCo to? Shell ti nestačí?
kontextové zobrazování dokumentace k metodám/třídám/proměnnýmJá si vystačím s man a info. Asi budu divný.
neustálou kompilaciSi nacpi GCC do cronu, když ti to něčemu pomůže.
Podle některých tady jsou ti programátoři líní/neschopní a jejich programy jsou pak hardwarově náročné – jenže zatím se prostě nenašel nikdo tak schopný a pracovitý, aby vytvořil program se stejnou funkcionalitou a menšími hardwarovými nároky. Tak co mám dělat jako uživatel toho programu? Nepoužívat „nenažraná“ IDE, vzdát se těch funkcí a používat programy, které spotřebovávají minimum zdrojů? Nebo raději používat to „neefektivně“ napsané IDE, které i přes to funguje na mém několik let starém počítači dobře, svižně (je to použitelné a ještě tu je celkem velká rezerva)?Omyl. To je už několik let staletí trvající boj mezi dvěma skupinami. Myslíš, že to je jen v oblasti programování? Pche. V strojírenském oboru je to ještě horší. Tvůrci (povětšinou jednotlivci) malých, ale důmyslných a promyšlených zařízení co si vystačí s tužkou, papírem, pravítkem a strojírenskými tabulkami vs tvůrci obřích komerčních mrch, které se dělají na Pro/E, Catích či jiném softwaru za statisíce, ne-li milióny (, které sami stojí statisíce, ne-li miliony) co se najednou nedají vyrenderovat ani na nejnovějších grafikách a co mají jednou rukou věčně podepřenou hlavu a druhou klikají nějaké předdefinované šroubky (teda aspoň z pohledu první skupiny) na tom obřím bastlu. Bastl je samozřejmě drahý, nákladný, těžký, funkčnost všelijaká, ale většinou ne moc svižná (kdo najde podobnost s Firefoxem, ten má dva bludišťáky ode mně).
indent
(ten najde syntaktické chyby typu nezavřená závorka) a méně intenzivním používáním make
(tam se pak najde ostatní). Bod 3 je v pohodě dokud používám GNU knihovny (tam stačí man a info), u "3rd party" už to bývá horší a neustálé přepínání do browseru není to pravé...
bod 4 jsem řešil indenzivním používáním indent (ten najde syntaktické chyby typu nezavřená závorka)Neexistoval on kdysi v dávných dobách na to jakýsi udělátor co se snažil vehementně vynutit z gcc nějaký objektový kód (line samozřejmě označil) a nedal pokoj dokud ho nedostal? Osobně to dělám také tak. Chyba v programu je jen do té doby než z toho GCC vykouše nějaký kód.
Bod 3 je v pohodě dokud používám GNU knihovny (tam stačí man a info), u "3rd party" už to bývá horší a neustálé přepínání do browseru není to pravé...Na to snad i existuje nějaká iniciativa, ne? Doxygen myslím? Ale jinak propojovači trubek z jedné strany na druhou (trubka nebo API knihovny/frameworku, jaký je rozdíl?) jsou odsouzeni k dlouhé a bolestivé záhubě, takže proč se jimi zabývat?
Neexistoval on kdysi v dávných dobách na to jakýsi udělátor co se snažil vehementně vynutit z gcc nějaký objektový kód (line samozřejmě označil) a nedal pokoj dokud ho nedostal? Osobně to dělám také tak. Chyba v programu je jen do té doby než z toho GCC vykouše nějaký kód.Jako, že by to upravilo překlep:
xval=1; yval=2; write(xyval+3.14);na
write(xval+3.14);nebo
write(yval+3.14);Brrrr.
Ale jinak propojovači trubek z jedné strany na druhou (trubka nebo API knihovny/frameworku, jaký je rozdíl?) jsou odsouzeni k dlouhé a bolestivé záhubě, takže proč se jimi zabývat?To myslíš jak?
Jako, že by to upravilo překlepTo je chyba logická, ne syntaktická. Od toho mám zase GDB, protože jsem líný přímo něco psát do kódu a znova ho kompilovat.
To myslíš jak?No to radši ani nechtěj vědět.
Navíc jsem myslel z nějakého neznámého důvodu, že chceš aby to ten program snažil opraviProč bych to proboha dělal?
jakýsi udělátor co se snažil vehementně vynutit z gcc nějaký objektový kód (line samozřejmě označil) a nedal pokoj dokud ho nedostal?Tomu moc nepomohlo
Co to? Shell ti nestačí?Nestačí. V mém editoru (IDE) najedu kurzorem např. na volání metodu a jedním kliknutím nebo klávesovou zkratkou přeskočím na její zdrojový kód.
Já si vystačím s man a info. Asi budu divný.Totéž – nemusím se přepínat jinam a tam vyhledávat např. název metody (který si musím buď zapamatovat a ručně zadat nebo zkopírovat přes schránku). Stačí někam najet myší/kurzorem na místo, kde se metoda volá, stisknout klávesu a v plovoucím okně vidím dokumentaci k metodě, její parametry atd.
Si nacpi GCC do cronu, když ti to něčemu pomůže.Jednak je to dost těžkopádné řešení a jednak by bylo potřeba ještě nějak dostat informaci o chybách do editoru – aby se podtrhly chyby. A ve výsledku pak bude to volání kompilátoru (samostatní proces) a předávání výsledku (případných chyb) do editoru (jiný proces) hardwarově více náročné, než když IDE volá kompilátor interně pomocí jeho API. Neříkám, že se bez těchto „vymožeností“ nedá programovat, ale řekl bych, že je to o úroveň pohodlnější a příjemnější práce a umožňuje to člověku se víc soustředit na vlastní programování než na obsluhu nástrojů.
Nestačí. V mém editoru (IDE) najedu kurzorem např. na volání metodu a jedním kliknutím nebo klávesovou zkratkou přeskočím na její zdrojový kód.GDB ti zobrazí u metody název modulu (cestu) a číslo řádku (většinou už stačí napsat jen příkaz line a sprostě to okopírovat když ti funguje gpm). Věřím, že kdyby GDB umělo klikat, tak to bude dělat právě tak. Ostatní programy/moduly/nástroje to mají většinou obdobně.
Totéž – nemusím se přepínat jinam a tam vyhledávat např. název metody (který si musím buď zapamatovat a ručně zadat nebo zkopírovat přes schránku). Stačí někam najet myší/kurzorem na místo, kde se metoda volá, stisknout klávesu a v plovoucím okně vidím dokumentaci k metodě, její parametry atd.Znovu: Nevím co Emacs, ale vim jednoznačně klikat neumí. Proto má příkaz man jen tři písmenka (a dá se volat přímo z emacsu jestli si to ještě dobře pamatuju).
A ve výsledku pak bude to volání kompilátoru (samostatní proces) a předávání výsledku (případných chyb) do editoru (jiný proces) hardwarově více náročné, než když IDE volá kompilátor interně pomocí jeho API.No nevím v čem si zvyklí ty, ale Dev-C++ to dělá tak, že si zavolá GCC a snaží se v jeho výstupu najít řádek, který obsahuje string
line. Ten následně označí. Celá záhada.
Viděl jsem, jak IntelliJ Idea dokáže dvoukrokové napovídání, tzn. ti ze znalosti "Integer i = " dokáže napovědět i "Integer i = obj.getCount()". Jak přesně to funguje ale nevím.To dělají Netbeans běžně – např. napíšeš:
long x = System.a radí ti to v první řadě:
currentTimeMillis(); identityHashCode(provider); nanoTime();pak je čára a pod ní nápověda všech dalších členů ze
System
(které už nedávají valný smysl, když se snažíš hodnotu dosadit do long
proměnné). Nevidím v tom až takovou magii, ale je to velmi užitečné a člověk se nemusí rozptylovat s tím, co v daném kontextu nelze použít. A když nejde o obecný typ (jako ten long
), ale o nějakou konkrétnější třídu, tak je často jen jedna možnost a stačí odentrovat to, co ti IDE napovídá jako první možnost – tím se docela šetří klávesnice Picasa má vážný problém s výkonem jakmile velikost DB překročí velikost IO cache (cca 6GB pro můj případ) a musí se pracovat s diskem.Jenže kdyby měl vývojář stroj s 256MB RAM, tak by na ten limit přišel poměrně rychle
Jenže kdyby měl vývojář stroj s 256MB RAM, tak by na ten limit přišel poměrně rychleProgramátor není tester. A pokud musí zastávat obě tyto role jeden člověk, ať si na testovaní sedne k pomalejšímu stroji (nebo to pustí v pomalejším virtuálu), resp. stejně pomalému, jako budou mít uživatelé. Nevidím ale důvod, proč mu ztěžovat pracovní podmínky v době, kdy je v roli programátora a vyvíjí software.
ad 1) ale vzdyt to je prave to, co chci. Ja chci reference na kod, ktery neco dela, ne kod, ktery uz roky vyhniva v nejakem zakomentovanem kodu. Krom toho, IDE maji samozrejme taky grepove vyhledavani, ale je navic pekne integrovane.Případně hledání referencí provede zároveň i ten grep a najde je i v komentáři (pokud to nevypnu, samozřejmě). Výsledky pak mám pohromadě a můžu si je seskupit/odfiltrovat podle typu. Jinými slovy: autoři nektěrých IDE takovéto požadavky slyšeli a vyslyšeli. To samozřejmě nic nemění na tom, že grep je velmi užitečný nástroj který neustále používám (a sed, awk, cut, wc, atd atd).
P.S. jinak ale chápu jak to myslíš. Zajímavé např. je, jak některé předělávky starých her v HTML5 dokáží pořádně vytížit dnešní několika GHz procesor, zatímco před dvaceti lety ta hra fungovala na třiosmšestce s 20 MHzpresne +1
Já bych to tak zle neviděl, sám používám jistou obdobu.
Na vývojový server, na kterém píšu jednu aplikaci který je hodně citlivá na paměť jsem dal 1GB ram, což mě prostě nutí psát algoritmy a datový struktury tak optimalizovaný jak jen to je možný, protože tu paměť prostě nemám, mít tam 16GB jako na ostrým serveru, tak mi je jedno že támhle je proměnná která se už nepoužije, táhmle to by šlo udělat malinko lépe...
Snažím se k tomu přistupovat jako programátoři tak před 15 lety, každej bajtík se hodí. Používání frameworků je něco nemyslitelného, mám svůj, umí jen to co potřebuju a využíívám a je mnohem rychlejší a lehčí než cokoli jiného co poskytuje stejné funkce. Vývoj je sice o něco pomalejší, ale ve výsledku se mi to vyplatí (čímz neříkám že je to pravidlo, spíš to bude naopak, ale zrova u tohohle projektu se to hodí).
Předpokládat že když někdo dělá něco jinak než já nebo jinak než je zvykem není moudré.
Nechápu, proč na mě útočíš. Píšu to na čtyřjádru s 16GB paměti, testy při vývoji probíhají ve virtuálu s jedním jádrem a GB paměti, ten mezičlánek je tam právě kvůli co největší optimalizaci, pro testy při větších změnách se pro jistotu používá jiný virtuál s 8 jádry a 8GB paměti, ještě se nestalo že by testování na tom ukázalo nějakou chybu, leak, zacyklení etc... To prostě proto že ten kód znám velice dobře a dávám si na tom záležet.
Proste blablabla, jsem super a delam v assembleru, tyhle kecy uz jsem slysel.
Osobně se mi tedy více zamlouvá vývojář co si dá záležet, nedělá prasárny, neleakuje mu to, necyklí se to, vývojář který zná dobře svůj kód a ví přesně co od něj může čekat v krizových situacích, než patlal, co nasadí nějaký nechutný cms, kvůli několika fcím naloaduje 10MB frameworků a je mu to jedno, protože já přece spousty paměti a spoustu jader.. "Ten server to přece nějak zvládne", tyhle kecy už jsem taky slyšel, po měsíci od spuštění aplikace mu to každej den v půl 5 začne swapovat a po pár minutách je server mrtvej. Co udělal? Do cronu hodil scripty který když zjistěj že dochází paměť tak restartují daemony a tak to "vyřeší".
Tenhle přístup je mezi nynějšími "takyvývojáři" stále častější a já se toho odmítám účastnit.
Myslím že pro většinu případů je nejideálnější nějaká střední cesta, nic se nemá přehánět.
Snažím se k tomu přistupovat jako programátoři tak před 15 lety, každej bajtík se hodí.
Tohle lze pochopit několika způsoby. Nevím, který myslíš ty, ale ve mě to evokuje například že rok se ukládá na dvě platná místa (19XY) a že se používaly jednotlivé bity aktuálního slova jako flagy pro nějaký stavový automat. Tak takhle snad ne, to byl tragický omyl. A nedivil bych se, kdyby právě z tohoto důvodu někomu ujely v diskusi nervy.
Nebo také tím, že se používají obecné algoritmy a datové struktury, které za daného použití mají nejmenší spotřebu paměti (s tím, že ale nijak uměle neomezují rozsah). Tak takhle ano.
To, že se to někdo snaží řešit, ještě automaticky neznamená, že je to problém, který řešení vyžaduje. Vezmu-li v úvahu, že 2x4GB kit stojí dnes kolem 1000 Kč bez DPH, což je cena, za kterou bych před pár lety pořídil čtvrtinu, odmítám na normálním PC (jak už jsem řekl, něco jiného jsou třeba embedded systémy) řešit fiktivní "problém dvojnásobně dlouhých pointerů". Zvlášť poté, co vím, jaké šílené a zbytečné komplikace 32-bitová architektura v memory managementu přináší.
Ten "problém" je úplně stejně fiktivní jako "problém" čtyřnásobně dlouhých adres a větší paměťové náročnosti IPv6. Za dobu, co o tomto "problému" slýchám, vzrostly velikosti používané pamětí tolikrát, že se v tom jednorázové "krát čtyři" hravě ztratí. Ale ani tam to někomu nebrání pořád strašit větší spotřebou paměti - jen u IPv6 aspoň vím proč.
Zvlášť poté, co vím, jaké šílené a zbytečné komplikace 32-bitová architektura v memory managementu přináší.To ale není vina bitů, ale Intelu.
a že se používaly jednotlivé bity aktuálního slova jako flagy pro nějaký stavový automat. Tak takhle snad ne, to byl tragický omyl. A nedivil bych se, kdyby právě z tohoto důvodu někomu ujely v diskusi nervy.Tak to se snad používá i dnes, ne? Ani ne tak proto kolik to žere (ono nejmenší adresovatelná jednotka má stejně 32-bitů (na 32-bitovém systému), takže když použiješ dva bity, zbytek je výplň o 30-bitech, takže si s tím stejně moc nepomůžeš a tak se to pokud vím nikdy ani nepoužívalo), ale protože se s tím pohodlně pracuje (vymaskování bitů, posuny, usw.). Ono např. i v kodecích kde se řeže na různé bitové délky jedním bitem počínaje je to všechno uloženo třeba ve 32-bitech a více a řeže se to na jednotlivé bitové délky až když to vylézá do souboru (třeba dokonce i až u Huffmana).
Ani ne tak proto kolik to žere (ono nejmenší adresovatelná jednotka má stejně 32-bitů (na 32-bitovém systému),To je relativní
Spousta procesorů i když má registry 32bitový, tak může přistupovat ke kratším délkám.Jo to je jasný, ale překladač to stejně zarovná na těch 32-bitů, ne?
5 uint8_t a = 3; => 0x0804839a <main+6>: c6 45 ff 03 movb $0x3,-0x1(%ebp) (gdb) step 6 int b = 4; => 0x0804839e <main+10>: c7 45 f8 04 00 00 00 movl $0x4,-0x8(%ebp) (gdb) 7 int c = 5; => 0x080483a5 <main+17>: c7 45 f4 05 00 00 00 movl $0x5,-0xc(%ebp) (gdb) 8 uint8_t d = 6; => 0x080483ac <main+24>: c6 45 f3 06 movb $0x6,-0xd(%ebp) (gdb) 10 a = d << 2; => 0x080483b0 <main+28>: 0f b6 45 f3 movzbl -0xd(%ebp),%eax 0x080483b4 <main+32>: c1 e0 02 shl $0x2,%eax 0x080483b7 <main+35>: 88 45 ff mov %al,-0x1(%ebp)Asi to bude mít co dělat s rychlostí (mám 32-bitový procesor, no schválně by mě zajímalo co by to dělalo na 64-bitovém). Nižší módy už neběží nativně, ale spíš se asi povětšinou budou něco jako emulovat. Důvod existence: Zpětná kompatibilita. Tož tak.
ze my nevime, co mame optimalizovat
Od toho jsou profilery a debugery, ne?
A s čím nesouhlasíš?
Tedy ne že bych byl až takový magor do testování, od toho jsou jiní, ale tohle můžu potvrdit z vlastní praxe – když testy poběží několik minut, tak se na to vykašlu (většinou), ale když to bude pár vteřin, tak je klidně budu pouštět každou chvíli – a díky tomu můžu dřív přijít na to, že jsem např. něco rozbil a je potřeba ten kód zase dát pryč nebo přepsat – čím dřív na to přijdu, tím líp.
vykonne pocitace zpusobi nabubrelejsi softwareCelé je to myšleno za předpokladu: „za jinak stejných okolností“ – tzn. že např. posadíš stejného programátora před výkonnější stroj a on bude pracovat stejně, jen ty testy nebo kompilace bude moci pouštět častěji – tudíž když napíše kód, který neprojde testy nebo nejde zkompilovat (každý dělá chyby), tak na to přijde dřív a vyplýtvá méně času – než když bude celé dopoledne něco smolit, kompilace/testy pustí až přes oběd a po návratu z oběda zjistí, že to má blbě a jde to předělávat. Samozřejmě si můžeš myslet, že javisti jsou čuňata a píší nenažraný kód – budiž, o tom se teď nechci hádat – ale představ si, že posadíš svého „ideálního programátora“ nebo sebe před HW, který ho nebude brzdit – pak si myslím, že ty výsledky budou lepší. Jestli si chce někdo zkoušet, jak běží jeho program na slabém HW, ať si udělá virtuální stroj s odpovídajícími parametry a na něm to spouští – ale spouštět je něco jiného než vyvíjet, kompilovat atd.
vykonny pocitac bych vyvojarum zakazal ze zakona. Alespon by se naucili poradne programovat..Predstav si, že vyvíjaš klient-sever aplikáciu v jave. (Zasahuješ do kódu aj servera aj klienta a tie by nemali byť na jednom stroji.) Na jednom stroji sa hodí mať pustený eclipse, browser s dokumentáciou, dva VM pričom jeden z nich beží Oracle SQL. Aký HW by si dal takému programátorovi?
nevidim zadne velke doklady o tom, ze se pres veskery "technologicky pokrok" v IDE a podobne pise kvalitnejsi software.Ide o to, čo znamená "kvalitnejší". Ak to znamená "kompaktnejší" tak je pravda, že sa teraz píše kód menej kompaktný, ako kedysi (so slzou oku spomínam čo dokázal F29-Retaliator v púhom pol megabajtovom .exe). Na druhej strane ak kvalitnejší znamená "ľahšie portovateľný" alebo "modulárnejší" alebo "znova použiteľný", alebo "robustnejší" ... tak sme na tom teraz asi, lepšie než kedysi.
Zatim jsem nevidel, ze by nekdo vzal tridy z jednoho projektu, kde se s tim dopredu nepocitalo (tj. nevytvorili neco jako knihovni abstrakci) a pouzil je v jinem.A kde je ta hranice mezi (dobře navrženou) interní třídou nějakého programu a „knihovní abstrakcí“?
so slzou oku spomínam čo dokázal F29-Retaliator v púhom pol megabajtovom .exeA co teprve takový VLAK – 12 kB. Ten odkaz jsi sem neměl dávat, teď si kvůli tobě budu celý víkend hrát DOSové hry
Vazne, slo o nadsazku. Vite co to je? Ale opravdu, nevidim zadne velke doklady o tom, ze se pres veskery "technologicky pokrok" v IDE a podobne pise kvalitnejsi software. Myslim, ze je to diskutabilni.A já jsem ještě neviděl doklad o tom, že Alexandr Makedonský není hrdina!! Asi půjdu rozbít židli... Ale opravdu, software se asi nepíše kvalitnější, ale rozhodně se ho píše více.
Trochu se bojím, že je to akademická splácanina.Náhodou… už jsem ji viděl několikrát použitou v ostré praxi
A samozřejmě, pokud kompiluješ obrovské balíky (třeba si to dovedu představit u vývojáře OfficeLibre a podobných monster), tak tam se hodí každá špetka výkonu.Mozna by pomohl takovy vynalez.. make? (Vazne, vim ze to znas, ale nedalo mi to.. Jak mohli ti nasi predci vubec pracovat?)
stovky GB zdrojákůTo asi nebudou jen zdrojáky, ne?
Zajímavé. Moje potřeby po "výkoném pc" se zastavili před víc jak 5ti lety a to mám C2D 1,6GHz, 2GB ram a integrovanou intel grafiku.
A to mi na tom běží Oracle Express (10.2?), NetBeans (programování v Javě), VirtualBox a Firefox.
A stejně se ten stroj většinu času fláká...
vim
, make
a 1,6ghz atomom vim
, make
a AVR vim myapp.tar.bz2
:-P
Jen mě ještě štve, že se na jeden monitor nedá nacpat konzole a na druhé Xka v jednom sezení.Což by se zase dalo vyřešit samostatným počítačem. Ok, oprava: Jako minimum pro efektivní pracovní prostředí bych viděl čtyři obrazovky a dva počítače nebo tři obrazovky, jeden počítač a jeden hodně dobrý terminál.
takovou masinu bych si nechal taky libit. Ikdyz momentalne mi staci ta i5
Z té diskuse mám neodbytný pocit, že nemalá část diskutujících si představuje, že práce vývojáře sestává výhradně z psaní v editoru a zkoušení aplikace stejným způsobem, jako to pak bude dělat uživatel. Jenže takhle to není ani u desktopových aplikací a u serverových nebo systémových už to tak nevypadá ani zdaleka.
Navíc nejde jen o vyvíjení a testování nového kódu, ale taky o hledání a opravování chyb. Vezmu-li v úvahu, že takové hledání regrese v jádře běžně znamená 6-8 buildů příslušných balíčků a že jeden build mi na 4x2.4GHz Phenomu trvá 35 minut, pak je představa, že by mi měl stačit jednojádrový procesor na 1 GHz poněkud mimo realitu (je ale jasné, že ve firmě bude praktičtější mít pro podobné účely jeden opravdu výkonný stroj, který budou využívat všichni, než aby měl každý svůj trochu výkonný). Nemluvě o tom, že určité chyby je extrémně obtížné zreplikovat na jednoprocesorovém systému a u některých je to dokonce principiálně vyloučené.
Nejmíň chyb udělali ti, co pracovali v době děrných štítkůSlozitost programu je dnes ale trochu jinde..
Docela by mne zajímalo, kolik z těch mudrců, kteří mají jasno, jak by vývojáři měli mít nevýkonné počítače, se v praxi skutečně zabývá vývojem a laděním a kolik z nich jen mlátí prázdnou slámu, protože nevědí, o čem mluví.Většina zůčastněných se nečím takovým skutečně zabývá a na základě toho mají skálopevné přesvědčení, že ví o čem mluví. No a z toho samozřejmě (logicky) plyne názor, že ti ostatní neví o čem mluví, jsou blbí, líní nebo se zabývají hovadinami - podle nátury. Podobnost s jinými oblastmi probíranými na abclinuxu není náhodná - je to prostě politika, i když taková spíš k smíchu. Jo a pozor, platí to pro obě strany (jak ukazuje tento dotaz). PS: Diskusí o IDE jsem se zůčastnil na obou stranách, takže mohu porovnávat. Diskuse o výkonu stroje pro programátora je něco celkem nového (pamatuji časy kdy i překlad obyčejného C nebyl až zas tak zanedbatelný), ale nakonec se to stejně stočilo na IDE.
No a z toho samozřejmě (logicky) plyne názor, že ti ostatní neví o čem mluví, jsou blbí, líní nebo se zabývají hovadinami - podle nátury.Takova vec z toho logicky neplyne a takovy nazor nemam. (Nicmene mam nazor na vase komentare, a ten je, ze mi pripadaji dost negativisticke, vuci lidem.)
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.