IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Je dobrý nápad psát v Pythonu programovací jazyk?

Aktivity
Avatar
Neaktivní uživatel:17.11.2014 19:41

Ahoj, jsem asi tak v půlce psaní parseru a kompilátoru pro svůj jazyk a napadlo mě, zda je dobrý nápad ho psát v Pythonu? Jde mi o rychlost paměť a tyto obecné atributy.

Odpovědět
17.11.2014 19:41
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Josef Kuchař - Pepa489:17.11.2014 19:45

Python není moc dobrá volba pro rychlost, kompiluje se totiž za běhu ;)

Nahoru Odpovědět
17.11.2014 19:45
2x piš, jednou debuguj
Avatar
Odpovídá na Josef Kuchař - Pepa489
Neaktivní uživatel:17.11.2014 20:11

OK, a jak je na tom paměťově?

Nahoru Odpovědět
17.11.2014 20:11
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Neaktivní uživatel:17.11.2014 20:36

Pamäťovo podobne jako Java alebo C#. Čiže používa Garbage Collection, co nie je najlepšia volba z hladiska rýchlosti a využitia pamäte.

Editováno 17.11.2014 20:37
Nahoru Odpovědět
17.11.2014 20:36
Neaktivní uživatelský účet
Avatar
hanpari
Člen
Avatar
Odpovídá na Neaktivní uživatel
hanpari:17.11.2014 21:09

Python je jen specifikace jazyka, a jeho rychlost se liší podle konkrétní implementace a konkrétní aplikace. Místo cpythonu (tj. standardní implementace stažená z python.org) existují implementace zaměřené výkon jako cython nebo pypy. Ze samostatným výkonem se tedy dá ještě čarovat, mimo jiné i pomocí céčkových knihoven, které uvolní úzké hrdlo dané aplikace.
POkud vím, např. jython je obecně pomalejší proti samotné javě proto, že není staticky typovaný, a to brání kompilátoru ho optimalizovat tak účinně jako samotnou javu nebo jiný staticky typovaný jazyk pro JVM.
Je ovšem potřeba si uvědomit, že úzké hrdlo samotného programu netvoří většinou jazyk, ale spíš nevhodný algoritmus.
Co se týče paměti, tam záleží na tom, jak to naprogramuješ. Se samostatným jazykem bych si hlavu nelámal. Co se týče správy paměti, generátory určitě znamenaly pro její uvolnění obrovský pokrok.
Ovšem, python je vysokoúrovňový jazyk, takže se snaží své programátory odfiltrovat od nižších úrovní. Proto hodně záleží na tom, co si od toho slibuješ :)

POkud tě to opravdu zajímá, můžeš si přečíst toto:

http://it-ebooks.info/book/3816/

 
Nahoru Odpovědět
17.11.2014 21:09
Avatar
Neaktivní uživatel:2.4.2015 8:37

Tak jsem nakonec použil PyPy3 a běží jako hodinky. A mimochodem, můžete si ho vyzkoušet. Zdroják je na adrese: https://github.com/Unicyde/Flat

Nahoru Odpovědět
2.4.2015 8:37
Neaktivní uživatelský účet
Avatar
hanpari
Člen
Avatar
Odpovídá na Neaktivní uživatel
hanpari:2.4.2015 17:27

Pěkné,

mimochodem, kde jsi našel toto? Tohle jsem ještě nikde neviděl. Ale kupodivu to funguje :)

result[0::2] = lst
 
Nahoru Odpovědět
2.4.2015 17:27
Avatar
David Novák
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
David Novák:2.4.2015 19:10

hlavně hodně záleží, jak to myslíš.. napsat parser a překladač v pythonu je naprosto v pohodě.. s textem umí pracovat pěkně a jednoduše.. ;)

překládat ten tvůj jazyk do pythonu zase není moc dobrý nápad.. Python je sám o sobě hodně vysokuúrovňový a pomalý.. záleží samozřejmě k čemu to má sloužit.. jestli je to jen blbinka na vyzkoušení si tvorby jazyka, tak proč ne.. ;)
Pokud to má být reálný, dobře využitelný jazyk, tak by se měl překládat minimálně do C/C++, ideálně rovnou do ASM :D

Ale to je hodně práce (ne pro jednoho).. Takže dobrý kompromis by bylo překládat do http://llvm.org/ Výhoda je, že tím bez enormní námahy získáš překlad pro x různých platforem.. Nějak blíž jsem to ale nezkoumal, takže nemůžu přesně říct, jak to funguje a jak to použít ;)

EDIT: Tak jsem si právě všiml, že ta diskuze je poněkud postaršího data.. :D

Editováno 2.4.2015 19:11
Nahoru Odpovědět
2.4.2015 19:10
Chyba je mezi klávesnicí a židlí.
Avatar
Odpovídá na hanpari
Neaktivní uživatel:4.4.2015 19:21

Tak to už vážně netuším, ale myslím, že je to slicování multidimenzio­nálního listu..

EDIT:
Už to vím! Na každou druhou pozici v listu přidá daný element. (Nejspíš jsem to našel na StackOverflow)

Editováno 4.4.2015 19:23
Nahoru Odpovědět
4.4.2015 19:21
Neaktivní uživatelský účet
Avatar
Virlupus
Tvůrce
Avatar
Virlupus:4.4.2015 21:29

Zdravím, myslím, že Python je dost fajn jazyk, který se dá použít velmi všeobecně. Když jsem v něm mohl stvořit emulátor ZX, tak i rychlost je přijatelná. Též byl mou volbou pro přetvoření PC Fandu do trochu modernější varianty...zatím rozpracovaná verze. Tedy v závěru mohu tvrdit, že programovací jazyk v Pythonu jde udělat...i když C by asi byla lepší volba, ale příliš složitá práce s ukazateli a mnoho nutných kontrol poněkud v C zpomaluje vývoj.

 
Nahoru Odpovědět
4.4.2015 21:29
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.