Portál AbcLinuxu, 12. května 2025 15:44

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Vložit další komentář
29.10.2004 13:39 Martin Zoubek
Rozbalit Rozbalit vše Jen to ne!
Odpovědět | Sbalit | Link | Blokovat | Admin
Doufám, že se tahle úchylnost do jádra neprosadí. Ostatně Linus to ve výše uvedených JN 251 popsal trefně...
29.10.2004 15:20 Michal Kubeček
Rozbalit Rozbalit vše Re: Jen to ne!
Inu, svého času mohla lidem stejně úchylná připadat představa, že se bude jádro operačního systému psát ve vyšším programovacím jazyce...
29.10.2004 18:48 David Jež | skóre: 42 | blog: -djz | Brno
Rozbalit Rozbalit vše Re: Jen to ne!
Mno na druhou stranu co si pod pojmem vyssi programovaci jazyk predstavujes? Jadro se stejne pise v assembleru, jinak to nastesti nejde, maximalne nejaka makra a pokud neni neco napsane v assembleru tak je to v Cecku ktere ma tu vyhodu, ze neni az tak moc vyse a vynikajici vyhodu v tom, ze se v nem da dobre prasit. Jo a nezapomen, ze opravdovy programator dokaze napsat fortransky kod v jakemkoliv jazyce :-))). Takze s tim vysokym jazykem to az tak zhave nakonec neni. Nehlede nato, ze predstava psat jadro v nejakem ,,vyssim`` jazyce nepripada nikomu uchylna, protoze ta proste uchylna je. Nebo si dovedes predstavit jatro psane treba v ja nevim javahumusu? No fujtajbl, to tam fakt nema co delat :-). Jo a IMHO by mel autor zmineneho patche dodavat k patchi i kyblik, jinak si to nikdo neprecte.
-djz
"Yield to temptation; it may not pass your way again." -- R. A. Heinlein
29.10.2004 19:39 Michal Kubeček
Rozbalit Rozbalit vše Re: Jen to ne!
Zkuste se podívat na zdrojáky aktuální verze linuxového jádra, jak velká část z něj je napsána v assembleru. C je samozřejmě vyšší programovací jazyk, rozdíl mezi C a C++ je řádově menší než mezi assemblerem a C.
29.10.2004 20:04 VícNežNic | skóre: 42 | blog: Spáleniště | Ne dost daleko
Rozbalit Rozbalit vše Re: Jen to ne!
Já teda žiju v domění, že v assembleru je napsaná pouze minimální nezbytně nutná část jádra :-)

Každopádně základ myšlenky nepřijatelnosti C++ v jádře je mi stále ještě trochu nejasný. Chápu to tak, že vlasnosti, které má C++ oproti C (třeba výjimky) jsou z hlediska kernelu obtížné, protože se obtížněji ladí a chovají se nepředvídatelně. Chápu to alespoň trochu dobře?
Copak toho není dost?
29.10.2004 20:49 Michal Kubeček
Rozbalit Rozbalit vše Re: Jen to ne!
Já mám stejný pocit a spolu se mnou i příkaz find... :-)

Spíš jde o to, že vývojáři jádra nemají dobrý pocit z toho, že v C++ (pokud se skutečně používá jako C++) se nechává víc práce na překladači, takže nemají dostatečný pocit kontroly nad výsledkem. Na druhou stranu, při drastických tricích, které moderní kompilátory používají při optimalizaci, je ta kontrola poměrně problematická i v C.

Druhý zásadní problém je v tom, že zatímco gcc je velmi kvalitní a velmi dobře odladěný překladač, o g++ se to moc říct nedá. Mé zkušenosti s kompilací Firebirdu (vhodný příklad rozsáhlejšího projektu v C++, který není vyvíjen primárně pod g++) jsou takové, že zhruba polovina pokusů skončí na internal compiler error. Proto se celkem nedivím, že se do používání C++ v jádře nikdo moc nehrne. Nejsem ale a priori přesvědčen, že je na použití C++ něco principiálně špatného a že současný stav musí trvat na věky věků.
29.10.2004 20:23 Marcel Šebek | skóre: 21 | blog: c
Rozbalit Rozbalit vše Re: Jen to ne!

Ja bych zase řekl, že mezi C a C++ je větší rozdíl než mezi ASM a C.

C je přenositelný assembler. Má celkem jednoduchou syntaxi a bez explicitního volání nějaké knihovní funkce nepotřebuje libc.

V C++ třeba existují operátory new a delete, které způsobí přilinkování malloc a free. A nějak tak budou implementovány i výjimky. C++ potřebuje standardní knihovnu, nevystačí si samo o sobě. To je jeden z důvodů, proč nemá v jádře co dělat.

Real programmers don't comment their code. If it was hard to write, it should be hard to read.
29.10.2004 20:41 Michal Kubeček
Rozbalit Rozbalit vše Re: Jen to ne!
Přívlastek "jednoduchá" není zrovna ten, který by mne v souvislosti se syntaxí C napadl jako první. Spíš by to bylo něco jako "chaotická" nebo "nesystematická".

S new a delete nemáte tak úplně pravdu - stejně jako většina ostatních se totiž dají overloadovat.
29.10.2004 21:48 Marcel Šebek | skóre: 21 | blog: c
Rozbalit Rozbalit vše Re: Jen to ne!
Přívlastek "jednoduchá" není zrovna ten, který by mne v souvislosti se syntaxí C napadl jako první. Spíš by to bylo něco jako "chaotická" nebo "nesystematická".

To je věc názorů. Možná není úplně jednoduchá, ale logická je.

S new a delete nemáte tak úplně pravdu - stejně jako většina ostatních se totiž dají overloadovat.

Ok. Tak to byl špatný argument.

Nenapadá mě ale žádná featura C++, která by měla pozitivní přínos ve vývoji jádra. C tady bohatě dostačuje. Pro vývoj jádra je třeba jednoduchý jazyk. Stačí opomenout nějakou drobnost (přetěžování funkcí nebo operátorů pro to poskytuje mnoho možností), překladač chybu nenahlásí, ale v kernelu je závažná chyba. V C je podobných záludností daleko méně (snad jen makra preprocesoru).

Real programmers don't comment their code. If it was hard to write, it should be hard to read.
30.10.2004 12:38 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Jen to ne!
Přívlastek "jednoduchá" není zrovna ten, který by mne v souvislosti se syntaxí C napadl jako první. Spíš by to bylo něco jako "chaotická" nebo "nesystematická".

Což ovšem o C++ platí trojnásob, takže tímto směrem argumentace se daleko nedostaneme.

Syntaxe C++ má všechny problémy syntaxe C, má vlastní úchylnosti typu = 0 pro čistě virtuální metody, a kromě toho obsahuje schovaný další (tj. po preprocesoru už druhý) jazyk s děsnou syntaxí -- šablony. Vtah mezi syntaxí a sémantikou je oproti C, které je skutečně high level assembler, zatemněný.
30.10.2004 20:37 Michal Kubeček
Rozbalit Rozbalit vše Re: Jen to ne!
Jsem samozřejmě dalek tvrdit, že C++ je v tomto nějak lepší než C. Už z principu pochopitelně ani nemůže. Jen jsem nesouhlasil s tvrzením, že C je jazyk s jednoduchou syntaxí.

Na druhou stranu, ony ty jazyky, které jsou geniálně teoreticky navržené, syntakticky/sémanticky naprosto čisté a striktně vynucující programování podle Gutha-Jarkovského, se ukazují jako zcela nepoužitelné pro praktické programování. Takže buďme rádi za to C/C++. :-)
1.11.2004 09:49 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Jen to ne!
No já osobně bych se přimlouval pro lisp. Když už vyžší jazyk, tak pořádně. Mimochodem, ten už do jádra jednou portován byl :-)
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.