Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názory k článku
Začněte s Céčkem v Linuxu

Jakub Hegenbart aura:85
23. 6. 2006 0:40 Nový

ANSI C

celé vlákno

Teda aspoň by ty programy mohly mít slušnou (trošku explicitnější) deklaraci main()... :-p K čemu pak člověk ty začátečníky vychovává? ;-)

Jo, zdá se mi to, nebo malloc a free nejsou deklarovány v stdio.h? Samozřejmě i to může spadat do té "smysluplnosti", se kterou se prý nemám zabývat...ale přece. :-)

Liskni_si
Liskni_si (neregistrovaný)
23. 6. 2006 1:06 Nový

Re: ANSI C

celé vlákno
Nejsou no, ale zakladni problem je, ze autor neuci prekladat s -Wall.
Pavel Píša
Pavel Píša (neregistrovaný)
23. 6. 2006 18:19 Nový

Re: ANSI C

celé vlákno

ACK^3, bez toho je to totální katastrofa. Dokonce někdy studentům doporučuji i -pedantic, aby si zvykali na přenositelné Céčko.

Trocha stránek s příklady, úkoly a krátkými návody, které jsme připravili na cvičení programování v C pod Linuxem, je na následující adrese

http://dce.felk.cvut.cz/pos/

Rádi si vyslechneme Vaši kritiku, nápady, či odkazy na podobně zaměřené stránky.

Petr Tesařík aura:77
26. 6. 2006 10:59 Nový

Re: ANSI C

celé vlákno
Vypadá to docela dobře. Většinu kapitol jsem jenom tak prolétl, důkladně jsem přečetl jen cvičení 2 a toto jsou moje postřehy:

* procesy a vlákna: v Linuxu má každé vlákno své vlastní PID (pokud ovšem nepoužíváte vlákna v userspace).
* po volání funkce fork() sice procesy vidí stejnou paměť, ale bylo by dobré upozornit, že ji nesdílí, tj. všechno se zkopíruje v okamžiku vytvoření procesu a potom už jsou na sobě oba procesy nezávislé. Pro rýpaly: vím, že ve fork()u se zkopírují jenom struktury VMA a vlastní stránky se kopírují až v okamžiku zápisu, tj. Copy-on-write aneb COW.
* proces lze vytvořit také pomocí clone(); potom je paměť mezi oběma procesy opravdu sdílená (toto systémové volání např. interně používá pthread_create).
* nepojmenované roury vznikají voláním pipe() a zanikají v okamžiku uzavření obou deskriptorů. To sice nastává i v okamžiku ukončení procesu, ale uvedený popis je trochu matoucí.
* u pojmenovaných rour by asi bylo dobré zmínit, že existují v souborovém systému a vytvářejí se příkazem mkfifo
Pavel Píša
Pavel Píša (neregistrovaný)
26. 6. 2006 20:25 Nový

Re: ANSI C

celé vlákno
Velmi děkuji za připomínky, nalezené nejasnosti a chyby. Postupně je opravíme. Co se týče PID, tak Linux již plně souhlasí s POSIXem a getpid() pro všecny thready procesu vrací shodnou hodnotu. I v /proc je jen jeden adresář a thready jsou reprezentovány /proc/task/xxx . Toto ovšem neplatí pro starší jádra 2.4.x a tehdy, kdy není použita NPTL. po volání funkce fork() sice procesy vidí stejnou paměť Máte pravdu, nevyznívá to dobře. Thready jsou lechce nastíněné v dalším cvičení, ne-POSIXové možnosti clone asi přidávat nebudeme.
Petr Tesařík aura:77
27. 6. 2006 11:31 Nový

Re: ANSI C

celé vlákno
> /proc/task/xxx

myslíte samozřejmě /proc/<pid>/task/<tid>

M jako Molitan
M jako Molitan (neregistrovaný)
23. 6. 2006 1:10 Nový

Re: ANSI C

celé vlákno
Stroustrup ma na strankach napsane, ze pokud pres main() neni napsane int, tak riskujete vysmech ostatnich programatoru :-) Samozrejme, to se tyka C++, nevim jak to je v C. Mimochodem, jeden zajimavy rozdil mezi C a C++ je, ze v C budou programy bez return 0 v main() vracet nedefinovanou hodnotu. V C++ budou vracet 0, takova specialitka funkce main()...
uživatel si přál zůstat v anonymitě
23. 6. 2006 10:57 Nový

Re: ANSI C

celé vlákno
Jeste bzch pro ciste C doporucil dopsat void mezi zavorky (main(void)). U funkce main to neni az tak fatalni, je volana ze startup kodu a linker se s tim nejak popere (resp. kompilator ignoruje volani main()), ale v pripade dalsi uzivatelem definovane funkce muze kompilator zbytecne otravovat.
BTW. ohledne navratove hodnoty - zde zalezi ciste na kompilatoru, jaky registr pouzije a co v nem "zustane". Ktery kompilator C++ pro x86 explicitne xoruje EAX pred vyskokem z main??
e1ko
e1ko (neregistrovaný)
23. 6. 2006 12:09 Nový

Re: ANSI C

celé vlákno
Podle standardu c99 nemusí být main(void), stačí main().
Jakub Hegenbart aura:85
23. 6. 2006 21:30 Nový

Re: ANSI C

celé vlákno
Prosím? Mám normu před sebou a není tam o ničem takovém ani slovo. int main(void) a int main(int argc, char* argv[]) (nebo jim ekvivalentní) jsou jediné dvě povolené deklarace.
uživatel si přál zůstat v anonymitě
24. 6. 2006 17:26 Nový

Re: ANSI C

celé vlákno
On rika, ze od C99 plati int main(void) == int main(), takze ty dva vyroky si neodporuji.
Jakub Hegenbart aura:85
24. 6. 2006 17:47 Nový

Re: ANSI C

celé vlákno
No moment, deklarace () a deklarace (void) nejsou podle normy ekvivalentní. () je neurčený seznam parametrů a (void) je prázdný seznam parametrů. Tak jak to tedy je? Nepochopil jsem něco? Nehledě na to, že norma tvrdí "The use of function declarators with empty parentheses (not prototype-format parameter type declarators) is an obsolescent feature."
M jako Molitan
M jako Molitan (neregistrovaný)
24. 6. 2006 22:49 Nový

Re: ANSI C

celé vlákno
Ja to pochopil tak, ze tu nekdo tvrdil, ze od C99 tuhle featuru uz nadobro zavrhli a presli na analogickou definici s C++.
Petr
Petr (neregistrovaný)
26. 6. 2006 19:17 Nový

Re: ANSI C

celé vlákno
Pletete si deklaraci a definici funkce (presneji receno, vy mluvite o deklaraci, ale predek mluvi o definici). Nebo mi to aspon tak pripada.

Pokud deklarujete
int funkce();
tak nerikate, jestli ma funkce nejake parametry nebo ne, narozdil od
int funkce(void); /* a je jasno */

Pokud ale definujete
int funkce()
{
return 42;
}
tak tim uvadite zaroven i to, ze funkce parametry nema.
pht
pht (neregistrovaný)
23. 6. 2006 1:32 Nový

Re: ANSI C

celé vlákno
jj a navic zadny z mainu nevraci navratovou hodnotu.
autor by si nejdriv tu knihu o C mel docist sam. :)
M jako Molitan
M jako Molitan (neregistrovaný)
23. 6. 2006 1:53 Nový

Re: ANSI C

celé vlákno
Na druhou stranu je pochopitelne, ze pro serial urceny zacatecnikum se zacina s necim, co vypada pro normalniho cloveka pekne, narozdil od toho, co se nakonec z C vyvine.
M jako Molitan
M jako Molitan (neregistrovaný)
23. 6. 2006 1:55 Nový

Re: ANSI C

celé vlákno
Mysleno tak, ze slovo int navic by tam bylo osklive a navratova hodnota zatim neni nutna.
Michal Molhanec aura:100
23. 6. 2006 3:01 Nový

Re: ANSI C

celé vlákno
LOL a pretypovavat parametr free() je taky pro krasu?
uživatel si přál zůstat v anonymitě
23. 6. 2006 3:28 Nový

Re: ANSI C

celé vlákno
Třeba mohl celý první díl věnovat jen funkci main() a jejímu správnému zápisu ....
rezna
rezna (neregistrovaný)
23. 6. 2006 8:24 Nový

Re: ANSI C

celé vlákno
ne nemel - mel prvni dil venovat necemu zcela jinemu. a to je popis zdrojaku, co lze vse do zdrojaku napsat, a vycet zakladnich datovych typu. to je aspon nutne minimum pro lidi kteri delaji v jinych jazycich.

pokud by byl serial smerovan na neprogramatory tak uz je spatne uplne od zakladu ;)
petrxh
petrxh (neregistrovaný)
23. 6. 2006 9:12 Nový

Re: ANSI C

celé vlákno
>>mel prvni dil venovat necemu zcela jinemu. a to je popis zdrojaku, co lze vse do zdrojaku >>napsat, a vycet zakladnich datovych typu

To by prave melo byt v te ucebnici C zminovane na zacatku :-)
Clanek jsem pochopil, jako navod pro programatory v C na jinych platformach k prelozeni programu na linuxu. Funkci main bych nerozebiral, ale doplnil bych parametry pro include a linker a nakousl bych makefile. Z gdb bych zminil man gdb :-D
Heh
Heh (neregistrovaný)
23. 6. 2006 9:37 Nový

Re: ANSI C

celé vlákno
Presne!
uživatel si přál zůstat v anonymitě
23. 6. 2006 11:05 Nový

Re: ANSI C

celé vlákno
Jeste zobecnim a doplnim, ze jako nejdulezitejsi bych videl objasnit hlavne celkovy postup a proces vyvoje programu - pokud mluvime ciste o kodovani.

Tedy pokud jiz zname algoritmus, ktery ma pocitac provadet, tak jak jej pomoci nastroju (kompilator+preprocesor jazyka - C/C++,asm,..., linker, librarian, maker, evt. burner atd.) predat pocitaci. Idelani je na zacatku zminit, ze dobry programator by mel mit alespon nejake poneti o cele architekture, pro kterou program primarne vyviji.
roman
roman (neregistrovaný)
23. 6. 2006 12:45 Nový

Re: ANSI C

celé vlákno
myslim ze je totalni kravovina mit "prehled o architekture pro kterou program vyviji"...

kod by mel byt napsan obecne (teda pokud to neni neco primo ovladajici danou masinu), protoze jinak vznikaji dilka jako je mysql apod. ktera tisickrat za sekundu overuji cas, popr. postgres ktery tisickrat za sekundu nastavuje proctitle, atp. (prikladu je jiste mnoho ale tydle se mi tedka vybavuji)
gilhad Gilhad aura:100
23. 6. 2006 15:21 Nový

Re: ANSI C

celé vlákno
Tohle velice zalezi na ucelu, za jakym je program vyvyjen. Konec koncu to je i soucasti rozhodovani, v jakem jazyce ten program psat ...
A stejne je dobre o te architekture neco vedet, jinak obcas vznikaji neuveritelne paskvily ...
pht
pht (neregistrovaný)
23. 6. 2006 9:37 Nový

Re: ANSI C

celé vlákno
pristup "nejprv to, pro jednoduchost, udelam osklivy a casem to predelam" je s prominutim na hovno. programovat musite ukaznene hned od zacatku. samozrejme, s vyjimkou aplikace hello world, ktera je na par radku.
uživatel si přál zůstat v anonymitě
24. 6. 2006 9:23 Nový

Re: ANSI C

celé vlákno
Preco? Ved to je prave podstatou agilneho programovania ...
ShaCK
ShaCK (neregistrovaný)
24. 6. 2006 9:27 Nový

Re: ANSI C

celé vlákno
To nevylučuje předchozí tvrzení, agilní a extrémní programování jsou taky na hovno!
Jakub Hegenbart aura:85
24. 6. 2006 14:00 Nový

Re: ANSI C

celé vlákno
Myslím, že agilní programování je spíš styl "nevím, jaký je skutečný rozsah problému, tak to zatím udělám jednoduše, a pokud to budu muset předělávat, vím, jak něco takového dělat efektivně", ne "neumím teď programovat ani trošku, ale jednou to bude lepší"... :-D
Mikuláš Patočka
Mikuláš Patočka (neregistrovaný)
23. 6. 2006 17:02 Nový

Re: ANSI C

celé vlákno
malloc a free skutečně nejsou v stdio.h, ale v stdlib.h. Zmíněný příklad je špatně, protože kompilátor si v případě absence prototypu malloc "vymyslí", že argument je typu int. Argument je však typu size_t, takže na 64-bitových dojde k nesouladu volání a deklarace funkce.
Jakub Hegenbart aura:85
23. 6. 2006 20:46 Nový

Re: ANSI C

celé vlákno
No právě. :-) Schválně si to zkusím na AMD64, co mi to provede, pokud ten malloc fakt použiju... :)*
uživatel si přál zůstat v anonymitě
27. 6. 2006 16:51 Nový

Zdrojáky na rootu

celé vlákno
Nevím, čím to je, ale pokud chci zkopírovat nějaký text (z toho rámečku, co jsou v něm na rootu většinou zdrojáky) například ve windows z Firefoxu (IE nepomohl), do writeru, notepadu, nebo wscite, i jiných nezopírují se odřádkování (při použití komentářů // je celý řádek samozřejmě nepoužitelný a nemluvím o nepřehlednosti) a musím odentrovat všechny řádky ručně, poraďte mi prosím, co s tím. Díky moc.
obrys
obrys (neregistrovaný)
23. 6. 2006 9:14 Nový

Nevhodnost

celé vlákno
Nepřijde mi docela vhodné začínat zrovna céčkem. Správa paměti a s tím spojené memory leaky a seg faulty případné začátečníky spíše odradí než aby je to "chytlo" a bavilo je to. Kdybych mohl doporučit jazyk, byla by to java nebo python a až pak jít těch nízkoúrovňovějších...
Heh
Heh (neregistrovaný)
23. 6. 2006 9:39 Nový

Re: Nevhodnost

celé vlákno
Mno. Tak to si teda nemyslim. Tenhle jazyk funguje v podstate "vsude stejne" ve Win i v Linuxu (je multiplatformni). V C je to precejenom slozitejsi a je tam toho opravdu dost na rozebirani. ;-)
uživatel si přál zůstat v anonymitě
23. 6. 2006 10:44 Nový

Re: Nevhodnost

celé vlákno
A Python funguje v Linuxu jinak nez ve Win? No to jsou mi veci...
Heh
Heh (neregistrovaný)
23. 6. 2006 11:53 Nový

Re: Nevhodnost

celé vlákno
Psal jsem samozrejme o Pythonu.
M jako Molitan
M jako Molitan (neregistrovaný)
25. 6. 2006 16:12 Nový

Re: Nevhodnost

celé vlákno
Takze rikate to same jako autor puvodni zprav, jen jste tam pridal "Tak to si teda nemyslim"?
rezna
rezna (neregistrovaný)
23. 6. 2006 10:54 Nový

Re: Nevhodnost

celé vlákno
funguje tak trochu jinak :P - C rozhodne neni multiplatformni jazyk, a rozhodne uz vubec knihovny v nem nejsou multiplatformni.

knihovna vypadajici
#ifdef WIN
...
#else ifdef LINUX
...
#endif

je fakt multiplatformni jak svina.

narozdil od toho python, php, perl jsou dostatecne multiplatformni - zavisi na skriptovacim jadre.

a samozrejme java a MSIL jazyky jsou multiplatformni - maji vlastni VM.

ale o C bych nikdy jako o multiplatformnim jazyku nemluvil. - uz treba proto, ze kod je potreba pro kazdou z platforem znovu zkompilovat ;)
Heh
Heh (neregistrovaný)
23. 6. 2006 11:54 Nový

Re: Nevhodnost

celé vlákno
Samozrejme jsem myslel Python. Reagoval jsem na puvodni zpravu.
Jakub Hegenbart aura:85
23. 6. 2006 20:54 Nový

Re: Nevhodnost

celé vlákno
"ale o C bych nikdy jako o multiplatformnim jazyku nemluvil. - uz treba proto, ze kod je potreba pro kazdou z platforem znovu zkompilovat ;)"

Vždycky je třeba něco pro každou platformu zkompilovat.

Jo a Cčko svůj abstrahovaný virtuální počítač... :-) Že se nejedná zrovna o bajtkód s pevnou binární formou, to bych až tak neviděl jako problém. To už spíš požadavky na standardní typy by mohly být jednotnější, ale zase C99 spoustu věcí řeší.

rezna
rezna (neregistrovaný)
24. 6. 2006 19:25 Nový

Re: Nevhodnost

celé vlákno
neni potreba kompilovat pro kazdou platformu zvlast ;) - kompiluju v .NETu 2.0 - a kamarad pousti v linuxu na Monu.
Jakub Hegenbart aura:85
24. 6. 2006 19:29 Nový

Re: Nevhodnost

celé vlákno
Že to neděláš ty, neznamená, že to za tebe nedělá .NET. ;-)
rezna
rezna (neregistrovaný)
24. 6. 2006 21:17 Nový

Re: Nevhodnost

celé vlákno
.NET to dela, ale ne kvuli tomu aby program vubec spustil, ale aby program bezel rychleji. Stejne jako u Javy neni ta rekompilace vyzadovana - jenom proste urychluje beh.
Ondra
Ondra (neregistrovaný)
25. 6. 2006 17:15 Nový

Re: Nevhodnost

celé vlákno
Tak to zijes v hlubokem omylu :-)).
Kojot
Kojot (neregistrovaný)
23. 6. 2006 10:55 Nový

Re: Nevhodnost

celé vlákno
Jiste pokud si chcete napsat quicksort, tak je to ok, ale pokud pisete neco vetsiho, tak funguje v podstate uplne jinak uplne vsude. Vetsina programu je pak zmet direktiv a i tak je portace velkej problem. Musite rozlisovat kompilator, architekturu, verzi OS, verze knihoven atd. Nacopak jsou asi autotools, a ani ty nejsou zdaleka dokonaly.
Heh
Heh (neregistrovaný)
23. 6. 2006 12:04 Nový

Re: Nevhodnost

celé vlákno
Mno. Mel sem namysli Python a jemu podobne interpret. jazyky. ;-)
ShaCK
ShaCK (neregistrovaný)
23. 6. 2006 12:48 Nový

Re: Nevhodnost

celé vlákno
A ted se z toho poseres :-) Jsem s tebou, vim ze jsi myslel Python :-)
Heh
Heh (neregistrovaný)
23. 6. 2006 12:57 Nový

Re: Nevhodnost

celé vlákno
hehehe.. ;-)) To mas recht. Aspon nekdo. ;-)
ShaCK
ShaCK (neregistrovaný)
23. 6. 2006 13:05 Nový

Re: Nevhodnost

celé vlákno
:-) nj, jak jde o programatorskej flame tak je tu hoodne emoci :-D
Harvie
Harvie (neregistrovaný)
27. 6. 2006 16:39 Nový

Re: Nevhodnost

celé vlákno
Každý má svoje zvyky a při jejich konfrontaci s jinými se emocím nevyhne :).
PRÁVĚ VY TO PÍŠETE 30 LET ŠPATNĚ!!!
kocour_easy
kocour_easy (neregistrovaný)
25. 6. 2006 19:54 Nový

Re: Nevhodnost

celé vlákno
Hele chytroline, a v cem si myslis, ze je zrovna ten tvuj python zkompilovanej. Jasne, ze v 'C', takze kdyz chces jit nekdy do hloubky problemu, tak neni na skodu se naucit programovat v 'C', nebo 'C++'. Nejsilnejsi je provazat nejaky skriptovaci jazyk/Python,Perl,.../ s 'C'. Nektere konstrukce je dobre psat v 'C' a nektere v skriptovacim jazyku...
uživatel si přál zůstat v anonymitě
23. 6. 2006 11:08 Nový

Re: Nevhodnost

celé vlákno
Podle nadpisu bych soudil, ze se nejedna o obecny kurz programovani, ale kurz programovani v C, a tudiz zacij jinym jazykem mi prijde docela zcestne...
Karel
Karel (neregistrovaný)
23. 6. 2006 11:21 Nový

Re: Nevhodnost

celé vlákno
Kdo zacne s Javou, ten uz se C nauci jedine za cenu velkeho utrpeni. Kdo jednou zkusi jazyk, kde neexistuji fatalni memory leaky, ten uz proste C na chut neprijde. A kdyz, tak jeho program stejne na prvni pohled rozeznate od nekoho, kdo na C zacal :-)
Pavel Píša
Pavel Píša (neregistrovaný)
23. 6. 2006 19:04 Nový

Re: Nevhodnost

celé vlákno

Potvrzuji, zároveň i programátoři v Javě, grafických blocích v Simulinku nebo LabView, by měli znát základy zpracování programu obecným procesorem a měli by vědět, co je to adrsový prostor, jak vypadá běžné pole atd. Bez těchto znalostí programují takové zrůdnosti a obludy bez rozmyslu. Právě dobře programovat ve vyšších jazycích znamená být si vědom, jakým způsobem a za jakou cenu takové prostředí vyšší konstrukce přeloží. Pro lidi, kteří mají zájem o programování řídicích aplikací či jader operačních systémů, je znalost jazyka C nutností. Pár důvodů jsme sepsali třeba zde. Rádi si vyslechneme prípadné námitky.

Na druhou stranu souhlasím, že pro lidi, kteří programují jen občas nebo se teprve učí návrh algoritmů pochopit, není jazyk C vhodný. Python, Java nebo C# je asi vhodnější.

Vaclav Haisman
Vaclav Haisman (neregistrovaný)
24. 6. 2006 14:04 Nový

Re: Nevhodnost

celé vlákno
Myslim, ze by to melo byt presne naopak. Samozrejme tim nechci rict, ze by clovek mel zacinat s assemblerem. Ale napriklad Pascal je naprosto vhodny vyukovy jazyk.
Biktop
Biktop (neregistrovaný)
23. 6. 2006 9:48 Nový

Autorova znalost C

celé vlákno
Inu - nechci vypadat jako hnidopich, ale dle těch programů soudím, že autor by se měl sám nejdřív pořádně naučit C.
lolo
lolo (neregistrovaný)
23. 6. 2006 10:22 Nový

Re: Autorova znalost C

celé vlákno
To sa mi paci ako tu vsetci vyhladavate chyby autora a ako to je vsetko zle napisane a co vie a co nie, ale ani jeden z vas nikdy taky clanok nenapisal
Tak nas to nauc TY !
repulsive
repulsive (neregistrovaný)
23. 6. 2006 10:42 Nový

Re: Autorova znalost C

celé vlákno
když se chceš něco naučit, sežeň si ty informace, pujč si knížku, a nečekej, až ti to přinesou v časopise nebo v telce pod nos :)
lolo
lolo (neregistrovaný)
23. 6. 2006 10:49 Nový

Re: Autorova znalost C

celé vlákno
no to je hlupa pripomienka, hlupa a zbytocna
to by tu asi nikoho nenapadlo ze po reklame na persil nebude nasledovat rychlokurz c
repulsive
repulsive (neregistrovaný)
23. 6. 2006 11:47 Nový

Re: Autorova znalost C

celé vlákno
nepochopil? škoda.
JR
JR (neregistrovaný)
28. 6. 2006 17:32 Nový

Re: Autorova znalost C

celé vlákno
Tedy, já bych spíš řekl, že jste to nepochopil Vy. Kritika má být konstruktivní; ne jen někomu jeho příspěvek poplivat, ať už je jeho úroveň jakákoliv. Takže pokud se vám něco nelíbí, napište článek, který uvede věci na pravou míru. Jen směle do toho.
Karel
Karel (neregistrovaný)
23. 6. 2006 12:04 Nový

Re: Autorova znalost C

celé vlákno
1. Musím připustit, že většinu podobných článků píšou lidé, kteří tomu až tak nerozumí. Prostě něco potřebují, snaží se, učí se to a litují, jak těžké je ty informace získat. Proto si sednou a své čerstvé knowhow sepíší a podělí se o něj. Ano, to co napíší funguje, ale není to možné považovat za návod nebo dokonce učební text. Spíše něco jako "success story". Řečeno jinak - předávají dál své knowhow, své chyby, své zlozvyky a své postupy vyplývající z neznalosti lepších.
Toto je jedna ze stinných stránek internetu, bez které by to ale bylo ještě horší. O nových věcech se totiž informace v počátku šíří právě tímto způsobem, kdy člověk musí ze střípků sbírat informace a s realistickým nadhledem si tvořit názor.

2. Nevěřím v tyhle kouskované seriály. Přečtu si ho, třebas i zkusím, a než vyjde další díl, vše zapomenu, nebo si potřebné věci dostuduji jinde. Když tady vycházel seriál o SDL, také jsem čekal až bude těch dílů vydáno víc a teprve pak jsem začal. Informace podávané v malých dávkách nezabírají v jakémkoliv množství.

Když spojím oba body dohromady, tak mi nezbývá než doporučit všem zájemcům koupi prakticky libovolné učebnice C, případně nějaké tutorialy na internetu. Literatury je v tomto případě dostupné tolik, že nemá smysl sledovat (nebo snad psát) jakýkoliv seriál.

A na poslední odstavec jsem si nechal samotnou úroveň tohoto článku - má se začít rychle něčím praktickým, aby student co nejdříve získával praktické zkušenosti. Základy jako datové typy, seznam klíčových slov a výčet operátorů by měl následovat ale velice brzo, protože bez nich se nic složitějšího než hello world vyprodukovat nedá. Následují základní knihovní funkce, základní programovací techniky, pokročilé knihovní funkce a pokročilé techniky návrhu a implementace programů. Ale od samého začátku se musí psát formálně správné programy, dodržovat pravidla o psaní programu, komentářů, jmenné konvence atd. Program se má s učením se nových konstrukcí rozšiřovat, ne přepisovat. Jakmile jsem do prvního programu napsal "blbě" funkci main, tak ji tak budu psát do všech dalších.
uživatel si přál zůstat v anonymitě
23. 6. 2006 19:17 Nový

Re: Autorova znalost C

celé vlákno

Program se má s učením se nových konstrukcí rozšiřovat, ne přepisovat.

  • Souhlasím, ale v těhto začátcích je opravdu lepší někdy program přepsat.
  • Co se týče dodržování konvencí, v C je to absolutně nezbytné, jinak se určitě napáchá spousta chyb.
  • Jinak spíš než GCC preferuji překladač G++, C++ v kterém se pěkně napsaný C program přeloží taky
strec
strec (neregistrovaný)
25. 6. 2006 5:31 Nový

Re: Autorova znalost C

celé vlákno
Presne tak. Tady je tolik chytrych lidi, znalci norem. Nejzasadnejsi problem je, zda se main definuje jako main(), nebo jako main(void). Takze, nez se zacnete ucit programovat v C, pekne si prostudujte vsechny normy, protoze jinak, az vas kod uvidi nekdo ze znalcu, tak vam to bude omlacovat o hlavu. Trocha tolerance by neskodila, zejmena, pokud o nic nejde, jako v pripade funkce main. Podle meho nazoru je to zhruba stejny hrich, jako mit v autolekarnicce expirovany obvaz, protoze expirovany obvaz funguje uplne stejne dobre, jako neexpirovany.
ShaCK
ShaCK (neregistrovaný)
25. 6. 2006 10:07 Nový

Re: Autorova znalost C

celé vlákno
Ano, samozrejme, pokud clovek zacina, ale pokud autor clanku (mel by rozhodne byt kdyz se pusti do psani) je programatorem v cecku a to urcite pokrocilym, tak by takhle psat nemel! U zacatecnika se samozrejme tyto chyby toleruji, proc ale pise vyuku o cecku zacatecnik?
i
i (neregistrovaný)
30. 8. 2007 15:18 Nový

Re: Autorova znalost C

celé vlákno
Pisou to zacatecnici, protoze znalce to nenapadne napsat, ze? Ti rodeji resi normy. A hlavne by si tady pak nemohli cintat rozumy všichni ti odborníci na slovo vzati.
ZZ9Plural
ZZ9Plural (neregistrovaný)
23. 6. 2006 11:17 Nový

Nevdecna prace

celé vlákno
Psat clanky o programovani v C je nevdecny job. Verim, vsak ze clanek a konstruktivni komentare muze nakonec podat ctenari se zejmem o to neco se naucit dobrou pomocnou ruku, takze prestante mlejte pantem, nebo to nekdo z Vas bude psat sam??? kritizovat je tak snadne.
Karel
Karel (neregistrovaný)
23. 6. 2006 12:35 Nový

Re: Nevdecna prace

celé vlákno
No, záleží na tom, co by se mělo napsat. Pokud je mojim cílem naučit někoho jazyk C, pak nejjednodušší pro mně (a vlastně i pro něj) je odkázat ho na něco již napsaného.

Internetové informace:
http://www.fi.muni.cz/usr/jkucera/pb071/uvodc.htm
http://www.hw.cz/programovani/ucebnice_c/
http://cs.wikipedia.org/wiki/C_(programovac%C3%AD_jazyk)

Tištěná literatura:
http://www.kiv.zcu.cz/~herout/publikace/ujc13.html
http://www.linuxzone.cz/index.phtml?ids=33&idc=436
http://www.abclinuxu.cz/clanky/show/91435
Honza Němec
Honza Němec (neregistrovaný)
23. 6. 2006 13:41 Nový

Re: Nevdecna prace

celé vlákno
No, těch seriálů a jiných zdrojů o C je fakt (zbytečně) hodně. Touhle výtkou mířím i sám na sebe a trochu si zároveň přihřeju vlastní polívčičku:
http://www.linuxsoft.cz/article_list.php?id_kategory=186
MaReK Olšavský aura:100
24. 6. 2006 20:26 Nový

Re: Nevdecna prace

celé vlákno
Honzo střelba z vlastních řad. Tvůj seriál se čte dobře... Přemýšlím, že Ti ba něj jednou udělám malé pokračování o Objective-C. Je pro něj i framework, takže to není exot-jazyk z kategorie rarit.
Lubos Odraska
Lubos Odraska (neregistrovaný)
23. 6. 2006 11:41 Nový

honite si sve ego?

celé vlákno
Nikdo z vas sem nenapsal rozumnou pripominku. Akorat si honite sve programatorske ega a snazite se ostatnim vnutit, ze VY jste ten nejlepsi programator a suerlinuxak. zrovan jsem prisel z diskuze ze zive.cz o windows vista a byl jsem zenchucenej. linuxaci tam akorat hazou spinu na win a zadny rozumny argument. opravdu jak maly deti... sam se radim k lilnuxove komunite, ale KDY UZ PROBOHA VYROSTEM?
uživatel si přál zůstat v anonymitě
23. 6. 2006 12:21 Nový

Re: honite si sve ego?

celé vlákno
presne tak, v tejto diskusii picuju len prijebany matfyzaci ktory v zivote hovno dokazali a honia si nad zdrojakmi napisany7mi podla ansi C :)

clanok je napisany vyborne, kto ma zaujem o ccko ten si vsetko potrebne dostuduje samostudiom

dufam ze sa autor neda odradit tymito debilkami a bude pokracovat. clanok je napisany bez zbytocnych dristov a je lahko zrozumitelnyu aj pre bezneho uzivatela.

naco by mal niekto citat 800 stranovu knihu o C ak si moze pozret 80 stranovu ze ?
lolo
lolo (neregistrovaný)
23. 6. 2006 12:27 Nový

Re: honite si sve ego?

celé vlákno
lepsie by som to asi nenapisal :)
Biktop
Biktop (neregistrovaný)
23. 6. 2006 14:02 Nový

Re: honite si sve ego?

celé vlákno
Speciálně vám dvěma radím - vykašlete se na programování. Mluví z vás neschopnost něco kloudně napsat a komplexy vůči každému, kdo toho zvládnul více než vy. Ta narážka na matfyz je více než výmluvná - nejspíš další zakomplexovaný jedinec, který nezvládnul ani tu elementární matematiku, která se tam v prvním roce učí. Vždycky a v každé oblasti budou fušeři, průměrní a mistři. Vy patříte patrně do té první skupiny. Když bude truhlařinu učit nějaký fušér, taky se zástupci ostatních dvou skupin ozvou. Když už něco vykládat, tak pořádně! Nebo raději vůbec. Zvláště když se nejedná o oblast, která by trpěla zoufalým nedostatkem dokumentace, knížek a tutorialů.
lolo
lolo (neregistrovaný)
23. 6. 2006 15:05 Nový

Re: honite si sve ego?

celé vlákno
nemas ani paru do ktorej skupiny patrim pusa :)
hovori zo mna akurat hnev, pretoze ludia sa sem snazia nieco vytvorit ale partia super turbo ultra genialnych hackerov a mega hyper fajnych programatorov ho hned zjebe aky je debil a ze nemal nic pisat
samozrejme , nech nik nic uz nepise na root zavrieme to tu
posledny nech zhasne svetlohttp://www.root.cz/clanky/zacnete-s-ceckem-v-linuxu/nazory/94617/odpovedet/
Neznalek
Neznalek (neregistrovaný)
23. 6. 2006 22:55 Nový

Re: honite si sve ego?

celé vlákno
Ale to vis ze je poznat, do ktere patris skupiny :-).
uživatel si přál zůstat v anonymitě
23. 6. 2006 15:07 Nový

Re: honite si sve ego?

celé vlákno
kdeze, ja som VS uspesne skoncil,, preto viem ake individua (ktori tomu rozumeju tak po abstraktnej stranke a chyba im zdravy rozum a usudok) tam studovali.
Kurt
Kurt (neregistrovaný)
23. 6. 2006 15:19 Nový

Re: honite si sve ego?

celé vlákno
Nic proti priteli, mozna nezvolili spravnou formu, ale trefili se nicmene presne do cernyho. Ty a tobe podobni je presne sorta rozumbradu, ktery kazdymu kdo ma o neco zajem (programovani, fyzika, chemie, cokoli) danej predmet svejma kecama neuveritelne rychle znechuti. Zrejme ti uslo, ze pointa celyho clanku neni jak psat v C ale "proste kdyz napisete gcc -g tak to udela tohle a kdyz v gdb napisete break tak to udela onohle. Zbytek si zjistete sami more" Proste takovej kickstart. Osobne mam taky za sebou jaderku ale tenhle geekovskej pristup jsem nemoh ani cejtit. A nemyslim si, ze bych to na poli programovani moc daleko nedotahnul... To ze me ale nedela kafrala a kibice!
Biktop
Biktop (neregistrovaný)
23. 6. 2006 16:19 Nový

Re: honite si sve ego?

celé vlákno
Tak samozřejmě, taky je to určitá cesta. Je to jako stavět systémem "klidně to dělej blbě, vykašli se na olovnici, na tu zahradní zídku to stejně nebude mít takovej vliv, ale hlavně stav" nebo hrát na hudební nástroj stylem "nějak to chytni a něco z toho vyluzuj, hlavně že to nějak hraje". Nebo - když říkáš, že jsi z jaderky - "klidně se vykašlete na ověřování přepokladů té a té věty, hlavně že vám něco vyjde". Tak s tímhle přístupem bys hochu z tý školy letěl hned v prvním jáhru, taky jsem jejím absolventem a moc dobře si pamatuju na zkoušky z matematiky. Ten kámen úrazu přijde přesně v tý chvíli, kdy je třeba postavit něco většího nebo zahrát něco složitějšího nebo spočítat něco netriviálního. Svým přístupem mi připomínáte jistou nejmenovanou učebnici jazyka C, v níž příklady nefungovaly nebo dělaly něco jiného, případně jejich popis byl naprosto zcestný. Kam jste se kdo v programování dostal, to teda soudit nehodlám, jen se toho upřímně děsím. Pár programů od lidí typu níže - "nemám čas ani chuť ošetřovat výjimečné stavy programu" - už mi rukama prošlo. Hrůza se v tom zorientovat, funguje to tak na dobrý slovo, prostě prasárna. Škoda času a peněz, pokud to chce někdo o něco rozšířit nebo jinak modifikovat, je třeba to napsat celé znova. To je přesně výsledek onoho "hlavně že to nějak funguje a že tě baví programovat".
uživatel si přál zůstat v anonymitě
23. 6. 2006 17:25 Nový

Re: honite si sve ego?

celé vlákno
a) clanok nie je o tom ako pisat program v ccku
b) nie su to skripta z ccka

musis si uvedomit ze tie priklady su pre ludi co si raz za cas nieco z dlhej chvile naprogramuju, nejaku databazu, ovladanie krokoveho motora cez LPT a pod.
tychto ludi so spartanskym pristupom len zbytocne odradis.

pre kopec stredoskolakov je tento clanok vyborny navod, neskorsie ked sa dostanu na VS pochopia viac.
disorder
disorder (neregistrovaný)
23. 6. 2006 18:41 Nový

Re: honite si sve ego?

celé vlákno
> pre kopec stredoskolakov je tento clanok vyborny navod, neskorsie ked sa dostanu na VS pochopia viac.

preco az ked sa dostanu na VS? keby som mal cakat na VS, aby som vedel viac, tak by som musel cakat cez 5 rokov. na C som presiel z Pascalu uz na ZS a vobec si nemyslim, ze u niekoho kto uz "programoval v jiném operačním systému" by bol problem s pochopenim.
ShaCK
ShaCK (neregistrovaný)
24. 6. 2006 9:34 Nový

Re: honite si sve ego?

celé vlákno
Ano mas pravdu, a proto by ten program mel splnovat normu! Proc kdyz je to teda "jen tak" pro radost to ma byt blbe?
ShaCK
ShaCK (neregistrovaný)
24. 6. 2006 9:33 Nový

Re: honite si sve ego?

celé vlákno
Navíc to platí jako u tebou zminovaneho hudebniho nastroje, zlozvyky se teeeezko odnaucuji ...
ShaCK
ShaCK (neregistrovaný)
24. 6. 2006 9:32 Nový

Re: honite si sve ego?

celé vlákno
To rozhodne nedela, ale taky te tam mohli naucit, kdyz jsi takovy Pan Studovany, ze programy se musi psat dle norem!!! Pan Virius by ti za tohle dal!
Vít Heřman
25. 6. 2006 17:01 Nový

Re: honite si sve ego?

celé vlákno
A pokud by takto pristupoval k algebre tak by ho Pytlicek s Humhalem svorne ruku v ruce vynesli v zubech az na Karlak ;)
bambas
bambas (neregistrovaný)
25. 6. 2006 12:46 Nový

Re: honite si sve ego?

celé vlákno
TAk to se pletes kamo. Ja se psanim kody zivim. ale nechapu co to sem tahas. jak muzes soudit nekoho, aniz ho znas, popr. videl jeho praci? To spis TY trpis nejakym komplexem. A co se tyce literatury o C, ty uz bylo napsano mraky. A autor clanku se na literaturu odkazuje hned na zacatku. Zrejme autor nemyslel tento clanek a srrial jako ucebnici C, ale jak programovat v C pod linuxem. hawk
Jakub Hegenbart aura:85
25. 6. 2006 12:51 Nový

Re: honite si sve ego?

celé vlákno
Takže až v nějakém televizním pořadu pro automobilisty budou "jen předvádět nový Ford", klidně přejedou babičku na přechodu, protože to nebude "o tom, jak správně jezdit", ale "o tom, jak jezdit ve Fordu"?

Živíš se v práci přejížděním babiček? :)* ;-)
Milamber
Milamber (neregistrovaný)
26. 6. 2006 9:19 Nový

Re: honite si sve ego?

celé vlákno
Konečně názor hodný opravdového blba !
Jakub Hegenbart aura:85
26. 6. 2006 9:26 Nový

Re: honite si sve ego?

celé vlákno
Taky jsem si všiml. Tak proč ho píšeš? ;-)
ShaCK
ShaCK (neregistrovaný)
26. 6. 2006 13:08 Nový

Re: honite si sve ego?

celé vlákno
Hehe, trefny, stejne jako prirovnani s Fordem :-D
Novinsky
Novinsky (neregistrovaný)
27. 6. 2006 11:49 Nový

Re: honite si sve ego?

celé vlákno
Souhlasím s Vami kdo prirovnava C k zabijeni Babicek (navic si asi nikdy nevsiml, ze v techto poradech opravdu predpisy porusuji) neni blb ale kolosalni blb !

Asi by se melo do techto poradu taky napsat ze kazi ridice, kdyz parkuji na prechodu , jezdi rychle nebo stoji v krizovatce. No hruza ! Prece neni dulezite ze ten Ford ma ABS, ale ze jel rychle to si jiste kazdy divak hned vsim a zapsal.

Nad nekterym prirovnanim clovak opravdu zasne !
No reknu Vam v ty televizy to je jako kdyz reknete, ze program co neni presne podle normy zabije babicku.
ShaCK
ShaCK (neregistrovaný)
23. 6. 2006 12:54 Nový

Re: honite si sve ego?

celé vlákno
Pokud povazujes vyborny clanek kde jsou hned 3 chyby v nejtrapnejsim hello world programu, tak to potes a do programovani se radsi neser :-D matfyzaci jo? Jsem z obchodky, to snad vylucuje to,ze jsem programator? NE! Autor necht si prosim dopredu zjisti, jakym stylem se pisi programy v C pod Unixem SPRAVNE!!! Kdyby takhle programoval kazdy tak to bude pekna prasarna...
uživatel si přál zůstat v anonymitě
23. 6. 2006 13:11 Nový

Re: honite si sve ego?

celé vlákno
ok, nebbude prasarna, ale nebudu aplikacie. s takymto pristupom bude mat linux vzdy 0,00000001 % uzivatelov a minimum aplikacii bude portovanych (desktopovych)

sa zobud, vsetky komercne aplikacie su prasarna, skor ci neskor to pride aj na linux. nie kazdy ma cas/chut zasierat/formatovat/komentovat/osetrovat vynimky kodu.

3 chyby v nejtrapnejsim hello world programu - pozri sa ako sa vyucuje programovanie na skolach, potom zmenis nazor.


este jeden joke:

High School/Jr.High
=====================

10 PRINT "HELLO WORLD"
20 END

First year in College
=====================

program Hello(input, output)
   begin
     writeln('Hello World');
   end.

Senior year in College
=====================

(defun hello
    (print
     (cons 'Hello (list 'World))))

New professional
=====================

#include <stdio.h>
void main(void)
{
   char *message[] = {"Hello ", "World"};
   int i;

   for(i = 0; i < 2; ++i)
     printf("%s", message[i]);
   printf("\n");
}

Seasoned professional
=====================

#include <iostream.h>
#include <string.h>

   class string
   {
   private:
     int size;
     char *ptr;

   public:
     string() : size(0), ptr(new char('\0')) {}

     string(const string &s) : size( s.size)
     {
       ptr = new char[size + 1];
       strcpy(ptr, s.ptr);
     }

     ~string()
     {
       delete [] ptr;
     }

     friend ostream &operator <<(ostream &,
                               const string &);
     string &operator=(const char *);
   };

   ostream &operator<<(ostream &stream, const string &s)
   {
     return(stream << s.ptr);
   }

   string &string::operator=(const char *chrs)
   {
     if (this != &chrs)
     {
       delete [] ptr;
      size = strlen(chrs);
       ptr = new char[size + 1];
       strcpy(ptr, chrs);
     }
     return(*this);
   }

   int main()
   {
     string str;

     str = "Hello World";
     cout << str << endl;

     return(0);
   }

Master Programmer
=====================

[
   uuid(2573F8F4-CFEE-101A-9A9F-00AA00342820)
   ]
   library LHello
   {
       // bring in the master library
       importlib("actimp.tlb");
       importlib("actexp.tlb");

       // bring in my interfaces
       #include "pshlo.idl "

       [
       uuid(2573F8F5-CFEE-101A-9A9F-00AA00342820)
       ]
       cotype THello
    {
    interface IHello;
    interface IPersistFile;
    };
   };

   [
   exe,
   uuid(2573F890-CFEE-101A-9A9F-00AA00342820)
   ]
   module CHelloLib
   {

       // some code related header files
       importheader(<windows.h );
       importheader(<ole2.h );
       importheader(<except.hxx );
       importheader(" pshlo.h");
       importheader("shlo.hxx");
       importheader("mycls.hxx");

       // needed typelibs
       importlib("actimp.tlb");
       importlib("actexp.tlb");
       importlib("thlo.tlb");

       [
       uuid(2573F891-CFEE-101A-9A9F-00AA00342820),
       aggregatable
       ]
       coclass CHello
    {
    cotype THello;
    };
   };

   #include "ipfix.hxx"
   extern HANDLE hEvent;
   class CHello : public CHelloBase
   {
   public:
       IPFIX(CLSID_CHello);

       CHello(IUnknown *pUnk);
       ~CHello();

       HRESULT  __stdcall PrintSz(LPWSTR pwszString);

   private:
       static int cObjRef;
   };

   #include <windows.h>
   #include <ole2.h>
   #include <stdio.h>
   #include <stdlib.h>
   #include "thlo.h"
   #include " pshlo.h"
   #include "shlo.hxx"
   #include "mycls.hxx"

   int CHello:cObjRef = 0;

   CHello::CHello(IUnknown *pUnk) : CHelloBase(pUnk)
   {
       cObjRef++;
       return;
   }

   HRESULT  __stdcall  CHello::PrintSz(LPWSTR pwszString)
   {
       printf("%ws\n", pwszString);
       return(ResultFromScode(S_OK));
   }


   CHello::~CHello(void)
   {

   // when the object count goes to zero, stop the server
   cObjRef--;
   if( cObjRef == 0 )
       PulseEvent(hEvent);

   return;
   }

   #include <windows.h>
   #include <ole2.h>
   #include "pshlo.h"
   #include "shlo.hxx "
   #include "mycls.hxx"

   HANDLE hEvent;

    int _cdecl main(
   int argc,
   char * argv[]
   ) {
   ULONG ulRef;
   DWORD dwRegistration;
   CHelloCF *pCF = new CHelloCF();

   hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);

   // Initialize the OLE libraries
   CoInitiali, NULL);

   // Initialize the OLE libraries
   CoInitializeEx(NULL, COINIT_MULTITHREADED);

   CoRegisterClassObject(CLSID_CHello, pCF,
       CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE,
       &dwRegistration);

   // wait on an event to stop
   WaitForSingleObject(hEvent, INFINITE);

   // revoke and release the class object
   CoRevokeClassObject(dwRegistration);
   ulRef = pCF->Release();

   // Tell OLE we are going away.
   CoUninitialize();

   return(0); }

   extern CLSID CLSID_CHello;
   extern UUID LIBID_CHelloLib;

   CLSID CLSID_CHello = {
           /* 2573F891-CFEE-101A-9A9F-00AA00342820 */
       0x2573F891,
       0xCFEE,
       0x101A,
       { 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
   };

   UUID LIBID_CHelloLib = {
           /* 2573F890-CFEE-101A-9A9F-00AA00342820 */
       0x2573F890,
       0xCFEE,
       0x101A,
       { 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
   };

   #include <windows.h>
   #include <ole2.h>
   #include <stdlib.h>
   #include <string.h>
   #include <stdio.h>
   #include "pshlo.h"
   #include "shlo.hxx"
   #include "clsid.h"

   int _cdecl main(
   int argc,
   char * argv[]
   ) {
   HRESULT  hRslt;
   IHello        *pHello;
   ULONG  ulCnt;
   IMoniker * pmk;
   WCHAR  wcsT[_MAX_PATH];
   WCHAR  wcsPath[2 * _MAX_PATH];

   // get object path
   wcsPath[0] = '\0';
   wcsT[0] = '\0';
   if( argc   1) {
       mbstowcs(wcsPath, argv[1], strlen(argv[1]) + 1);
       wcsupr(wcsPath);
       }
   else {
       fprintf(stderr,
               "Object path must be specified\n");
       return(1);
       }

   // get print string
   if(argc   2)
       mbstowcs(wcsT, argv[2], strlen(argv[2]) + 1);
   else
       wcscpy(wcsT, L"Hello World");

   printf("Linking to object %ws\n", wcsPath);
   printf("Text String %ws\n", wcsT);

   // Initialize the OLE libraries
   hRslt = CoInitializeEx(NULL, COINIT_MULTITHREADED);

   if(SUCCEEDED(hRslt)) {

       hRslt = CreateFileMoniker(wcsPath, &pmk);
       if(SUCCEEDED(hRslt))
    hRslt = BindMoniker(pmk, 0, IID_IHello,
                     (void **)&pHello);

       if(SUCCEEDED(hRslt)) {

    // print a string out
    pHello->PrintSz(wcsT);

    Sleep(2000);
    ulCnt = pHello->Release();
    }
       else
    printf("Failure to connect, status: %lx", hRslt);

       // Tell OLE we are going away.
       CoUninitialize();
       }

   return(0);
   }

Apprentice Hacker
=====================

#!/usr/local/bin/perl
$msg="Hello, world.\n";
if ($#ARGV >= 0) {
   while(defined($arg=shift(@ARGV))) {
     $outfilename = $arg;
     open(FILE, ">" . $outfilename)
           || die "Can't write $arg: $!\n";
     print (FILE $msg);
     close(FILE) || die "Can't close $arg: $!\n";
   }
} else {
   print ($msg);
}
1;

Experienced Hacker
=====================

#include <stdio.h>
#define S "Hello, World\n"
main(){exit(printf(S) == strlen(S) ? 0 : 1);}

Seasoned Hacker
=====================

% cc -o a.out ~/src/misc/hw/hw.c
% a.out

Guru Hacker
=====================

% cat
Hello, world.
^D

AXE System programmer
=====================

LL0:
         .seg    "data"
         .seg    "text"
         .proc 04
         .global _main
_main:
         !#PROLOGUE# 0
         sethi   %hi(LF26),%g1
         add     %g1,%lo(LF26),%g1
         save    %sp,%g1,%sp
         !#PROLOGUE# 1
         .seg    "data1"
L30:
         .ascii  "Hello, World\012\0"
         .seg    "text"
         .seg    "data1"
L32:
         .ascii  "Hello, World\012\0"
         .seg    "text"
         set     L32,%o0
         call    _strlen,1
         nop
         mov     %o0,%i5
         set     L30,%o0
         call    _printf,1
         nop
         cmp     %o0,%i5
         bne     L2000000
         nop
         mov     0,%o0
         b       L2000001
         nop
L2000000:
         mov     0x1,%o0
L2000001:
         call    _exit,1
         nop
LE26:
         ret
         restore
        LF26 = -96
         LP26 = 96
         LST26 = 96
         LT26 = 96
         .seg    "data"

0000000 0103 0107 0000 0060 0000 0020 0000 0000 0000020 0000 0030 0000
0000
0000 0054 0000 0000 0000040 033f ffff 8200 63a0 9de3 8001 1100 0000
0000060
9012 2000 4000 0000 0100 0000 ba10 0008 0000100 1100 0000 9012 2000 4000
0000 0100 00 ba10 0008 0000100 1100 0000 9012 2000 4000 0000 0100 0000
0000120 80a2 001d 1280 0005 0100 0000 9010 2000 0000140 1080 0003 0100
0000
9010 2001 4000 0000 0000160 0100 0000 81c7 e008 81e8 0000 0000 0000
0000200
4865 6c6c 6f2c 2057 6f72 6c64 0a00 4865 0000220 6c6c 6f2c 2057 6f72 6c64
0a00 0000 0000 0000240 0000 000c 0000 0608 0000 006e 0000 0010 0000260
0000
060b 0000 006e 0000 0014 0000 0286 0000300 ffff ffec 0000 0020 0000 0608
0000 0060 0000320 0000 0024 0000 060b 0000 0060 0000 0028 0000340 0000
0186
ffff ffd8 0000 004c 0000 0386 0000360 ffff ffb4 0000 0004 0500 0000 0000
0000 0000400 0000 000a 0100 0000 0000 0000 0000 0012 0000420 0100 0000
0000
0000 0000 001a 0100 0000 0000440 0000 0000 0000 0020 5f6d 6169 6e00 5f70
0000460 7269 6e74 6600 5f73 7472 6c65 6e00 5f65 0000500 7869 7400
0000504

% axe_generate -f system.uhdl
Application 'Exchange' generated
2324042350000000 source code lines
No Errors detected.
Hardware retrieval...done OK
Certification Test...done OK
Packing..............done OK
Delivery.............done OK
Application 'Exchange' delivered to customer 23456000 bytes/sec.
End processing, 2345 seconds.

Ultra high level programmer
=====================

system.uhdl :

SYSTEM
   CREATE ScreenWin
     SIZE 20000000/Unit=One
     DESTINATION Order.dest[One]
     OUTPUT CHARACTER['Hello world']
   END
END

New Manager
=====================

10 PRINT "HELLO WORLD"
20 END

Middle Manager
=====================

mail -s "Hello, world." bob@b12

Bob, could you please write me a program that prints "Hello, world."? I
need
it by tomorrow.

^D

Senior Manager
=====================

% zmail all

   I need a "Hello, world." program by this afternoon.

Chief Executive
=====================

% message
   message: Command not found
   % pm
   pm: Command not found
   % letter
   letter: Command not found.
   % mail
   To: ^X ^F ^C
     help mail
   help: Command not found.
   >what
   what: Command not found
   >need help
   need: Command not found
     damn!
   !: Event unrecognized
   >exit
   exit: Unknown
   >quit
   %
   % logout

   Bipppp ! Mrs. Thompson? Please page Tommy for me. NOW!
jesusjimenez
jesusjimenez (neregistrovaný)
23. 6. 2006 13:47 Nový

Re: honite si sve ego?

celé vlákno
Dik :-D
Biktop
Biktop (neregistrovaný)
23. 6. 2006 14:28 Nový

Re: honite si sve ego?

celé vlákno
"sa zobud, vsetky komercne aplikacie su prasarna, skor ci neskor to pride aj na linux. nie kazdy ma cas/chut zasierat/formatovat/komentovat/osetrovat vynimky kodu."

Tak tohle může napsat jen naprostý diletant! Měl byste se věnovat raději nějaké jednodušší práci, na programování zjevně nemáte.
ShaCK
ShaCK (neregistrovaný)
23. 6. 2006 14:33 Nový

Re: honite si sve ego?

celé vlákno
Presne tak :)

nie kazdy ma cas/chut zasierat/formatovat/komentovat/osetrovat vynimky kodu == ne kazdy muze a mel by byt vubec programator, ze ano
ShaCK
ShaCK (neregistrovaný)
23. 6. 2006 14:32 Nový

Re: honite si sve ego?

celé vlákno
Aha, takze podle tebe kdyz teda vsichni ostatni pisou jak prasata tak ty muzes taky jo? to je super, pak tedy kdyz ostatni odhazuji odpadky na ulici tak ja budu taky? No s tvou filosofii si bez pouzivat windowsy, taky ti spousta lidi rekne pouziva je kazdy :-D

Dik za joke, je dobrej :) ikdyz link misto dlouhyho postu by bodnul vic priste
Stepan Mracek
Stepan Mracek (neregistrovaný)
23. 6. 2006 13:00 Nový

Re: honite si sve ego?

celé vlákno
ubohe a nizke :-(
uživatel si přál zůstat v anonymitě
23. 6. 2006 16:02 Nový

Re: honite si sve ego?

celé vlákno
Tak ta poznamka o matfyzakoch bola dost uboha. Mozete sa pochvalit konkretnou skolou, podla ktorej studentov takto zovseobecnujete? Ja poznam niekolko matfyzakov, ktori by strcili mnozstvo komercnych programatorov do vrecka napriek tomu, ze vedia pisat C podla normy.

Rozculuju ma ludia, ktori si vylievaju zlost a riesia komplexy na forach, pricom "v zivote hovno dokazali". Budem len rad, ak som sa vo vas zmylil.

Sudiac podla vasho prispevku, k slovenskej gramatike mate podobny vztah ako k ANSI norme C.
ShaCK
ShaCK (neregistrovaný)
24. 6. 2006 9:37 Nový

Re: honite si sve ego?

celé vlákno
:-D signed
Jakub Hegenbart aura:85
24. 6. 2006 1:21 Nový

Re: honite si sve ego?

celé vlákno
Připomínka, že autorem uvedený kus kódu je silně nekorektní, není rozumná připomínka. No dobře, to si zapamatuju. :-D
Niobi
Niobi (neregistrovaný)
25. 6. 2006 14:34 Nový

Re: honite si sve ego?

celé vlákno
ja ti odpovim na tvou otazku lide, ktery se chovaj tak jak tito nevyrostou nikdy a ti chytrejsi z nich vyrostou az nebude na co hazet spinu > z toh vypliva az nebude zadny jiny OS jak Tux :-)
Jirka Andrys
23. 6. 2006 11:51 Nový

Kam kraci Root?

celé vlákno
Toto je snad nejslabsi clanek, ktery jsem kdy na Rootu cetl. Autor uvadi, ze tento clanek je urcen zacatecnikum, ale to pochybuji. Autor nerekne zacatecnikovi nic vic, nez by byl schopen zacatecnik sam stylem pokus omyl zvladnout.

Autor zacatecnikovi nabizi, aby si precetl manualovou stranku GCC, ktera ma 10000 radek a ze ktere zacatecnik rozhodne moc nepobere. Proc radsi alespon nedoporuci prepinac -Wall?

Kdyz uz jsme u manualovych stranek, proc autor nedoporuci sekci 3, ve ktere se nachazi dobra dokumentace k funkcim standardnich knihoven?

Nejsem dobry programator v Cecku a mozna o to vice me stve, ze autor uroven clanku omlouva tim, ze je prece urcen zacatecnikum. Jakoby se pro zacatecniky nedal napsat kvalitni serial:-/.
lolo
lolo (neregistrovaný)
23. 6. 2006 12:30 Nový

Re: Kam kraci Root?

celé vlákno
tak ho jirko napis
mas moznost
ukaz sa
ShaCK
ShaCK (neregistrovaný)
23. 6. 2006 12:58 Nový

Re: Kam kraci Root?

celé vlákno
vis lolo, on kazdy nema cas psat clanky, preci jen je to casove narocne, a hodne lidi, co se treba programovanim zivi a ma nakou rodinu / partnerku tak opravdu nema cas venovat se podrobne clanku, a tak proto pokud nemam cas napsat lepsi mam drzet hubu kdyz je v clanku neco spatne? Co nesplnuje standardy? BTW jak vyse mozna ty nebo nekdo pise, proc studovat 800strankovou knihu C, no jasne, proc se ucit celou prirucku autoskoly, staci se naucit kde je brzda a plyn a na dopravni predpisy seru, na blinkry seru atd.... to je tvuj nazor preveden do realneho sveta, autor je prirovnatelny (aspon co predvedl v clanku) k ridici, ktery jede autem, ano, ovladat vozidlo umi, ale o dopravnich predpisech nema ani sajnu, jak to dopada?

Navic co se jednou naucis spatne, tezko se preucuje, takze na to bacha!
BLEK.
BLEK. (neregistrovaný)
23. 6. 2006 17:09 Nový

Re: Kam kraci Root?

celé vlákno
To já partnerku a rodinu nemám, protože mám poruchu osobnosti.
ShaCK
ShaCK (neregistrovaný)
23. 6. 2006 23:30 Nový

Re: Kam kraci Root?

celé vlákno
Tak napis clanek o Cecku, narozdil od autora clanku ty programator fakt jsi a vis o cem to je
Milamber
Milamber (neregistrovaný)
26. 6. 2006 9:28 Nový

Re: Kam kraci Root?

celé vlákno
> vis lolo, on kazdy nema cas psat clanky
Za to na žvásty má času dost !
klaudy
klaudy (neregistrovaný)
23. 6. 2006 12:59 Nový

Re: Kam kraci Root?

celé vlákno
A proc to znova psat?
viz odkazy z http://www.root.cz/clanky/zacnete-s-ceckem-v-linuxu/nazory/94594/

To, ze nekdo (IMHO celkem opravnene) kritizuje tento clanek, prece neznamena, ze se povysuje. Myslim si, ze kazdy clovek, ktery se s Ceckem uz nejaky patek kamaradi pozna, ze pedagogicka a odborna hodnota toho clanku je miziva. Z clanku ani neni patrne, zda je urcen pro ty, kteri vzivote neprogramovali, nebo pro ty, kteri maji uz nejake zkusenosti, ale ne na Linuxu. Pokud bych byl zacatecnik (at uz jakykoliv), tak by me tento clanek nenalakal ani trochu.
ShaCK
ShaCK (neregistrovaný)
23. 6. 2006 13:01 Nový

Re: Kam kraci Root?

celé vlákno
Samozjreme neuznavam primitivni se navazeni do autoru clanku, ale pokud mu nekdo napise "ze by si mel knihu o Cecku nejprve precist sam" a neni to mysleno jako urazka, nybrz pravdive doporuceni, protoze by to opravdu asi potreboval. Nepochybuji ze zna konstrukce jazyka jeho aspekty a zpusob pouziti, ale normy a styl psani v Unixu mu proste chybi
Pepa
Pepa (neregistrovaný)
23. 6. 2006 14:41 Nový

Re: Kam kraci Root?

celé vlákno
normy a styl psani v Unixu mu proste chybi .... ale on učí začátečníky céčko. Žádné normy ani styl psaní, učí céčko.
ShaCK
ShaCK (neregistrovaný)
23. 6. 2006 14:57 Nový

Re: Kam kraci Root?

celé vlákno
Ne, autor sam pise ze uci toho kdo cecko umi nebo neumi, jak se s nim zachazi v Unixu a to je prave to!
Mcha
Mcha (neregistrovaný)
23. 6. 2006 13:09 Nový

Rozumne zdroje pro podobne 'zacatecniky'

celé vlákno
Take jsem v Unix-like systemech zacinal po prechodu z jinych OS. A hodne mi pomohlo precist si v nasledujichch knihach a online zdrojich:

a) jiz zminovana anonymni ucebnice cecka by se dala zkonkretizovat na
heroutovu ucebnici jazyka C, http://www.kiv.zcu.cz/~herout/publikace/ujc13.html , kde se autor na konci knihy
zabyva i specifiky prekladu v unixovych systemech. Pamatuji ze to pro mne sveho
casu bylo moc dobre nakopnuti a navic v knize, kterou povazuji za kvalitni ucebnici Ccka pro zacatecniky v ceskem jazyce.
Je tam zminka o kompilaci v unixech, o Makefileovani a naznak gcc.

b) manual k GNU C library (ja jej mam od nekud v PostScriptu, na nasledujicim URL je v HTML http://www.gnu.org/software/libc/manual/html_node/index.html)
Nejedna se primo o ucebnici, je to manual, ktery moc dobre popisuje zakouti
GNU libc knihovny a lze tam vykoukat mnohe z POSIXovych specifik.
(dost casto jsou tam podobne veci jako v man 3, ale i s nazornymi priklady etc...proste pekna dokumentace, ktera se dobre cte a kterou se vyplati si vytisknouti ;)

c) GDB v Emacsu - http://tedlab.mit.edu/~dr/gdbintro.html &
http://www.gnu.org/software/gdb/documentation/
kdyz jsem kdysi videl kolegu jak v Emacsu debuguje pomerne narocny Cckovy projekt,uplne mne to dostalo. A jsem od te doby vi/emacsovym obojetnikem - pro seriozni programovani uzivam emacs, pro upravy textovych souboru na dalku uzivam
vi (ale to je jina pohadka). Proste dobry editor - nejen emacs ;) vim, ze vim to umi take jen ja to ve vim neumim - a gdb je moc dobre se naucit hned pri psani
helouworldu :)

d) a jako doplnek - v cestine je prima dokumentace o programovani v Unixu od L.Dobiase,
http://docs.linux.cz/programming/c/c_dobias/

Zaver: takovy clanek ano, ale doplneny vhodnymi zdroji, odkazy na tutorialy a dalsi informace. Stabni kultura Ckoveho zdroje by v zacatecnickem clanecku take mohla byt zachovana ....
Stepan Mracek
Stepan Mracek (neregistrovaný)
23. 6. 2006 13:57 Nový

Dopotucuji

celé vlákno
http://www.fit.vutbr.cz/~martinek/clang/
Tato stranka by taky mohla hodne pomoct
Stepan Mracek
Stepan Mracek (neregistrovaný)
23. 6. 2006 13:58 Nový

Re: Dopotucuji

celé vlákno
teda Doporucuji ;-)
Mcha
Mcha (neregistrovaný)
23. 6. 2006 15:04 Nový

Re: Dopotucuji

celé vlákno
:-) no to je moc pekne :)
myslim, ze kdyby autor tohoto clanku opsal z uvedeneho odkazu sekci:
http://www.fit.vutbr.cz/~martinek/clang/gcc.html.iso-8859-1
tak by tech kopancu tolik nedostal ;)
Fakt pekne - skoda, ze neco takoveho neni ke cteni na rootu ;)
repulsive
repulsive (neregistrovaný)
23. 6. 2006 16:51 Nový

Re: Dopotucuji

celé vlákno
kopance by asi byly, ale spíš ze strany jazykozpytců anebo prostě lidí, kteří mají k jazyku určitý vztah. odkazovat na verzi stránky v kódování s částečnou diakritikou (čárky většinou ano, háčky ne) je nehezké.

to jen tak na okraj, abych těch polínek v ohni bylo více
Mcha
Mcha (neregistrovaný)
23. 6. 2006 17:05 Nový

Re: Dopotucuji

celé vlákno
:-D no, takovi lide zase IMHO neprogramuji.
btw: vcera jsem cetl v mlade fronte dnes rozhovor s panem prezidentem a na jednu z otazek (zda pise smsky spisovne) odpovedel: nejen spisovne ale i s hacky a carkami, i kdyz vim, ze ne kazdy komu takovou sms poslu, ji dostane ve stejne forme....

(omlouvam se, pisi bez hacku a carek a misty i nespisovne) ;)
Eregon
Eregon (neregistrovaný)
23. 6. 2006 21:56 Nový

Re: Dopotucuji

celé vlákno
Stránky FITu mají to kouzlo (někdy spíš prokletí), že si znakovou sadu detekují samy, pokud ji na konci URL explicitně nezadáte.

Takže můžete použít adresu např.

http://www.fit.vutbr.cz/~martinek/clang/gcc.html

nebo

http://www.fit.vutbr.cz/~martinek/clang/gcc.html.iso-8859-2

nebo dokonce

http://www.fit.vutbr.cz/~martinek/clang/gcc.html.windows-1250

a jazykozpytci mohou být spokojeni :-D
Transcendent
Transcendent (neregistrovaný)
23. 6. 2006 18:42 Nový

Skončete s Céčkem v linuxu i jinde

celé vlákno
Pánové, v roce 2006 už byste se na to Céčko měli fakt vysrat. Kromě psaní driverů apod. nemá smysl se céčkem dále zabývat. A už vůbec ne cpát do další generace imperativní jazyk na úrovni assembleru...
....
Probuďte se! Do kdy chcete stahovat další a další aktualizace, které pořád dokola opravují buffer overflow a ostatní pitomosti?
....
Proč? Proč? Proč?
Viděli jste někdy Huskell? Prolog?
....
Nebo aby to bylo pěkné - Smalltalk?
....
Třikrát fuj céčku!
....
P.S. K céčku už bych se vrátil pouze v případě, že bych si chtěl přeprogramovat vysavač!

...For Gods Sake!...
Biktop
Biktop (neregistrovaný)
23. 6. 2006 18:48 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
Další "chytrák" se ozval. Zkuste v libovolném z vámi uvedených příkladů napsat jednoduchý operační systém a pak se znovu ozvěte.
uživatel si přál zůstat v anonymitě
23. 6. 2006 19:16 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
A Smalltalk je co? :-)
Biktop
Biktop (neregistrovaný)
23. 6. 2006 20:07 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
Smalltalk je pěkný objektový jazyk, C++ je proti tomu dětská koloběžka, to je fakt. Ale porovnávat Smalltalk s C...
C je velmi jednoduchý jazyk, na nějž lze rychle udělat poměrně jednoduchý kompilátor, přičemž výsledný kód zůstává velmi efektivní a zdrojový text dobře přenositelný. V podstatě je to "univerzální algebraický assembler". V tomto ohledu je role C dodnes nenahraditelná. Nepočítám-li věci jako PL/1 (používá to ještě někdo? :-)
Jakub Hegenbart aura:85
24. 6. 2006 1:28 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
Hmm, používal vůbec PL/1 někdy někdo? :-D ;-)
Transcendent :-p
Transcendent :-p (neregistrovaný)
23. 6. 2006 20:04 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
I když v titulku článku stojí "Programovali jste v jiném operačním systému a teď chcete začít programovat pod Linuxem?", a nezdá se mi tedy, že by se v článku jednalo o psaní operačního systému, odpovím:

1) Většina lidí, kteří programují (programovali) v jazyce C, NEPÍŠE operační systémy, zato píše aplikace, ke kterým je potřeba neustále stahovat aktualizace opravující buffer overflow atd.. (tj. například já je musím neustále stahovat, což mě příšerně obtěžuje)

2) Pokud vím, tak např. Mac OS je napsán v Object C, což je ale jiná káva než Céčko! :-)

3) Napsat operační systém v některém z vyšších programovacích jazyků je naprosto zřejmě možné a nanejvýš vhodné (verifikace správnosti atd).

Málo čtete, nebo málo hledáte, zkuste například http://www.cse.ogi.edu/~hallgren/House/, doporučuji zejména odkaz http://www.cse.ogi.edu/~hallgren/ICFP2005/,

"...The interface has been implemented on bare IA32 hardware using the Glasgow Haskell Compiler (GHC) runtime system. We show how a variety of simple O/S kernels can be constructed on top of the interface, including a simple separation kernel and a demonstration system in which the kernel, window system, and all device drivers are written in Haskell..."

... a variety ...

4) Mohli bychom se dále bavit o mém názoru, že používání primitivních imperativních jazyků, jako je Céčko, koreluje s tím, že dnešní procesory jsou stále jen Turbokalkulačky (čím dál rychlejší, samozřejmě), které z hlediska algoritmizace podporují jedinou vyšší abstrakci - zásobník. Aspoň rekurzi že máme, zaplať Bůh!

Samozřejmě je to jen můj názor, že imperativní programování (takový ten assembler ala céčko) svedlo na scestí celou informatiku, a pozdrželo její vývoj o 30 let, nicméně takový Smalltalk, stále nedoceněný, nabízí již od roku 72 (80?) prostředky pro čisté, objektové programování - navíc v něm nevzniká nic jako segmentation fault..

5) Když vidím kód jako:

nova_funkce() {
char *a;
a=(char *) malloc(1);
a=500; /* Hrubá chyba! */
*a='!'; free((void *) a);
}

Říkám si jenom: Že to céčkaře pořád baví... Ty hvězdičky a šipečky ... :-D
Asi mají více času než já a budou tu na rozdíl ode me aspoň 300 let...

6) Zvídavým bych ještě doporučil například Singularity, http://research.microsoft.com/os/singularity/, moc hezká věc od výrobce _nejlepšího_ _současného_ _operačního_ _systému_ _na_ _světě_ :-p.

Tak jak je popsáno na uvedených stránkách, by měl vypadat operační systém, a ne jako céčkové šílenství ala linux nebo nakonec i ty současné windowsy - tímto směrem se asi bude ubírat vývoj, a to pro Céčko, ani pro céčkaře není dobré znamení :-D

7) Uff to bylo ale dlouhý...
Biktop
Biktop (neregistrovaný)
23. 6. 2006 20:32 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
Já souhlasím a plně se podepisuji jen pod jedno - že Smalltalk je neprávem stále nedoceněný jazyk. To je fakt a je velká škoda, že tento skvělý objektový jazyk není minimálně tak rozšířený, jako Java. Už jsem tu kdysi na toto téma diskutoval.
Ovšem C se Smalltalkem prostě nahradit nedá. Je to prostředek jiné třídy.
Jak by měl vypadat operační systém, o tom už bylo napsáno spousta článků a knih. Pokud jde o mě, jsem toho názoru, že především musí být malý a efektivní. Pokud je to možné, použít Assembler (drobné OS pro embedded aplikace), jinak C, které pokryje obrovskou škálu možných nasazení. Pokud C přestává stačit, je samozřejmě na místě debata o použití jiného prostředku, ovšem vyvstává jiná otázka, totiž, zda realizovaná koncepce OS je správná, vyžaduje-li použití takových prostředků. Znovu však opakuji, že na 1. místě musí stát efektivita výsledného kódu a jeho minimální rozměry.
Objective C je skutečně něco jiného než C++, ale nechápu proč stále srovnáváte objektové a neobjektové jazyky. 1) Když už bych se chtěl vyvarovat C++ a přesto použít OOP, sáhl bych bez váhání nejspíše po Smalltalku, 2) výsledný kód OOP programu je PROKAZATELNĚ méně efektivní, než kód přeložený z neobjektového prostředí. Je to zkrátka daň za programátorovo pohodlí.
Jestli tvrdíte, že C zdrželo vývoj o 30 let, pak jsem tedy za těch 30 let vděčný, jinak bychom tu už dávno měli neefektivní monstra napsaná s využitím OOP.

A ještě jedno rýpnutí - bývá módou říkat, že programovat v Assembleru je dnes naprostý anachronismus a že optimalizovaný kód generovaný překladačem je efektivnější, než ručně psaný. K tomu dodávám, že to může říct jen člověk, který Assembler v životě doopravdy nezvládl! Zkrátka využijme toho, že si můžeme vybrat jazyk, který se nám nejvíce hodí. Není důvod jakýkoliv z programovacích jazyků zavrhovat. Univerzální programovací jazyk totiž neexistuje.
Transcendent XY
Transcendent XY (neregistrovaný)
24. 6. 2006 17:42 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
Smalltalk je super, to je fakt!

Dále se musím opravit - u Mac OS nejde o "Object C", ale o "Objective C". Jak píší na wikipedii,

"Objective-C, often referred to as ObjC or more seldom as Objective C or Obj-C, is a reflective, object oriented programming language which adds Smalltalk-style messaging to C."

Zdá se tedy, že Smalltalk přece jen ovlivnil něco k lepšímu.

Tvrdíte, že srovnávám objektové a neobjektové jazyky, to ale není přesné - když už, tak srovnávám jazyky imperativní a deklarativní a dále rozděluji jazyky na ty, které mi umožňují zapsat myšlenku (algoritmus) jednoduše, ve kterých se můžu vyjadřovat k věci a specifikovat vše alespoň trochu na takové úrovni, na jaké probíhá mé myšlení, a na ty ostatní... (probíhat mentálně po hvězdičkách a šipečkách v céčku nemá pro mě nic společného s myšlenkou, kterou chci zapsat)

Zajímalo by mě, jak přesně byste vyjádřil to zpomalení u objektových jazyků (které jsou také imperativní:).

Trošku obecněji k tomu srovnávání - např. když se srovnává C++ a Java, lidé říkají - Java je 30x pomalejší... To je ale přece úplně putna! (Nebavme se o tom, že ani toto tvrzení není správné, zkompilovaný kód v Javě spustíme na novém virtuálním stroji na novém typu procesoru, a rázem je, bez kompilace samozřejmě, 30x rychlejší, než zkompilovaný kód v céčku) Jde o stejnou složitostní třídu (rychlost se liší o konstantu krát), takže pokud se mi nelíbí, že můj podnik zpracovává data 30x pomaleji, než mi někdo řekl, že by to šlo, koupím 30 strojů a jedu dál! Stále jsou porovnávány nevhodné parametry - započítáváte do rychlosti programů v céčku všechny ty nešvary, které jsou v céčku produkovány?

Divím se vám, že jste za těch 30 let zdržení vděčný, protože mě můj počítač co chvíli rozčílí - nic neumí - je úplně hloupý - ničemu nerozumí - neumí ani katalogizovat moje data - neumí se mi přizpůsobit - musím se mu neustále přizpůsobovat já.

Možná jsme dnes mohli být už úplně jinde, např. zpracování řeči - pokud by se úsilí věnované grafickým akcelerátorům, věnovalo kartám na zpracování řeči, mohli jsme už dávno s počítačem mluvit, což by nebylo k zahození..

Stejně tak pokud by se úsilí směřovalo k něčemu jinému, než je rychlost, mohla tu být třeba nějaká ta inteligence..

V assembleru jsem programoval 10 let, takže celkem vím, o co jde, ale tvrdit, že dnes napíšete slušný kód ručně je opravdu naivní - viděl jste např. architekturu VLIW procesorů? To už by se mi dnes také nechtělo.

Jinak se samozřejmě nikdo nezlobte, že si rýpnu do céčka, prostě jak píšu výše, můj počítač je hloupý, a já myslím, že to souvisí s tím céčkem.... </neberte to tak vážně :-)

Možná jsem nepochopil, že tady všichni chtějí programovat vlastní operační systém. Pokud je to tak, hodně zdaru! (Já jsem si chtěl kdysi taky jeden napsat, v assembleru, ale nemělo to smysl, tak jsem dělal něco užitečnějšího).

Zatím se mějte, pěkná debata!

P.S. Mrzí mě, že jste se nikdo nevyjádřili k Singularity, tak rád bych si trochu zdrbnul, a vy pořád o céčku :-)
disorder
disorder (neregistrovaný)
24. 6. 2006 18:01 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
aha, cize keby sa 30 rokov (ci kolko) programovalo v niecom inom nez C, tak by sme mali rychlejsie procesory? asi ano, keby uz vedeli v real-time rozmyslat a rozpravat, ach jaj...


> zkompilovaný kód v Javě spustíme na novém virtuálním stroji na novém typu procesoru,
> a rázem je, bez kompilace samozřejmě, 30x rychlejší, než zkompilovaný kód v céčku

ale ten kod nie je rychlejsi, len je rychlejsie vykonavany. toto sa da vyuzit az pri procesoroch kde je rezia takych programov naozaj zanedbatelna, pretoze skompilovany C program bude zase rychlejsi - a cas su peniaze...
Transcendent
Transcendent (neregistrovaný)
24. 6. 2006 20:59 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
Ano, rozumíte tomu (skoro) správně, měli bychom procesory, které by hardwarově podporovaly vyšší programovací jazyky (představte si procesory, které zpracovávají nativně java-bajtkód. Dokonce to i existovalo - jmenovalo se to myslím pico. Samozřejmě nejde pouze o nativní procesory pro javu - jde o podporu vyšší abstrakce přímo v hardwaru).

Pak by bylo přirozené programovat v těchto (vyšších) jazycích, kde se nepopiratelně člověk může soustředit na problém samotný, a ne na ošetřování indexace polí a všechny ty nepříjemnosti, se kterými se potýká v céčku.

Následně by se tedy úsilí programátorstva mohlo ubírat jiným směrem, než hledáním cesty, jak nezpůsobit buffer overflow. Software by byl verifikovatelnější, tudíž spolehlivější. Výhody jasné :-)

BTW - opravdu mě fascinuje, že si, zdá se, nikdo nepřečetl něco z odkazu na Singularity... Škoda, že každý reaguje jen na něco, vypadá to, že se ty příspěvky snad ani nečtou celé... Ušetřil bych si spoustu psaní ohledně výhod/nevýhod různých technologií pro různé účely.

Ad rychleji vykonaný kód - prosím, co je to rychleji vykonaný kód, který není rychlejší? To porovnání kódu javy s kódem céčka - šlo o to, ukázat, že rychlost (jako absolutní číslo) není prostě to nejdůležitější, nevykopíraval jste to celé, byl to příměr. Bavíme-li se o celém průmyslu - započítejme i čas vývoje, čas oprav, atd.

Navíc c bude, dejme tomu na architektuře Intel (to je podstatné pro váš příspěvek), zase rychlejší, a zase hloupější..

Jde o rozdíl mezi kvalitou a kvantitou.

Ano, můj pohled je trochu "idealistický", to ale neznamená, že nereálný. Už teď se dají sehnat práce v neimperativních jazycích a vesměs jsou to zajímavé věcičky :-)

Zdravím všechny céčkaře!!!
disorder
disorder (neregistrovaný)
24. 6. 2006 21:39 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
hardwarovo by podporovali vyssie jazyky. ano to ma napadlo, ale taky procesor by nevedel vykonat viac "obycajnych" instrukcii nez tie dnesne. alebo sa mylim?

> Pak by bylo přirozené programovat v těchto (vyšších) jazycích, kde se nepopiratelně člověk může soustředit
> na problém samotný, a ne na ošetřování indexace polí a všechny ty nepříjemnosti, se kterými se potýká v céčku.

nie som ziaden superclovek, alebo co, ale nerobi mi problem sustredit sa v C na riesenie. cize to popieram a tvrdim ze pre MNA nie je indexacia a adresacia neprijemnost. ved v podstate je to velmi primitivne, mala nasobilka :) samozrejme netvrdim, ze na vsetko je to najvyhodnejsie - napr. ked su potrebne asociatinvne polia.

vyssie jazyky? mam pocit, ze mate na mysli hlavne OP. tak napr.:
http://www.catb.org/~esr/writings/taoup/html/unix_and_oo.html
je tam pekne napisane, preco OP nie je samospasitelne.

> prosím, co je to rychleji vykonaný kód, který není rychlejší?

to je ako 2 algoritmy - minsort a quicksort. kod quick sortu je rychlejsi. ale argumentujete tym, ze na ovela rychlejsom procesore by bol minsort rychlejsi nez quicksort na povodnom, ale bol by len rychlejsie vykonavany...

> Navíc c bude, dejme tomu na architektuře Intel (to je podstatné pro váš příspěvek), zase rychlejší, a zase
> hloupější..

to je strasne zla formulacia. ako moze byt hlupejsi? moze byt rovnako hlupy, pretoze je to stale ten isty jazyk. na nejakej architekture bytecodu nebude rychlejsi, to je pravda. pretoze ak by sa do bytecode skompiloval, vyhoda optimalizacie by prestala existovat. ale o tejto idei mozete IMHO snivat naveky. jedina moznost je taky narast vykonu procesorov, ze by bol rozdiel zanedbatelny.
Transcendent
Transcendent (neregistrovaný)
24. 6. 2006 22:38 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
>>hardwarovo by podporovali vyssie jazyky. ano to ma napadlo, ale taky procesor by nevedel vykonat viac "obycajnych" instrukcii nez tie dnesne. alebo sa mylim?

Nevím, jestli říct, že se mýlíte, jde zkrátka o to, co jsou to "obyčejné" instrukce (a nejen instrukce - dovedu si představit například hardwarový garbage collector, proč ne).

Řekněme na současným turbokalkulačkách typu intel je obyčejná instrukce add, sub, mul a div.
Na vektorových procesorech to vše jde dělat nejen se skaláry, ale také s vektory. Proto jsou vektorové procesory lepší na zpracování problémů, ve kterých bude řeč o vektorech.
To je ale jen určitá specializace, čím se dosahuje lepších výkonů. (Mimochodem MMX instrukce jsou vlastně takové malé vektorové instrukce, nepletu se? - také byly přidány později).

Když půjdeme opačným směrem, můžeme abstrahovat až k představě, že hardware počítače má paměť, která si pamatuje jednotlivé datové typy (třebas nějak velmi jednoduše:). Dále má správu ochrany paměti, která ohlídá, kdo k čemu přistupuje, a nakonec třeba i ten garbage collector.

Jaké druhy chyb se na takovém stroji budou u programů vyskytovat?
Resp. jaké druhy chyb bude muset programátor v jazyce přiměřeném této architektuře ošetřovat?
Bude se ve srovnání s jazykem c na architektuře intel muset více, nebo méně zabývat implementačními detaily?
Pokud se bude méně zabývat impl. detaily, na co mu zbude čas?

No je to trochu utopistické, proč ale ne?

>...nie je indexacia a adresacia neprijemnost. ved v podstate je to velmi primitivne, mala nasobilka :)

To máte pravdu, pro mě to taky není zase takový problém, proč ale co týden stahuji aktualizaci typu: V aplikaci Firefox bylo zjištěno slabé místo: speciálně upravenou adresou může útočník... blabla

>..vyssie jazyky? mam pocit, ze mate na mysli hlavne OP.

Tak to tedy nemám, resp. považuji je za menší zlo, než céčko, ale mluvím spíš o Huskellu nebo Prologu. Ty jsou tedy bohužel zatím asi příliš daleko od mainstreamu.

>..to je ako 2 algoritmy - minsort a quicksort...
Tady to neříkáte přesně. Proč je kód v javě pomalejší než kód v céčku? Protože céčko je blíž hardwaru než java. Pokud ale vezmete quicksort v javě na javovém procesoru a v quicksort v c na "céčkovém" procesoru, taktováno přibližně stejně, budou stejně rychlé, to je dokázané! Algoritmus je prostě stejný.
V příměru s 30 počítači jsem se snažil naznačit, že hrubý výkon je nicneříkající ukazatel, resp. že u softwaru jsou i jiná kriteria než rychlost, například spolehlivost (víte asi o těch raketách, které vybuchly kvůli softwaru, nebo o pendolinu atd.).
Dalším kritériem je cena vývoje, cena údržby atd.

Pokud se vysloveně nebavíme o realtime věcech, nízkoúrovňovém softwaru typu ovladač nebo program na obsluhu lisu či co, tak všude jinde všechno mluví proti céčku!

Schválně, až se podle tohoto seriálu bezvadně naučíte céčko, zkuste si sehnat práci - neříkám že neexistuje, a modlete se , aby nespočívala v přepsání něčeho většího v céčku, co psali chlapci před vámi. Nejlépe nedokumentovaného...

>...to je strasne zla formulacia...

No je to moje formulace - samozřejmě, že bude pořád stejně hloupý, a ne hloupější. Ale pořad bude hloupější než ty vyšší jazyky, podle mně..

>...jedina moznost je taky narast vykonu procesorov, ze by bol rozdiel zanedbatelny.

V tom nevidím velký problém. Moorův zákon říká něco jako: Každých 18 měsíců se výkon zdvojnásobí. Čili 32=2^5. 5*18 měsíců = 90. 90/12 = 8. Za 8 let budou 32 kráte rychlejší procesory.
Samozřejmě vše brát s rezervou, ale třeba to bude takhle: Nebudou 32 krát rychlejší, ale jenom 10 krát, zato budou kvalitnější, bezpečnější a budou podporovat pokročilejší featury než dneska..
Ty featury budou lépe využívány jinými jazyky...

8 let není zase taková doba, abych si mezitím piloval céčko kvůli tomu, že je dnes (ale klidně i zítra) o trochu rychlejší.
disorder
disorder (neregistrovaný)
24. 6. 2006 23:02 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
> Řekněme na současným turbokalkulačkách typu intel je obyčejná instrukce add, sub, mul a div.
no, este tie sa skladaju z nejakeho mikrokodu, a tie vase by boli vykonavane tiez takto. ale neviem, ci by bytecode mohol byt optimalizovany hardwarovo tak dobre ako sucasne instrukcie.

> No je to trochu utopistické, proč ale ne?
ano, presne to - utopia. ale v technickych odboroch je vselico mozne, takze niekdy sa to moze naplnit.

> Huskellu nebo Prologu
ano, nieco som o tom uz zacul. funkcionalne programovanie?
ale zoberme si, ze by sa stala nejaka revolucia, aky procesor by sa vyrobil? vedel by len 1 bytecode a na scene je tolko moznosti. takyto prevrad v HW IMHO nie je mozny. a navyse existuje mnozstvo SW, ktory by musel byt nahradeny a prepisany.

> Proč je kód v javě pomalejší než kód v céčku? Protože céčko je blíž hardwaru než java. Pokud ale vezmete
> quicksort v javě na javovém procesoru a v quicksort v c na "céčkovém" procesoru
cecko je blizsie HW preto, ze pouziva jednoduchsie instrukcie,vysledny kod kompilator optimalizuje a navyse vykonavanie je optimalizovane procesorom. je naozaj zaujimave, ze java procesor by to vykonal rovnako rychlo, len to IMHO postrada logiku. ale ja nie som odbornik a ked je to dokazane, tak to bude pravda.

> Pokud se vysloveně nebavíme o realtime věcech, nízkoúrovňovém softwaru typu ovladač nebo program na obsluhu
> lisu či co, tak všude jinde všechno mluví proti céčku!
v inom prispevku spominam, ze na kniznice je velmi vhodny - pouzitelne s inymi jazykmi, optimalizovane a ich obsah nahraditelny inou kompatibilnou kniznicou.

> abych si mezitím piloval céčko
C je tak jednoduchy jazyk, ze sa staci raz naucit zakladne spravne navyky. neplati len pre C, ale celkovo pre proceduralne programovanie.
Transcendent
Transcendent (neregistrovaný)
25. 6. 2006 3:14 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
>ci by bytecode mohol byt optimalizovany hardwarovo tak dobre ako sucasne instrukcie.

Proč ne?

>ano, presne to - utopia.

Zase tak velká utopie to není. Donekonečna nelze pouze zvyšovat taktovací frekvenci. Jakým směrem se podle vás bude ubírat vývoj procesorů?

> Huskellu nebo Prologu

Haskell je funkcionální, Prolog logický.

> cecko je blizsie HW preto, ze pouziva jednoduchsie instrukcie...

Céčko je vylepšený assembler, proboha nemá to ani stringy... o seznamech nebo jiných stukturách si můžeme nechat zdát. Doporučuji opravdu se seznámit s jinými programovacími paradigmaty, než je imperativní..

> v inom prispevku spominam, ze na kniznice je velmi vhodny - pouzitelne s inymi jazykmi, optimalizovane a ich obsah nahraditelny inou kompatibilnou kniznicou.

Knihovny jdou přece vytvářet ve všech dnešních jazycích...

> vedel by len 1 bytecode a na scene

1) už by se nejednalo o bytecode, ale o nativní instrukce
2) například pro potřeby logického programování existuje WAM, určitě je implementován i hardwarově
3) nejde tu o konkrétní bytecode, jen říkám, že procesor, který umí například javu jako nativní, existuje. Dále jde o určité konstrukce, a v těch se moderní jazyky určitě protínají. Nemusí to být procesor nativně zpracovávající celý programovací jazyk, stačí když bude podporovat i jiný druh instrukcí než add, cmp, jmp atd., tedy umožní nativně využívat širší možnosti, než jsou bajt, word nebo rekurze.
4) někde v příspěvcích bylo uvedeno, že existovaly lispové procesory, určitě se ještě vrátí :-)
disorder
disorder (neregistrovaný)
25. 6. 2006 3:55 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
> Proč ne?
neviem.

> Zase tak velká utopie to není. Donekonečna nelze pouze zvyšovat taktovací frekvenci. Jakým směrem se podle vás
> bude ubírat vývoj procesorů?
frekvenciu zvysuje intel, AMD ich ma podstatne nizsie. tzn. ze vykon ziskavaju na niecom inom?
ale vy si asi mysliste, ze v dohladnej dobe vsetku pracu zahodia a spravia procesor na bytecode? este mozu kludne zvysovat...

> Céčko je vylepšený assembler, proboha nemá to ani stringy... o seznamech nebo jiných stukturách si můžeme
> nechat zdát.
aha. a napriek tomu, ze to je (usudzujuc z tonu vam vlozim slovo do ust) "podradny vylepseny assembler" sa stale hojne pouziva. podla vas sa, zjavne, v nom ma prestat robit vsetko okrem OS. pisal som, ze C nie je na vsetko. tie vase jazyky nie su samospasitelne. btw v com boli napisane kompilatory pre ne?

> Doporučuji opravdu se seznámit s jinými programovacími paradigmaty, než je imperativní..
a tym by som zabudol dovody preco sa pouziva C? to je nejaky druh vymytia mozgu? tato poznamka je uplne mimo.

> Knihovny jdou přece vytvářet ve všech dnešních jazycích...
ale v akom pomere sa vytveraju v inych jazykoch? kniznice su najlepsie miesto, kde mozu vyssie jazyky usetrit procesorovy cas.
Ondra
Ondra (neregistrovaný)
25. 6. 2006 17:25 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
Ty jsi taky moc rozumu nepobral, co? Divim se, ze s tebou ztraci zas a snazi se ti vysvetlit neco, co je mimo tve obzory a schopnosti chapani.
disorder
disorder (neregistrovaný)
25. 6. 2006 17:31 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
berme do uvahy fakty, ktore platia dnes a budu este peknych par rokov.
Jakub Hegenbart aura:85
24. 6. 2006 22:03 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
No jo, takové procesory byly. Ale průser je ten, že lispovské stroje komerčně od poloviny 80. let prostě začaly zapadat. A ani to, že byly schopny verifikovat typy operandů s nulovou režií (protože paralelně s prováděním operací), měly hardwarovou podporu GC a software, který o patnáct nebo dvacet let předběhl dobu, jim bohužel nepomohlo... :-( Třeba se to jednou povede, ale zatím světu vládnou Okna a x86...
Transcendent
Transcendent (neregistrovaný)
24. 6. 2006 22:41 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
To přijde :-)

To je moje heslo :-D

Jinak jsem to s tím přispíváním nějak přehnal, cítím se jako grafoman. Dám si pauzu a mrknu se sem někdy později.
rezna
rezna (neregistrovaný)
25. 6. 2006 1:22 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
nejenom LISP mel hardwarovou podporu. Java treba bezi primo hardwarove na vetsine mobilu (tech bez Symbianu).

Jinak u LISPu jeste porad plati ona znama veta: "Neni otazka jestli, ale kdy se zacne pouzivat v komercni sfere". Je fakt ale, ze ackoliv v LISPu umim, komercne bych ho nepouzil, protoze mam zatim po ruce IMHO lepsi technologie. Sice mi nedovoluji takova kouzla jako LISP, ale zase mi (ale hlavne tupym spolupracovnikum) hlidaji datove typy, ...
Jakub Hegenbart aura:85
25. 6. 2006 4:32 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
A můžete to nějak podložit? Tohle slyším prvně, že by Java na mobilech byla implementovaná v železe.

Jinak ale chápu, nejlepší dnes použitelný lisp, ke kterým mám přístup, je Ruby :-D (Chápu, odvážné tvrzení... ;-)). Poněvadž má všechno, co momentálně potřebuju, a stačí mi. Je ale pravda, že Sussmanů a Abelsonův SICP mě neustále láká k zamyšlení nad kompilací evaluátoru vylepšeného Scheme přímo do FPGA...
rezna
rezna (neregistrovaný)
25. 6. 2006 11:52 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
Jakub Hegenbart aura:85
25. 6. 2006 12:31 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
Že Jazelle existuje, to vím. Netušil jsem ale, že ho mám v telefonu – právě jsem si to zjistil. :-) Jen si nejsem jistý, do jaké míry je to důsledné, ten design mi přišel takový kombinovaný. Ale samozřejmě je to krok dopředu.

Osobně mi ale přijde mnohem lepší nápad udělat smalltalkovský procesor, nemůžu si pomoct. ;-)
Transcendent
Transcendent (neregistrovaný)
25. 6. 2006 13:10 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
Jakub Hegenbart aura:85
25. 6. 2006 13:27 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
Jako bych tyhle věci denně nečetl a nezabýval se jimi... ;-)
Transcendent
Transcendent (neregistrovaný)
25. 6. 2006 16:23 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
Hezký počteníčko tam člověk najde, že jo? Jestli máte nějaké další zdroje podobného typu, tak sem s nimi!
Jinak který z dvou typů vývoje z jiného příspěvku preferujete vy?
Biktop
Biktop (neregistrovaný)
25. 6. 2006 14:48 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
Javovský procesor, smalltalkovský procesor, forthovský procesor... Pokud si myslíte, že dělat z mikroprocesoru takový menší počítač uvnitř většího počítače je ta správná cesta kupředu... Je to váš názor, já ho nesdílím. Nepřináší to ani jednoduchost, ani efektivitu. Akorát hračka pro procesorácké vývojové týmy, kvalitativně nepřinášející nic nového, jen další, zbytečná, mezivrstva.
Jakub Hegenbart aura:85
25. 6. 2006 15:24 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
Já Jazelle nedělám, to si mě s někým pletete. :-) Jen říkám, že když už, tak ST procesor by měl mnohem větší smysl, nic víc.
Jakub Hegenbart aura:85
25. 6. 2006 15:31 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
Jo a forthovský procesor bych z toho výčtu vynechal. Forthovský procesor je taková trivka, že by se do Pentia M vešel desettisíckrát (nehledě na o řád nebo řád a půl menší spotřebu na jednotku výkonu).
Ondra
Ondra (neregistrovaný)
25. 6. 2006 17:31 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
Nene, to jste nepchopil. Nejde o to udelat procesor pro kazdy jazyk, ale pro vyssi datove typy. Takze spis neco jako .NET (IL) procesor, ktery muze pouzivat rada vyssich jazyku.
Biktop
Biktop (neregistrovaný)
26. 6. 2006 15:04 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
Pochopil, ale IMHO je to kravina.
rezna
rezna (neregistrovaný)
27. 6. 2006 3:00 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
neni - ma to obrovske vyuziti v embedded platformach. proc si myslite ze prave takhle spousta mobilu zpracovava javu. protoze maji relativne slabe procesory na kterych kdyby se spustila cista emulace jak ji zname z PC, tak to neutahnou. a nebo by zrali prilis vykonu. takhle se vykon/spotreba drzi na rozumne mire a navic je to i vykonne.

a to ze je dneska embedded zarizeni kde co, je temer bez debat - (cti kdejaka picovinka ma dneska v sobe procesor a ve valne vetsine i nejakej ten OS)
disorder
disorder (neregistrovaný)
27. 6. 2006 12:26 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
ked sa nad tym zamyslim, tak ma napada, ze mobily nemozu spustat javu na ich procesore, pretoze potrebuju mat real-time vysielanie/prijem. java by si zabrala cely procesor pre seba a kvoli tomu tam nebudu davat zbytocne silne procesory - preto je to oddelene hardwarovo. ohladne vykonu, tym si nie som isty - urcite by nespustili normalne desktopove java aplikacie (aspon nie mobily pre obycajnych ludi).

opravte ma ak sa mylim.
Biktop
Biktop (neregistrovaný)
27. 6. 2006 15:22 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
Přesně na poli embedded aplikací se pohybuji. A není to pravda. Jedničkou v tomto směru je dnes technologie ARM, takže o nějaké nativní Javě nemůže být ani řeč ve většině případů.
Biktop
Biktop (neregistrovaný)
24. 6. 2006 20:37 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
Je to otázkou zvyku. Mě například "mentálně probíhat šipečky a hvězdičky" vůbec nijak neomezuje. Tohle mi připadá, jako byste kritizoval latinku, protože přeci ty čínské obrázky na tak malé ploše zachytí tolik informace, tak proč tedy používat tak neefektivní latinku... To je prostě jen prostředek, pokud je někdo zvyklý zapisovat své myšlenky obrázkovým písmem, něchť ho má, mě latinka neomezuje, i když musím vypsat každé písmenko samostatně. A to je IMHO i případ "hvězdiček a šipeček" v C. Proti tomu by se mj. dalo snadno argumentovat např. obligátními závorkami Lispu.
Zpomalení kódu získaného z objektového jazyka je způsobeno pozdní vazbou. OOP způsobuje, že vazby, jež by při použití neobjektového přístupu byly v době kompilace známy, z principu OOP známy být nemohou. Dá se namítnout, že takové věci vyřeší optimalizace generovaného kódu, což by principiálně šlo, jenže tato optimalizace je algoritmicky velice náročná a proto odstraňování nepotřebných pozdních vazeb z kódu je spíše zbožné přání, než realita.

Které nešvary v C máte na mysli konkrétně?

Představa, že za "hloupost" vašeho počítače může použití určitých programovacích jazyků, se mi zdá poněkud naivní.
Mluvit s počítačem sice vypadá hezky, ale na druhou stranu - nynější přístup s pomocí klávesnice, myši a touchscreenu mi připadá přeci jen o poznání praktičtější. Navíc - uživatelské rozhraní je opět jen prostředek, jak počítači ukládat úkoly. Osobně nevidím důvod, proč by za dané technické situace měl být tento prostředek náročnější, než zadávané úkoly.
Jak byste si představoval, že programovací jazyk mohl ovlivnit to, nač si stěžujete? Zkuste tu rozvést svou vizi bez C a hlasem ovládaných počítačích...
Nemyslím si, že by to nějak pomohlo "rozvoji inteligence". Ještě tak před 10 lety SW ze železa ždímal co šlo. Dnes je situaci jiná v tom směru, že HW je silně naddimenzován a bez efektivního využití. Žádné nové funkce v podstatě nepřibývají, ale HW je stále "využit" na maximum. Za posledních 10 let žádné zásadní funkce do OS nepřibyly, ovšem HW se zásadně modernizoval.

Já v Assembleru programuji od konce 80. let dodnes a stále mám s efektivitou programů navrch. Optimalizace na velikost a rychlost se daří skloubit narozdíl od optimalizátorů vyšších jazyků. Samozřejmě nutnou podmínkou je dokonalé zžití se s architekturou - je skutečně naivní myslet si, že přejdu na jiný procesor, otevřu příručku k Assembleru a co napíšu bude efektivnější než výsledek kompilátoru.

Snad tu nikdo netvrdí, že všichni chtěji programovat OS. Jen tu někteří tvrdí, že používat C dnes nemá smysl. Tak tu jen jiní poukazují na oblasti, které dokazují, že používání C je stále opodstatněné :-)
Transcendent
Transcendent (neregistrovaný)
24. 6. 2006 21:45 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
Právě jsem vám ohledně té vize častečně odpověděl v reakci na disorder 18.01. Doufám, že jsem se trochu vysvětlil - já vlastně většinou nijak nereaguji na žádné články, ale céčko je něco jako můj antifavorit, sorry..

Samozřejmě máte pravdu, když říkáte, že jde pouze o různé prostředky, ať už se to týká jazyků nebo komunikace počítač - člověk. To ale můžeme říct, že bez myši to ještě před nedávnem také nebylo tak špatné, a skončit u toho, že děrná páska je vynikajicí a efektivní prostředek ke komunikaci s počítačem.

Můj názor je, že budoucnost = počítače komunikující s lidmi, počítače programované zadáním problému, atd..

Co se týký psaní o OS, reagoval jsem hlavně na břitké: ... Zkuste v libovolném z vámi uvedených příkladů napsat jednoduchý operační systém a pak se znovu ozvěte.

Věřím, že jsem nenapsal žádnou nepravdu ohledně ne-c OS, a přikládám: OS není jenom jádro! Debata přes diskusní fórum je příšerně zkreslující, každou chvíli se vyjadřuje někdo jiný k jinému aspektu záležitosti a jádro uniká :-)

Samozřejmě nepopírám, a to jsem neudělal v žádném z příspěvků, že jsou oblasti, kde je céčko, potažmo assembler potřeba. To ale neznamená, že potřebujeme tolik céčkařů na ty "obyčejné" aplikace! Ať mladá generace píše ty inteligentní záležitosti ve vyšších jazycích a třeba nás do důchodu počítače ještě nějak překvapí -> nevzal jste si svou tabletku..., z důvodu vaší nadváhy o 13,5 % bylo z vašeho (automatického) nákupu vyškrtnuto pivo... :-)

Jsem asi určitě mladší než vy, ročník 81, a teď už bych se bál trumfovat se s vámi v assembleru:), přesto se mi s vámi docela dobře debatuje... Líbí se mi hutnější, obsažnější komentáře, a ne jen úsečné "Podle standardu c99 nemusí být main(void), stačí main()."

P.S. Čínština a čínské písmo jsou moc pěkné záležitosti - dokonce věřím i tomu, že právě kvůli svému písmu (japonská maturita z japonštiny = 6000 kanji znaků nazpaměť, prý) jsou asiati takoví... jiní :-) Kdo ví, za jak dlouho se budeme muset začít učit čínsky všichni :-?
disorder
disorder (neregistrovaný)
24. 6. 2006 22:04 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
dufam, ze moji prispevkom neunikne jadro :)

> OS není jenom jádro!

ano, to je urcite pravda. teraz budem brat do uvahy len moj oblubeny typ systemu - ale vsetky tie veci okolo sa tiez lepsie pisu v C. je to tradicia malych funkcnych nastrojov. ako by sa dala napisat libc, libm, ls, cp, ... a kopec inych malych nastrojov?

ale nie len v OS je vyuzitelne - kopec kniznic sa da krasne efektivne napisat v C a pouzit v inom jazyku. alebo aj nieco take, na co sa teoretiicky hodi prave OP - GTK.
Biktop
Biktop (neregistrovaný)
25. 6. 2006 11:12 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
Myslím, že rozdíl mezi námi dvěma je v tom, že já mám blíže k železu - odtud má láska k Assembleru a C, zatímco vy zase k čisté softwarařině a algoritmizaci - odtud vaše láska k funkcionálním jazykům a Prologu.
Vaše vize o procesoru zpracovávajícím vyšší jazyk je sice zajímavá, ale zároveň na úrovni představ o počítači HAL-9000 :-) Základem dnešních procesorů jsou klopné obvody, booleovská algebra. Pro tuto technologii jsou opravdu nejpřirozenější operace typu CMP, LOAD, STORE, ADD, ROL,... Je to jen konkrétní podoba algebraické struktury, z níž konstrukce těchto obvodů vychází. Vše ostatní byste stejně musel na tyto elementární operace přeložit v rámci mikrokódu. Neboli - je samozřejmě možné vyrobit procesor nativně zpracovávající Java bytekód a takové procesory existují, ale uvnitř se ten kód stejně převádí na výše zmíněné elementární operace. Že je to rychlejší je logické, všechno co je v železe je rychlejší, než když je to v SW :-)
Závěr - dokud budou procesory založeny na logických obvodech, které znáte z elektroniky, do té doby budou mít C s Assemblerem jak ho známe desítky let navrch.
Nenadávejte Céčku, nadávejte pánům jako von Neumann a Svoboda, že pro nás vymysleli počítače tak, jak je známe :-)

S tou děrnou páskou poněkud přeháníte. Narážel jsem jen na to, že raději s počítačem komunikuji s klávesnicí a myší, než abych na něj po večerech hulákal.

Vaše počítače budoucnosti ovšem nemohou být založeny na současných technologiích. To skutečně není problém jazyka.

K těm Huskellům a jim podobným věcem ve funkci systémových jazyků... Řekl bych, že je to ještě větší zhůvěřilost, než dělat v C umělou inteligenci. Kleštěmi také nejspíš dokážete zatlouci hřebík, ale primárně jsou určeny k jiným účelům.

To je pravda - OS není jen jádro. Ale to jádro je takový nárazník mezi železem a vyšší vrstvou abstrakce. A abyste mohl používat vámi zmiňované vyšší jazyky na železe, pro nějž je přirozeným jazykem strojový kód, je C k naprogramování tohoto nárazníku ideálním jazykem.

"třeba nás do důchodu počítače ještě nějak překvapí -> nevzal jste si svou tabletku..., z důvodu vaší nadváhy o 13,5 % bylo z vašeho (automatického) nákupu vyškrtnuto pivo... :-)"
Proboha, jen to ne! :-) K myšlení a rozhodování mám mozek, počítač je jen jeho neúnavný pilný pomocník.
petrxh
petrxh (neregistrovaný)
4. 8. 2006 14:15 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
Mel jsem moznost kdysi zkouset nejake hlasove ovladani pocitace. Po 30 minutach me z toho pekne bolelo v krku. Jsem rad, ze nemusim ovladat PC hlasem a jsem vdecny za klavesnici - i kdyz i ta ma svoje mouchy a urcite by se dal vymyslet lepsi zpusob, jak ty pismenka do PC zadat.
disorder
disorder (neregistrovaný)
23. 6. 2006 20:46 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
no, ja nemam velmi problem si ustrazit spravnu adresaciu. samozrejme, stane sa - ale segfault sa prehliadnut neda.

a C je dnes v mnohych pripadoch nenahraditelne (a v dohladnej dobe tiez). zoberme si napr. systemove nastroje. ake vyhody by malo ls napisane v Smalltalku (ci v com :))? pre styl programovania malych a funkcnych nastrojov a pre vykonovo kriticke aplikacie este velmi dlho nebude nahrada. je to proste najlepsi kompromis medzi nizkou a vysokou urovnou - je to dobre navrhnuty jazyk, poskytuje efektivitu a umoznuje dobru prenositelnost.
Pavel Píša
Pavel Píša (neregistrovaný)
24. 6. 2006 1:52 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno

2) Pokud vím, tak např. Mac OS je napsán v Object C, což je ale jiná káva než Céčko! :-)

Nemohu si pomoct, a musím reagovat. MacOs X je postavený nad mikrojádrem XNU (MACH 2.5 + BSD + I/O Kit). Základní dva prvky jsou, pokud se nemýlím, čisté C. I/O Kit využívá embedded subset C++. Jinak plně s předchozím nepodloženým výkřikem souhlasím v tom, že vyšší vrstvy GUI, práci s databázemi a aplikace je rozumné psát v něčem objektovějším než je C. Ale na kvalitně optimalizovaná jádra je zatím asi C nejlepší. Nakonec i ty pisatelem tak propagované Windows jsou napsané objektově v čistém C. Stejně jako Linux, HURD, BSD a mnoho dalších systémů. Je pravda, že některé verze L4 (myslím že Fiasco a Pistacio) jsou v C++, ale jejich rozšíření je mizivé a kombinování C++ a assembleru není nejpřirozenější. Obecně psaní spodních vrstev knihoven, grafiky a komunikací také vychází v C celkem rozumně.

Haskell sice neumím, konceptem se mi líbí a několikrát jsem ho boostrapoval kvůli kompilaci programu Darcs. GHC dokonce ne jen využívá knihovny jazyka C, ale i veškerý překlad přes C ve výsledku provádí. Opět je tedy pro vývoj tohoto prostředí nutné, aby existovali kvalitní programátoři v jazyce C. Stejně jako pro Python, Javu atd. Přesto, že podle mého názoru patří Darcs k nejlépe promyšleným konceptům zprávy verzí, tak i částečně díky vlastnostem prostředí Haskell má někdy problémy s nároky na paměť. Proti tomu GIT, který začal opravdu jen jako bastl nad C, chodí mnoha řádově rychleji. Není to jen jazykem, je to i stylem uvažování lidí, pracujících v C. Takže každé řešení má své klady a zápory.

Pokud se jedná o operační systémy, tak si myslím, že koncep plně verifikovatelného systému CoyotOS se syscally definovanými přes IDL, který je psaný v nadstavbě BitC by byl opravdu převratný

Asi tady ovšem jen takovýmto rozborem marním čas, protože většina křiklounů nikdy nechtěla o věcech uvažovat a diskutovat, jim pouze stačí ke štěstí zhusit ostatním jejich snažení. Sami žádnou hodnotu nepřináší a kritiku tedy neriskují.

who cares
who cares (neregistrovaný)
24. 6. 2006 18:29 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
jen pro detail :)
"Nakonec i ty pisatelem tak propagované Windows jsou napsané objektově v čistém C."
cast je v C++, drobnosti v asambleru (W NT)
Transcendent
Transcendent (neregistrovaný)
24. 6. 2006 23:00 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
Nejhorší je, že jsem původně vůbec nechtěl mluvit o operačních systémech, přece titulek zněl "Programovali jste v jiném operačním systému a teď chcete začít programovat pod Linuxem?"
A nakonec jsme u mikrojader :-)

Mac OS není jen mikrojádro, ale taky cocoa, objective-c atd. Prý se pro to moc hezky programuje...

A Windows jsem zase tak moc nepropagoval...

Že "Darcs k nejlépe promyšleným konceptům zprávy verzí", by mohlo být způsobeno tím, že je v Haskellu :-)
Pavel Píša
Pavel Píša (neregistrovaný)
25. 6. 2006 22:21 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
Já se nepřu, že alternativy k C nejsou užitečné a na mnoho věcí lepší. Jen prostě poukazuji na to, že každé řešení má své potíže. Haskell určitě vede k matematickému uvažování o problému. Přesto je postaven nad C a má i své zápory. GIT se svojí cestou v C vyvinul a v mnoha ohledech možnosti DARCSu překonává. Bohužel sloučení obou výhod konceptů se zatím nepodařilo úspěšně vyřešit. Třeba to někdo zkusí v nějakém novém jazyce. Třeba se to podaří v C, třeba v Haskellu, jak se o to autor DARCSe již jednou pokusil.

Pokud se bavíme o systémech (ne toolkitech), tak je jednoznačné, v čem je jádro napsané - u Linuxu i Windows je to C a minimum ASM.(TEČKA) Pokud se bavíme o toolkitech, tak v Linuxu můžete použít Qt, wxWindows, ... v C++, Swing (Java), NexStep (Objective C), Mono (C#) atd. Pokud Vám vadí, že jsou nad LibC, tak lze i základní knihovny nad syscally napsat v jiném jazyku (myslím, že Pascal/FPC to tak částěčně dělá). Takže, pokud se bavíme o toolkitech, nevidím jediný důvod, pro ostouzení systému (jádra). Přesto neprohlašuji, že nemůže být lepší alternativa.
Pavel Píša
Pavel Píša (neregistrovaný)
25. 6. 2006 21:45 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno

Pane ukažte mi, prosím, to C++ v NT DDK či WDF. A pak mi ukažte zdrojáky Vašich driverů pro Widows, ať vím, na jaké úrovni se s Vámi mohu bavit. Jeden zmých driverů, co lze skompilovat pro Linux, Windows KMD (to jsou pro neznalé NT) a WDM (Win98/2000/XP) model je tady. Je pravda, že existují nějaké komerční neoficiální frameworky, které dovolí psát i drivery v C++, ale DDK a Microsoft s tím nikdy nepočítal a žádnou podporu pro to nenabízí.

Přesto souhlasím, že základ jádra NT je napsán dokonale objektově a nad konceptem IRP. Je to tak čisté, že se základ od uvedení v NT nemusel měnit. Je zatím vidět, že MS cvíli dalo na lidi schopné vytvořit třeba VMS. Rozšíření o PnP a PM je však již pěkná zrůdnost. Proti Linuxu se IRP koncept jen trochu špatně používá. Vede to k duplikaci kódu a k takovým komplikacím jako je například IoSetCancelRoutine. Data může driver přijímat v IRP třemi nekompatabilními mechanizmy a je tedy nutné vědět, do jakého IRP stacku se má driver zapojit již v době vývoje. Aby toho OOP nebylo příliš, tak většina částí driverů mezi sebou komunikuje přes interní IOCTL, kterých jsou stovky a z toho mnoho nedokumentovaných.

Čekal jsem, že se na Rootu dá vést i odborná debata na úrovni. Přesto že Linux a C používám, tak se rád dozvím něco o alternativách, které klidně mohou být i technicky lepší a rád to i uznám. Sledoval jsem například i vývoj HURDu nad L4 a autorům nabízel pár vylepšení jak L4, tak správy paměti v HURDu. Nakonec dospěli k názoru, že koncepce L4 má zásadní potíže a hledají jiný základ.

Závěřem, vzhedem k prokázaným fatálním neznalostem mě již komentáře pánů "who cares" a "Biktop" nezajímají, je to jen ztráta času. Snad jejich neznalost odhalí časem i ostatní a budou jejich výkřiky ignorovat.

who cares
who cares (neregistrovaný)
17. 7. 2006 17:04 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
<http://www.microsoft.com/technet/archive/winntas/training/ntarchitectoview/ntarc_2.mspx?mfr=true>
"Most of the source code for Windows NT is written in C or C++." (TECKA)
who cares
who cares (neregistrovaný)
23. 6. 2006 18:50 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
pokud by pocitace byly nekonecne rychle, pak by si mel pravdu
Luke
Luke (neregistrovaný)
25. 6. 2006 22:33 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
> Do kdy chcete stahovat další a další aktualizace, které pořád dokola opravují buffer overflow a
> ostatní pitomosti?

To ale neni chyba jazyka, ze. To je cena za to, ze programuji pojidaci kolacu a za to, ze zakaznika nezajima kvalita, ale cena.

Zasadne jsem proti tomu, aby SW vyrabeli vetsi a vetsi diletanti pomoci RAD nastroju, jez maji za nasledek silne nekvalitni kod vyzadujici silnejsi a silnejsi procesor a zerouci vice a vice pameti. (K Moorovu zakonu existuje taky jeste obdobny zakon: Rychlost SW klesa pomaleji nez stoupa rychlost HW.)

Kdyz zadavam diplomove nebo bakalarske prace, vyzaduji, aby implementace byla v C. Bohuzel se ukazuje, ze min a min lidi je schopno v C neco rozumne naprogramovat. Takze se voli cesta, ze i temto diletantum programovat umoznime pomoci tech "modernich jazyku". Ptam se proc? Kdyz neumi programovat, at zametaji ulice.
Jakub Hegenbart aura:85
25. 6. 2006 22:54 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
"(K Moorovu zakonu existuje taky jeste obdobny zakon: Rychlost SW klesa pomaleji nez stoupa rychlost HW.)"
Máte špatnou paměť, protože ten zákon je přesně obráceně... ;-)
"Software gets slower faster than hardware gets faster."
    -- Niklaus Wirth
(A řekl to moc pěkně... ;-))
jasomsef
jasomsef (neregistrovaný)
31. 7. 2006 8:21 Nový

Re: Skončete s Céčkem v linuxu i jinde

celé vlákno
Ak mas k dispozicii >128MB RAM tak je mozno implementacia vyssich jazykov vhodna. Ale ked sa budes (teda ty asi nie) musiet vtesnat do 128B, tak si rozmyslis co pouzijes. A pouzit v kazdom zariadeni x86 procesor je zvratenost sama o sebe. Mimochodom je vcelku lahke rozlisit programatora x86 a mikroprocesorov, pretoze ten druhy si uz pri pouziti int dvakrat premysli ci je to potrebne a o float ani nehovorim.
honza
honza (neregistrovaný)
24. 6. 2006 11:37 Nový

bohuzel se dobry C programator dnes nesezene

celé vlákno
vidim nekolik duvodu:
- v tisku a na internetu se vyklada, jak je C k nicemu
- na skolach se vyucuji "programovaci jazyky" - ale zridka C
- pretekani bufferu je vydavano za chybu C
- M$ a jini se snazi prodejem a marketingen pro nove jazyky udrzet obrat (C#)
- rozsireni internetu a s tim webaplikaci privedlo do hry javu
- jednodussi zacatek se skriptovacimi jazyky
- pro aplikace pry nepouzitelne

Ale predevsim lezi cely problem ve skolstvi. Mluvil jsem s desitky absolventu vysokych skol a zadny z nich nemohl smysluplne popsat, jak se vlastne v C programuje. Vsichni byli toho nazoru, ze C programator NEUSTALE pouziva strcpy, malloc apod. Na skole jim nebylo vysvetleno, ze to dela C programator jednou nebo 2 x za zivot. A to , kdyz si napise tu vlastni knihovnu se _MUJ_STRCPY a _MUJ_MALLOC apod.
C neni pro psani aplikaci. C je pro psani nastroju, ktere pak aplikacni programatori pouzivaji.

Problem v nasi firme je, ze absolventi prijdou, nedostali na vysoke skole zaklady jak to v praxi chodi a ohani se tim, ze skola je mela teoreticky pripravit na to, aby zvladali sirokou paletu problemu. Ale kdyz pak dostanou za ulohu napsat za pomoci lexu a yaccu maly sql-parser pro flatfiles, tak ziraji jak cerstve vyvorana mys.

Z toho duvodu je tento clanek katastrofa. Protoze opet stavi C do roviny jinych jazyku. A my, ve firmach to pak muzeme za tezke penize korigovat.

ROOT - dekujeme.
Láďa
Láďa (neregistrovaný)
24. 6. 2006 17:01 Nový

Re: bohuzel se dobry C programator dnes nesezene

celé vlákno
Lepší výkřik do tmy jsem už dlouho nečet :-) Co se začít trochu snažit, třeba si vychovávat absolventy během školy? Nebo je vážně jednodušší jenom nadávat na školství a žbrblat nad kvalitou článků na internetu?
varpunen
varpunen (neregistrovaný)
24. 6. 2006 17:54 Nový

Re: bohuzel se dobry C programator dnes nesezene

celé vlákno
Me ten vykrik nijak scestnej neprijde. Proste pokazuje na to, ze spousta absolventu (a lidi vubec) zna jenom to, co do nich na skole nahustili a zaroven nestihli zapomenout, nejaka vlastni snaha rozsirovat si obzory veskera zadna. Snaha vychovavat takovyho cloveka nevede k nicemu, protoze se samostatnosti stejne nenauci; at behem skoly, tak po ni. Nechat se stale vodit za rucicku je totiz strasne pohodlny, ze? <irony>Ale nezoufejte, existuje i spousta firem, kde nejde vubec o to neco skutecnyho tvorit, ale jen o vykazovani jakys takys cinnosti a tam tyhle lidi uplatneni najdou </irony>.
Láďa
Láďa (neregistrovaný)
24. 6. 2006 18:37 Nový

Re: bohuzel se dobry C programator dnes nesezene

celé vlákno
A po zcestném výkřiku přichází zcestná reakce - já jsem v původním příspěvku nic o nechuti rozšiřovat si vlastní obzory nečetl, potom bych ho nekomentoval. Stejně tak jsem nekomentoval nic o samostatnosti atd, jenom mě pobavily nářky nad kvalitou našeho školství, které neumí vychovat schopné programátory C. Že zírám jako čerstvě vyvoraná myš na něco, co vidím poprvé v životě není nic divného. Ale možná jsme jenom oba četli jiný příspěvěk.
Protě pokud si jakákoliv firma myslí, že škola je tu aby naučila lidi řešit přesně jeho typ problémů, tak budíž mu země lehká.
varpunen
varpunen (neregistrovaný)
24. 6. 2006 19:14 Nový

Re: bohuzel se dobry C programator dnes nesezene

celé vlákno
Ja bych rek, ze to v tom puvodnim prispevku bylo velmi viditelne acli mezi radky. Nikdo po skole nechce vychovat zamestnance na miru; mohla by ale alespon vychovat pouzitelnyho zamestnance. Ten se pozna treba tak, ze postaven pred problem nekouka jako vyorana mys celej den s tichou nadeji, ze se stane nejakej zazrak, ale po prvotnim soku se podrbe na hlave a zacne s problemem neco delat a zacne treba tim, ze se sam zacne ucit lex&yacc.
Láďa
Láďa (neregistrovaný)
24. 6. 2006 20:15 Nový

Re: bohuzel se dobry C programator dnes nesezene

celé vlákno
Nepřišlo mi to tak. S definicí použitelnýho zaměstnance bych souhlasil, ale podle mě to předpokládá neschopného zaměstnavatele. Platit si lidi, aby se něco učili, je dost drahý. Levnější je naučit je to :-) A to ani nemluvím o tom, že znechucený zaměstnanec poté co je 10x podobným způsobem hozen do vody, často odchází prodat svoje nově nabyté vědomosti jinam.
Ok, uznávám, že to není dobré téma na roota :-)
varpunen
varpunen (neregistrovaný)
24. 6. 2006 22:25 Nový

Re: bohuzel se dobry C programator dnes nesezene

celé vlákno
Tak, je jasny, ze treba lisp se clovek prez noc nenauci, ale zrovna zaklady lexu, moduly do apache a pod. by moh zvladnout za dopoledne a odpoledne zacit opatrne na puvodnim zadani; zkusenejsi kolega muze poradit s nejasnostma, ale ne, ze se kvuli tomu na celej den zasekne. To primo urcuje, jestli cely uceni bude stat +/- denni plat jednoho nebo hned dvou lidi. Samouk navic nemusi cekat, az se "pan ucitel" probudi a dorazi do kanclu :)
Neschopnyho zamestnavatele bych pak videl spis jako nekoho, kdo si lidi, ktery mu neco delaj, vazi stejne, pripadne min, nez tech, ktery v tom akorat "umej chodit".
Tak jo, ja uz toho necham :)
Transcendent &#969;
Transcendent &#969; (neregistrovaný)
24. 6. 2006 17:48 Nový

Re: bohuzel se dobry C programator dnes nesezene

celé vlákno
Mňo, céčko...

Tak udělejte firemní instruktážní manuál, co je třeba znát a jaké typy úloh je potřeba řešit. Manuál pak publikujte, třeba na rootu!

Jinak mě velice zajímá, co všechno (ty typy úloh) se dnes ještě v komerčních firmách dělá céčku, budu rád, když zareagujete.
varpunen
varpunen (neregistrovaný)
24. 6. 2006 19:41 Nový

Re: bohuzel se dobry C programator dnes nesezene

celé vlákno
A protoze kazdej druhej projekt potrebuje neco jinyho, vznikne co pul roku novej manual a na rootu z toho bude hned serial :)
A aniz bych musel zapojit nejak moc fantazie, tak bych rek, ze v komercni sfere se v cecku dela to, to se v cecku dela v opensource; pro blizsi inspiraci by mel stacit vhodne zformulovanej dotaz na sourceforge
honza
honza (neregistrovaný)
25. 6. 2006 0:21 Nový

Re: bohuzel se dobry C programator dnes nesezene

celé vlákno
rozlisujeme 2 typy komercnich firem:
- firmy velke
- firmy male

firmy velke zamestnavaji filosofy, kteri se zaobiraji koncepci a vytvareji objemne knihy, kterym se rika specifikace. Podle techto nesmyslu se pak snazi rusti programatori v Moskve (nebo indicti v Bangalore) neco vytvorit za pomoci jazyku java, protoze java je dnes moderni a pan profesor to rikal.

firmy male vytvari informacni systemy samy a potrebuji nastroje v C zhruba pro tyto oblasti:
- komunikace (tcp/ip) server-client
- replikace db-dat mezi servery tehdy, kdy si zakaznik nemuze dovolit oracle
- db-nadstavby v pameti pres shmem a mmap vcetne podpory RVM a synchronizace s DB
- wrapery pro pouziti c-funkci ve scriptovacich jazycich
- jiz zminene parsery pro vlastni interpretry nebo dotazovaci jazyky
- generatory informacnich systemu (pro to se ale hodi i perl)
- vystupove generalizovane generatory (vesmes c-funkce volane pres interpreter)
- casove narocne funkce v aplikacni servrech (dispozice, prognoza, simulace ve vyrobe)
- vlastni scriptovaci "mini"jazyky pro specializovane ulohy
Jakub Hegenbart aura:85
25. 6. 2006 4:34 Nový

Re: bohuzel se dobry C programator dnes nesezene

celé vlákno
Moc pěkně napsáno. :-) A hádejte, který z těch dvou přístupů mi je mnohem sympatičtější... :-D
Láďa
Láďa (neregistrovaný)
25. 6. 2006 13:42 Nový

Re: bohuzel se dobry C programator dnes nesezene

celé vlákno
Souhlas, napsáno skvěle :-) Ale ruku na srdce - který z nich je životaschopnější?
b.
b. (neregistrovaný)
25. 6. 2006 14:58 Nový

Re: bohuzel se dobry C programator dnes nesezene

celé vlákno
Samozrejme ty velky, protoze tem malejm chybej ty filosofove udavajici smer. Ty maly se tu patlaj v implementacnich detailech a koncepce unika, zatimco velky budujou reseni, ktery ma hlavu a patu.

Pozn. vychazim z toho popisu, ne z reality, protoze ta je propastne vzdalena.
Jakub Hegenbart aura:85
25. 6. 2006 15:28 Nový

Re: bohuzel se dobry C programator dnes nesezene

celé vlákno
To je zajímavý, poněvadž znám pár malejch firmiček, ve kterejch dělaj lidi tak mentálně namakaný, že lecjaká kodérská armáda z velký firmy je proti nim stádo managorů. A asi to nebude jen pár výjimek. Člověk nespokojený se stavem mainstreamového vývoje do mainstreamového vývoje prostě nepůjde. To není totéž jako "nemít koncepci". :-)
Láďa
Láďa (neregistrovaný)
27. 6. 2006 9:40 Nový

Re: bohuzel se dobry C programator dnes nesezene

celé vlákno
To je trochu o něčem jiném, mentálně namakaný programátoři úspěšnou firmu nedělají :-)
varpunen
varpunen (neregistrovaný)
27. 6. 2006 11:01 Nový

Re: bohuzel se dobry C programator dnes nesezene

celé vlákno
To mate bohuzel pravdu, velka firma proste technickej um nahradi marketingem. Zakaznik se nejdriv necha ukecat aby zaplatil za cosi, co je z filozofickyho hlediska zcela jiste koncepcni a moderni, ale ne nutne presne odpovidajici tomu, co potrebuje, a nasledne aby si zaplatil serii nekolika predelavek onoho cosi do podoby pro nej o neco pouzitelnejsi. Obe strany maj nasledne radost, ze muzou protacet penize :)
Kambo
Kambo (neregistrovaný)
25. 6. 2006 21:56 Nový

Fajn

celé vlákno
Fajn akorát mám pocit že se všechny ty "diskuze" mají jediný cíl a to vždycky někoho zašlapat, ponížit a urazit.... Jen tak dál a svět bude zas o kousek lepší :-)
Milamber
Milamber (neregistrovaný)
26. 6. 2006 10:26 Nový

Re: Fajn

celé vlákno
Buď a nebo by nekteré připomínky bylo lepší poslat samotnému autorovi než si tu histericky vylévat srdce. To by mohlo přispět ke zlepšení seriálu.

:) Nebo psát připěvek ve stylu: "chyba je: za a) za b) ... " pak to autor spíš opraví než po přečtení naší diskuze. Taky píšu v C (snad dobře - nevím) a taky mě zarazili nekteré "obraty" ??? ale jen kecat a používat přiblblá přírovnání mě fak vytočila. Zrovna jako výmluva že my namáme čas to udělat a on to dělá blbě a přitom napíšeme přispěvků, že by vydali na knihu (ono to totiš zní stejne blbě jako "dyž se ti to nelíbí tak to napiš sám").

Já ten článek je tak omrk a bral ho spíš pro lidi kteří sem tam narazí naproblém nebo něco rychle pořebují "zaštupovat" a dost. Rozhodně jsem ho nebral (a autor zjevně taky ne) jako učebnici jazyka C. V tom smyslu my tak zlý nepřipadá.
klaudy
klaudy (neregistrovaný)
26. 6. 2006 13:28 Nový

Re: Fajn

celé vlákno
Zas az tak cerne bych to nevidel...

1. Obecne se da rict, ze cim mizernejsi clanek na Rootu, tim bourlivejsi diskuze pod nim. Tohle je dalsi jasny dukaz ;-)

2. Osobne si myslim, ze je lepsi pripominky k clanku posilat formou diskuze, kde
a) maji vsichni pravo vyjadrit se a opravit/rozsirit/doplnit komentar
b) se vyvavure zahlceni autorovy schranky. Kdyby se vsechny pripominky posilaly formou mailu, ostatni ctenari Rootu by nemeli moznost se dozvedet, zda to, co prave autorovi pisi, uz nekdo pred nimi nenapsal

3. Prispevky typu "chyba je tam... neco je tamhle..." se prece v diskuzi vyskytuji. Viz napriklad to zahadne pretypovani v parametru funkce free, explicitne nevyjadreny navratovy typ fce main(), parametry gcc apod.

4. Vymluva "nemame cas..." mi prijde celkem opravnena. V diskuzi se objevilo nekolik odkazu na podobne clanky, ktere danou problematiku IMHO popisuji 10x lepe. Proc psat neco znova?

5. Vadi vam blbe prirovnani? Me se libi ;-). Cestina je prece krasna.

6. Jinak taky musim rict, ze procteni cele diskuze pro me naopak bylo docela prijemne. Libilo se mi podtema Cecko/OO jazyky... Pekne formulovane argumenty, prispevky mely hlavu i patu, vse se odehravalo ve slusne rovine bez pritomnosti vulgarismu atd.

7. Kdyz uz jsme u tech vulgarismu, tak ty pouzivali vyhradne v diskuzi zastanci autora. viz "Matfyzaci, kteri si honi sve ego a hovno v zivote dokazali"

8. Nedovedu si predstavit konkretni pripad, kdy by tento clanek mel byt pro nekoho prinosem
uživatel si přál zůstat v anonymitě
27. 6. 2006 11:32 Nový

Re: Fajn

celé vlákno
bod 5. : to mu sem se opravdu dobre zasmal par jich skutene znam znam co h....
dokazali, akorat kdyz se jim to rekne do oci tak se nesesypou a neznacnou histercit v diskuzi :) spis to berou s humorem. dokazou neco jinyho no ...
uživatel si přál zůstat v anonymitě
27. 6. 2006 11:02 Nový

Dont touch C :)

celé vlákno
Ahoj milý začátečníku, který jsi se prokousal diskusí až sem. Chápu že na tebe diskuse zapůsobila odpudivým dojmem. Ano tvůj závěr je správný, C není jazyk pro tebe :). C se neuč je to jazyk který efektivně využije jenom malá skupina programátorů zaměřených na ovladače, mikroprocesory a speciality a který pak mají mindráky z toho, že strávily tisíce hodin učením se jazyka a výběrem knihoven a pak tady mudrují jestli main() nebo main(void). Samozřejmě, programovat v C/C++ jde všechno , ale cenou za to je velice mnoho práce. Pokud se chceš naučit programovat v něčem co jde použít ( např aby jsi mohl naprogramovat jednoduchou GUI aplikaci, nebo hru) není třeba se těmito jazyky zabývat. Bohužel na těchto jazycích je znát , že jsou již staršího data výroby :D a tak tam "chybí" mnoho věcí, které již řadu let zpříjemňují práci programátorům v jiných aplikacích. Něco jako automatická správa paměti, vlastnosti u tříd dalo by se pokračovat :D. Pokud chce někdo tvořit progamy (ne utápět se v programování) doporučuji něco jako delphi nebo C#, samozřejmě v kombinaci s příslušnými IDE.
Jenom pro úplnost já nejsem programátor. Mám za sebou jenom pár projektů a jedním z nich je např aplikace s 32000 řádcích (po zkompilování má ovšem jen 530 000 kB :) ) programovaná v C++/MFC která mi zabrala rok života. S odstupem času vydím, že jsem bohužel nezvolil optimální kombinaci a kdybych si vybral jiný jazyk, strávil bych minimálně polovinu času lepšími věcmi než je progamování :). Jak na codeproject,forum.builder.cz a podobně, tak teď už i tady jsem postupně přesvědčován, že pro tvorbu aplikací C/C++ není nejlepší volba. Doporučuji zastáncům C/C++ se podívat na tyto stránky aby mohli porovnávat co řaší programátoři v c/c++ a co řeší programátoři v jiných jazycích ... je to značný rozdíl... takový příklad: Mějme zubní kartáček .... Ceckar začně počítat kolik přesně má chloupků přesné rozměry a materiály... jiným programátorům stačí při koupi vědět jestli je Tvrdý/měkký/střední :)

Pro ostatní, přeji štastné trefy při házení kamenama :D a jenom abych nebyl neznalý prosím uveďte mi nějaký kvalitní IDE pro linux ,který je na úrovni např. Borland studia 2006 nebo Visual studia 2003 /2005( pokud jste programátoři určitě znáte features těchto IDE :) ).
disorder
disorder (neregistrovaný)
27. 6. 2006 13:02 Nový

Re: Dont touch C :)

celé vlákno
no ty si sa ukazal (uz len tych 517MB je zaujimavych)
toucher
toucher (neregistrovaný)
27. 6. 2006 14:32 Nový

Re: Dont touch C :)

celé vlákno
jups.... samo ze jsem se spletl :D 530 000 B ...
Iany
Iany (neregistrovaný)
27. 6. 2006 14:07 Nový

Re: Dont touch C :)

celé vlákno
www.eclipse.org
Kdyby se ti nelíbil, zůstaň ve Woknech.
kocour_easy
kocour_easy (neregistrovaný)
27. 6. 2006 16:37 Nový

Re: Dont touch C :)

celé vlákno
Je videt, ze na konec jsi nic kloudneho neprogramoval/dalsi z rada klikacu/.Pouzivani RAD nastroju a opravdove programovani je rozdil. Zkus se podivat na Kdevelop, glade a rada dalsich.
toucher
toucher (neregistrovaný)
28. 6. 2006 8:49 Nový

Re: Dont touch C :)

celé vlákno
aha RAD ... hm... Visual c++ 6.0 moc RAD nemá ( pokud to porovnám s těmi nástroji v prvnim prispevku tak bych řekl že RAD je na hony VC6-ce vzdáleno.)

RE: Nic moc kloudného.
To se s Vámi přít nebudu... kdyždý má jiný měřítko kloudnosti. Ale nechápu z čeho jste tak usoudil. A co považujete za kloudné?
Petr
Petr (neregistrovaný)
27. 6. 2006 19:02 Nový

Re: Dont touch C :)

celé vlákno
Mily zacatecniku,

pokud ti nekdo rika, ze psani kodu je vetsina programovani, tak ti lze. Pokud stravis psanim kodu vice nez 20% sveho produktivniho casu (dlouhodobe), tak neco delas spatne. Bud pises bez premysleni; nebo netestujes; anebo pises zbytecne slozite.

A pokud programujes jen 20% casu, tak je skoro jedno, v jakem jazyce (dulezitejsi je jazyk umet, nez jaky jazyk) a v jakem prostredi (dobre IDE ovsem mene unavuje, to je urcite pravda).

A navic casem zjistis, ze pokud nepises vec typu "po pouziti zahodit", tak potrebujes neco trvanliveho. A lze predpokladat, ze pokud neco prezilo aspon deset let (to neni jen C, ale i treba java nebo perl), tak to dalsich deset let taky prezije.
toucher
toucher (neregistrovaný)
27. 6. 2006 23:36 Nový

Re: Dont touch C :)

celé vlákno
RE: Pokud stravis psanim kodu vice nez 20% sveho produktivniho casu (dlouhodobe).
jenom taková otázka ... nemyslím to zle... programátor programuje 2 hodiny ze směny?

Od doby co jsem přičichl k potřebě občas něco vytvořit, používám různé vyjadřovací jazyky ( php, c++, perl, bash, delphi, vb) hlavně v závislosti na aplikaci ( pro co to tvořím ). Problém je spíše srovnání právě z hlediska času. když srovnám investovaný čas / výsledek pak nejnižší hodnotu mi dává C++ ... ano je to tím, že programováním se neživím. Kdybych pokračoval a programoval ještě tak 5-6 let v C++ a nějakém frameworku tak výkonnost velice stoupne a investovaný čas se vrátí. Ale pro příležitostného programátora je "cecko++" moc. Asi hlavně proto, že se distancuje od konkrétního frameworku a výběr je na uživateli(kde jsem jsem konkrétně já naneštěstí zvolil kombinaci API a MFC :( )... nevim. Také je pravdou, že mi u c++ mnoho věcí nevadilo... protože to byl jazyk kterým jsem začal ( nepočítaje pascal). Ale když jsem začal dělat i v jiných jazycích, tak vidím a velice oceňuji pohodlí, které poskytují. Prostě myslím že svět se již posunul dlouhými kroky jinam.

Jenom pro ukázku ... četl někdo z Vás knihu od "Premier Press" "C# Professional Projects" ? ... tak takhle nějak si představuji že má vypadat nauka programování :). Byl bych upřímně zvědavej jak by se dala nějaká taková kniha udělat v kontextu C++. ( o C++ a navazujících věcech (mfc,api atd) jsem přečetl cca 7000 stran knih, ale žádná nešla takto pěkně "na věc")
disorder
disorder (neregistrovaný)
27. 6. 2006 23:44 Nový

Re: Dont touch C :)

celé vlákno
dalsia nepresnost. prosim, nepliest C a C++. fundamentalne odlisny sposob programovania (a navyse nejake MFC, brr).
Petr
Petr (neregistrovaný)
28. 6. 2006 20:39 Nový

Re: Dont touch C :)

celé vlákno
Ad "programator programuje 2 hodiny ze smeny": K tomu dve veci.

Za prve, citim v podtextu vasi poznamky skryty predpoklad, ze "programovani" = "psani kodu". To je obecne rozsireny omyl. I pokud budeme chapat programovani jako kodifikovani pozadavku, tak vetsinu doby musi zabrat shromazdovani pozadavku plus snaha jim porozumet, a potom testovani kodu, zda je vystup v souladu s pozadavky. Pokud to tak u vas neni, tak delate neco spatne. (A to jsem se prave snazil naznacit.)

Za druhe, pokud mluvime o hodinach: Pred nedavnem jsem cetl velmi zajimovou studii, kde autori vyhodnocovali, kolik casu programator stravi explicitni konstruktivni praci (presna definice tam byla i uvedena, ted snad postaci intuitivni chapani). Ve vetsine firem vyslo neco kolem 25%, nejlepsi vysledek byl 37%. Pokud snad znate nekoho, kdo si mysli, ze jeho programatori pracuji 100% doby, tak ten nekdo lze bud vam nebo sobe. Ono to tak nefunguje a ani fungovat nemuze. A mate moznost bud pohlizet na skutecnost tak, jak je, anebo se ji snazit videt takovou, jak by byt mela - vyberte si sam.


K tomu zbytku: Jak rikam, je jedno, jaky jazyk - podstatne je, jak dobre.
Pichi aura:75
29. 6. 2006 9:39 Nový

Re: Dont touch C :)

celé vlákno
Tak pod tohle bych se podepsal. Každý jen trochu rozumný vývojář by měl vzít nohy na ramena, pokud se po něm nechcou: specifikace, dokumentace, testy a někde v zadu se krčící implementace. Pokud to má být rychle i když blbě, tak honem pryč!
SB
SB (neregistrovaný)
3. 5. 2007 16:22 Nový

Re: Dont touch C :)

celé vlákno
Tak todle je trefa do černýho. Typuju, že takovým tím živelným přístupem pracuje nejmíň polovina softwarových firem, je to ten typ zastuzeného vývoje z garážových aplikací, na jejichž složitost mimochodem nižší jazyky byly dostačující (zkušenost už mám). Na rozsáhlé projekty jsou třeba vyšší jazyky s lepší abstrakcí, řešení problémů pointerů, přetékání bufferů ap. zde nemají místo, naopak je třeba jazyky, které umějí jednou operací řešit rozsáhlé problémy. Mimoto samotné implementaci musí předcházet rozbor a datové modelování, jinak se v tom jeden utopí...
Celou diskusí se táhne pocit, že se zde potkávají lidé z nižšího programování, kteří upřednostňují nižší jazyky (asm, C) a z vyššího (vyšší jazyky), jenom si to nějak nemůžou říci. Takže otázka není zda C, ale na co!
Zasílat nově přidané příspěvky e-mailem