Má Python budoucnost?

nm

Má Python budoucnost?
« kdy: 03. 05. 2016, 12:40:21 »
Začal jsem se učit Python. Ale vývoj jde dopředu tak rychle, že neustále vznikají další a další programovací jazyky a technologie. A tak jsem si položil otázku, jestli má Python budoucnost.

Takže se ptám: Má PYTHON budoucnost?


Re:Má Python budoucnost?
« Odpověď #1 kdy: 03. 05. 2016, 13:08:22 »
Podle mě se ti znalost Pythonu neztratí. Ale taky asi záleží na oboru.. Osobně bych s nim extendil třeba C, ale pro C++ bych spíš použil AngelScript. Na samostatný scripty se určitě taky hodí, i když na Linuxu spíš použiješ Bash. Na webu se používá, ale mě se tam nelíbí, na menší stránky bych použil PHP/Nette, na něco většího asi Go, kterej už má celkem fajn knihovny, líbí se mi framework Beego.

Toto jsou mé názory, nikomu je nevnucuji, případné protiargumenty uvítám.

Re:Má Python budoucnost?
« Odpověď #2 kdy: 03. 05. 2016, 13:20:27 »
Já se začal učit python tento rok a jedeme v něm backend pro naše appky a musím říct, že skvělý.
Django je skvělý a python má spoustu frameworků.
To, co jsme jinde dělali týden, jsme díky pythonu a jeho frameworkům udělali za den.
Samozřejmě sám nevím, jak to bude s Pythonem do budoucna, ale myslím, že se jnetak neztratí. To už spíš PHP.

davkol

Re:Má Python budoucnost?
« Odpověď #3 kdy: 03. 05. 2016, 14:12:56 »
Nejsou jen weby, ale taky systémové věci, vědecké výpočty,…

Kit

Re:Má Python budoucnost?
« Odpověď #4 kdy: 03. 05. 2016, 14:47:35 »
Python používám tam, kde Bash už nestačí. Výkonem, datovými typy a strukturami, objektovostí, knihovnami, ... Python je také skvělým jazykem na prototypování. Jeho schopnosti bývají často podceňovány, ale umí toho opravdu hodně.

Python MÁ budoucnost.


gl

Re:Má Python budoucnost?
« Odpověď #5 kdy: 03. 05. 2016, 15:15:47 »
budoucnost je perl 6

Re:Má Python budoucnost?
« Odpověď #6 kdy: 03. 05. 2016, 15:53:37 »
Budoucnost patří aluminiu.

Youda

Re:Má Python budoucnost?
« Odpověď #7 kdy: 03. 05. 2016, 15:58:47 »
Osobne bych se na python vykaslal.

Na male skriptiky pouzivam BASH.
Na slozitejsi skriptiky Perl.
Na veci ktere musi bezet trochu slusne rychle commandline Javu.
Na male intranetove veci Javu/JSF2+Primefaces na Jettyne, Hibernate mapping (nativni, nemam rad JQL) + obcas Spring. Nebo misto Hibernatu nasadit Elasticsearch/Apache Lucene.
Na vetsi spolupracujici veci Javu + Karaf OSGi container, ve kterem mam Apache Camel, Apache CXF a Apache ActiveMQ.
Na opravdove weby se chci naucit AngularJS (frontend) v kooperaci se Spring MVC. Kamosi maji dobre zkusenosti s Twitter Bootstrap.
Plnotucne GUI aplikace nedelam, asi bych ale pouzil Javu FX.

Dnesni programovani je hlavne o frameworkach - a zdaleka nejvyssi nabidku mas v Jave. Vsecko pouzivane navic vystavene primo na MavenCentral. Staci slusne definovat pom.xml, devops prostredi se sestavi samo. Vcetne napr embedded jettyn na Unit testy a mockovani.

Parkrat jsem se dival na vselisjake ty Pythony a Ruby a opravdu jsem nenasel duvod, proc to pouzivat. Leda snad to Ruby se nyni casto pouziva jako script language uvnitr JVM (JRuby knihovna).
Jak ma vypadat elegantni jazyk vymysleli panove Kerninghan a Ritchie, vse co za neco stoji, jsou variace na ne.
Navic Pythoni napad formatovat kod newlines mi prijde podobne pritroubly, jako VisualBasic.

Python mi prijde jako vyhasle hype, ktery castecne nahradil zabordeleny Perl (kde do CPANu muze prispivat svymi vyplody kazdy, kdo na do zadeke diru a pak to tak vypada).
Dnes se hypuje funkcionalni programovani, aneb jak resit problemy, kdyz nechapu OOP, Java 8 lambda je mi malo, nevim co je Spring IoC a o OSGi jsem neslysel.

Re:Má Python budoucnost?
« Odpověď #8 kdy: 03. 05. 2016, 17:43:55 »
Podla mojho nazoru je otazka polozena uplne zle..
Kazdy lepsi systemak s algoritmickym myslenim by mal byt schopny operativne pouzivat akykolvek jazyk po osvojeni si syntaxe..
Cize urcite sa zide ovladat zaklady pythonu, vediet syntax a princip na akom funguje..Aj ked to nebudes pouzivat niekolko rokov tak v hlave to stale budes mat a ked to budes potrebovat tak sa do neho dostanes velmi rychlo...
Ja som naprilkad nikdy nerobil v C# ale potreboval som napisat jednu vec v tom jazyku a za 2 dni som si metodou pokus omyl vyskladal funkcny "program".. Takisto php a jquery..Nikdy som v tom nerobil ale mal som za ulohu urobit web ktory bude robit toto a toto a za 2 dni bol hotovy..

Ondrej

Re:Má Python budoucnost?
« Odpověď #9 kdy: 03. 05. 2016, 17:55:37 »
Jsou dva pohledy jak se na to dívat (osobně používám Python přes 10 let).

Python je snadno naučitelný jazyk, se spoustou knihoven, a pokud v něm člověk píše rozumně, tak i relativně snadno čitelný a spravovatelný.

Nevýhody Pythonu plynou z jeho výhod - častý přístup je "včera jsem si otevřel tutorial, dneska jsem udělal super appku na evidenci žížal a zítra v tom uděláme celokorporátní aplikaci pro tisíce zákazníků". V kombinaci s přístupem "zkusíme to takhle, když to nebude fungovat tak to předěláme" je Python recept na neštěstí. Díky tomu, že neexistuje vynutitelnost rozhraní, neexistence private/internal a spousta lidí má potřebu dělat prasárny typu "přes inspect.getouterframes zjistíme kdo funkci volá a podle toho se budeme chovat", dneska se už snažím Pythonu vyhnout (a to jsem ho jeden čas dost vehementně propagoval).

Jinými slovy - na prototyp je skvělý, na jednorázové admin skripty taky. Na kritické aplikace, kde je riziko že se bude používat i za rok, dva, tak rozhodně ne.

Taky Ondrej

Re:Má Python budoucnost?
« Odpověď #10 kdy: 03. 05. 2016, 18:52:01 »
Jsou dva pohledy jak se na to dívat (osobně používám Python přes 10 let).

Python je snadno naučitelný jazyk, se spoustou knihoven, a pokud v něm člověk píše rozumně, tak i relativně snadno čitelný a spravovatelný.

Nevýhody Pythonu plynou z jeho výhod - častý přístup je "včera jsem si otevřel tutorial, dneska jsem udělal super appku na evidenci žížal a zítra v tom uděláme celokorporátní aplikaci pro tisíce zákazníků". V kombinaci s přístupem "zkusíme to takhle, když to nebude fungovat tak to předěláme" je Python recept na neštěstí. Díky tomu, že neexistuje vynutitelnost rozhraní, neexistence private/internal a spousta lidí má potřebu dělat prasárny typu "přes inspect.getouterframes zjistíme kdo funkci volá a podle toho se budeme chovat", dneska se už snažím Pythonu vyhnout (a to jsem ho jeden čas dost vehementně propagoval).

Jinými slovy - na prototyp je skvělý, na jednorázové admin skripty taky. Na kritické aplikace, kde je riziko že se bude používat i za rok, dva, tak rozhodně ne.
Prasit se dá v jakémkoliv jazyce, to co ty popisuješ je problém jakéhokoliv jazyka. Jinak souhlas.

Ondrej

Re:Má Python budoucnost?
« Odpověď #11 kdy: 03. 05. 2016, 19:13:15 »
Prasit se sice dá v jakémkoliv jazyce, ale jazyky se silnou typovou kontrolou, const, private/internal a interfacy celkem hodně omezují místa kde je možné něco zkazit. Pokud napíšu framework třeba v C# nebo v Javě, tak ostatní vývojáři sice mohou prasit, ale dokud implementují předem dané interfacy tak mě to ani tolik trápit nemusí, a na zbytek problémů se přijde při integračních testech (nebo aspoň na většinu z nich).

Díky monkey-patchingu je sice možné velmi rychle něco dobastlit, ale pak se i z dobře navrženého projektu postupným přidáváním podobných hacků stává neudržovatelný moloch.

Další problém je s výkonem - už jen z návrhu Pythonu plyne že jakákoliv operace (klidně i plus, minus) může mít vedlejší efekty a tím pádem to co dělá jinde kompilátor (např. common subexpression elimination) se musí dělat v Pythonu ručně. Jsou lidé co se ptají (pomalé) databáze na totéž číslo v několikrát vnořeném cyklu, a pak se diví že na výsledek čekají desítky minut nebo i několik hodin.

Python je celkem hezký jazyk s poměrně dost nedostatky, a pokud by nebylo Django, NumPy, pandas a IPython/Jupyter, byl by už dávno mrtvý (můj názor).

Prasit se dá v jakémkoliv jazyce, to co ty popisuješ je problém jakéhokoliv jazyka. Jinak souhlas.

Kit

Re:Má Python budoucnost?
« Odpověď #12 kdy: 03. 05. 2016, 20:40:53 »
Prasit se sice dá v jakémkoliv jazyce, ale jazyky se silnou typovou kontrolou, const, private/internal a interfacy celkem hodně omezují místa kde je možné něco zkazit...

Python má silnou typovou kontrolu.

Pokud máš dobře napsané testy pro skripty v Pythonu nebo i v PHP, tak typovou kontrolu kompilátoru nepotřebuješ.

Ivan Nový

Re:Má Python budoucnost?
« Odpověď #13 kdy: 03. 05. 2016, 22:20:38 »
Budoucnost patří aluminiu.
jj, to mě taky napadlo :-)

Taky Ondrej

Re:Má Python budoucnost?
« Odpověď #14 kdy: 03. 05. 2016, 22:27:29 »
Prasit se sice dá v jakémkoliv jazyce, ale jazyky se silnou typovou kontrolou, const, private/internal a interfacy celkem hodně omezují místa kde je možné něco zkazit. Pokud napíšu framework třeba v C# nebo v Javě, tak ostatní vývojáři sice mohou prasit, ale dokud implementují předem dané interfacy tak mě to ani tolik trápit nemusí, a na zbytek problémů se přijde při integračních testech (nebo aspoň na většinu z nich).

Díky monkey-patchingu je sice možné velmi rychle něco dobastlit, ale pak se i z dobře navrženého projektu postupným přidáváním podobných hacků stává neudržovatelný moloch.

Další problém je s výkonem - už jen z návrhu Pythonu plyne že jakákoliv operace (klidně i plus, minus) může mít vedlejší efekty a tím pádem to co dělá jinde kompilátor (např. common subexpression elimination) se musí dělat v Pythonu ručně. Jsou lidé co se ptají (pomalé) databáze na totéž číslo v několikrát vnořeném cyklu, a pak se diví že na výsledek čekají desítky minut nebo i několik hodin.

Python je celkem hezký jazyk s poměrně dost nedostatky, a pokud by nebylo Django, NumPy, pandas a IPython/Jupyter, byl by už dávno mrtvý (můj názor).

Prasit se dá v jakémkoliv jazyce, to co ty popisuješ je problém jakéhokoliv jazyka. Jinak souhlas.
Jak zmiňuje Kit, testy. Které ale na druhou stranu nejsou povinné, čili o krok blíž k prasení a možnosti chyb, když testy nejsou. Nicméně i to není vlastně tolik pravda, ve firmách které to s Pythonem myslí vážně se bez testů neobejdeš.
Pokud je někde problém s výkonem, i python se dá optimalizovat, je toho plnej google a i fajn blogy na dropboxu...

Co se týče budoucnosti... Tu těžko odhadnout, ale vzhledem k tomu, že je v něm napsáno mraky ultilit, je před instalován prakticky na všech distribucích a má v základu plnohodnotné knihovny, s kterejma uděláš dost věcí bez nutnosti vymejšlet kolo, či něco stahovat... Zas tak černě bych to neviděl a nemyslím si že ho nad vodou drží jen Django, NumPy, pandas a IPython/Jupyter :-)