[python] Python na frontendu, Brython
Ondrej Tuma
konference na webjet.cz
Čtvrtek Duben 21 11:02:21 CEST 2016
Hoj,
nakonec sem se rozhodl taky přihodit svůj názor do tohoto pěkně
roztočeného filozofického kolotoče :)
Na vícero jazyků se dá koukat několika způsoby:
1) syntax - to je otázka jednoho dne. Ale opravdový programátor podle
mě ví, že takhle to prostě nefunguje. Ano téměř libovolný kus kódu
(pokud mi to syntax dovolí) lze napsat v různých jazycích úplně
stejně. Pravda je ale taková, že např. v každém jazyce to bude
různě rychlé, prostě proto, že každý jazyk k tomu přistupuje
malinko jinak.
2) možnosti jazyka - to už je trochu jiný level. Nejde se to naučit
během jednoho dne, ale trvá to opravdu měsíce trávené s jazykem,
než člověk zjistí a naučí se všechny kouzla, který ten jazyk umí.
Ten nejsušší příklad je jen OOP, které některé jazyky nemají, a
nebo mají implementované jen nějaké části. Ale jde i o iterátory,
paralelní/asynchroní běh, anonymní funkce, signály, atd.
3) optimalizace - to už sem vlastně zmiňoval. Každý jazyk umí různé
věci jinak a je stavěný na něco jiného. Záleží prostě na konkrétní
implementaci daného problému. A pokud člověk honí rychlost, tak už
je pekelně znát, jak moc tomu jazyku opravdu rozumí. Ono je velmi
lehké napsat program ve dvou jazycích. A např. v pythonu může být
rychlejší a v C++ může být pomalejší, to ale neznamená že by byl
python rychlejším jazykem.
Takže si myslím že programátor určitě může být opravdu dobrým
programátorem, i když zná právě jeden jazyk. Ovšem zkušenosti jsou
zkušenosti a tak znát jich víc neznamená nutně, že v nich umí hůře
programovat. Ano fokus na jeden jazyk = hlubší znalost jazyka. Já
osobně o sobě tvrdím, že umím programovat v mnoha jazycích, ale do
hloubky jich znám méně, každý jinak. A to že jich znám víc, si myslím
mě rozhodně obohatilo.
Ale pro firmu je z čistě ekonomického hlediska výhodné, pokud její
programátoři používají omezené množství jazyků. Ideálně takových, které
umí i týpek, co stojí dole na autobusové / tramvajové / šalinové /
vlakové zastávce. A hlavně firma o 5 vývojářích si může dovolit něco
jiného než firma o 200 vývojářích.
V případě Javascriptu existuje ještě problém, který my na backendu
téměř neznáme a to je rozdílná implementace. Vedle toho že
front-endisti musí řešit verzi, tak řeší také implementaci. My máme v
podstatě jen verzi a 2 implementace (IronPython). Resp. když
potřebujeme, rozjet na libovolném systému OS implementaci libovolného
jazyka (kompilátoru/interpreta) téměř nic nám neprání.
Hawk, domluvil sem :)
Ondra
V Wed, 20 Apr 2016 19:32:10 +0000
Ales Zoulek <ales.zoulek na gmail.com> napsáno:
> Snad jen mala poznamka k polyglotum. Myslim, ze je to ve skutecnosti
> neexistuji. (Ostatne i prekladatele prirozenych jazyku prekladaji z
> nekolika jazyku do materskeho, zatimco naopak tolik ne - a kdyz, tak
> znatelne hure).
>
> Tak i ve firme budu radsi obklopen perfektnim Pythonarem, dalsim
> uzasnym JavaScriptakem a jinym supr Shellistou. Ze zkusenosti lidi,
> kteri se povazovali za programatorske polygloty, neumeli opravdu
> poradne ani jeden jazyk (nebo v lepsim pripade prave jeden).
> Samozrejme je dobre znat vic a mit prehled, ale univerzalni
> programator je - myslim - nebezpecna iluze, kterou naopak razi firmy,
> ktere se snazi usetrit a nenajimat odborniky.
>
>
> A.
>
> On Wed, Apr 20, 2016 at 6:33 PM Honza Javorek <mail na honzajavorek.cz>
> wrote:
>
> > Ohledně polyglotnosti,
> >
> > - z hlediska programátora je polyglotnost jednoznačné plus
> > - z hlediska firmy a toho v čem píše svoje věci je polyglotnost
> > podle mě významný risk - a schválně nepíšu nevýhoda, ale risk
> >
> > Zprasený kód v jazyce, který všichni ve firmě znají, a
> > udržovatelnost kódu v jazyce, který nikdo ve firmě nezná, vidím
> > jako dvě dost různé věci, byť důsledky můžou mít podobné.
> >
> > Být polyglotní je super, ale realita trhu je taková, že lidi
> > většinou polyglotní moc nejsou a uvažují ve škatulkách jednotlivých
> > jazyků, jaké umí. Takže vyčistit zprasený kód je podle mě
> > ekonomicky a rizikově mnohem méně náročné, než mít kód v jazyce,
> > který pořádně neumí nikdo ve firmě nebo jen jeden člověk. Pokud je
> > to nemainstreamový jazyk, tak toho člověka špatně nahradím (nenajdu
> > nebo nezaplatím lidi na trhu), špatně dohledám informace, atd. (s
> > předpokladem, že čím méně mainstreamový ten jazyk je, tím méně
> > najdu dokumentací, odpovědí na StackOverflow, diskusních skupin,
> > srazů, apod.)
> >
> > Samozřejmě, pokud je nějaká nika, jako zpracování XML (XSLT), nebo
> > dotazování databáze (SQL), tak tam je jasné, že to použiju. Ale
> > tyhle věci pořád nějak většinou nějak fungují s ekosystémy těch
> > hlavních jazyků, můžeš je nějak namixovat. Web a JavaScript
> > potřebujou dnes všichni, ale s ničím se namixovat moc nedá a to je
> > ten problém. Nebo mi to tak aspoň přijde.
> >
> > Ad progress v JS a tucty frameworků - ano. Nebudu se toho nijak
> > zastávat, taky mi vyhovuje, že se v Pythonu můžeš opřít o Django, v
> > Ruby o Rails, a je to. Ale že se vůbec nic nového nevymýšlí a za
> > nic to nestojí, to bych asi neřekl. Třeba když srovnám jak funguje
> > npm a jak pip/setuptools/virtualenv, tak i přes aféry, se kterými
> > se npm potýká, je mi zrovna npm o dost milejší. Jasně, není to
> > rocket science, vše je založeno na knížkách a paperech ze 70. let a
> > návrhové vzory rotují co pět let jak móda v katalogu co 50 let, ale
> > přijde mi, že i přesto se to posouvá, minimálně třeba k nějaké
> > developer experience apod.
> >
> > Honza
> >
> > 2016-04-20 16:57 GMT+02:00 Hynek Fabian
> > <hynek.fabian na firma.seznam.cz>:
> >
> >> No dobře, když už teda filozofování tak si taky přisadím…
> >>
> >> > Takze to, ze je JS na webu hegemon ma vyhody i nevyhody. Z
> >> > globalniho hlediska se mi libi, ze JS dava lidem "laser
> >> > focus" a muzou se soustredit na reseni problemu a inovaci
> >> > (otazka je, zda to tak doopravdy je?).
> >> Podle toho co vidím na dnešním webu je "inovace" přebalování
> >> dvacet let starých nápadů nejlevnější phpracovní silou.
> >>
> >> > Na druhou stranu se mi nelibi presne to, ze
> >> > clovek nema na vyber. Jsem zastancem toho, ze na urcity
> >> > problem by se mela pouzit adekvatni technologie. Taky pro maly
> >> > tymy ktery nejedou na microservices (a i pro vetsi tymy co na
> >> > nich jedou) nemusi davat smysl byt polyglotni a psat to v
> >> > ruznejch jazycich,
> >> Být polyglotní je VŽDY lepší. Ja se dokonce odvažuju tvrdit ze
> >> dokud člověk umí jen jeden jazyk tak je jen bastlíř - ať už
> >> céčkař, javista nebo pythonýr… Až když člověk zná jazyků více tak
> >> je Programátor. Eric Raymond doporučuje poznat Lisp protože "That
> >> experience will make you a better programmer for the rest of your
> >> days, even if you never actually use LISP itself a lot."
> >> (http://www.catb.org/esr/faqs/hacker-howto.html#skills1)
> >>
> >> > protoze pak ti klesa schopnost udrzovat to a posouvat si
> >> > mezi sebou vedomosti. K cemu ti je kus v super jazyku ktery se
> >> > na to hodi, kdyz clovek co ho napsal odesel z firmy a nikdo jiny
> >> > to moc neumi.
> >> Pokud je to něco dost jednoduchého tak by právě proto neměl být
> >> problém to pochopit. A v opačném případě by to mělo mít zřejmé
> >> nebo aspoň zdokumentované výhody. Pokud je to opravdu dobré řešení
> >> mého problému tak bych k tomu přece měl dojít nezávisle i kdyby to
> >> onen ujdoucí kolega spáchal jinak.
> >> BTW nejnesrozumitelnější kód co v haklu máme není v žádném
> >> exotickém jazyce nebo prostředí, ale je to prostě zprasený python.
> >> Ergo "nikdo jiny to moc neumi" není problém jazyka, ale
> >> dokumentace, codereview, prostě štábní kultury.
> >>
> >> > Udrzovat svuj stack na jednom jazyku dava smysl. A kdyz 80 %
> >> > tvojeho byznysu dava smysl udelat v Pythonu, treba kvuli numpy a
> >> > pandas atd., tak nechces mit 20 % v jinem jazyce. Je to problem.
> >> Jo. A ne. Pokud mám 80% kodu řekněme v pajtnu, tak to nebudu
> >> přepisovat do Ruby protože je zrovna v módě a ty jazyky jsou si
> >> natolik podobný že si můžu být jistý že o nic nepřicházím.
> >> Ale pokud potřebuju dejme tomu překopat xml tak se znova (už asi
> >> popáté) budu učit zapomenuté xslt, páčž je to správný nástroj pro
> >> takovou práci a tečka.
> >> Zkušenost mě naučila že když něco rychle ubastlím, tak riskuju že
> >> nakonec spálím daleko víc času objevováním zákeřných mezních
> >> situací který dobře znal autor "správného" řešení.
> >> Držet se zarputile jednoho jazyka/prostředí dáva smysl jen když je
> >> tvým cílem mít tým lidí minimálně placených, maximalně
> >> zaměnitelných… a minimálně kompetentních.
> >>
> >> > psat umi. Ale tim, ze existuji aspon castecna reseni, ktera
> >> > nekdo aspon trochu pouziva, tak to neni uz uplne uzavreny jak to
> >> > bylo a pro nejakyho vedce co by si chtel ke svemu pandas skriptu
> >> > udelat mobilni appku v pythonu to reseni existuje, treba to
> >> > Kivy. Na webu tohle zatim porad neni, Brython atd. jsou uplne
> >> > experimentalni haluze, ktery nikdy nepreskocily ani na okraj
> >> > mainstreamu.
> >> Brython je narovnávák na vohejbák. Začátečníkovi přece nemůžu
> >> doporučit něco seskládaný na tak vysokým stacku technologií že
> >> vůbec nemá šanci pochopit jak ta věc funguje bez znalosti tuctu
> >> dalších technologií. Člověk který kódovat umí se může rovnou
> >> naučit Javascript bez dodatečných komplikací a obezliček. A tvůj
> >> hypotetický vědec udělá líp když sáhne po nějakým JS frameworku
> >> který mu ušetří skutečnou práci.
> >>
> >> > Fuj to jsem se zase rozepsal. Co si o tom myslite, krome
> >> > toho, ze jsem blbec co to mel od zacatku psat s diakritikou?
> >> Ja si myslím že Java přesvědčive dokázala že idea jednoho
> >> "univerzálního" jazyka je kravina nezávisle na tom kolik peněz se
> >> do ní naleje. Javascript je nezastupitelnej v tom na co je
> >> stavěnej a více či měně na prd v tom ostatním. Čímž se nijak
> >> neliší od jiných jazyků…
> >> _______________________________________________ Python mailing list
> >> python na py.cz
> >> http://www.py.cz/mailman/listinfo/python
> >>
> >> Visit: http://www.py.cz
> >>
> >
> > _______________________________________________
> > Python mailing list
> > python na py.cz
> > http://www.py.cz/mailman/listinfo/python
> >
> > Visit: http://www.py.cz
--
Ondřej Tůma <mcbig na zeropage.cz>
www: http://ipv6.mcbig.cz jabber: mcbig na jabber.cz twitter: mcbig_cz
------------- další část ---------------
A non-text attachment was scrubbed...
Name: [žádný popis není k dispozici]
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://www.py.cz/pipermail/python/attachments/20160421/b68217df/attachment.asc>
Další informace o konferenci Python