pátek 13. února 2009

Eric S. Raymond: Umění programování v Unixu

Tak jsem se zas dostal k nějakému čtení a přečetl si knížku Umění programování v Unixu od Eric S. Raymond(a). V originále se kniha jmenuje The art of UNIX Programming a lze si ji stáhnout z internetu. Knížku u nás vydalo nakladatelství Computer press. Kniha je brožovaná a má cca 480 dobře vysázených stránek.
Obsah
V knize se pojednává o filozofii operačního sytému UNIX, kterou zdědily i operační systémy Linux, FreeBSD a další. Přístup k tvorbě a implementaci programů pod linuxem je podrobně vysvětlen. Kniha určitě stojí za přečtení, protože obsahuje spoustu myšlenek, se kterými můžete nebo nemusíte souhlasit, ale určitě Vás přimějí uvažovat o tom jak navrhovat software a jaké mají jednotlivé návrhy výhody a nevýhody. Nečekávejte, že v knize najdete sebereflexi UNIXové filozofie, kniha se spíše snaží být obhajobou. Za nejcennější části knihy pokládám rozbor jednotlivých unixových programů a ilustrování myšlenek z knihy na existujících implementacích. Knihu z tohoto důvodu doporučuji přečíst, nejlépe v originále.
Překlad
Bohužel co mě na knize zarazilo je kvalita překladu. Kniha je psána dost náročně od programátora pro programátory a člověk, který knihu překládal, rozhodně UNIXový programátor nebyl a korektura zaspala a nestihla si to před puštěním knihy do oběhu uvědomit. Překladatel se jal knihu překládat doslova, takže některé věty v češtině znějí zvláštně a marně přemýšlíte, jak technický termín zní v originále. Uvádět u prvního výskytu překladu originální termín nebo na konec zařadit tabulku překladu termínů nikoho nenapadlo. *Českému překladu této knihy se proto vyhněte!*.
Příklady překladu
Pro ilustraci překladu dodávám mnohdy humorné příklady. Příklady řadím od největších absurdit po menší. První je vždy uvedeno znění v originále, následuje originální překlad.


Perl is shell on steroids.
Jazyk Perl je příkazovým prostředím steroidů.

notably first-person shooters
především první střelci

Perhaps root is too powerful
Kořen systému je možná příliš vlivný

It economizes the far more valuable resource that is human time, by making it…
Tento formát totiž zachází šetrně s mnohem hodnotnějšími prostředky, než je lidský čas.

so sporadic dropouts are tolerable, but lag is fatal.
když se jeden z příkazů ztratí velká potíž nevznikne. Kdyby však hra běžela pomalu, byl by to velký problém.

Its devotees speak an argot that is dense and forbidding even by computer-science standards,...
Nadšenci hovoří v hantýrce, která je poměrně neproniknutelná a odpuzuje dokonce i standardy počítačových věd.

Emacs Lisp is a Lisp. It follows as the night the day that it manages memory automatically and…
Jazyk Emacs Lisp je jazykem Lisp. Stejně jako po dni následuje noc, zajišťuje jazyk Lisp automatickou správu paměti.

Though small programs in Perl can be extremely powerful, careful discipline is required to maintain modularity and keep a design under control as program size increases.
Přestože mohou být malé programy v jazyce Perl velmi výkonné, je třída pro zachování modularity a udržení návrhu pod kontrolou dodržovat velmi důsledně disciplínu.

and, in fact, be separated by an Internet connection spanning half the globe
mohou být ve skutečnosti spuštěny na různých polokoulích naši Země

This is called ‘System V IPC’—or, among old timers, ‘Indian Hill’ IPC after the AT&T facility where it was first written.
Tomuto modelu se se říká meziprocesorová komunikace Systému V (System V IPC) nebo “indiánský kopec” (“Indian Hill” IPC) – podle první funkce tohoto typu firmy AT&T.
Gabriel porovnává filozofii Massachusettského technického institutu, která nejvíce cení jednoduchostí v rozhraní, s filozofií institutu v New Jersey, která nejvíce oceňuje jednoduchost v rozhraní. (správně v implementaci)

By contrast, vi looks rather bloated and flabby.
Naproti tomu vypadá návrh editoru spíše přebuleje a fádně. (jakého editoru?)

even moderate size (more than a few hundred lines)
i středně velkých programů obsahujících několik řádků kódu.

which is what makes projects like Expect reasonable
právě proto jsou projekty, jako je Expect, potřebné

thread
podproces

signals, poll, and select
signály, žádosti a výběry

GTK and Qt use a slot-and-signal apparatus for event-handling…
Knihovny GTK a Qt používají pro ošetření událostí mechanismy drážek a signálů,...
Poznamenávám, že pravopisné chyby se v textu nevyskytují, takže pokud je najdete v ukázkách jedná se o můj překlep. Abych však jen nehanil jeden překlad se mi velmi líbil frontend – průčelí. Předpokládám, že o knize napíšu ještě jeden příspěvek o jejím obsahu.

Žádné komentáře:

Okomentovat