"Mezitím v roce 1991 započal vývoj jiného jádra, které nakonec dostalo jméno "Linux". Původně ho začal psát finský student helsinské univerzity Linus Torvalds jako svůj koníček. Torvalds vycházel z Minixu,..."
Podle me, pokud Torvalds vychazel z Minixu (jako ze to kazdy vime, ze zacinal od jeho myslenky), tak i zdrojovy kod z nej vychazi. Vychazi z nej ale pouze myslenkove, ne kopie zdrojoveho kodu. Ale mozna se pletu:) Jsem zvedavej, jestli jsem sam, kdo se nechal takhle nachytat na svestkach, ale podle 12% spravnych odpovedi to bude asi dost lidi:)
Priste prosim otazky zadat presneji, napr. z ceho vychazel Linus pri psani Linuxu (z Minixu) nebo zdrojove kody jsou: (napsany od nuly, vetvi minixu...)
hehe, jsem si myslel, ze kritici nepresnosti otazek v diskuzi pod soutezi jsou jenom stouralove:) a jo, stve me, ze jsem se ani do toho losovani nedostal:) zrovna barevnej laser, sakra:)
I z vaseho clanku "Historie operačního systému GNU/Linux" "Proto se Linus rozhodl jít cestou nejmenšího odporu a napsat si vlastní operační systém, který by se podobal Minixu a byl provozovatelný na běžném PC." mi to tak vyplyva: Linux vychazel z Minixu, cili kdyz psal kod, vychazel z Minixu. Ale je to asi jen o vnimani:)
já se zase nachytal na otázce číslo 10. Cituji přímo z wikipedie
Charakter jazyka: víceparadigmatický
Objevil se: 1990
Navrhl jej: Guido van Rossum
Vývoj realizuje: Python Software Foundation
Poslední verze: 2.5
Datum verze: 19. září 2006
Typová kontrola: silná, dynamická
Hlavní implementace: CPython, Jython, IronPython, PyPy (en)
Dialekty: --
Ovlivněn jazyky: ABC, Perl, Lisp, Smalltalk, Tcl
Ovlivnil jazyky: Ruby, Boo, Groovy
Operační systém: různé platformy
Licence: Python Software Foundation License
Website: www.python.org
Python je interpretovaný objektově orientovaný programovací jazyk navržený v roce 1990 Guido van Rossumem. Python je vyvíjen jako open source projekt, který zdarma nabízí instalační balíky pro většinu běžných platforem (Unix, Windows, Mac OS); ve většině distribucí systému Linux je Python součástí základní instalace.
Obsah [skrýt]
1 Vlastnosti
2 Zen of Python
3 Související projekty
4 Spolupráce s jinými programovacími jazyky
4.1 C a C++
4.2 Java
4.3 Prostředí .NET/Mono
5 Výkon
6 Spolupráce s jinými aplikacemi
7 Příklady
8 Charakteristika a použití jazyka
8.1 Proměnná je pojmenovaným odkazem na objekt
8.2 Funkce se uchovává jako objekt
8.3 Do složených datových struktur se ukládají odkazy
8.4 Proměnné není nutné deklarovat
8.5 Členské proměnné tříd mohou vznikat až za běhu
8.6 Typy nelze libovolně míchat
8.7 Ortogonalita operátorů
9 Externí odkazy
[editovat] Vlastnosti
Python je dynamický interpretovaný jazyk. Někdy bývá zařazován mezi takzvané skriptovací jazyky. Jeho možnosti jsou ale větší. Python byl navržen tak, aby umožňoval tvorbu rozsáhlých, plnohodnotných aplikací (včetně grafického uživatelského rozhraní).
Python je hybridní jazyk (nebo také víceparadigmatický), to znamená, že umožňuje při psaní programů používat nejen objektově orientované paradigma, ale i procedurální a v omezené míře i funkcionální, podle toho komu co vyhovuje nebo se pro danou úlohu hodí nejlépe. Python má díky tomu vynikající vyjadřovací schopnosti. Kód programu je ve srovnání s jinými jazyky krátký a dobře čitelný.
K význačným vlastnostem jazyka Python patří jeho jednoduchost z hlediska učení. Bývá dokonce považován za jeden z nejvhodnějších programovacích jazyků pro začátečníky. Tato skutečnost je dána tím, že jedním z jeho silných inspiračních zdrojů byl programovací jazyk ABC, který byl jako jazyk pro výuku a pro použití začátečníky přímo vytvořen. Python ale současně bourá zažitou představu, že jazyk vhodný pro výuku není vhodný pro praxi a naopak. Podstatnou měrou k tomu přispívá čistota a jednoduchost syntaxe, na kterou se při vývoji jazyka hodně dbá.
Význačnou vlastností jazyka Python je produktivnost z hlediska rychlosti psaní programů. Týká se to jak nejjednodušších programů, tak aplikací velmi rozsáhlých. U jednoduchých programů se tato vlastnost projevuje především stručností zápisu. U velkých aplikací je produktivnost podpořena rysy, které se používají při programování ve velkém, jako jsou například přirozená podpora prostorů jmen, používání výjimek, standardně dodávané prostředky pro psaní testů (unit testing) a dalšími. S vysokou produktivností souvisí dostupnost a snadná použitelnost široké škály knihovních modulů, umožňujících snadné řešení úloh z řady oblastí.
Python se snadno vkládá do jiných aplikací (embedding), kde pak slouží jako jejich skriptovací jazyk. Tím lze aplikacím psaným v kompilovaných programovacích jazycích dodávat chybějící pružnost. Jiné aplikace nebo aplikační knihovny mohou naopak implementovat rozhraní, které umožní jejich použití v roli pythonovského modulu. Jinými slovy, pythonovský program je může využívat jako modul dostupný přímo z jazyka Python (tj. extending, viz sekce Spolupráce s jinými aplikacemi).
[editovat] Zen of Python
Vůdčí principy, které BDFL prosazuje při návrhu systému Python, stručně shrnul dlouholetý pythonýr Tim Peters do podoby 20 aforismů, z nichž bylo zapsáno pouze 19:
The Zen of Python, by Tim Peters Volný překlad
Beautiful is better than ugly. Krásný je lepší než ošklivý.
Explicit is better than implicit. Explicitní je lepší než implicitní.
Simple is better than complex. Jednoduchý je lepší než složitý.
Complex is better than complicated. Složitý je lepší než komplikovaný.
Flat is better than nested. Plochý je lepší než zanořený.
Sparse is better than dense. Řídký je lepší než hustý.
Readability counts. Na čitelnosti záleží.
Special cases aren't special enough to break the rules. Speciální případy nejsou dost speciální, aby ospravedlnily porušení pravidel.
Although practicality beats purity. Ačkoliv praktičnost vyhrává nad čistotou.
Errors should never pass silently. Chyby by nikdy neměly projít potichu.
Unless explicitly silenced. Pokud nejsou záměrně zamlčeny.
In the face of ambiguity, refuse the temptation to guess. Pokud se setkáš s nejednoznačností, odolej pokušení odhadovat.
There should be one—and preferably only one—obvious way to do it. Měl by existovat jeden — a pokud možno pouze jeden — zřejmý způsob jak to udělat.
Although that way may not be obvious at first unless you're Dutch. Ačkoliv tento způsob nemusí být hned zřejmý, pokud nejsi Holanďan.
Now is better than never. Teď je lepší než nikdy.
Although never is often better than right now. Ačkoliv nikdy je často lepší než právě teď.
If the implementation is hard to explain, it's a bad idea. Pokud lze implementaci vysvětlit jen s obtížemi, jde o špatnou myšlenku.
If the implementation is easy to explain, it may be a good idea. Pokud lze implementaci vysvětlit snadno, mohla by to být dobrá myšlenka.
Namespaces are one honking great idea — let's do more of those! Jmenné prostory jsou jednou z velkých myšlenek — jen víc takových!
Anglický originál textu se vypíše, pokud v interaktivním režimu uživatel zadá příkaz >>> import this. Podobným legráckám a nečekaným věcem umístěným do programů se říká velikonoční vajíčko.
[editovat] Související projekty
Mimo jiné je v něm implementován aplikační server Zope, instalátor operačního systému RedHat Linux (Anaconda) nebo většina konfiguračních nástrojů operačního systému RedHat Linux.
[editovat] Spolupráce s jinými programovacími jazyky
[editovat] C a C++
Klasický Python je implementován v jazyce C (označuje se někdy jako CPython). V něm probíhá další vývoj jazyka Python. Verze jazyka Python jsou zveřejňovány jak v podobě zdrojového kódu, tak v podobě přeložených instalačních balíků pro různé cílové platformy.
Dostupnost zdrojového kódu a vlastnosti jazyka C umožňují zabudovat interpret jazyka Python do jiné aplikace psané v jazycích C nebo C++. Takto zabudovaný interpret jazyka Python pak představuje nástroj pro pružné rozšiřování funkčnosti výsledné aplikace zvenčí. Existuje i projekt pro užší spolupráci s C++ nazvaný Boost.Python
Z těchto důvodů — a s přihlédnutím k obecně vysokému výkonu aplikací psaných v jazyce C — je CPython nejpoužívanější implementací jazyka Python.
C a C++
Klasický Python je implementován v jazyce C (označuje se někdy jako CPython). V něm probíhá další vývoj jazyka Python. Verze jazyka Python jsou zveřejňovány jak v podobě zdrojového kódu, tak v podobě přeložených instalačních balíků pro různé cílové platformy.
Dostupnost zdrojového kódu a vlastnosti jazyka C umožňují zabudovat interpret jazyka Python do jiné aplikace psané v jazycích C nebo C++. Takto zabudovaný interpret jazyka Python pak představuje nástroj pro pružné rozšiřování funkčnosti výsledné aplikace zvenčí. Existuje i projekt pro užší spolupráci s C++ nazvaný Boost.Python
Z těchto důvodů — a s přihlédnutím k obecně vysokému výkonu aplikací psaných v jazyce C — je CPython nejpoužívanější implementací jazyka Python.
Primo na gnu.org je:
"The Hurd is real software that works Right Now. It is not a research project or a proposal. You don't have to wait at all before you can start using and developing it."
Znate nejaky GNU software, ktery byl skutecne DOKONCEN? Tzn. bylo naznano, ze na nem jiz neni mozno nic zlepsit, nic k nemu pridelat?
Btw. jak znely ty moznosti k teto otazce? Ta spravna moznost znela "Vyvoj jadra Hurd nebyl stale ukoncen"?
Souhlasim s tim, ze by bylo fajn to pro priste pripravit lepe. Sporne otazky a k nim sporne odpovedi. Viz zmineny minix, hurd (nebyl niky dokoncen = nebyl dokoncen a upustilo se od vyvoje ALE nebyl stale ukoncen = zakladni vyvoj stale probiha) Pak je jasne, ze je spraven jen 12% odpovedi... No je videt, ze na rootu meli dovolenou a soutez narychlo delala uklizecka....
Je jasne, ze z pravniho hlediska je Linux napsan od nuly. Jinak by slo o odvozenou praci a nemeli bychom ho pod GPL licenci.
Navic je vsude napsane, ze linux jakozto kernel z MINIXu pouzival jenom userspace. Ten byl pozdeji vymenen za GNU.
[joke]
Jako výherce první ceny musím kromě poděkování (děkuji!) root.cz pochválit za soutěžní otázky, které díky fikanému návrhu eliminovaly většinu šťouralů. Uvažuji, že bych jako první věc vytiskl barevnou příručku "Linux Essentials For BFU" a zaslal ji ostatním v této diskusi... ;-)
[/joke]
Co bude redakce považovat za správné se dalo vytušit, nicméně z ceny získané za nepravdivé odpovědi bych neměl radost a proto jsem se soutěže nezúčastnil ;-)
aj napriek tomu, ze c nie je uplne podmnozinou c++ je natolko podobne ze myslim (aj ked som to neskusal) ze pri troche stastia by sa dal python skompilovat aj pod standartym c++ prekladacom, cize pravedepodobne EXISTUJE implemntacia v c++ (ale nehadam sa ak je to blbost ale neverim tomu:-))
ze to vyskusam (tremulous ma uz dako nebavi tak co by som nezabil cas inak:-))
$ export CC=g++
$ ./configure
....
$ make
....
Objects/exceptions.c: In function ‘PyObject* SyntaxError_str(PySyntaxErrorObject*)’:
Objects/exceptions.c:1101: error: invalid conversion from ‘void*’ to ‘char*’
make: *** [Objects/exceptions.o] Chyba 1
....
nabuduce sa nebudem radsej hadat :-/ btw pridal som asi 10 pretypovani (a este jeden _skaredy_ hack) a mam implementaciu pythonu v c++ ("ciastocne" zalozenu na CPython :-D)...
Mozna mam poruchu osobnosti, ale toto je skutecny PR clanek HP. Kdyz se vedle objevi rozhovor s lidmi z MS, muzou se nekteri pominout a hned si root mazou z RSS, ale tohle je nachava v klidu?
Copak HP is not our enemy? Ono mozna pro neznale, HP na rozdil treba od IBM, Sunu nebo Oraclu ma s Microsoftem velmi uzke vztahy.
HP neni zdaleka jenom vyrobce tiskaren a par notebooku, jak se uzivatelum PC muze zdat (i kdyz zisky ma zrejme, pravda, hlavne z tech tiskaren).
1) ok (s vyhradami - jaky projekt?)
2) neplati nic (nelze jednoznacne urcit, zastaraly udaj)
3) ok
4) ok
5) vse plati (vychazi je dost vagni pojem)
6) neplati nic (v ramci 1 filesystemu)
7) neplati nic (neni receno, v kterem rezimu; krome mazani vklada do schranky)
8) neplati nic (uz jste videli dokonceny operacni system? byl linux dokocen? staci vam livecd? nebo architektura v debianu?)
9) ok
10) ok? (asi pravda, ale to co se da najit na internetu je matouci)