Má Python budoucnost?

Kit

Re:Má Python budoucnost?
« Odpověď #150 kdy: 11. 05. 2016, 20:11:55 »
Jak se teda programuje bez interface? Podle mě pak jsou z toho jen takové malé skriptíky bez architektury.

Rychlý vývoj je také nesmysl, protože vývoj je jen z malé části o psaní kódu.

Je to o zvyku a sebekázni. Bez toho to nejde ani ve staticky typovaných jazycích.

Vývoj je z velké části o čtení již napsaného kódu. Kratší kód se rychleji čte. Pomohou kratší komentáře, kratší názvy tříd, objektů i metod.


Kit

Re:Má Python budoucnost?
« Odpověď #151 kdy: 11. 05. 2016, 20:24:10 »
Par vychytavek PHP (vycuc z /r/lolphp):
...
Uprimne nechapu, jak nekdo muze obhajovat takto neprofesionalne vyvijeny jazyk. Co me zarazi, ze mel tolik casu napravit chyby, ale oni radeji pridavaji dalsi. Napr. takovy JavaScript jde opracnou cestou - postupne se jazyk zlepsuje.

Z mého pohledu to jsou zvěrstva, které v běžné aplikaci nemají co pohledávat. Když někdo použije takový hnus, tak se nemůže divit, že se to chová podivně. Podivně se v PHP chová například typ boolean. Už léta ho nepoužívám, protože mi připadá v dnešní době zbytečný. Kdo ho používá, tak se občas diví.

PHP má za sebou živelný vývoj - je to jeho významné mínus. Bývá však k dispozici prakticky na každém webovém serveru a při dodržování jakési kultury programování se na uvedené problémy ani nenarazí. Zbytek odchytí testy. V PHP se mi programuje mnohem pohodlněji, než například v Javě.

javaman

Re:Má Python budoucnost?
« Odpověď #152 kdy: 11. 05. 2016, 20:31:07 »
Jak se teda programuje bez interface? Podle mě pak jsou z toho jen takové malé skriptíky bez architektury.

Rychlý vývoj je také nesmysl, protože vývoj je jen z malé části o psaní kódu.

Je to o zvyku a sebekázni. Bez toho to nejde ani ve staticky typovaných jazycích.

Vývoj je z velké části o čtení již napsaného kódu. Kratší kód se rychleji čte. Pomohou kratší komentáře, kratší názvy tříd, objektů i metod.

O jakém zvyku? Co tam teda dám, když mám rozhraní a několik implementací? Nebo to nahradím dědičností, která se normálně skoro nepoužívá?

Kratší kód, který nikdo neví, co dělá? Aha, to musí být zážitek. Právě kvůli čtení kódu je to nepoužitelný jazyk. Jako pustit si kód, abych věděl, co vlastně dělá, to je dost ujetý na nějaký reálný vývoj.

Kit

Re:Má Python budoucnost?
« Odpověď #153 kdy: 11. 05. 2016, 22:52:31 »
Jak se teda programuje bez interface? Podle mě pak jsou z toho jen takové malé skriptíky bez architektury.

Rychlý vývoj je také nesmysl, protože vývoj je jen z malé části o psaní kódu.

Je to o zvyku a sebekázni. Bez toho to nejde ani ve staticky typovaných jazycích.

Vývoj je z velké části o čtení již napsaného kódu. Kratší kód se rychleji čte. Pomohou kratší komentáře, kratší názvy tříd, objektů i metod.

O jakém zvyku? Co tam teda dám, když mám rozhraní a několik implementací? Nebo to nahradím dědičností, která se normálně skoro nepoužívá?

Kratší kód, který nikdo neví, co dělá? Aha, to musí být zážitek. Právě kvůli čtení kódu je to nepoužitelný jazyk. Jako pustit si kód, abych věděl, co vlastně dělá, to je dost ujetý na nějaký reálný vývoj.

Dědičnost se normálně používá, podmínkou je zachování LSP.

V Pythonu prostě interface nepoužiješ. Použití ducktypingu je jednodušší, než použití interface.

Čtení kódu v Pythonu je pohodové, protože Python donutí programátora dodržovat grafickou úpravu. Pokud jsi zvyklý třeba na Javu a uvidíš program v Pythonu, je to pro tebe cizí jazyk. Platí to však i obráceně. Pythonista se na Javu dívá jako na jazyk plný šílených obstrukcí, složených závorek a věčným soubojem s kompilátorem.

BoneFlute

  • *****
  • 1 983
    • Zobrazit profil
Re:Má Python budoucnost?
« Odpověď #154 kdy: 12. 05. 2016, 00:04:30 »
Jak se teda programuje bez interface?
Blbě.

V Pythonu prostě interface nepoužiješ. Použití ducktypingu je jednodušší, než použití interface.
Tak jasně. Nic je vždycky jednodužší než něco.

Čtení kódu v Pythonu je pohodové, protože Python donutí programátora dodržovat grafickou úpravu. Pokud jsi zvyklý třeba na Javu a uvidíš program v Pythonu, je to pro tebe cizí jazyk. Platí to však i obráceně. Pythonista se na Javu dívá jako na jazyk plný šílených obstrukcí, složených závorek a věčným soubojem s kompilátorem.
No a pak se na to kouká haskellista a vrtí hlavou, že vás to baví. Jeden píše romány, protože Java je ukecaná, druhej píše romány, protože Python prakticky nic neumí.


zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Má Python budoucnost?
« Odpověď #155 kdy: 12. 05. 2016, 00:13:44 »
Jak se teda programuje bez interface?
Blbě.

V Pythonu prostě interface nepoužiješ. Použití ducktypingu je jednodušší, než použití interface.
Tak jasně. Nic je vždycky jednodužší než něco.

Čtení kódu v Pythonu je pohodové, protože Python donutí programátora dodržovat grafickou úpravu. Pokud jsi zvyklý třeba na Javu a uvidíš program v Pythonu, je to pro tebe cizí jazyk. Platí to však i obráceně. Pythonista se na Javu dívá jako na jazyk plný šílených obstrukcí, složených závorek a věčným soubojem s kompilátorem.
No a pak se na to kouká haskellista a vrtí hlavou, že vás to baví. Jeden píše romány, protože Java je ukecaná, druhej píše romány, protože Python prakticky nic neumí.

Stokrát nic...

eee

Re:Má Python budoucnost?
« Odpověď #156 kdy: 12. 05. 2016, 06:04:49 »
Jak se teda programuje bez interface? Podle mě pak jsou z toho jen takové malé skriptíky bez architektury.

Rychlý vývoj je také nesmysl, protože vývoj je jen z malé části o psaní kódu.

Programuje se v nem velmi dobre. Ty moje skriptiky maji bezne desitky tisic radku per projekt, nejstarsi udrzuju uz pres 15 let. Je vazne zajimave, bez jakych berlicek si rada lidi neumi predstavit zivot. Neni to ani tak o schopnostech jazyka, ale o schopnostech programatora. Python je dostatecne robustni i pro psani vetsich veci, ale nekteri lide s omezenym rozhledem se domnivaji, ze bez statickych typu nebo interface se neda programovat.

Python se nehodi na vsechno, ale to asi zadny jazyk a ve spouste pripadu je velmi dobre pouzitelny a prakticky. Jeho hlavni omezeni je nizsi vykon, presto se pomoci nej daji generovat komplexni webove stranky do 50 ms, kde polovinu casu z toho zaberou pristupy do databaze, jako nejuzsi hrdlo. Ostatne, velka cast webu jede na obdobne pomalem php. U gui aplikaci ani nepoznate, ze nejsou nativne kompilovane a ze je pohani python - na rozdil treba od javy. Rada linuxovych systemovych gui utilit je napsana prave v pythonu.

eee

Re:Má Python budoucnost?
« Odpověď #157 kdy: 12. 05. 2016, 06:06:21 »
Jak se teda programuje bez interface? Podle mě pak jsou z toho jen takové malé skriptíky bez architektury.

Rychlý vývoj je také nesmysl, protože vývoj je jen z malé části o psaní kódu.

Programuje se v nem velmi dobre. Ty moje skriptiky maji desitky tisic radku per projekt, nejstarsi udrzuju uz pres 15 let. Je vazne zajimave, bez jakych berlicek si rada lidi neumi predstavit zivot. Neni to ani tak o schopnostech jazyka, ale o schopnostech programatora. Python je dostatecne robustni i pro psani vetsich veci, ale nekteri lide s omezenym rozhledem se domnivaji, ze bez statickych typu nebo interface se neda programovat.

Python se nehodi na vsechno, ale to asi zadny jazyk a ve spouste pripadu je velmi dobre pouzitelny a prakticky. Jeho zasadni omezeni je nizsi vykon, presto se pomoci nej daji generovat komplexni webove stranky do 50 ms, kde polovinu casu z toho zaberou pristupy do databaze, jako nejuzsi hrdlo.

eee

Re:Má Python budoucnost?
« Odpověď #158 kdy: 12. 05. 2016, 06:19:16 »
O jakém zvyku? Co tam teda dám, když mám rozhraní a několik implementací? Nebo to nahradím dědičností, která se normálně skoro nepoužívá?

Kratší kód, který nikdo neví, co dělá? Aha, to musí být zážitek. Právě kvůli čtení kódu je to nepoužitelný jazyk. Jako pustit si kód, abych věděl, co vlastně dělá, to je dost ujetý na nějaký reálný vývoj.

Jak jsi prisel na to, ze dedicnost se nepouziva? :-)

Jak jsi prisel na to, ze u kratsiho kodu nikdo, vcetne jeho programatora, nevi co dela? Trpis predsudky a neargumentujes racionalne. Kdyby byl Python nepouzitelny jazyk, jak tvrdis, tak ho nikdo nebude pouzivat, ale on je naopak siroce pouzivany. Ja ho naopak preferuji a uprednostnuji kde muzu a nemusim naopak Javu, ktera me osobne prijde celkove tezkopadna a neohrabana. Ale, to jsou moje osobni preference a chapu, ze jinym programatorum vyhovuje.

A naopak, moznost program casto a co nejdriv spoustet je jedna z vyhod interpretovanych jazyku.

noef

  • *****
  • 897
    • Zobrazit profil
    • E-mail
Re:Má Python budoucnost?
« Odpověď #159 kdy: 12. 05. 2016, 08:56:54 »
Par vychytavek PHP (vycuc z /r/lolphp):
...
Uprimne nechapu, jak nekdo muze obhajovat takto neprofesionalne vyvijeny jazyk. Co me zarazi, ze mel tolik casu napravit chyby, ale oni radeji pridavaji dalsi. Napr. takovy JavaScript jde opracnou cestou - postupne se jazyk zlepsuje.

Z mého pohledu to jsou zvěrstva, které v běžné aplikaci nemají co pohledávat. Když někdo použije takový hnus, tak se nemůže divit, že se to chová podivně. Podivně se v PHP chová například typ boolean. Už léta ho nepoužívám, protože mi připadá v dnešní době zbytečný. Kdo ho používá, tak se občas diví.

PHP má za sebou živelný vývoj - je to jeho významné mínus. Bývá však k dispozici prakticky na každém webovém serveru a při dodržování jakési kultury programování se na uvedené problémy ani nenarazí. Zbytek odchytí testy. V PHP se mi programuje mnohem pohodlněji, než například v Javě.

To co popisujes ale znaci spatnou kvalitu jazyka :).
Namatkou par dalsich perel:
- ve standardni knihovne obsahuje funkce, ktere maji zamerne neopravene bezpecnosti chyby (zpetna kompatibilita FTW)
- jeden typ je podle autora PHP optimalizovany na pouziti jako pole, vektor, hashmapa, slovnik, kolekce, zasobnik i fronta :D
- automaticke pretypovani je proste genialni
- std knihovna je hrozna, bohuzel ne jen jmena jsou problem - napr. "sleep() returns 0 on success, FALSE on error, or when interrupted by a signal returns number of remaining seconds except on Windows where it returns 192;D

Kdyby byl Python nepouzitelny jazyk, jak tvrdis, tak ho nikdo nebude pouzivat, ale on je naopak siroce pouzivany.

Staci se podivat na PHP. Jazyk, ktery mel byt utracen davno (hrozna "specifikace", jazyk i interpret), je to jako splacane od zacinajiciho studentika VS, presto tu dal uspesne preziva. Kvalita nema bohuzel s popularitou nic spolecneho.

Python na me povetsinou pusobi naopak kvalitne (no, veci okolo objektu me moc nesedi, napr. ty __háky__, ale asi spis vec zvyku), akorat je na muj vkus prilis ukecany.

Ja ho naopak preferuji a uprednostnuji kde muzu a nemusim naopak Javu, ktera me osobne prijde celkove tezkopadna a neohrabana.

Python me prijde stejne neohrabany jako Java. Moc to nesleduju, ale Java 8 myslim prinasela dost FP veci, coz vede k mnohem jednodussimu kodu. Osobne me prijde Scala jako dobry kompromis mezi uplatnitelnosti (JVM) a "krasou" jazyka (velmi jednoduse zapsane slozite veci, podpora DSL, FP atd).

V Pythonu me vadi velke mnozstvi boilerplatu (napr. @property, @staticmethod, lambda, nenasel jsem zpusob, jak lehce retezit volani funkci, takze pokusy o FP styl pusobi hrozne) a kod celkove pusobi roztahane.

Samozrejme na Haskell, co se tyce "krasy" a strucnosti, as nic moc nema*. A to jsem v nem "noob", pamatuji si ho pouze ze skoly. Ale uz i jen ty zaklady byly nezapomenutelne (pro ostatni studenty spise v tom spatnem slova smyslu :D).
*: Resp. nic lepsiho jsem jeste nevidel. Pokud neco znate, tak sem s tim.

A naopak, moznost program casto a co nejdriv spoustet je jedna z vyhod interpretovanych jazyku.

Vzhledem k tomu, ze existuji inkrementalni prekladace (tusim ze jej ma Java i Scala a urcite mnoho dalsich), tak tohle je standard, ne vyhoda. Stejne tak i kompilovana Scala ma REPL, take to neni vyhrada Pythonu nebo interpretovanych jazyku.

Ivan Nový

Re:Má Python budoucnost?
« Odpověď #160 kdy: 12. 05. 2016, 09:16:04 »
Par vychytavek PHP (vycuc z /r/lolphp):
...
Uprimne nechapu, jak nekdo muze obhajovat takto neprofesionalne vyvijeny jazyk. Co me zarazi, ze mel tolik casu napravit chyby, ale oni radeji pridavaji dalsi. Napr. takovy JavaScript jde opracnou cestou - postupne se jazyk zlepsuje.

Z mého pohledu to jsou zvěrstva, které v běžné aplikaci nemají co pohledávat. Když někdo použije takový hnus, tak se nemůže divit, že se to chová podivně. Podivně se v PHP chová například typ boolean. Už léta ho nepoužívám, protože mi připadá v dnešní době zbytečný. Kdo ho používá, tak se občas diví.

PHP má za sebou živelný vývoj - je to jeho významné mínus. Bývá však k dispozici prakticky na každém webovém serveru a při dodržování jakési kultury programování se na uvedené problémy ani nenarazí. Zbytek odchytí testy. V PHP se mi programuje mnohem pohodlněji, než například v Javě.

To co popisujes ale znaci spatnou kvalitu jazyka :).
Namatkou par dalsich perel:
- ve standardni knihovne obsahuje funkce, ktere maji zamerne neopravene bezpecnosti chyby (zpetna kompatibilita FTW)
- jeden typ je podle autora PHP optimalizovany na pouziti jako pole, vektor, hashmapa, slovnik, kolekce, zasobnik i fronta :D
- automaticke pretypovani je proste genialni
- std knihovna je hrozna, bohuzel ne jen jmena jsou problem - napr. "sleep() returns 0 on success, FALSE on error, or when interrupted by a signal returns number of remaining seconds except on Windows where it returns 192;D

Kdyby byl Python nepouzitelny jazyk, jak tvrdis, tak ho nikdo nebude pouzivat, ale on je naopak siroce pouzivany.

Staci se podivat na PHP. Jazyk, ktery mel byt utracen davno (hrozna "specifikace", jazyk i interpret), je to jako splacane od zacinajiciho studentika VS, presto tu dal uspesne preziva. Kvalita nema bohuzel s popularitou nic spolecneho.

Python na me povetsinou pusobi naopak kvalitne (no, veci okolo objektu me moc nesedi, napr. ty __háky__, ale asi spis vec zvyku), akorat je na muj vkus prilis ukecany.

Ja ho naopak preferuji a uprednostnuji kde muzu a nemusim naopak Javu, ktera me osobne prijde celkove tezkopadna a neohrabana.

Python me prijde stejne neohrabany jako Java. Moc to nesleduju, ale Java 8 myslim prinasela dost FP veci, coz vede k mnohem jednodussimu kodu. Osobne me prijde Scala jako dobry kompromis mezi uplatnitelnosti (JVM) a "krasou" jazyka (velmi jednoduse zapsane slozite veci, podpora DSL, FP atd).

V Pythonu me vadi velke mnozstvi boilerplatu (napr. @property, @staticmethod, lambda, nenasel jsem zpusob, jak lehce retezit volani funkci, takze pokusy o FP styl pusobi hrozne) a kod celkove pusobi roztahane.

Samozrejme na Haskell, co se tyce "krasy" a strucnosti, as nic moc nema*. A to jsem v nem "noob", pamatuji si ho pouze ze skoly. Ale uz i jen ty zaklady byly nezapomenutelne (pro ostatni studenty spise v tom spatnem slova smyslu :D).
*: Resp. nic lepsiho jsem jeste nevidel. Pokud neco znate, tak sem s tim.

A naopak, moznost program casto a co nejdriv spoustet je jedna z vyhod interpretovanych jazyku.

Vzhledem k tomu, ze existuji inkrementalni prekladace (tusim ze jej ma Java i Scala a urcite mnoho dalsich), tak tohle je standard, ne vyhoda. Stejne tak i kompilovana Scala ma REPL, take to neni vyhrada Pythonu nebo interpretovanych jazyku.

Tak todle moc čitelné není a je to v haskellu (přebráno z GitHubu):

onCreate :: JNIEnv -> JObject -> JObject -> IO ()
onCreate env activity _bundle = runJNISafe () env $ do
  msg <- liftIO $ do
    getNumProcessors >>= setNumCapabilities
    caps <- getNumCapabilities
    return $ "Hello World!\nRunning on " `append` pack (show caps) `append` " CPUs!"

Kit

Re:Má Python budoucnost?
« Odpověď #161 kdy: 12. 05. 2016, 09:45:16 »
Tak todle moc čitelné není a je to v haskellu (přebráno z GitHubu):

onCreate :: JNIEnv -> JObject -> JObject -> IO ()
onCreate env activity _bundle = runJNISafe () env $ do
  msg <- liftIO $ do
    getNumProcessors >>= setNumCapabilities
    caps <- getNumCapabilities
    return $ "Hello World!\nRunning on " `append` pack (show caps) `append` " CPUs!"

Mýlíš se. V očích haskellistů je to luxusní a přehledný kód, na který Python prostě nemá :)

noef

  • *****
  • 897
    • Zobrazit profil
    • E-mail
Re:Má Python budoucnost?
« Odpověď #162 kdy: 12. 05. 2016, 10:25:00 »
Tak todle moc čitelné není a je to v haskellu (přebráno z GitHubu):

onCreate :: JNIEnv -> JObject -> JObject -> IO ()
onCreate env activity _bundle = runJNISafe () env $ do
  msg <- liftIO $ do
    getNumProcessors >>= setNumCapabilities
    caps <- getNumCapabilities
    return $ "Hello World!\nRunning on " `append` pack (show caps) `append` " CPUs!"

Programovaci jazyk nema nutne byt citelny pro ty, kteri jej neznaji (a uz vubec ne, pokud neznaji ani dane paradigma). Nedokazu pousoudit, zda je to nejhezci mozny zapis v Haskellu, ale citelne a krasne me to prijde (no, mozna az na ten append).

Zkuste si v cistem Pythonu hezky funkcionalne retezit par transformaci (napr. nekolik map, filter a pouzijte v nich inline funkce) a pak srovnejte se Scalou nebo Haskellem. To teprv uvidite tu krasu ;).

Youda

Re:Má Python budoucnost?
« Odpověď #163 kdy: 12. 05. 2016, 10:31:08 »
Z mého pohledu to jsou zvěrstva, které v běžné aplikaci nemají co pohledávat. Když někdo použije takový hnus, tak se nemůže divit, že se to chová podivně. Podivně se v PHP chová například typ boolean. Už léta ho nepoužívám, protože mi připadá v dnešní době zbytečný. Kdo ho používá, tak se občas diví.


OMG, co je teda spravny typ pro bool hodnotu? Integer nula/nenula?


A z jineho soudku:
http://stackoverflow.com/questions/70528/why-are-pythons-private-methods-not-actually-private

Je tam genialni implementace privatni metody pres inspect outer caller:

Kód: [Vybrat]
import re
import inspect

class MyClass :

    def __init__(self) :
        pass

    def private_function ( self ) :
        try :
            function_call = inspect.stack()[1][4][0].strip()

            # See if the function_call has "self." in the begining
            matched = re.match( '^self\.', function_call )
            if not matched :
                print 'This is Private Function, Go Away'
                return
        except :
            print 'This is Private Function, Go Away'
            return

        # This is the real Function, only accessible inside class #
        print 'Hey, Welcome in to function'

    def public_function ( self ) :
        # i can call private function from inside the class
        self.private_function()


Celkem 180 upvotes a tisice dekovnych dopisu.
Tomuhle se uz neda ani smat, to je jedno velke WTF.

Kit

Re:Má Python budoucnost?
« Odpověď #164 kdy: 12. 05. 2016, 10:41:46 »
Z mého pohledu to jsou zvěrstva, které v běžné aplikaci nemají co pohledávat. Když někdo použije takový hnus, tak se nemůže divit, že se to chová podivně. Podivně se v PHP chová například typ boolean. Už léta ho nepoužívám, protože mi připadá v dnešní době zbytečný. Kdo ho používá, tak se občas diví.

OMG, co je teda spravny typ pro bool hodnotu? Integer nula/nenula?

Nic. Prostě v PHP proměnné typu boolean nepoužívám. Bez náhrady. Těm aplikacím to prostě nechybí. Pokud je výsledkem nějaké funkce typ boolean, tak ho použiji k větvení, řízení cyklu nebo do ternárního operátoru, ale nikde ho neukládám, protože vím, že už jeho hodnotu potřebovat nebudu.