[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