Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - qelurg

Stran: 1 ... 15 16 [17] 18 19 ... 25
241
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 15. 03. 2020, 14:00:48 »
Jeste pro srovnani, Python a zapis do SNS:

Kód: [Vybrat]
import boto3

# Write to SNS
sns = boto3.resource('sns')
sns.publish(TopicArn='myTopic123', Message='Hello world')

Programator nevi co mu srajdovni knihovna vraci za datovy typ a cumet musi do bidne dokumntace.

To same v Jave pro SNS:

Kód: [Vybrat]
AmazonSNS snsClient = AmazonSNSClient().standard().build();
PublishRequest publishRequest = new PublishRequest().withMessage("Hello world").withTopic("myTopic1234);
PublishResult publishResult = snsClient.publish(publishRequest);     

A jestli mi nekdo rekne, jak je Java ukecana, tak to potom fakt nevim co mam dotycnemu cloveku rict :-)

Jo, presne tohle je ten javahnus pro masochisty, duvod proc ji nesnasim. A jinak, Python je pro programatory, proto ti nesedi, Java je pro uzivatele IDE, kteri jsou bez naseptavace ztraceni.

242
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 12. 03. 2020, 22:31:34 »
Formální definici to možná nemá, ale je to běžně používaný termín, který je obecně používán a přijímán a implicitní přetypování je základním rozlišením mezi silným a slabým typováním.

Citation needed. Mezitím si můžeš přečíst třeba https://stackoverflow.com/questions/2690544/what-is-the-difference-between-a-strongly-typed-language-and-a-statically-typed, speciálně odstavec "Strong vs weak" v první odpovědi, která má > 500 upvotes.

Dokonce koukám, že v tom vlákně si někdo (https://stackoverflow.com/a/2690596/3220468) myslí to samé co ty. Jeho názor má 15 upvotes. Tolik asi o tom jak je ten termín "obecně používán a přijímán" v tom smyslu, ve kterém to tvrdíš ty.

a) je to stará diskuse b) že s něčím souhlasí většina neznamená, že je to pravda c) ty odpovědi nebyly dány ve stejný čas, takže to porovnání hlasování nedává smysl d) píše se tam např. nesmysl jako "It is very rare to hear someone talk about a "strong" or "weak" dynamic type system." Už jen to by ti mělo napovědět, že je to dávno překonané.

a) Ukaž novější. Zatím jsi neukázal nic, co by podporovalo to co tvrdíš, narozdíl ode mě.
b) Když tvrdíš, že je něco obecně (tedy většinou) přijímané, a přitom většina tvrdí opak, tak nemáš pravdu ty.
c) srsly? porovnání > 500 upvotes vs 16 upvotes (je milé, že jsi tam jeden přidal) nedává smysl, protože jedna odpověď je stará 3612 dní a jedna 3611 dní? To už je opravdu smutný argument.
d) To, že o tom často slyšíš mluvit sám sebe ještě neznamená, že to není extremely rare.

Zkus předložit nějaká podložená fakta místo dojmologie, která zakopává o realitu na každém kroku.
a)
https://cs.m.wikipedia.org/wiki/Python
https://en.m.wikipedia.org/wiki/Python_(programming_language)
https://cs.m.wikipedia.org/wiki/Haskell_(programovac%C3%AD_jazyk)
https://cs.m.wikipedia.org/wiki/Java_(programovac%C3%AD_jazyk)
https://cs.m.wikipedia.org/wiki/PHP
https://cs.m.wikipedia.org/wiki/C_(programovac%C3%AD_jazyk)
https://cs.m.wikipedia.org/wiki/Rust_(programovac%C3%AD_jazyk)
https://wiki.python.org/moin/Why%20is%20Python%20a%20dynamic%20language%20and%20also%20a%20strongly%20typed%20language
https://oznetnerd.com/2017/05/16/python-strong-dynamically-typed-language/
https://www.artima.com/weblogs/viewpost.jsp?thread=7590
https://m.youtube.com/watch?v=-NuS_BM1etY
https://wiki.c2.com/?WeakAndStrongTyping
https://docs.microsoft.com/en-us/windows/win32/rpc/strong-typing
http://python.wraith.cz/uvod-datove_typy-typovani.php
https://www.i-programmer.info/programming/theory/1469-type-systems-demystified-part2-weak-vs-strong.html
https://dl.acm.org/doi/10.1145/97946.97964
https://en.m.wiktionary.org/wiki/strong_typing
https://perl.plover.com/yak/typing/

b) jaká většina, odkazuješ se na starou nesmyslnou diskusi

c) návštěvnost není po celou dobu stejná, první příspěvek byl dán o dva měsíce dřív, po dvou měsících už je takový dotaz minulost

d) je to normálně používané označení typového systému, viz odkazy výše na popisy jednotlivých jazyků na wiki, u každého je definováno, zda má silné nebo slabé typy a to i u dynamických jazyků, používá se to úplně běžně.

243
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 12. 03. 2020, 21:28:32 »
Operace jsou uživatelsky definovatelné nikoliv definované, implicitní chování u built in typů je vyhodit výjimku, pokud operátor nepodporuje operaci s různými datovými typy. Nikdy nedojde implicitně k přetypování hodnoty.

operator je obycejna funkce, ktera se zavola vzdy, typova kontrola muze a nemusi probihat uvnitr te funkce. Operace built in typu jsou definovane uplne stejnym zpusobem jako u uzivatelskych c api typu.
Operator neni funkce, operator muze volat prislusnou funkci, ale nevola ji vzdy.

Kód: [Vybrat]
>>> a = compile("(10).__add__(20)", "x", "exec")
>>> b = compile("(10)+(20)", "x", "exec")
>>> a.co_code
'd\x00\x00i\x00\x00d\x01\x00\x83\x01\x00\x01d\x02\x00S'
>>> b.co_code
'd\x00\x00d\x01\x00\x17\x01d\x02\x00S'
>>> import dis
>>> dis.disassemble(a)
  1           0 LOAD_CONST               0 (10)
              3 LOAD_ATTR                0 (__add__)
              6 LOAD_CONST               1 (20)
              9 CALL_FUNCTION            1
             12 POP_TOP             
             13 LOAD_CONST               2 (None)
             16 RETURN_VALUE       
>>> dis.disassemble(b)
  1           0 LOAD_CONST               0 (10)
              3 LOAD_CONST               1 (20)
              6 BINARY_ADD         
              7 POP_TOP             
              8 LOAD_CONST               2 (None)
             11 RETURN_VALUE

Operace definovane v c api bych neoznacoval za uzivatelske.

244
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 12. 03. 2020, 21:00:35 »
Formální definici to možná nemá, ale je to běžně používaný termín, který je obecně používán a přijímán a implicitní přetypování je základním rozlišením mezi silným a slabým typováním.

Citation needed. Mezitím si můžeš přečíst třeba https://stackoverflow.com/questions/2690544/what-is-the-difference-between-a-strongly-typed-language-and-a-statically-typed, speciálně odstavec "Strong vs weak" v první odpovědi, která má > 500 upvotes.

Dokonce koukám, že v tom vlákně si někdo (https://stackoverflow.com/a/2690596/3220468) myslí to samé co ty. Jeho názor má 15 upvotes. Tolik asi o tom jak je ten termín "obecně používán a přijímán" v tom smyslu, ve kterém to tvrdíš ty.

a) je to stará diskuse b) že s něčím souhlasí většina neznamená, že je to pravda c) ty odpovědi nebyly dány ve stejný čas, takže to porovnání hlasování nedává smysl d) píše se tam např. nesmysl jako "It is very rare to hear someone talk about a "strong" or "weak" dynamic type system." Už jen to by ti mělo napovědět, že je to dávno překonané.

245
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 12. 03. 2020, 18:12:47 »
Rozdíl je právě v tom, zda při operaci s rozdílnými typy dojde k vyvolání výjímky (silné typy) nebo o automatické konverzi (slabé typy). Python má silné typy, protože v Pythonu hodnoty svůj typ automaticky nemění (s jednou výjimkou u Python 2, konverze int/long). Python je silně typovaný i u uživatelských typů.

Žádná formální definice silného a slabého typování neexistuje, viz https://en.wikipedia.org/wiki/Strong_and_weak_typing. Všude je to samé "colloquially", "generally", "may" a různé všelijak se překrývající definice různých autorů (koneckonců jednu jsi si tady navrhl i ty sám).

Mě přijde zajímavé

 - jestli má jazyk statický typový systém (Java, Haskell, Python s MyPy) a jak je silný (třeba program v Rustu, pokud nepoužívá undefined, zaručuje absenci data races a neplatných přístupů do paměti)
 - jestli má dynamický typový systém, tj. zda si s sebou nesou objekty informaci o svém typu za běhu, a do jaké míry (třeba v C se nedá hodnot za běhu ničeho doptat, v Pythonu mi každý objekt řekne, jakého je typu, v Javě mi může objekt říci, že je Array, ale už ne čeho protože type erasure atp.).
 - někomu dalšímu mohou připadat důležité další vlastnosti ze seznamu na uvedené wikistránce

Pojmy silný a slabý typový systém používám skutečně zřídka a neformálně, když nehrozí nějaké zmatení, rozhodně bych se tím tady neoháněl jako něčím všeobecně uznávaným.

Ta "automatická změna typu" o které tu mluvíš není slabé typování, ale koerce (hledej coercion na https://en.wikipedia.org/wiki/Type_conversion).

Formální definici to možná nemá, ale je to běžně používaný termín, který je obecně používán a přijímán a implicitní přetypování je základním rozlišením mezi silným a slabým typováním.

246
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 12. 03. 2020, 17:41:03 »
co to je silné a slabé typování

Python je dynamicky typovaný jazyk, což neznamená, že není typovaný silně, narozdíl např. od JavaScriptu nebo PHP, které jsou slabě typované (sečtete hrušky a jablka a dá vám to nějaký výsledek).

Pojmy silně a slabě typovaný jsem nikdy moc nepochopil. Vždycky, když jsem začal do toho trochu víc do hloubky, zjistil jsem, že Python je silně typovaný jen u buildin funkcí a buildin typů. Zatímco v případě PHP a JS je to slabé typování ve skutečnosti jen automatická konverze (debilní jasně, ale přesto jen konverze) a ve skutečnosti je úplně stejně silně/slabě jako Python. V praxi mezi tím pak není vůbec žádný rozdíl. U všech tří jazyků mám u všech hodnot podobné informace o typech, a chovají se vesměs podobně (se zmíněnými výjimkami).

IMHO je pojem slabě typovaný hrubě zavádějící, a spíše bych hovořil o tom, že JS má nešťastně zvolené automatické přetypovávání.

Rozdíl je právě v tom, zda při operaci s rozdílnými typy dojde k vyvolání výjímky (silné typy) nebo o automatické konverzi (slabé typy). Python má silné typy, protože v Pythonu hodnoty svůj typ automaticky nemění (s jednou výjimkou u Python 2, konverze int/long). Python je silně typovaný i u uživatelských typů.

operace jsou uzivatelsky definovane u vsech typu, vyjimku musi explicitne vyhodit treba __add__

Operace jsou uživatelsky definovatelné nikoliv definované, implicitní chování u built in typů je vyhodit výjimku, pokud operátor nepodporuje operaci s různými datovými typy. Nikdy nedojde implicitně k přetypování hodnoty.

247
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 12. 03. 2020, 13:05:39 »
co to je silné a slabé typování

Python je dynamicky typovaný jazyk, což neznamená, že není typovaný silně, narozdíl např. od JavaScriptu nebo PHP, které jsou slabě typované (sečtete hrušky a jablka a dá vám to nějaký výsledek).

Pojmy silně a slabě typovaný jsem nikdy moc nepochopil. Vždycky, když jsem začal do toho trochu víc do hloubky, zjistil jsem, že Python je silně typovaný jen u buildin funkcí a buildin typů. Zatímco v případě PHP a JS je to slabé typování ve skutečnosti jen automatická konverze (debilní jasně, ale přesto jen konverze) a ve skutečnosti je úplně stejně silně/slabě jako Python. V praxi mezi tím pak není vůbec žádný rozdíl. U všech tří jazyků mám u všech hodnot podobné informace o typech, a chovají se vesměs podobně (se zmíněnými výjimkami).

IMHO je pojem slabě typovaný hrubě zavádějící, a spíše bych hovořil o tom, že JS má nešťastně zvolené automatické přetypovávání.

Rozdíl je právě v tom, zda při operaci s rozdílnými typy dojde k vyvolání výjímky (silné typy) nebo o automatické konverzi (slabé typy). Python má silné typy, protože v Pythonu hodnoty svůj typ automaticky nemění (s jednou výjimkou u Python 2, konverze int/long). Python je silně typovaný i u uživatelských typů.

248
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 11. 03. 2020, 16:17:57 »
Podívej Stando, to jsou bláboly. Smál jsi se pěknému přehlednému a srozumitelnému  Python programu ve věci, která ani není nativní vlastností toho jazyka. Můžeš předvést jak si s tím poradí Java, u které to je nativní vlastnost, tudíž by to měla zvládnout lépe nebo aspoň stejně. Ano, Java je hnusný těžkopádný jazyk, takže to nezvládne, to víme oba, teď jde jenom o to, jestli to přiznáš nebo ne. Čím víc to budeš rozpatlávat abys to zakamufloval, tím víc to bude smrdět. Takže hoď sem Java implementaci kraťoučkého Python programu, co jsi sem sám napastoval a nebo jsi porazil sám sebe svými vlastními hloupými ukázkami. :-)

Jak to?? Podle mě ten java kód už poslal. Ale férovější by bylo popsat, co ten Python kód přesně dělá a pak řešit, zda a jak se to dá realizovat v jiném jazyku.

Neposlal, snažil se jen vysvětlovat, jak by to napsal, kdyby to napsal. Ten Python kód sem dal on, tak snad ví, co dělá. Dal to sem navíc s tvrzením, že java to umí přehledněji, tak se může předvést :-).

A co je podle Vás tedy tohle? https://forum.root.cz/index.php?topic=22582.msg326312#msg326312

Neco jineho nez tohle: https://forum.root.cz/index.php?topic=22582.msg326263#msg326263

249
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 10. 03. 2020, 22:31:18 »
Podívej Stando, to jsou bláboly. Smál jsi se pěknému přehlednému a srozumitelnému  Python programu ve věci, která ani není nativní vlastností toho jazyka. Můžeš předvést jak si s tím poradí Java, u které to je nativní vlastnost, tudíž by to měla zvládnout lépe nebo aspoň stejně. Ano, Java je hnusný těžkopádný jazyk, takže to nezvládne, to víme oba, teď jde jenom o to, jestli to přiznáš nebo ne. Čím víc to budeš rozpatlávat abys to zakamufloval, tím víc to bude smrdět. Takže hoď sem Java implementaci kraťoučkého Python programu, co jsi sem sám napastoval a nebo jsi porazil sám sebe svými vlastními hloupými ukázkami. :-)

Jak to?? Podle mě ten java kód už poslal. Ale férovější by bylo popsat, co ten Python kód přesně dělá a pak řešit, zda a jak se to dá realizovat v jiném jazyku.

Neposlal, snažil se jen vysvětlovat, jak by to napsal, kdyby to napsal. Ten Python kód sem dal on, tak snad ví, co dělá. Dal to sem navíc s tvrzením, že java to umí přehledněji, tak se může předvést :-).

250
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 10. 03. 2020, 18:49:47 »
Zdá se, že reimplementace těchto pár řádků Python kódu v Javě je nad síly kritika Pythonu. Můžeme jen hádat na čem všem se zasekal :-). Budiž to ponaučením pro budoucí posměváčky.

Ne panove, to je zkratka moje prohlednuti, ze vy tu vubec nemate tuseni o cem to melete.
Pisu tady, ze signatura java metody je vcetne parametru metody a vrati se mi dotaz, jak bych asi tu python zpatlaninu udelal v Jave.

Neblábol Stando, už i ty jsi pochopil v čem a proč je Java špatná. Nenašel jsi odvahu sem dát implementaci něčeho, co je Javě vlastní (přetěžování) a pro Python je to škrábání se na krku přes hlavu. I tak to má Python stručnější a přehlednější. Pokud nesouhlasíš, hoď sem ukázku.

Budiz, mejme dva typy: A a inherited B

...

Toto jsou naproste zaklady javy, uplne mi nebere hlava, proc maj potrebu se hadat o kvalite jazyka lidi, co o nem vi kulantne receno mene nez optimum.

Dobry Stando, něco jsi se možná naučil. Teď dodej v Jave implementaci toho Python programu, co jsi ho sem pastnul jako důkaz  nepřehlednosti. Neboj, smát se budem jenom trochu.

Mno, co se tyce method overloadu, priklad jsem tak trochu poslal, pokud te zmatlo, ze jsem jinak pojmenoval typy, zkus to zvladnout.

Podívej Stando, to jsou bláboly. Smál jsi se pěknému přehlednému a srozumitelnému  Python programu ve věci, která ani není nativní vlastností toho jazyka. Můžeš předvést jak si s tím poradí Java, u které to je nativní vlastnost, tudíž by to měla zvládnout lépe nebo aspoň stejně. Ano, Java je hnusný těžkopádný jazyk, takže to nezvládne, to víme oba, teď jde jenom o to, jestli to přiznáš nebo ne. Čím víc to budeš rozpatlávat abys to zakamufloval, tím víc to bude smrdět. Takže hoď sem Java implementaci kraťoučkého Python programu, co jsi sem sám napastoval a nebo jsi porazil sám sebe svými vlastními hloupými ukázkami. :-)

251
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 10. 03. 2020, 17:41:45 »
Zdá se, že reimplementace těchto pár řádků Python kódu v Javě je nad síly kritika Pythonu. Můžeme jen hádat na čem všem se zasekal :-). Budiž to ponaučením pro budoucí posměváčky.

Ne panove, to je zkratka moje prohlednuti, ze vy tu vubec nemate tuseni o cem to melete.
Pisu tady, ze signatura java metody je vcetne parametru metody a vrati se mi dotaz, jak bych asi tu python zpatlaninu udelal v Jave.

Neblábol Stando, už i ty jsi pochopil v čem a proč je Java špatná. Nenašel jsi odvahu sem dát implementaci něčeho, co je Javě vlastní (přetěžování) a pro Python je to škrábání se na krku přes hlavu. I tak to má Python stručnější a přehlednější. Pokud nesouhlasíš, hoď sem ukázku.

Budiz, mejme dva typy: A a inherited B

...

Toto jsou naproste zaklady javy, uplne mi nebere hlava, proc maj potrebu se hadat o kvalite jazyka lidi, co o nem vi kulantne receno mene nez optimum.

Dobry Stando, něco jsi se možná naučil. Teď dodej v Jave implementaci toho Python programu, co jsi ho sem pastnul jako důkaz  nepřehlednosti. Neboj, smát se budem jenom trochu.

252
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 10. 03. 2020, 07:53:47 »
Tak po přečtení tohodle: Java 8 JDK: můžu oficiálně používat dva roky starou aplikaci? to je s Javou ještě horší, než jsem si myslel. https://forum.root.cz/index.php?topic=21928.0

podrobnosti: https://www.itnetwork.cz/java/pokrocile/zmena-licence-java11-sdk-a-openjdk

253
Vývoj / Re:Datove tridy v Pythonu
« kdy: 10. 03. 2020, 06:53:18 »
Ostatne jython je imementace pythonu v jave, javu v pythonu nikdo nenapsal
To je trochu demagogické tvrzení, že. Jython je kompilátor Python kódu produkující bajtkód pro JVM. Umožňuje v prostředí JVM používat jazyk Python, což je výhodné. Python nabízí mnohem vyšší produktivitu, Python kód je 2 až 10 × kratší než Java kód. Ano, proto neexistuje kompilátor Java jazyka do byte code Pythonu. Ne že by to nešlo, ale nikdo o tento těžkopádný jazyk na Python platformě nestojí, nemá žádný přínos. Na Javě je zajímavé jen to JVM. Proto pro JVM vzniká tolik jazyků, je tu ohromující snaha se jazyku Java vyhnout. https://en.m.wikipedia.org/wiki/List_of_JVM_languages

254
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 10. 03. 2020, 06:18:52 »
Takže Python naopak umožňuje jednu a tu samou věc udělat různými způsoby,  je multiparadigmatický a podporuje různé způsoby programování:

Kód: [Vybrat]
letters = []

for letter in 'human':
    letters.append(letter)

print(letters)
Kód: [Vybrat]
letters = [ letter for letter in 'human' ]
print(letters)
Kód: [Vybrat]
letters = list(map(lambda letter: letter, 'human'))
print(letters)

Přičemž mě je nejbližší ten prostřední.

Ale i do Javy se už dostaly nějaké funkcionální prvky a lambda. I v ní jde dělat některé věci různě. Ale pořád je celkově příliš těžkopádná, ukecaná a nepřehledná. Na Javě je dobré JRE, a je pravda, že toto prostředí lze používat naštěstí i s jinými jazyky.

255
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 10. 03. 2020, 05:49:04 »
A) Ano, Java je dost ukecany jazyk a taky hodne, hodne tezkopadny. A me to taky dost vadi, protoze je to strasna drina. Jenze na velkych projektech presne tohle potrebujete. Tam se to vam to vrati mnohonasobne vic diky vzniknuvsimu poradku.
...
B) Je to strasne otravne, ale taky strasne dulezite pro Javovske projekty, presne takovato striktnost dela Javu Javou a proto se tak hodne pouziva v enterprise.
...
C) Takova striknost umoznuje dosahnout to, cemu se rika, ze by mel existovat jediny zpusob, jak neco udelat. Na vyse uvedene omezeni sice bude Pepik programator nadavat, ale prinuti ho to strcit takove veci na jedine misto. A pro ostatni programatory je to prehlednejsi.

A) Těžkopádný nepřehledný jazyk člověk nepotrebuie ani na malych ani na velkych projektech. Ten hloupý jazyk je dnes největší nevýhoda Javy. Potřebujete jednotnost a přehlednost. Jednotnosti se dá dosahovat i jinak, existuje na to celá řada nástrojů, přehledná Java není.

B) V enterprise se java používá z jiných důvodů. Dnes hlavně ze setrvačnosti, je to zavedený jazyk, který pro toto prostředí vzniknul, měl pro toto prostředí řadu unikátních (dnes běžných) vlastností a byl do tohoto prostředí marketingově tlačen. Jako náhrada C a C++ měl řadu výhod a stály za ním velké peníze. Oproti tomu je Python příklad výborného jazyka, za kterým nikdo velký nestojí a který vyrostl zdola. Nevýhodou jak Javy tak Pythonu pro enterprise je, že nejsou standardizované.

C) A proto jsou v Javě tři druhy komentářů. Proč? Protože pro různé použití je jednou výhodnější ten a podruhé onenen. Tedy nemáte pravdu. Standardizované konstrukce pro specifické použití kód naopak zjednodušují, jsou přehlednější a snadněji pochopitelnější, než když si to každý programátor implementuje po svém. Třeba pythoní list comprehension, že. Nic co by nešlo udělat základními programovacími primitivy.


Stran: 1 ... 15 16 [17] 18 19 ... 25