Doporučte programovací jazyk pro Windows

Re:Doporučte programovací jazyk pro Windows
« Odpověď #285 kdy: 15. 03. 2020, 13:13:47 »
PetrK - pouzij knihovnu podporujici nacitani a validaci jsonu, dataclasses tohle neresi

treba

https://github.com/genomoncology/related

podporuje automaticke prejmenovani atributu

Jak je mozne ze to dataclasses neresi? Ma to funkce:

protoze je urcena k necemu jinemu? Vubec neresi runtime validaci dat z venku. Fakt se na to vyser jestli tohle nechapes.

Co to je za kravinu, jak neresi runtime validaci dat z venku - tak jsi jednoduchy Pythonista nebo nejsi? Tak proc to komplikujes jak nekde v Jave? Ma to "asdict" a nema to "fromdict".

Tak znova, mas v Pythonu instanci nejake tridy. Jak ji serializujes do human readable podoby a jak ji pak deserializujes. A bez externich knihoven bych prosil, kdyz tam mas ty baterky included. To jsem zvedavy, jak se ted ukazes.

A pripominam, ze prece jsi jednoduchy Pythonista, takze ne abys tento jednoduchy ukon delal moc slozite.
« Poslední změna: 15. 03. 2020, 13:18:35 od PetrK »


Re:Doporučte programovací jazyk pro Windows
« Odpověď #286 kdy: 15. 03. 2020, 13:29:49 »
PetrK - pouzij knihovnu podporujici nacitani a validaci jsonu, dataclasses tohle neresi

treba

https://github.com/genomoncology/related

podporuje automaticke prejmenovani atributu

Jak je mozne ze to dataclasses neresi? Ma to funkce:

protoze je urcena k necemu jinemu? Vubec neresi runtime validaci dat z venku. Fakt se na to vyser jestli tohle nechapes.

Co to je za kravinu, jak neresi runtime validaci dat z venku - tak jsi jednoduchy Pythonista nebo nejsi? Tak proc to komplikujes jak nekde v Jave? Ma to "asdict" a nema to "fromdict".

Tak znova, mas v Pythonu instanci nejake tridy. Jak ji serializujes do human readable podoby a jak ji pak deserializujes. A bez externich knihoven bych prosil, kdyz tam mas ty baterky included. To jsem zvedavy, jak se ted ukazes.

A pripominam, ze prece jsi jednoduchy Pythonista, takze ne abys tento jednoduchy ukon delal moc slozite.

dataclass z dictu vytvoris normalne
Kód: [Vybrat]
C(**d) # d je slovnik
ale bez validace

pouzij dataclass z pydantic.dataclasses kdyz potrebujes validaci
« Poslední změna: 15. 03. 2020, 13:32:33 od A.P.Hacker »

Re:Doporučte programovací jazyk pro Windows
« Odpověď #287 kdy: 15. 03. 2020, 13:33:24 »

Co to je za kravinu, jak neresi runtime validaci dat z venku - tak jsi jednoduchy Pythonista nebo nejsi? Tak proc to komplikujes jak nekde v Jave? Ma to "asdict" a nema to "fromdict".

Tak znova, mas v Pythonu instanci nejake tridy. Jak ji serializujes do human readable podoby a jak ji pak deserializujes. A bez externich knihoven bych prosil, kdyz tam mas ty baterky included. To jsem zvedavy, jak se ted ukazes.

A pripominam, ze prece jsi jednoduchy Pythonista, takze ne abys tento jednoduchy ukon delal moc slozite.

dataclass z dictu vytvoris normalne
Kód: [Vybrat]
C(**d) # d je slovnik
ale bez validace

Mohl by jsi mi to prosim nazorne ukazat? Tady ti dam tyto tridy:

Kód: [Vybrat]
@dataclass
class B:
    b: str

@dataclass
class A:
   a: str
   b: B

d = {
  'a':'ahoj',
  'b': {
     'b': 'cau'
  }
}


Ukaz mi, jak do nich deserializujes dictionary. Bez externich knihoven.
« Poslední změna: 15. 03. 2020, 13:36:56 od PetrK »

Re:Doporučte programovací jazyk pro Windows
« Odpověď #288 kdy: 15. 03. 2020, 13:40:50 »

Co to je za kravinu, jak neresi runtime validaci dat z venku - tak jsi jednoduchy Pythonista nebo nejsi? Tak proc to komplikujes jak nekde v Jave? Ma to "asdict" a nema to "fromdict".

Tak znova, mas v Pythonu instanci nejake tridy. Jak ji serializujes do human readable podoby a jak ji pak deserializujes. A bez externich knihoven bych prosil, kdyz tam mas ty baterky included. To jsem zvedavy, jak se ted ukazes.

A pripominam, ze prece jsi jednoduchy Pythonista, takze ne abys tento jednoduchy ukon delal moc slozite.

dataclass z dictu vytvoris normalne
Kód: [Vybrat]
C(**d) # d je slovnik
ale bez validace

Mohl by jsi mi to prosim nazorne ukazat? Tady ti dam tyto tridy:

Kód: [Vybrat]
@dataclass
class B:
    b: str

@dataclass
class A:
   a: str
   b: B

d = {
  'a':'ahoj',
  'b': {
     'b': 'cau'
  }
}


Ukaz mi, jak do nich deserializujes dictionary.


Kód: [Vybrat]
from dataclasses import dataclass


@dataclass
class B:
    b: str

@dataclass
class A:
   a: str
   b: B

d = {
  'a':'ahoj',
  'b': {
     'b': 'cau'
  }
}

a = A(**d) # A(a='ahoj', b=B(b='cau'))
« Poslední změna: 15. 03. 2020, 13:43:27 od A.P.Hacker »

Re:Doporučte programovací jazyk pro Windows
« Odpověď #289 kdy: 15. 03. 2020, 13:44:02 »
Kód: [Vybrat]
from pydantic.dataclasses import dataclass

Pydantic? To neni standardni knihovna... Tesil jsem se jak me zahambis, ze v jave delam veci slozite a na vsechno potrebuju externi knihovnu.

Ale dobre. Tak jeste jedna vec. Ted mi ukaz, jak ten samy ukon muzu udelat pro normalni Classu (nikoliv dataclass). Tipuju ze budes muset ze zalohy vytahnout dalsi, uplne jinaci Pythnovskou knihovnu.
« Poslední změna: 15. 03. 2020, 13:45:38 od PetrK »


Re:Doporučte programovací jazyk pro Windows
« Odpověď #290 kdy: 15. 03. 2020, 13:44:59 »
Kód: [Vybrat]
from pydantic.dataclasses import dataclass

Pydantic? To neni standardni knihovna... Tesil jsem se jak me zahambis, ze v jave delam veci slozite a na vsechno potrebuju externi knihovnu.

nepotrebujes pydantic, kdyz nepotrebujes konverze/validace.

Re:Doporučte programovací jazyk pro Windows
« Odpověď #291 kdy: 15. 03. 2020, 13:47:28 »
Dam ti jednu radu. Ty nikdy ani naznakem nezkousej C#. Protoze bys pak videl, jaky je ten tvuj Python totalni shit. .NET C# je v soucasnosti jedina platforma na svete, ktera ma doopravdy "batteries included".

https://docs.microsoft.com/cs-cz/dotnet/standard/serialization/system-text-json-how-to

Re:Doporučte programovací jazyk pro Windows
« Odpověď #292 kdy: 15. 03. 2020, 13:48:39 »
Ale dobre. Tak jeste jedna vec. Ted mi ukaz, jak ten samy ukon muzu udelat pro normalni Classu (nikoliv dataclass). Tipuju ze budes muset ze zalohy vytahnout dalsi, uplne jinaci Pythnovskou knihovnu.

zalezi na tom, jaky ma ta trida konstruktor. vzdy muzes priradit do __dict__, ale to asi nechces

Re:Doporučte programovací jazyk pro Windows
« Odpověď #293 kdy: 15. 03. 2020, 13:49:59 »
Ale dobre. Tak jeste jedna vec. Ted mi ukaz, jak ten samy ukon muzu udelat pro normalni Classu (nikoliv dataclass). Tipuju ze budes muset ze zalohy vytahnout dalsi, uplne jinaci Pythnovskou knihovnu.

zalezi na tom, jaky ma ta trida konstruktor. vzdy muzes priradit do __dict__, ale to asi nechces

Nema zadny konstruktor. A do __dict__ ti to nebude fungovat s nested dictionaries.

Tomu ja rikam byt nucen delat veci X ruznymi zpusoby a kazdy z nich stoji za ho*. Ja v Jave mam ve standardni knihovne vcelku prd, ale kazdy poradnejsi Javista pouziva externi knihovnu Jackson, ktera umi naprosto vsechno, vc. validaci o jakych se tem Pythnovskym ani nesnilo - Jackson strci do kapsy vsechny.


Kód: [Vybrat]
ObjectMapper mapper = new ObjectMapper();
Staff obj = mapper.readValue("{'name' : 'mkyong'}", Staff.class);

Hotovo. Je to tak tezke? A ta knihovna umi vsechno co si zamanes, validace, custom ovlivnovani chovani atp.
« Poslední změna: 15. 03. 2020, 13:56:34 od PetrK »

Re:Doporučte programovací jazyk pro Windows
« Odpověď #294 kdy: 15. 03. 2020, 14:00:20 »
je pravda, ze pydantic by se mohl dostat do standardni knihovny. Bylo by dobre, kdyby existoval jeden doporuceny zpusob jak tohle delat.

qelurg

  • ****
  • 372
    • Zobrazit profil
    • E-mail
Re:Doporučte programovací jazyk pro Windows
« Odpověď #295 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.

Re:Doporučte programovací jazyk pro Windows
« Odpověď #296 kdy: 15. 03. 2020, 14:03:08 »
Ale dobre. Tak jeste jedna vec. Ted mi ukaz, jak ten samy ukon muzu udelat pro normalni Classu (nikoliv dataclass). Tipuju ze budes muset ze zalohy vytahnout dalsi, uplne jinaci Pythnovskou knihovnu.

zalezi na tom, jaky ma ta trida konstruktor. vzdy muzes priradit do __dict__, ale to asi nechces

Nema zadny konstruktor. A do __dict__ ti to nebude fungovat s nested dictionaries.

Tomu ja rikam byt nucen delat veci X ruznymi zpusoby a kazdy z nich stoji za ho*. Ja v Jave mam ve standardni knihovne vcelku prd, ale kazdy poradnejsi Javista pouziva externi knihovnu Jackson, ktera umi naprosto vsechno, vc. validaci o jakych se tem Pythnovskym ani nesnilo - Jackson strci do kapsy vsechny.


Kód: [Vybrat]
ObjectMapper mapper = new ObjectMapper();
Staff obj = mapper.readValue("{'name' : 'mkyong'}", Staff.class);

Hotovo. Je to tak tezke? A ta knihovna umi vsechno co si zamanes, validace, custom ovlivnovani chovani atp.

tohle je ve standardni knihovne?

Re:Doporučte programovací jazyk pro Windows
« Odpověď #297 kdy: 15. 03. 2020, 14:04:52 »
tohle je ve standardni knihovne?

Ano, v C#. My v Jave nic takoveho ve standardni knihovne mit nepotrebujeme, protoze mame Maven  8) A navic si nehrajeme na batteries included. A to dost mozna ze mame vice batteries included nez Python.

Re:Doporučte programovací jazyk pro Windows
« Odpověď #298 kdy: 15. 03. 2020, 14:09:19 »
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.

Ja jsem spokojeny uzivatel skveleho ceskeho IDE IntelliJ Idea, ktere je mimochodem nejpouuzivanejsi v Jave na svete. A rad si za to IDE i platim, protoze rad zaplatim kvalitu. Do te doby, kdy budu vyrabet poradnejsi veci nez Pythonisti a mit za to vice penez, tak jsem s naseptavacem spokojen. A nejsem programator.
« Poslední změna: 15. 03. 2020, 14:10:58 od PetrK »

qelurg

  • ****
  • 372
    • Zobrazit profil
    • E-mail
Re:Python - pejsek a kocicka varili dort
« Odpověď #299 kdy: 15. 03. 2020, 14:09:33 »
...hromada keců...

To je prosté, milý Watsone; když chceš používat dict, používej dict. Pokud Ti vadí, že nemůžeš mít jako název atributu klíčové slovo, jdi se pokorně vrátit k Javě a vesele si používej .equals() a další podobné geniální nápady návrhářů, kteří se domnívají, že nejsi dost chytrý na to, abys pochopil výhody a principy přetěžování operátorů.

Tohle je typicka odpoved jednoduchouckeho Pyjthonisty. Takze kdyz ti z nejakeho API, nad kterym ty nemas kontrolu, nekdo vrati Dictionary ktere obsahuje klicove slovo v Pythonu, tak ty potom udelas jako co? Ja vim co udelas, vemes izolacku, hrebiky a kladivko a vyrobis kupu hnoje aby ti to pak jakoze fungovalo.

Proc by nekdo do Swagger API psal:

fromDate: Date
toDate: Date

kdyz muze napsat jen:

from: Date
to: Date

A ty v Pyjthonu se z toho po...

Ty si opravdu nerikej programator.