Registrace nového uživatele     Návod     Kluby     Archív  Lopuchu     Lopuch.cz  

Lopuch, server nejen
pro botaniky

Lopuch.cz

Jméno:
Heslo:
Podpora LCD:
 
Klub C, C++ [ŽP: neomezená] (kategorie Programování) moderuje Šéf Lopuchu.
Archiv

Články

Jak bezpečně ukončit vlákno z DllMain
FastAllocPool - urychlení častých alokací a dealokací
Akce a zpráva jako objekt
Tuply v C++
Efektivní alokátor malých objektů a tady druhý a třetí díl
Šablony: Být vládce kvalifikátorů
Vracíme z funkce objekty
Základy komunikace mezi procesy (ve Windows)
Multiple Interface a Instance Factory
Multithreading v C++ (ve Win32)
  Nastavení klubu     Nastavení práv     Homepage     Anketa     Přítomní     Oblíbené     Lopuch     Kategorie  
autor: 
text: 
vyplnit a 
Help
 Titulek, text příspěvku  
Opište pozpátku následující text bez prostředního znaku: veoezlz
[ 380 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 17.9.2007 08:09  647
Bredy: No, zase si priznejme, ze ona to dvojnasobna rychlost nebude, protoze neco jineho je psat cisty text a neco jineho je zmacknout C-space, koukat co Ti to vyhodi, jestli opravdu jedinou vec nebo jestli vic, ze kterejch musis vybrat, a tak dal. Zrychli to, to jo, ale urcite ne o polovinu.

huh: Jeste jsem zapomnel na jednu vec - kdyz potrebujes pri beznem pouzivani pocitace (tj. ne nutne v ramci programovani nejakeho projektu) nacist textovej soubor, nejak ho projit a neco s tim udelat, tak je velmi pravdepodobne, ze sahnes prave po perlu, pythonu, ruby nebo awk (pokud to nepujde nejak hezky rovnou v shellu), po Jave spis ne (a ne jenom kvuli tomu, jak v ni je nebo neni slozite ten kod napsat), stejne tak asi ne po C++ nebo C#. Tudiz mozna tez prave proto, ze takovehle ulozky casto resis ve svem oblibenem scriptovacim jazyce, si pamatujes, jak se v tom jazyce prochazeni textoveho souboru resi. Kdybys pri kazde takovehle prilezitosti psal ten kod v Jave, tak si to taky budes pamatovat.
huh huh 17.9.2007 00:55  646
Bredy [644]: A ?
huh huh 17.9.2007 00:50  645
Bredy [642]: Ano, prave proto, ze Javovska knihovna je navrzena pomerne komplexne a flexibilne (a tudiz je i relativne slozita), by mela obsahovat zkratky pro nektere "relativne casto provadene" (coz je samozrejme do znacne miry subjektivni) operace. Jako je treba otevreni souboru.

Kdokoliv [641]: Coz nic nemeni na tom, ze si pro praci s nejakym formatem souboru napises funkce (knihovnu), pokud teda neni uplne trivialni.

Ja se proste v ruznych jazycich/knihovnach musim do dokumentace divat ruzne casto, jak psal Eckel, v Pythonu si casto tipnu a casto se trefim ☺, za to psat v Jave (zejmena pre 1.5) bez doplnovani je pro me naproste utrpeni.
bredy 17.9.2007 00:26  644
huhSprávně C++
std::ifstream soubor("jmeno",std::ios::in);
if (!soubor) throw NepodariloSeOtevritSouborVyjimka("jmeno");
bredy 17.9.2007 00:23  643
Dodatek k příkladu: Zapomněl jsem napsat, že tohle je výsledek IntellSense (integrovaný do Visual C++). Ve Visual Assistu by mi už k napsání deformers stačilo napsat def a slovíčko by na mne vyskočilo v seznamu pod kurzorem. Při napsání IFB by na mne zase vyskočil seznam všech tříd začínající na IFB, což jsou momentálně jen dvě (import a export). V Eclipse bych dopadl asi stejně jako v IntellSense.
bredy 17.9.2007 00:18  642
huh Javovske souborové API je v základu navržené mnohem lépe, než STLskovké iostreamy. Ovšem čím výš se člověk dostává, tím má pocit, že práci přebírali horší a horší programátoři. Nevim...

King Hlavním smyslem nástrojů má být zrychlení práce. Představ si, že pro napsání následujícího kódu mi stači:
if (deformers) control->EnableWhatImportGroup(IFBXImportControl::importSkinning)

if (defo<c+sp>) cont<c+sp>->Ena<ent>(IFBXIm<c+sp>::importSk<ent>)
Legenda:
<c+sp> - control+space 
<ent> - enter

Místo původních 81 stisků mám 42. Což vede na dvojnásobnou rychlost kódování. A to jsem si nezapočítal nahlížení do dokumentace.

(Ještě dodatek: C+SP mačkám pro doplnění symbolu, a když na mne vykočí seznam, musím jej ještě potvrdit enterem, když ne, pak rovnou vyskočí symbol. Po šipce a čtyřtečce vyskakuje seznam automaticky, proto jen Enter.)

Jinak také nemám rád generované kódy, i když wizardem pro UI nepohrdnu, ale většinou si výsledný kód pak upravím. Co se mi vůbec nelíbí jsou vlastní preprocesory (qmake v Qt), to už ukazuje spíš na neschopnost vývojářů vymyslet nekteré konstrukce lépe (např. pomocí šablon)
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 16.9.2007 22:21  641
Neni pravda, aplikace napsana v Perlu bude vypadat uplne jinak nez aplikace delajici totez napsana v Jave. Toho jsem ostatne zivoucim dukazem, kdy jsem jeden zapoctak, kterej byl povinne v Perlu, odevzdal sice v Perlu, ale objektove orientovanej a s tridama navrzenejma tak, jako kdybych to delal v Jave. Kdyz jsem to predvadel, tak na me ostatni (jak spoluzaci, tak vyucujici) koukali, jako kdybych spadnul z visne. Takze ona je sice pravda, ze v kazdem programovacim jazyce se daji psat fortranovske programy, ale kupodivu se to nedela.
huh huh 16.9.2007 21:51  640
Kdokoliv [639]: Promin, ale struktura aplikace nijak nesouvisi s jazykem, ve kterem je napsana.
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 16.9.2007 21:32  639
Nehlede na to, ze v Jave proste nacitani textoveho souboru neni operace, kterou by bezny programator bezne delal - i ten textovej soubor bude mit typicky nejakou strukturu a my chceme jako vysledek dostat nejaky objekt (ci sadu objektu) v pameti, ktere budou tuto strukturu reprezentovat - takze si typicky napiseme nejake vlastni tridy, factory a providery, ktere budou toto poskytovat - pri implementaci sice budeme potrebovat nacist ten soubor po radkach, ale to budem delat jenom jednou (a vlastne piseme svym zpusobem knihovnu), zatimco pro vlastni pouzivani tohoto typu textoveho souboru uz nebude potreba vubec vedet, jak se textovy soubor nacita. Jinymi slovy bude-li na tom projektu delat padesat lidi, tak jeden z nich napise patricne providery a ostatni uz to budou jenom pouzivat, takze nepotrebujou vubec umet zonglovat s BufferedReadery a podobne. To je tak nejak filosofie celeho javovskeho vyvoje.
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 16.9.2007 21:27  638
huh: A to ja Te zase ubezpecim, ze jelikoz v C uz drahna leta nedelam, tak bych na fopen, fgets a podobne chvili vzpominal (pravdepodobne bych si nakonec vzpomenul) a uz vubec ted treba nevim, jak je to s tema streamama v C++, ja proste veci, ktere nepouzivam, rychle zapominam - at uz jsou jednoduche, nebo slozite; naopak veci, ktere pouzivam, si pamatuju, at uz jsou jednoduche, nebo slozite. Proc nemuze mit File metodu getBufferedReader svuj duvod urcite ma, ale nechce se mi nad tim premyslet (krom toho asi nejsem ten nejpovolanejsi, kdo by mohl delat prednasky ohledne objektove hierarchie javovskych streamu).
sekory Sekory The journey of thousand miles - starts with a single step. 16.9.2007 21:23  637
Bredy: Dík, ale ta cena mi příjde dost přehnaná, možná ne pro někoho kdo se programováním živý, ale mně určitě. Možná zkusím ten IntelliSense.
huh huh 16.9.2007 21:23  636
A to já zase musím souhlasit s Kingem (a se mnou i Bruce Eckel ☺), na pythonovské
f = file("jmeno", "r")
nebo ceckovské
FILE* f  = fopen("jmeno", "r")
si vzpomenu i po pul roce nepouzivani, na to, jak to udelat v Jave zapomenu do deseti minut po nadatlovani. Ano, javovske API je nejflexibilnejsi, ale hlavne mu uplne chybi zkratky pro casto pouzivane operace. Proc proste nemuze mit File metody jako getBufferedReader() ?
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 16.9.2007 19:36  635
King: Tohle ale zase neni pravda. Ja napsal celou javovskou diplomku v emacsu bez jakehokoliv inteligentniho doplnovani - mel jsem jenom v Opere otevrenu dokumentaci s javovskym API a s SWT API (coz byla knihovna, kterou jsem pouzival). Mimochodem kod, ktery otevre a precte textovy soubor, bych pravdepodobne dohromady dal. Nicmene obdobne obtize s tymz ukolem bych mel v libovolnem jazyce - C, php, perl, ruby - ve vsech jsem to delal a v zadnym si to po urcite dobe nepamatuju. Navic proste typicky programator enterprise java aplikaci nema jako svoje denni ulohy otevirani textovych souboru, stejne tak kdyz vezmes prvniho ruby-on-rails programatora (kterych imho bude vic a vic pribyvat), ktery posledni dobu nedela nic jinyho nez weby, tak mozna tuhle ulohu v ruby taky nezvladne, jakkoliv je to tam trivialni.
Nezapominejme u te Javy, ze ona ma snad nejsirsi standardni API (tj. bez nejakych dalsich rozsirovacich knihoven) ze vsech jazyku, to si proste nemuze pamatovat nikdo. Na druhou stranu pro nejakou omezene pole pusobnosti, se kterym zrovna pracuju, se to pamatovat da a pak clovek ty nastroje nepotrebuje. Ty nastroje se hodi, kdyz clovek casto dela jednorazove s necim neobvyklym (ale to zase plati pro vsechny jazyky).
king King Born to be king - ... 16.9.2007 19:20  634
jeste duvod - prijde mi ze kdyz je jazyk tak slozity, ze potrebuje takove nastroje (nebo vskutku znatelne zlepsi praci), tak je s tim jazykem neco v neporadku ;)
king King Born to be king - ... 16.9.2007 19:19  633
ja obecne nesnasim jazyky kde jsem zavisly na nastrojich - viz treba java, kde se bez generovani kodu a napovedy neobejde snad nikdo (viz ma oblibena otazka pro javisty: umite z hlavy napsat kod, ktery otevre a precte textovy soubor?) - je to proste styl prace ktery mi nevyhovuje...
ve vetsi mire pouzivam python, bash, SQL a C a ani v jednom z tech jazyku mi napovidac nechybi... kdyz uz pisu neco v cem se tolik nevyznam, nebo si chci usetrit psani dlouhych nazvu funkci, pouziju trivialni doplnovani ve ViMu, ktere na to bohate staci a funguje i bez kontextu (coz u dynamickych jazyku stejne dost dobre nejde)...

[ 380 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  

(c) 2001-2011 Lopuch.cz   
Kontakt