home contents changes options help subscribe edit
===============================================================
Guido van Rossum:  Python in New York
                   Part I -- The Origins of Python
===============================================================
Google New York's Technical Speaker Series.
Guido van Rossum giving his Python presentation
at the New York Google office on Wednesday, February 22nd 2006.
http://video.google.com/videoplay?docid=-7758421725489622662
===============================================================

Část I -- Kořeny (původ) jazyka Python

Guido van Rossum přednáší v prostorách firmy Google ve středu 22. února 2006.

Zrození jazyka Python

První fáze vývoje trvala asi rok (ve volném čase). Únor 1992 -- první zveřejněná verze (usenet) pod licencí podobnou MIT.

Některé cíle návrhu

Proč je objektově orientovaným? [05:50]

Koncem 80. a začátkem 90. let jsem nebyl velkým příznivcem OO jazyků. Věděl jsem o Smalltalku a C++ a opakovaně jsem si kladl otázku: "Co je vlastně tak zvláštního na objektově orientovaných jazycích?"

Dobré věci z jazyka ABC [10:32]

ABC je předchůdcem Pythonu. S návrhem jazyka ABC nemám nic společného. Ovlivnil jsem jej možná z jedné desetiny procenta. Vznikal totiž na konci 70. a na začátku 80. let v hlavách vynikajících vědců na CWI v Holandsku. Poté co dokončili návrh jazyka a vytvořili velmi hrubý prototyp, rozhodli se najmout skupinu programátorů, kteří měli vytvořit korektní implementaci jazyka. Já jsem byl jedním z nich. Takže jsem asi 4 roky strávil prací s těmito lidmi. I když jsem neměl vliv na návrh jazyka, zkoušel jsem to. Kdykoliv mě napadla dobrá myšlenka, jak by se jazyk měl upravit nebo přidat nový rys, vždy mi laskavě a jasně vysvětlili, proč to není nutné a že uživatelé ABC by těmito rysy byli spíš více zatíženi, než aby jim v něčem pomohly.

[11:52] Svým způsobem jsem tento odpor k změnám v jazyce zdědil. Myslím si, že to je dobrý přístup, protože jazyk by se měl měnit mnohem pomaleji, než s ním spojené knihovny, runtime atd.

Mimochodem, cílová skupina uživatelů ABC měla být jiná, než je tomu u Pythonu. ABC bylo určeno pro inteligentní a bystré profesionály, kteří se ovšem nezabývají vývojem software. Měl to být jazyk pro vědce, knihovníky, chemiky a další, kteří používali počítače. Sem tam si chtěli napsat malý program, který by jim zjednodušil práci. Nebyl určen pro vývojáře, kteří by psali software používaný někým jiným.

[12:50] Otázka z publika: Byl Python vytvořen pro nějakou cílovou skupinu? Odpověď: Jazyk měl splňovat především mé vlastní požadavky. Chtěl jsem mít k dispozici implementaci jazyka, který by byl produktivnější než C a mocnější (více se podobající opravdovému programovacímu jazyku) než Bourne Shell. Cílová platforma se navíc příliš nepodobala Unixu. Takže Perl 3, který byl v té době k dispozici, nemohl být použit. A na základě své předchozí dlouhé zkušenosti s lidmi kolem ABC se mi nelíbila syntaxe Perl 3.

[13:35] (obsah slajdu, o jazyce ABC)

Nedobré věci na jazyce ABC [16:38]

Python v sobě odráží vše dobré, co se mi na ABC líbilo. Zvým způsobem odráží také vše, co se mi na ABC nelíbilo. Dá se říci, že v návrhu Pythonu jsem se snažil opravit vše, co se mi na ABC nelíbilo.

Co jsem změnil [19:20]

Co dalšího jsem změnil [20:58]

Přidal jsem další dobré věci, které nepocházejí z jazyka ABC. A taky jsem přidal pár svých chyb.

[23:20] Otázka: [k celočíselnému dělení, volná sumarizace velmi dlouhé otázky] ... dělení celých čísel matematicky sice vede k obecně racionálním výsledkům, ale na druhou stranu, při numerických výpočtech je řada algoritmů kvůli výkonnosti optimalizována právě na celočíselné dělení...

[24:50] Odpověď: Pokud skutečně chcete, aby bylo celočíselné dělení uzavřeno v oboru celých čísel, můžete [do budoucna] používat operátor "i // j" místo "i / J". Jde o speciální operátor, který ořízne výsledek. Pravděpodobně to není celá odpověď na danou otázku. Je to také otázka filosofického přístupu. Python se řídí filosofií, která dává přednost "praktickému" přístupu k řešení problémů před "teoretickým". Právě praktické problémy uživatelů vedly k rozhodnutí změnit výsledek celočíselného dělení na typ float (reálné číslo). Pokud to skutečně potřebujete, můžete si definovat vlastní číselný typ, který definuje (overload) vlastní chování operátoru dělení.

Další vlivy [25:58]

[28:15] Otázka: Odkud pochází odsazování. Odpověď: Odsazování je vypůjčeno z ABC, ale jde o starší myšlenku. Jde o přístup běžně používaný v polovině 70. let.

[28:50] Otázka: Proč nejsou regulární výrazy zabudovány přímo do jádra jazyka? Odpověď: Souvislost s ABC, který regulární výrazy nepoužíval (byl určen pro výuku začátečníků). Python původně regulární výrazy také nepodporoval z podobných důvodů. Dalším důvodem je to, že přidávání nových věcí do Pythonu formou modulů je v 9 z 10 případů jednodušší, než úpravy jádra jazyka. A protože přidání regulárních výrazů formou modulu bylo možné, neprováděly se změny přímo do jádra. Jediným kompromisem bylo zavedení nové formy zápisu řetězce [r'raw string'], u které interpret není tak agresivní při interpretaci backslash.

Další poznámky [slajd zobrazen v čase 28:23]

[30:45]

(Konec první části. Pokračování -- PrednaskaGvRPythonInNewYorkII)




subject:
  ( 118 subscribers )