.   POZOR !!! Tento článek byl naposledy aktualizován před více než dvěma lety !!!
Je možné, že následující­ stránka obsahuje odkazy, které dnes již nejsou funkční, nebo že některé informace uvedené v tomto článku se v průběhu času ukázaly jako prokazatelně chybné. Pokud jakoukoliv podobnou závadu zjistíte, tak neváhejte napsat co nejpřesnější popis závady do veřejného komentáře pod článkem: redakce TečkyCZ nové komentáře neustále sleduje, a to i pod těmi nejstaršími články. V celé řadě případů lze chyby snadno opravit - např. se stává, že video na YouTube bylo smazáno a znovu nahráno pod jiným id. V jiných případech někdo zase zakáže embedovaní videa, která přitom existuje ve více kopiích, nebo se z webu ztratí stránka umístěná na negarantovaném freehostingu, zatímco původní autor stránek si mezitím zaregistruje vlastní doménu, atd.

Děkujeme všem, kteří pomáhají opravovat chyby ve starších webových stránkách a udržují tak Internet naživu - redakce TečkyCZ.


V linuxovém kernelu se 44878x vyskytuje příkaz goto → [/822]
xChaos 2. února 2009 [3644 znaků] [Linux a internet]
★★ [ + ] 2 [2x] [ - ]
Zobrazení 3603 ← RSS 271 Facebook 5 Twitter 18 Google 14
Komentářů 1


Už dlouho jsem nepsal nic o programování, Linuxu a Internetu, takže je čas to napravit. Vzpomínáte na fanatické bojovníky proti příkazu goto, kteří ovládali akademickou půdu v 80. letech 20. století ?
Spousta lidí umí programovat v C, nebo v jazycích, které jsou velmi zhruba odvozeny od původní C syntaxe (C++, PHP, Perl, Javascript, Java ...) - a jedním z největších open source projektů napsaných v jazyce C je bezpochyby linuxový kernel.

Podívejme se tedy na četnost výskytu jednotlivých C identifikátorů [teckacz.arachne.cz] ve verzi 2.6.28.2 zdojáku linuxového kernelu.

Četnost výskytu příkazu goto asi nepřekvapí, pokud si uvědomíme, že v čistém C neexistuje dnes už poměrně běžná konstrukce typu try ~ catch/except pro systematické ošetření vyjímek. Na druhou stranu - toto zjištění jistě pobaví všechny, kdo v rané fázi svého programátorského vývoje úpěli pod jhem akademických dogmatiků konce 80. let 20. století, kteří prosazovali místo C programovací jazyk Pascal (kde je mu dnes konec ? :-) a příkaz goto pokládali za největší zlo - a to ještě ani neznali flow-control příkaz comefrom [en.wikipedia.org] :-)

Tento statistický výcuc byl vygenerován krátkým prográmkem v Pythonu [dev.arachne.cz], který vznikl jako součást chystané sady benchmarků [dev.arachne.cz] pro můj v současné době asi nejvážněji míněný projekt C<<1 [dev.arachne.cz], o kterém bych se tady brzy rád rozepsal více - některé zajímavé features fungují už teď, a projekt by měl být plnohodnotnou alternativou k C++ - programy napsané v C<<1 půjde přeložit v jakémkoliv plně ANSI C99 [en.wikipedia.org] kompatibilním compileru (tedy samozřejmě i v dnes asi nejrozšířenějším GCC - GNU C compileru) a spustit na jakékoliv POSIX kompatibilní platformě (tedy dnes obvykle Linux a FreeBSD). Jazyk C<<1 přitom má už v současné verzi vlastní polymorfní objektový model (pojatý nikoliv stylem "všechno je objekt", ale pouze jako volitelné rozšíření, nadstavbu) a implementuje řadu moderních postupů a nástrojů, které v klasickém C zoufale chybí - námatkou třeba systém ošetření vyjímek (try { }), nástroje pro jednoduchou práci s kontejnerovými datovými strukturami a nabídne jak spoustu nových flow control maker typu iterátory, tak i bezpečné prostředky pro jednoduchou práci se stringy. Ale více se dozvíte v samostatném článku, který o svém projektu chystám.

Další samostatný článek chystám na téma Python [xkcd.com] - což je velice soudobý, velice jednoduchý a velice intuitivní programovací jazyk, který dnes pokládám za asi nejvhodnější jazyk pro úplné programátorské začátečníky. Jakkoliv výkon aplikací je pak samozřejmě nižší, než u rozumně optimalizovaného kódu napsaného v C - Python dost brzdí přístup "všechno je objekt", který má značnou režii - tak pořád je Python daleko elegantnější, než monstrozity typu PHP, které už napáchaly v posledních letech opravdu hodně škod. A zjistil jsem, že výrokem "Python je můj oblíbený dialekt Basicu" dokážu naštvat opravdu hodně lidí :-) Ovšem posledním mě známým předchozím vážně míněným programovacím jazykem, ve kterém hrál whitespace syntaktickou roli byl - Fortran.

Takže se v nejbližší době můžete těšit minimálně na dvě (až tři) docela hutné programátorské kontroverze (projekt C<<1, samozřejmě Python a možná ještě něco o specifikaci C99). Zabíjení času flamewary na NYXu mě už přestává bavit, je čas na "masovou" osvětu...


Optimalizace: pokud používáte prohlížeč s jádrem Mozilla (Firefox 3.8-8.0) v dostatečně velkém okně a na monitoru s dostatečným rozlišením, tak nepřehlédněte pokračování textu v dalším sloupci vícesloupcové sazby ! Tato feature je sice v prohlížečích s jádrem Webkit (Google Chrome, Safari, Konqueror) teoreticky také k dispozici - ale bohužel se chová nepředvídatelně a nepoužitelně: sloupce které se na obrazovku nevejdou, jednoduše skryje. [zpět na začátek sloupcové sazby]
Pokud se vám článek líbil, můžete podpořit provozovatele serveru zasláním Bitcoin daru dle vlastního uvážení na BTC účet č. [19rriLx8vR19wGefPaMhakqnCYNYwjLvxq] :-)
Sdílet v síti [Identi.ca - musíte být předem přihlášeni] [Twitter] [Facebook] [Jagg.cz]
Formátovat pro tisk [bez komentářů] [s komentáři]
Krátká forma URL (adresy) [http://teckacz.cz/822]
Všechny články [tohoto autora] [v rubrice Linux a internet]


Hodnocení článku čtenáři [ + ] 2 [2x] [ - ]
Komentáře
Skrýt komentáře hodnocené nebo méně

[] fikus (anonym) 2. února 2009 ← komentářů 565 ☯☯☯ 71 [117x]
[ + ] 0 [0x] [ - ] ← pro ohodnocení komentáře se není nutné registrovat, stačí kliknout na + nebo -
→ [/-/11673] ← na komentář můžete odpovědět
jenom maly dodatek k tomu goto z http://www.xml.com/ldd/chapter/book/ch02.html

cituji:
Error recovery is sometimes best handled with the goto statement. We normally hate to use goto, but in our opinion this is one situation (well, the only situation) where it is useful. In the kernel, goto is often used as shown here to deal with errors.

Pozor: vložením komentáře souhlasíte s pravidly hry, které vyhlásil provozovatel webu! [zobrazit pravidla]
Ochrana proti spambotům - tři-krát-tři je ... ? (napište číslicí - nemělo by byt potřeba při zapnutém JavaScriptu)
Sociální síť (přihlaste se předem, 1. řádek<=100 znaků=status, zbytek=odkaz)
Přezdívka (povinně) - nepoužívejte speciální znaky, mezery=podtržítka
E-mail (volitelně) - nebude zobrazen, bude zobrazena ikonka z [www.gravatar.com]

V komentáři nelze použít HTML [zobrazit mikrosyntax]

Nápověda: ve vlastním zájmu uvádějte u komentářů pouze funkční a dostupnou e-mailovou adresu. Přezdívku, která je jednou spojená s konkrétní e-mailovou adresou, už nyní nelze bez zásahu administrátora serveru spojit s jinou adresou. Uvedením neplatné e-mailové adresy si v budoucnu znemožníte upload ikonky i možnost použít některé další chystané neanonymní funkce vázané na uvedení platné e-mailové adresy.


TečkaCZ
  •  
  • Komentáře →
  • Debaty →
  • Články →
  • Rubriky →
  • Ostatní →

Yacy P2P web search

jabber.arachne.cz

MyPower.CZ - Elektřina zdarma

. tiskové zprávy a otevřené dopisy přebíráme z nejrůznějších informačních kanálů (i bez výslovného souhlasu autorů)
licenční práva k použitým obrázkům a grafickým motivům nejsou definována (přebírejte pouze texty bez obrázků)
texty článků i komentáře bez uvedení copyrightu jsou chráněny GNU Free Documentation License
založeno na Quzo engine, (G)1999-2002 David Čermák, (G)2002-2011 Michael Polák
Quzo engine vyvíjejí Arachne Labs, webhosting sponzorují SPOJE.NET
seznam aktuálních článků je dostupný i ve formátu RSS (XML)
můžete také sledovat Twitter feed TečkyCZ.
test XHTML a CSS2 validity
[Právě dnes | Tech | Ostatní] [Arachne Labs]
[SPOJE.NET]