20 лютага 1991 года Гвіда ван Рассум апублікаваў у групе alt.sources першы выпуск мовы праграмавання Python, над якім працаваў са снежня 1989 года ў рамках праекта па стварэнні скрыптовай мовы для вырашэння задач сістэмнага адміністравання ў аперацыйнай сістэме Amoeba, якая была б больш высокага ўзроўню. чым Сі, але, у адрозненне ад Bourne shell, падаваў бы зручнейшы доступ да сістэмных выклікаў АС.
Імя для праекта было абрана ў гонар камедыйнай групы Монці Пайтан (Monty Python). У першай версіі была рэалізавана падтрымка класаў з атрыманне ў спадчыну, апрацоўка выключэнняў, сістэма модуляў і базавыя тыпы list, dict і str. Рэалізацыя модуляў і выключэнняў была запазычаная з мовы Modula-3, а стыль кадавання на аснове водступаў з мовы ABC, у распрацоўцы якога Гвіда раней прымаў удзел.
У працэсе стварэння Python Гвіда кіраваўся наступнымі прынцыпамі:
- Прынцыпы, якія дазволілі зэканоміць час пры распрацоўцы:
- Запазычанне карысных ідэй з іншых праектаў.
- Імкненне да прастаты, але без празмернага спрашчэння (прынцып Эйншэйна «Усё павінна быць выкладзена так проста, як толькі магчыма, але не прасцей»).
- Прытрымліванне філасофіі UNUX, у адпаведнасці з якой праграмы рэалізуюць нейкую адну функцыянальнасць, але робяць гэта добра.
- Ці не занадта клапаціцца аб прадукцыйнасці, аптымізацыі можна дадаваць па меры неабходнасці, калі яны спатрэбяцца.
- Не спрабаваць змагацца з рэчамі, якія склаліся, а плыць па плыні.
- Пазбягаць перфекцыянізму, звычайна хапае і ўзроўню "досыць добра".
- Часам можна зразаць куты, асабліва, калі нешта можна зрабіць пазней.
- Астатнія прынцыпы:
- Рэалізацыя не павінна быць прывязана да канкрэтнай платформы. Некаторыя магчымасці могуць быць даступныя не заўсёды, але базавая функцыянальнасць павінна працаваць усюды.
- Не нагружаць карыстачоў дэталямі, апрацоўку якіх можа ўзяць на сябе машына.
- Падтрымка і прасоўванне платформанезалежнага карыстацкага кода, але без абмежавання доступу да магчымасцяў і асаблівасцяў платформаў.
- Вялікія складаныя сістэмы павінны даваць некалькі узроўняў для пашырэння.
- Памылкі не павінны быць фатальнымі і незаўважанымі - карыстацкі код павінен мець магчымасць перахапіць і апрацаваць памылкі.
- Памылкі ў карыстацкім кодзе не павінны ўплываць на функцыянальнасць віртуальнай машыны і не павінны прыводзіць да нявызначаных паводзін інтэрпрэтатара і краху працэсаў.
Крыніца: opennet.ru