[python] Prepis videa - prvni cast (bylo Guido video)
Petr Prikryl
PrikrylP na skil.cz
Pátek Březen 10 11:06:17 CET 2006
... jen tak narychlo -- první nástřel. Možná
by bylo fajn, kdyby to někdo ještě prošel,
opravil a doplnil. Pak by se to mohlo někde
šupnout na py.cz spolu s odkazem na originál
Jak říká, jde o přednášku, která bude v plném znění
přednesena na PyCon 2006.
Jak Python vznikl. (Prosinec 1989, vznik prvního
parseru, úpravy syntaxe. Pak vznikl první zárodek
jazyka.
Od začátku vznikal se záměrem postavit to jako
"projekt pro jednoho člověka". Proto spíš malé
jádro a důraz na snadnost vytváření knihoven,
které můžou psát jiní.
Začátek 90. let -- GvR zájem o OOP. Co to je?
... ovlivnilo to návrh Pythonu od začátku. Hovoří
o některých implementačních detailech ve vztahu
k vznikajícímu Pythonu.
OOP se do Pythonu promítlo v detailech
až ve verzi 2.2.
Motivace: Mít k dispozici produktivnější
jazyk, než C a mocnější, než Bourne Shell.
Nelíbila se mu syntaxe Perlu.
Převzaty důležité principy z jazyka ABC,
který navrhli chytří a zanícení lidé, kteří
ale neměli zkušenosti s vývojem software
a s návrhem jazyků.
ABC nebyl rozšiřitelný. Python se při vývoji
pokoušel o odstranění jeho nedostatků. (Jazyk
ABC je stále dostupný, napsaný v C -- zkuste
Google.)
...
Práce s výjimkami byla převzata z jazyka Modula 3.
Hovoří o vlastních chybách (např: dělení
celého čísla celým číslem dává zase celé číslo,
dřívější používání hodnot typu string pro
identifikaci výjimek [v době zavedení nebyly
ještě třídy]).
Python klade důraz spíše na "praktický" než
na "teoretický" či "filosofický" přístup
k řešení problémů.
Vývoj ovlivnily tyto další jazyky (překlad
jednoho slajdu)...
- Lisp: first class funkce
- Smalltalk: interpret bajtkódu
- Emacs: ukládání přeloženého bajtkódu do souboru
- Algol-60, Algol-68, Pascal: applehood & mother pie
(první jazyky, se kterými se GvR seznámil)
- Modula-3: try/except, třída jako záznam, explicitní
používání self.
- UNIX: modularita; standardní interaktivní chování,#!
(konstrukce z jazyka C)
- Icon: slices; mhohem později generátory
- Perl: syntaxe regulárních výrazů
- Tcl/Tk: Tkinter; více interpretů; sandboxing
(nevím, jak by se to mělo překládat)
- Java: nové aplikační rozhraní pro vlákna, reformy
v oblasti výjimek (nedávno).
- Odsazování půjčeno z ABC, ale jde o starší myšlenku.
[dotaz] 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ýrazně 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ší probírané otázky:
- Proč používat explicitně self?
- Odkud přišla introspekce?
- Je Python multi-paradigmatický jazyk?
- podporuje procedurální a OO programování,
ale je slabý co se týká funkcionálního
programování a jiných přístupů.
gsl...
> Nechce nahodou nekdo napsat o co tam jde (alespon hlavni
> body), moje n770 s gprs na video neni moc stavena :-). Zajima
> me hlavne python 2.5. Diky :-)
Jan Suchý...
> Ahoj, tady je Guido naživo z konference Python in New York
> konané 22.2.2006.
> V prvním videu mluví o vzniku jazyka a cílech návrhu, v
> druhém podrobně
> o změnách, které budou ve verzi Pythonu 2.5 a 3.0, včetně
> předpokládaného data uvedení nové verze 2.5.
> tak si o užijte :-)
http://video.google.com/videoplay?docid=-7758421725489622662
http://video.google.com/videoplay?docid=60331183357868340
Další informace o konferenci Python