Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: ctirad 28. 06. 2013, 11:58:02

Název: Má smysl se učit Python?
Přispěvatel: ctirad 28. 06. 2013, 11:58:02
Ahoj, vidím, že je tu teď hodně témat o programování, tak to určitě přilákalo programovací mágy. Jak to vidíte s Pythonem? Jako jazyk se mi zdá dobrý, knihovny nejsou špatné, i když rozhodně nejsou na všechno. Má smysl se mu věnovat, když ho nikde nechtějí? Java/C# je všude a vemou vás na jakoukoli pozici podle zkušeností. U Pythonu ale nic, jen sem tam nějaká malá a speciální nabídka. Nebo myslíte, že do ČR Python teprve přijde? Nebo je teď megakrize a nehledá se skoro nikdo?
Název: Re:Python?
Přispěvatel: koss43 28. 06. 2013, 12:13:08
Ono já se python právě učím, a nemyslím si, že by byla úplně malá poptávka. Ono to je trošku jinak, za prvé Python sám o sobě je pouze skriptovací jazyk, takže je třeba benefit pro správce sítě na unixu. Jinak když v tom chceš něco vyvíjet, tak to je o tom naučit se třeba Django. A kdybych porovnával Django třeba s php frameworkem Symfony, tak v ČR je stejně nízká poptávka.

Ale zase jsem viděl starší inzeráty, že přijmou Django developera za 40.000 - 60.000 Kč, což mi přijde i na Prahu v pohodě. A taky možnost dělat pro zahraniční firmy není špatná. Obecně jde o to, jestli hledáš zakázky nebo zaměstnání. Pokud hledáš zakázky nic ti nebrání participovat na projektech v zemích EU, kde je ČR chudá malá zemička. Pokud hledáš otročinu (rozuměj zaměstnání) tak bych šel do té Javy, zase dělat freelancera v Javě podle mě může být mnohem těžší než dělat freelancera v Javě, ale zkušenosti nemám :(
Název: Re:Python?
Přispěvatel: smoofy 28. 06. 2013, 12:47:18
Koss43 to vystihl velice dobre. Python je skvely prave pro svou jednoduchost a univerzalitu pro spravce site, nikoliv nezbytne vyhradne, ale jako ciste vyvojovy nastroj u nas skutecne moc nabidek neni.
Urcite si ale myslim ze budoucnost a uplatneni ma, at uz ses administrator nebo se budes chtit venovat ciste vyvoji a navic, ho na produkcni urovni zase az tolik lidi u nas nedela z tebou vystihnuteho duvodu, ze neni tolik zadany.
Název: Re:Python?
Přispěvatel: txt 28. 06. 2013, 12:58:08
Doplnim původní otázku:
Má smysl se k C#/Javě začít učit navíc Python, nebo se rozvíjet v tom co už trochu umim?
V nabídkách práce pro vývojáře bejvá uvedeno, že Python je (pouze) výhodou, když už ho tam zmíněj. Na druhou stranu při zpracování dat bývá Python porovnávám i s Perlem (!).
Název: Re:Python?
Přispěvatel: gamer 28. 06. 2013, 13:14:13
Pokud umíš C#/Javu na obstojné úrovni, naučíš se relativně dobře Python za pár týdnů, takže asi nemá smysl učit se Python jen tak "do šuplíku kdyby byl někdy potřeba". Na druhou stranu je to výborný jazyk na prototypování, když si chceš něco rychle vyzkoušet a hodí se i interaktivní interpret, v tomhle Python nemá konkurenci.
Název: Re:Python?
Přispěvatel: ctirad 28. 06. 2013, 13:19:32
A kdybych porovnával Django třeba s php frameworkem Symfony, tak v ČR je stejně nízká poptávka.

Ale zase jsem viděl starší inzeráty, že přijmou Django developera za 40.000 - 60.000 Kč, což mi přijde i na Prahu v pohodě.

Přesně, je to podobně malé. Django také dělám, ale záleží od projektu. Jen si říkám, že je lepší možná přejít na něco jiného, protože jazyk jako jazyk, jen se mi Python vždy zdál zajímavý i na velký vývoj.

Zrovna možná myslíme jednu nabídku, která tam straší už přes půl roku :D A ta cena je v reálu také různá, protože tuhle nabídku mělo několik personálních agentur a tam chtějí hlavně nalákat.

Doplnim původní otázku:
Má smysl se k C#/Javě začít učit navíc Python, nebo se rozvíjet v tom co už trochu umim?
V nabídkách práce pro vývojáře bejvá uvedeno, že Python je (pouze) výhodou, když už ho tam zmíněj. Na druhou stranu při zpracování dat bývá Python porovnávám i s Perlem (!).

Právě v Javě jsem dělával několik let a až pak přešel k Pythonu. Takže se ptám na Python a jen Python. Když bych dělal Javu, tak se budu věnovat jen jí, protože má tuny dost zajímavých knihoven. Python bych pak měl jen na to skriptování, ale rozdíl mezi skriptováním a větším vývojem je obrovský.
Název: Re:Python?
Přispěvatel: eMko 28. 06. 2013, 14:14:20
Za sebe říkám, že má smysl Python znát. V práci jsem ho použil jen párkrát (nějaký skripty na čištění databáze, protože po*u*vené aplikačky tam dělaly binec v datech + buildování více-jazyčných MSI balíků; ten druhý pak admin přepsal do shellu, ať si kolegové nemusí kvůli buildování C#ového projektu instalovat python). Na školní projekty jsem jej využíval víc - naposledy asi před 2 měsíci ve statistice - musel jsem přerovnat data, aby je dokázal zpracovat statistický software (statgraphics).

Python má obrovskou výhodu v celkem slušném počtu knihoven, (na skriptovací jazyky) slušnou rychlost, relativně dobrou podporu v různých vývojových prostředích (IntelliJ IDEA/PyCharm, Eclipse...), snadnost používání (= "K cíli vy měla vést pouze 1 cesta a to ta nejvíce zřejmá") a dobrou čitelnost kódu, pokud člověk není vyloženě prase. Dá se v něm najít i pár dobrých věcí, které se dotýkají spíš funkcionálního programování, než imperativního.

Jistě že bych měl raději za sebou JVMko a všechny knihovny (např. Apache Lucene* na zpracování textu, ta je hodně brutální :) ), na druhou stranu skripty napsané v Groovy nebo Clojure mají obrovskou nevýhodu, že musí počkat, než naběhne JVM a potom ještě běhové prostředí pro tyto jazyky. Ačkoliv se člověk obvykle vejde do 1-2s a při vývoji se dá použít interaktivní konzole/REPL (a tím pádem toto celé odpadá), je to k naštvání při běhu - schválně si zkuste pracovat s project management systémem pro Clojure (leiningen), občas mám pocit, že zapustím kořeny ... ještě, že se dá spustit "lein pom" :) . V pythonu ten skript běží "hned", byť mnohdy pomaleji.

Nicméně mít práci jen a pouze na pythonu mi nepřipadá jako moc dobrý nápad - především proto, že trpí podobnou nemocí jako mnohé ostatní skriptovací jazyky jménem http://en.wikipedia.org/wiki/Global_Interpreter_Lock (http://en.wikipedia.org/wiki/Global_Interpreter_Lock), tedy zjednodušeně: i když si vytvoříš více vláken, nikdy nepoběží dvě a více zároveň - v jeden časový okamžik vždy jen a pouze jedno a často se střídají (u pythonu cca 100 instrukcí bajtkódu). OK na vytvoření UI, které má 1 dlouhou operaci na pozadí, u které chcete zobrazit modální dialog "Čekejte prosím ..." s progressbarem a tlačítkem Cancel. Nic víc praktického to neumí. Stejně tak se jedná o dynamicky typovaný jazyk, což (z vlastních zkušeností) pro vývojové týmy čítající více než několik málo dobrých lidí může skončit totální katastrofou. Ale skripty, které se rychle spustí, přečtou si z příkazové řádky, co chceš dělat (argparse modul ... super věc), vezmou něco ze stdin a vyblijou výstup na stdout a stderr, je velmi dobrý.

* možná jsem zvolil špatný příklad, protože u této knihovny je možnost ji volat z Pythonu (byť je stále nutné mít nainstalované JVM)
Název: Re:Python?
Přispěvatel: omg 28. 06. 2013, 17:27:37
Jak to vidíte s Pythonem? Jako jazyk se mi zdá dobrý, knihovny nejsou špatné

Mluvim za sebe a z vlastni zkusenosti. Jazyk, ktery neni silne typovany je na vetsim projektu peklo. Vyjimkou je jen velky projekt, ktery je kolekce tisicu mensich jak vejce vejci podobnych specializovanych podprojektu.

A to bez ohledu na citelnost a udrzovatelnost kodu se spatne prebira. Doplnovani kodu nenabizi preferovane property/promenne/metody, protoze se nema ceho chytit a musi to nahrazovat pamet autora. A ta na kodu na ktery nesahnes pres 2 roky vynechava. Na produktivite se ten rozdil pozna pri prebirani uplne nejvic.
Název: Re:Python?
Přispěvatel: ertwertwertwe 28. 06. 2013, 18:43:50
python pro rychle naprototypovani pokusu a pripadne pozdejsi prepsani do C++/C#/Java.
takze python, proc ne :-)

tak jako reznik umi z masa udelat sekanou, tlacenku, steak, rizek........
tak programator umi C, C++, Java, Python, PHP........
Název: Re:Python?
Přispěvatel: JS 28. 06. 2013, 19:29:13
tak jako reznik umi z masa udelat sekanou, tlacenku, steak, rizek........
tak programator umi C, C++, Java, Python, PHP........

a tak jako reznik umi udelat sekanou z prasete, vola ci telete..
tak programator umi udelat sekanou v C, C++, Java, Python, PHP..

(ale jinak s pointou souhlasim)
Název: Re:Python?
Přispěvatel: ertwertwertwe 28. 06. 2013, 21:09:36
tak jako reznik umi z masa udelat sekanou, tlacenku, steak, rizek........
tak programator umi C, C++, Java, Python, PHP........

a tak jako reznik umi udelat sekanou z prasete, vola ci telete..
tak programator umi udelat sekanou v C, C++, Java, Python, PHP..

(ale jinak s pointou souhlasim)

myslim to tak, ze pokud jde o dobreho reznika tak i jeho sekana a tlacenka je vyborna.
dobry programator se neomezuje na jedinou syntaxi.
Název: Re:Python?
Přispěvatel: andy 28. 06. 2013, 22:25:27
eMko ze dlhe restarty groovy? Si asi nezazil tie skvele nastroje istej velkej modrej firmy na vacsich projektoch, ze mozes ist rovno na obed.. (15-20 minut a potom sa ti nieco zosype a znova..).
Co sa pythonu tyka, tak sice je v tom porobene kadeco, ale .net ani java to nie je a asi sa v tom ani nikdy nebudu robit vacsie projekty (cim nemyslim web nejakeho velkeho dennika) uz len preto, ze uz su v .net a jave.
Název: Re:Má smysl se učit Python?
Přispěvatel: eMko 28. 06. 2013, 23:42:18
@andy: Jeslti oba dva myslíme jednu a tu jistou firmu, tak její produkty mě živí :) . 15-20 minut jsem sice nezažil, ale "Rebuild solution" na 5 minut už párkrát ano. Každopádně nestává se mi to denně a start kompilovaného programu, byť třeba s hoooodně dlouhým popisem ribbon baru v XAMLu, je do 15-20 sekund i na testovacím virtuálním stroji s Windows XP, který je speciálně zkonfigurovaný tak, aby byl "polo-zdechlý", tedy "produkční prostředí sekretářky na univerzitě".

Každopádně skriptování je jiná liga - v momentě, kdy F# skript se mi spustí téměř hned, Python skript o něco málo rychleji a groovy to trvá vteřinu, tak je to trochu nasí*ačka. Při vývoji je to celkem jedno - většina lidí, co znám, má interaktivní konzoli spuštěnou furt a jen do ní klávesovou zkratkou posílá změněnou funkci/třídu, takže ten startovní čas padá.
Název: Re:Má smysl se učit Python?
Přispěvatel: andy 29. 06. 2013, 00:18:43
Nj, presne tak. Po 10 rokoch a 100x vykonnejsich pocitacoch treba stale na nieco cakat. Proste treba prejst na smalltalk a kaslat na python ;D. Inak este k tomu GILu - jython ho myslim nema.
A btw je megakrize a hleda sa stale niekto, najlepsie taky, co by robil za 10 a zadarmo.
Název: Re:Má smysl se učit Python?
Přispěvatel: eMko 29. 06. 2013, 09:47:49
Jestli má Jython nebo IronPython GIL nebo ne jsem nikdy nezkoumal, ale doufám, že ne - tenhle příspěvek na StackOverflow mě v tom utvrzuje http://stackoverflow.com/a/1147548 :) .
Název: Re:Má smysl se učit Python?
Přispěvatel: ctirad 29. 06. 2013, 11:26:04
Moc často jsem to nepoužíval, ale když jsem potřeboval vytížit třeba 8 jader při náročnější úloze, tak v tom není problém. Co tedy nemůžu?
Název: Re:Má smysl se učit Python?
Přispěvatel: Michal Soukup 29. 06. 2013, 11:53:02
Má smysl tato otázka? Má smysl učit se cokoliv?
Název: Re:Má smysl se učit Python?
Přispěvatel: ctirad 29. 06. 2013, 12:03:40
Kde ji vidíš? Jestli v nadpisu, tak ten jsem nepsal já a není moje.
Název: Re:Má smysl se učit Python?
Přispěvatel: Honza 29. 06. 2013, 12:29:38
Nj, presne tak. Po 10 rokoch a 100x vykonnejsich pocitacoch treba stale na nieco cakat. Proste treba prejst na smalltalk a kaslat na python ;D.

+1 :-)
Název: Re:Má smysl se učit Python?
Přispěvatel: xx 29. 06. 2013, 17:15:34
U nas Python nie je velmi pouzivany, ale v zahranici sa pouziva dost a aj na velke projekty. Ak ti ide o to pracovat v Prahe, tak by som sa naucil Python len okrajovo(niekde je to +). Ak by si chcel ist von(napriklad do USA), tak je Python jedna zo skvelych moznosti.
Název: Re:Má smysl se učit Python?
Přispěvatel: David 29. 06. 2013, 19:32:17
Příjde mi, že má smysl učit se cokoliv, když na to má člověk zrovna čas. Tak proč ne Python, Lua, Ruby apod....

(Osobně mám Python moc rád, má fakt vysokou abstrakci, tak si člověk jen tak přemýšlí na problémem a do toho mimoděk píše kód)

I v zaměstnání se určitě hodí. Ostatně je velmi snadné ho používat jako scriptovací právě pro aplikace psané v C++.
Název: Re:Má smysl se učit Python?
Přispěvatel: ctirad 30. 06. 2013, 13:40:52
Čas přece není, proto se ptám.

Ale díky za všechny názory. Pokud jsem to dobře pochopil, tak jazyk je dobrý, ale u nás se moc neexperimentuje a jede se na jistotu. Proto se dá očekávat, že časem se možná dostane i k nám, ale lepší bude buď dělat vlastní projekty nebo odjet jinam.
Název: Re:Má smysl se učit Python?
Přispěvatel: davkol 30. 06. 2013, 14:40:28
Viděl jsem nabídky práce namátkou od Seznamu a Red Hatu, kde byl Python vedle C/C++ stěžejním požadavkem. IIRC šlo o vývoj nějakých systémových nástrojů. Třeba Anaconda je napsaná v Pythonu.
Název: Re:Má smysl se učit Python?
Přispěvatel: ctirad 30. 06. 2013, 16:10:29
Seznam nemá kanceláře, takže tam nikdo normální dělat nebude a RH zase není v Praze. Klidně bych šel do Brna, jen bych čekal, že nebudou dvě nabídky na celou republiku :)) Teď nic nehledám, ale pokud se to do budoucna nezlepší, tak to moc dobré vyhlídky nejsou.
Název: Re:Má smysl se učit Python?
Přispěvatel: omg 01. 07. 2013, 09:43:31
Nj, presne tak. Po 10 rokoch a 100x vykonnejsich pocitacoch treba stale na nieco cakat. Proste treba prejst na smalltalk a kaslat na python ;D.

+1 :-)
bude hur. embedded jde smerem k orezavatkum typu browser OS.
Název: Re:Má smysl se učit Python?
Přispěvatel: omg 01. 07. 2013, 09:45:20
Příjde mi, že má smysl učit se cokoliv, když na to má člověk zrovna čas. Tak proč ne Python, Lua, Ruby apod....

(Osobně mám Python moc rád, má fakt vysokou abstrakci, tak si člověk jen tak přemýšlí na problémem a do toho mimoděk píše kód)

I v zaměstnání se určitě hodí. Ostatně je velmi snadné ho používat jako scriptovací právě pro aplikace psané v C++.

Fajn, tak zacni treba tady. Dej vedet, az se dostanes na konec seznamu jeste ti prihodim dalsi co v nem nejsou. http://en.wikipedia.org/wiki/List_of_programming_languages
Název: Re:Má smysl se učit Python?
Přispěvatel: jlx 01. 07. 2013, 12:22:56
@ctirad: Nauč se Python, pokud se ti v něčem líbí anebo ti bude k něčemu užitečný. Jestli se chceš učit jazyk jenom kvůli shánění zaměstnání, tak se ho snad radši ani neuč. Expert na Python je imho asi něco jako expert na kladivo.

V Čechách je podle mne docela relativně dost lidí co v Pythonu dělá a živí se tím, co v něm dělá, jenomže asi ne ve větších firmách, takže inzeráty nejsou nutně vodítko. Já osobně jsem Python nejdřív spíš jenom nabral po cestě, ale rozhodně nelituju času, který jsem tomu věnoval - dost se mi to vrátilo, i když i třeba o pár let později.
Název: Re:Má smysl se učit Python?
Přispěvatel: davkol 01. 07. 2013, 20:21:07
V RH se dá dělat na houm-ofis. Akorát bych Fedoru tuplem nepoužíval, kdybych věděl, že na ní dělají takhle motivovaní lidi. o_O
Název: Re:Má smysl se učit Python?
Přispěvatel: Mirek Prýmek 21. 07. 2013, 19:36:55
Když už tady zaznělo, že "Python není C# ani Java", zkuste kouknout na http://boo.codehaus.org/ To je taky docela zajímavá alternativa.
Název: Re:Má smysl se učit Python?
Přispěvatel: mikrom 21. 07. 2013, 22:28:11
Ked Python a .NET tak to radsej IronPython:
http://ironpython.net/
Název: Re:Má smysl se učit Python?
Přispěvatel: Mirek Prýmek 22. 07. 2013, 00:26:10
Ked Python a .NET tak to radsej IronPython:
http://ironpython.net/
Proč? Boo je "nativní" .NET záležitost, má standardně statické typování a dynamické může člověk použít jenom tam, kde ho opravdu potřebuje. Je jenom "python-like", není to Python.
Název: Re:Má smysl se učit Python?
Přispěvatel: mikrom 22. 07. 2013, 21:55:40
Aha OK - myslel som ze Boo je iba dalsia implementacia Pythonu pre .NET
Název: Re:Má smysl se učit Python?
Přispěvatel: mikrom 22. 07. 2013, 22:25:56
Myslim, ze naucit sa Python - alebo iny podobny skriptovaci jazyk ma urcite zmysel.

Python ma sklamal asi iba v 2 veciach:
1. Popalil som sa na povinnom odsadzovani. Programy som pisal na viacerych pocitacoch v editore vim. Nastavil som si vim tak, aby nahradzoval tabelatory medzerami, ale na niektorom pocitaci som na to zabudol. Takze v zdrojakoch mi vznikol miestami mix tabelatorov a medzier. Prisiel som na to az s odstupom casu. Je to dost neprijemna zalezitost - treba si dat na to pozor. Odvtedy uprednostnujem radsej Perl a Ruby, ktore nemaju povinne odsadzovanie.

2. Toho casu ma dost znepokojil prichod verzie 3. Musim vsak povedat, ze som si vtedy myslel, ze to bude ovela dramatickejsie a vsetky zdrojaky budem musiet prerabat. Nestalo sa vsak tak. Programy bezia tak ako boli napisane este v Pythone 2.x cca od roku 2002 doteraz v nezmenenej forme. Na verziu 3.x som zatial nemusel prejst a ani sa nechystam - mam stale nainstalovanu iba verziu 2.5.x a ak bude nutne prejdem na 2.7.x 

Odhliadnuc od tychto 2 negativ mi Python dal dost vela. Je vyborny na skusanie novych veci ako prototypovaci jazyk, na pracu s textovymi subormi, rychle reporty z databazy, ...
Odvtedy som sa vsak pozrel aj na Ruby a ten sa mi v niektorych veciach zapacil viac: okrem toho ze nema problemy s odsadzovanim, ma aj sikovnejsiu pracu s regularnymi vyrazmi na sposob Perlu.

Takze nauc sa Python, alebo Perl alebo Ruby. Okrem toho ze su to super rychle nastroje napriklad na spracovanie textovych suborov, reportov z databazy, atd... sa hlavne naucis pouzivat datovu strukturu hash a regularne vyrazy, co ti rozsiri obzor a bude ti velmi prinosne aj napr. v Jave.

Název: Re:Má smysl se učit Python?
Přispěvatel: Mirek Prýmek 22. 07. 2013, 22:36:58
Odvtedy som sa vsak pozrel aj na Ruby a ten sa mi v niektorych veciach zapacil viac: okrem toho ze nema problemy s odsadzovanim, ma aj sikovnejsiu pracu s regularnymi vyrazmi na sposob Perlu.
Mně přijde Ruby strašně nečitelný (v tom se taky podobá Perlu :). Nevím, jestli je to jenom tím, že jsem zvyklý na Python a začátečník by s tím problémy neměl, ale mě konstrukce typu
Kód: [Vybrat]
hash.each_pair do |key, value|
  puts "#{key} is #{value}"
end
fakt způsobují krvácení z očí. A to nejsem žádný ořezávátko, zvykl jsem si i na Erlang :)