Má smysl se učit Python?

ctirad

Má smysl se učit Python?
« kdy: 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?
« Poslední změna: 28. 06. 2013, 22:37:28 od Petr Krčmář »


koss43

  • ***
  • 120
    • Zobrazit profil
    • E-mail
Re:Python?
« Odpověď #1 kdy: 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 :(

smoofy

  • *****
  • 1 059
    • Zobrazit profil
    • E-mail
Re:Python?
« Odpověď #2 kdy: 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.

txt

Re:Python?
« Odpověď #3 kdy: 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 (!).

gamer

Re:Python?
« Odpověď #4 kdy: 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.


ctirad

Re:Python?
« Odpověď #5 kdy: 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ý.

eMko

  • ****
  • 456
    • Zobrazit profil
    • E-mail
Re:Python?
« Odpověď #6 kdy: 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, 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)

omg

Re:Python?
« Odpověď #7 kdy: 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.

ertwertwertwe

Re:Python?
« Odpověď #8 kdy: 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........

JS

Re:Python?
« Odpověď #9 kdy: 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)

ertwertwertwe

Re:Python?
« Odpověď #10 kdy: 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.

andy

Re:Python?
« Odpověď #11 kdy: 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.

eMko

  • ****
  • 456
    • Zobrazit profil
    • E-mail
Re:Má smysl se učit Python?
« Odpověď #12 kdy: 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á.

andy

Re:Má smysl se učit Python?
« Odpověď #13 kdy: 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.

eMko

  • ****
  • 456
    • Zobrazit profil
    • E-mail
Re:Má smysl se učit Python?
« Odpověď #14 kdy: 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 :) .