reklama

Doporučte programovací jazyk pro Windows

BoneFlute

  • *****
  • 1 379
    • Zobrazit profil
Re:Doporučte programovací jazyk pro Windows
« Odpověď #450 kdy: 26. 03. 2020, 01:36:19 »
Tenhle hnus je nějaká forma unique nebo distinct?

.filter((num, index, nums) => nums.indexOf(num) == index)

Ano, to je unique, a neni to Lua, ale Javascript - to je takovy ten jazyk, ktery brzo prevalcuje Python, a ktera ma dneska spousta Javistu v zaloze :D

Tvl tady Pythonisti ani neznaji monady, a pritom my to v Jave pouzivame uz od verze 1.8  8)
Tydlencty "monady" mame v Pythonu odjakziva.
Monády jsou pro malé děti, pro profíka jsou triády.
Počkej, počkej, já jsem zatím teprve u diád... Takhle ty profíky nikdy nedoženu. Kruci, zatr, krám!

reklama


Re:Doporučte programovací jazyk pro Windows
« Odpověď #451 kdy: 31. 03. 2020, 21:56:00 »
Rust

qelurg

  • ***
  • 213
    • Zobrazit profil
    • E-mail
Re:Doporučte programovací jazyk pro Windows
« Odpověď #452 kdy: 31. 03. 2020, 23:20:24 »
Rust
A je už použitelný? Před pár lety o něm pan Tišnovský psal: Samotný jazyk se navíc ještě poměrně aktivně vyvíjí, přičemž se nejedná jen o nějaké kosmetické úpravy (přejmenování funkce ze základní knihovny či přidání parametru do funkce), ale mnohdy o zásadní změny v syntaxi i sémantice. Z tohoto důvodu budou všechny příklady spolehlivě pracovat na verzi 1.11. Když ho doporučuješ pro windows, jak si rozumí s winapi a COM?

PetrK

  • ****
  • 370
    • Zobrazit profil
Dalsi kiks v Pythonu!!!
« Odpověď #453 kdy: 01. 04. 2020, 00:58:30 »
Dalsi kiks v Pythonu, a uz me ta platforma fakt zacina stvat.

SQLAlchemy.
Zaprve, pekne voskliva a komplikovana knihovna.
Zadruhe, i malinke dite vi, ze proste nemuzu v ramci takove knihovny naimplementovat jakousi agregaci modelovych trid pres inheritanci!!! Tohle by v Jave byla naprosta prasarna a juniorska skolacka chyba! Jenze ouha, Python nema Interfacy a v dobe vzniku SQLAlchemy nemel beztak jeste ani Dekoratory, co??? Fuj!

Kód: [Vybrat]
from sqlalchemy import *
from sqlalchemy.ext.declarative import declarative_base

engine = create_engine('sqlite:///sales.db', echo= True)
Base = declarative_base()


class Stock(Base):
    __tablename__='stock'
    id = Column(Integer, primary_key=True)
    ticker = Column(String)
    date = Column(DateTime)
    price = Column(Integer)


Base.metadata.create_all(engine)
« Poslední změna: 01. 04. 2020, 01:01:18 od PetrK »

Re:Doporučte programovací jazyk pro Windows
« Odpověď #454 kdy: 01. 04. 2020, 01:01:35 »
Rust
A je už použitelný? Před pár lety o něm pan Tišnovský psal: Samotný jazyk se navíc ještě poměrně aktivně vyvíjí, přičemž se nejedná jen o nějaké kosmetické úpravy (přejmenování funkce ze základní knihovny či přidání parametru do funkce), ale mnohdy o zásadní změny v syntaxi i sémantice. Z tohoto důvodu budou všechny příklady spolehlivě pracovat na verzi 1.11. Když ho doporučuješ pro windows, jak si rozumí s winapi a COM?
Zase pravda, že když chce člověk něco pořádného dělat (Racket, i nějaké to pořádné GUI) je třeba mít nightly verzi.

reklama


qelurg

  • ***
  • 213
    • Zobrazit profil
    • E-mail
Re:Doporučte programovací jazyk pro Windows
« Odpověď #455 kdy: 01. 04. 2020, 01:39:40 »
Rust
A je už použitelný? Před pár lety o něm pan Tišnovský psal: Samotný jazyk se navíc ještě poměrně aktivně vyvíjí, přičemž se nejedná jen o nějaké kosmetické úpravy (přejmenování funkce ze základní knihovny či přidání parametru do funkce), ale mnohdy o zásadní změny v syntaxi i sémantice. Z tohoto důvodu budou všechny příklady spolehlivě pracovat na verzi 1.11. Když ho doporučuješ pro windows, jak si rozumí s winapi a COM?
Zase pravda, že když chce člověk něco pořádného dělat (Racket, i nějaké to pořádné GUI) je třeba mít nightly verzi.
Ja se na jazyky nedokazu divat jinym pohledem, nez jak ma prakticky prinos v produkcnim prostredi, jak je realne pouzitelny. A z tohoto pohledu z tech novych jazyku je aspon trochu pouzitelny asi jen go. Z tech o neco starsich pak C#, Python a Javascript. Smysl tech ostatnich jazyku, krom akademickych, nechapu. Pokud je tu dotaz, jaky jazyk pro windows, pak predpokladam, ze tazatele zajimaji jazyky, ktere jsou vhodne do produkcniho prostredi. Imho by kazdy programator mel dnes slusne znat C, C# nebo Javu (kdo cili na windows spise to C#) a Python nebo JS. To je takova svata trojice.

Re:Dalsi kiks v Pythonu!!!
« Odpověď #456 kdy: 01. 04. 2020, 01:53:31 »

qelurg

  • ***
  • 213
    • Zobrazit profil
    • E-mail
Re:Dalsi kiks v Pythonu!!!
« Odpověď #457 kdy: 01. 04. 2020, 01:58:27 »
Dalsi kiks v Pythonu, a uz me ta platforma fakt zacina stvat.

SQLAlchemy.
Zaprve, pekne voskliva a komplikovana knihovna.
Zadruhe, i malinke dite vi, ze proste nemuzu v ramci takove knihovny naimplementovat jakousi agregaci modelovych trid pres inheritanci!!! Tohle by v Jave byla naprosta prasarna a juniorska skolacka chyba! Jenze ouha, Python nema Interfacy a v dobe vzniku SQLAlchemy nemel beztak jeste ani Dekoratory, co??? Fuj!

Kód: [Vybrat]
from sqlalchemy import *
from sqlalchemy.ext.declarative import declarative_base

engine = create_engine('sqlite:///sales.db', echo= True)
Base = declarative_base()


class Stock(Base):
    __tablename__='stock'
    id = Column(Integer, primary_key=True)
    ticker = Column(String)
    date = Column(DateTime)
    price = Column(Integer)


Base.metadata.create_all(engine)
Dalsi tvuji kiks, i male dite vi, ze nema pouzivat import *. Co se tyce osklivosti, cely koncept ORM je hloupy a osklivy. ORM je imho jen dusledek pristupu "neumim databaze a nechce se mi to ucit ani zaplatit odbornika". Takze s trochou nadsazky, je to reseni od patlalu pro patlaly. A vzhledem k urovni OOP v jave, to co je prasarna v tomto jazyku, nemusi byt prasarna v jinem. Bez ohledu na tuto knihovnu, se kterou jsem nikdy nedelal a ani nebudu a neposuzuji ji. Jestli hodlas python pouzivat jako javu, nikdy nebudes spokojeny, python neni java, v pythonu musis myslet jinak, odvolavam se na principy DRY a KISS.

PetrK

  • ****
  • 370
    • Zobrazit profil
Re:Dalsi kiks v Pythonu!!!
« Odpověď #458 kdy: 01. 04. 2020, 02:05:37 »
Dalsi tvuji kiks, i male dite vi, ze nema pouzivat import *. Co se tyce osklivosti, cely koncept ORM je hloupy a osklivy. ORM je imho jen dusledek pristupu "neumim databaze a nechce se mi to ucit ani zaplatit odbornika". Takze s trochou nadsazky, je to reseni od patlalu pro patlaly. A vzhledem k urovni OOP v jave, to co je prasarna v tomto jazyku, nemusi byt prasarna v jinem. Bez ohledu na tuto knihovnu, se kterou jsem nikdy nedelal a ani nebudu a neposuzuji ji. Jestli hodlas python pouzivat jako javu, nikdy nebudes spokojeny, python neni java, v pythonu musis myslet jinak, odvolavam se na principy DRY a KISS.
[/quote]

Nonsense.
1. I male dite vi, ze frajer pouzije ORM pokud muze, protoze mu to snizuje bordel v kodu.
2. Co je DRY a KISS na tom, ze si potom nemuzu z instance te modelove tridy vygenerovat Dictionary? Java to ma mnohem vice DRY a KISS nez tady ten Python.

PetrK

  • ****
  • 370
    • Zobrazit profil
Dalsi, UZ POSLEDNI KIKS V PYTHONU
« Odpověď #459 kdy: 01. 04. 2020, 02:10:44 »
Takze tohle uz je posledni vec, kterou me nastval Python. Prohlasuju, ze v Pythonu je VETSI BORDEL nez v Javascriptu. Dictionary v Pythonu nezachovava order klicu!!! A ne, nebudu se stvat s OrderedDict.

Takze kdyz si pri vyvoji microservices prevedu JSON na Dict, tak potom zpetne prevod Dict na JSON mi negarantuje order => bordel.

Takze tohleto je konecna. Prace s JSONem je v Pythonu totalni vopruz. Ja jsem chtel Python na rychlou vyrobu microservices, ale v porovnani s Node.js se Python proste nechyta.

Python je proste rokama zabordeleny jazyk. A nema zadne batteries included. To co je ve standarni knihovne je +- podobna slabota, jako to co ma Java v SDK. Stejne se vsechno musi dotahovat z vnejsich zdroju. A nekompatibilita mezi verzema Pythonu navic stejne nuti pouzivart virtual environment.

Bohuzel. Python je dobry tak leda pro nejake ty "data science" bastlire. Jinak je i skoda Python nekde zavadet - zbytecna otrava. Bash skripty to efektivne nahradit nedokaze, a na Node.js se to nechyta.
« Poslední změna: 01. 04. 2020, 02:16:31 od PetrK »

qelurg

  • ***
  • 213
    • Zobrazit profil
    • E-mail
Re:Dalsi kiks v Pythonu!!!
« Odpověď #460 kdy: 01. 04. 2020, 02:20:13 »
Dalsi tvuji kiks, i male dite vi, ze nema pouzivat import *. Co se tyce osklivosti, cely koncept ORM je hloupy a osklivy. ORM je imho jen dusledek pristupu "neumim databaze a nechce se mi to ucit ani zaplatit odbornika". Takze s trochou nadsazky, je to reseni od patlalu pro patlaly. A vzhledem k urovni OOP v jave, to co je prasarna v tomto jazyku, nemusi byt prasarna v jinem. Bez ohledu na tuto knihovnu, se kterou jsem nikdy nedelal a ani nebudu a neposuzuji ji. Jestli hodlas python pouzivat jako javu, nikdy nebudes spokojeny, python neni java, v pythonu musis myslet jinak, odvolavam se na principy DRY a KISS.

Nonsense.
1. I male dite vi, ze frajer pouzije ORM pokud muze, protoze mu to snizuje bordel v kodu.
2. Co je DRY a KISS na tom, ze si potom nemuzu z instance te modelove tridy vygenerovat Dictionary? Java to ma mnohem vice DRY a KISS nez tady ten Python.
[/quote]
1) Frajer mozna, zkuseny programator se tomu instinktivne vyhyba, protoze je to AntiPattern: https://www.zdrojak.cz/clanky/orm-je-antipattern/ Jestli bez ORM neumis napsat nezabordeleny kod, tvu jproblem.
2) DRY a KISS se vztahuje k dedicnosti a intrfacum, kdy nevyhodu vydavas za vyhodu. Aniz bych posuzoval tu knihovnu a snazil se rozklicovat, zda je chyba v tobe nebo v ni, knihovna neni Python. Jdes na vsechno desne blbe blbe.

qelurg

  • ***
  • 213
    • Zobrazit profil
    • E-mail
Re:Dalsi, UZ POSLEDNI KIKS V PYTHONU
« Odpověď #461 kdy: 01. 04. 2020, 02:30:29 »
Takze tohle uz je posledni vec, kterou me nastval Python. Prohlasuju, ze v Pythonu je VETSI BORDEL nez v Javascriptu. Dictionary v Pythonu nezachovava order klicu!!! A ne, nebudu se stvat s OrderedDict.

Takze kdyz si pri vyvoji microservices prevedu JSON na Dict, tak potom zpetne prevod Dict na JSON mi negarantuje order => bordel.

Takze tohleto je konecna. Prace s JSONem je v Pythonu totalni vopruz. Ja jsem chtel Python na rychlou vyrobu microservices, ale v porovnani s Node.js se Python proste nechyta.

Python je proste rokama zabordeleny jazyk. A nema zadne batteries included. To co je ve standarni knihovne je +- podobna slabota, jako to co ma Java v SDK. Stejne se vsechno musi dotahovat z vnejsich zdroju. A nekompatibilita mezi verzema Pythonu navic stejne nuti pouzivart virtual environment.

Bohuzel. Python je dobry tak leda pro nejake ty "data science" bastlire. Jinak je i skoda Python nekde zavadet - zbytecna otrava. Bash skripty to efektivne nahradit nedokaze, a na Node.js se to nechyta.

Neni to bordel, jenom si hrajes s ostry nozem, ktery ti nepatri do ruky. Python je na tebe moc tezky, nemas na nej. Nepristupujes k nemu s pokorou, myslis si ze z Javy vsechno znas a umis a leda houby, Python se nepouziva jako Java.

Dict je zakladni datova struktura Pythonu, ktreou pouziva vsude, na jejim vykonu proto podstatne zalezi vykon Pythonu. Zachovavani poradi neni zadarmo a pritom vetsinou neni potreba. Proto Python poskytuje ordered i neordered dict. Ty jsi trubka, ktera to nevi, a pak se divi, ze pouziva spatnou datovou strukturu, tj. ma navrzeny spatny datovy model a pak breci, ze musi predelavat pulku programu. To je tvoje vlastni neschponost, python je jednoduchy, ale ne blbuvzdorny, to prave naopak. A muzu ti garantovat, ze at pouzijes jakykoliv jazyk, treba i v Haskell, vzdycky narazis, kdyz nebudes znat jeho datove typy.

PetrK

  • ****
  • 370
    • Zobrazit profil
Re:Dalsi kiks v Pythonu!!!
« Odpověď #462 kdy: 01. 04. 2020, 02:32:33 »
1) Frajer mozna, zkuseny programator se tomu instinktivne vyhyba, protoze je to AntiPattern: https://www.zdrojak.cz/clanky/orm-je-antipattern/ Jestli bez ORM neumis napsat nezabordeleny kod, tvu jproblem.
2) DRY a KISS se vztahuje k dedicnosti a intrfacum, kdy nevyhodu vydavas za vyhodu. Aniz bych posuzoval tu knihovnu a snazil se rozklicovat, zda je chyba v tobe nebo v ni, knihovna neni Python. Jdes na vsechno desne blbe blbe.

"Zkuseny" skripter v Ruby se tak mozna ORM vyhyba. V celem tom clanku neni jedina zminka treba o tom, jak ti Hibernate pomaha zajistit, aby instance modelovych trid byly thread safe, coz je extremne dulezita vec, kterou kdyz si musis zajistovat sam, tak je to totalni opruz.

Vy totiz v Pythonu (a dalsich skriptovacich jazycich) nemate ORM udelane tak poradne, jako my v Jave, a to je je ten problem tohoto vyplakavani.

ORM navic neni berlicka pro blbecky co neumi ani SQL. ORM je pro zkusene programatory. Hibernate drasticky redukuje mnozstvi kodu a bordelu v aplikaci.

Dalsi nonsense v tom clanku je zpochybnovani relacnich databazi. Relacni databaze predstavuje 1:1 (!!!) vztah mezi objekty v OO jazyce a podobou jejich perzistence (narozdil od NoSQL, ktera tento vztah NEZACHOVAVA). ORM je KISS pro praci s objekty.

To, ze si u ORM delam i svoje SQL dotazy, neni nic proti nicemu. Vseobecne jedna se o clanek napsany beztak nejakym skriptovacem, ktery nema ani poradne tooly a standardy vyvoje.

My v Jave mame i svoje vlastni objektove databaze, ktere ale moc nepouzivame, protoze jsou Java-specific. Pouzivame univerzalnejsi SQL databaze, ktere sice vyzaduji ORM vrstvu a dalsi opruzy, ale zato jsou standardni. Jiank bychom si v Jave taky mohli ukladat objekty a pracovat s nima bez nejakeho ORM.
« Poslední změna: 01. 04. 2020, 02:35:59 od PetrK »

Re:Dalsi, UZ POSLEDNI KIKS V PYTHONU
« Odpověď #463 kdy: 01. 04. 2020, 09:59:34 »
Dictionary v Pythonu nezachovava order klicu!!! A ne, nebudu se stvat s OrderedDict.

Fascinuje me, jak casto lide s minimalnimi zkusenostmi, znalostmi a schopnostmi maji zaroven vysoke sebevedomi a nedostatek pokory. Jen takove zamysleni, jinak se ale u tvych prispevku dobre bavim (na tvuj ucet ;)

Jinak poradi klicu je zachovane od Pythonu 3.6 (jako "implementation detail", cca rok 2016) a garantovane od Pythonu 3.7 https://mail.python.org/pipermail/python-dev/2017-December/151283.html

qelurg

  • ***
  • 213
    • Zobrazit profil
    • E-mail
Re:Doporučte programovací jazyk pro Windows
« Odpověď #464 kdy: 01. 04. 2020, 10:11:19 »
Mas to napsane v clanku,: Článek je volně přeložen z anglického originálu ORM is an anti-pattern, který napsal Laurie Voss (technický vedoucí awe.sm, dříve např. Yahoo! Widgets) a vydal ho na svém blogu pod licencí CC-BY-NC-SA.

original: https://seldo.com/posts/orm_is_an_antipattern

Laurie Voss: Laurie Voss is npm’s CTO. Laurie has over 15 years of experience building web services at scale, including 4 years at Yahoo. He and I perfected our lunchtime banter on the Yahoo! Apps team. Most recently, Laurie led the technical team at Awe.sm. He brings deep experience with databases, analytics, and mission critical infrastructure services.

Není to názor jednoho člověka, problém s ORM má kde kdo.
https://www.yegor256.com/2014/12/01/orm-offensive-anti-pattern.html
https://www.eversql.com/i-followed-hibernate-orm-to-hell-and-came-back-alive-to-tell-about-it/

Ano, dělá to něco automaticky za tebe, pro tebe je to dobrý. Ale ORM to nedělá dobře a ani nemůže, dokud za ním nebude stát dobrá AI, nesloží to kvalitní SQL dotaz. Není to dobré obecně, a už vůbec pro relační databáze.

Naši databázoví experti ORM upřímně nesnáší, mluví o DOS útoku z jeho strany. Čím složitější jsou data, tím je to horší, zátěž vzrůstá exponenciálně, to je špatně. Pro patlala je to dobrý, pro big data nikoliv.

ORM neumí pořádně využívat možnosti databází, neumí je to používat efektivně a nejde jen o výkon. Databáze mají mnoho skvělých specifických featur, nejen pro výkon, ale třeba i datovou bezpečnost, ORM z toho nic nepoužívá a ani nemůže. ORM je obecné a degraduje databázi v primitivní úložiště. Proč potom ale nepoužívat rovnou primitivní úložiště, proč platít za databázi a tu nechat zahlcovat nesmyslnými dotazy, že?

Trefné přirovnání pro ORM je, že používt ORM je jako jezdit do deset km vzdáleného obchodu autem pro každý rohlík zvlášť. Že neumíš používat transakce je hezké, ale ORM je také efektivně používat neumí. Kvalitní SQL dotazy a transakce jsou přitom klíček k efektivitě. Výsledkem ORM jsou aplikace, kde zadáš dotaz a nudíš se, než ti aplikace dodá výsledek. Přitom ta databáze má maximálně několik milionů záznamů a tvůj dotaz je jednoduchý, odezva by měla být v milisekundách a místo toho je v desítkách sekund.

Tam kde se ORM jakž takž hodí, tj na primitivní věci malého rozsahu, tam nepotřebuješ databázi a kde ji potřebuješ, tam se nehodí ORM, protože ji neumí z větší části používat a kde ji používat umí, neumí to z větší části efektivně. Proto je to antipattern.

Není zas tak složité přistupovat k databázi přímo bez prostředníka, naučit se SQL, na jednoduché věci je SQL jednoduché. A komplexnější věci ti navrhne a efektivně udělá db specialista přes vlžené procedury a trigerry. Kde je proti tomu ORM? Kdybys SQL uměl, pomůže ti to i v té Javě a tyto znalosti bys pak skvěle využil i v Pythonu. Místo toho marníš čas tím, že se neefektivně pro každé prostředí zvlášť učíš rozumět antipatternu. ORM je typický podukt bloatware, ale to ti vyhovuje, na tom je postavena tvoje zkušenost, se kterou si pochvaluješ, jak ti IDE generuje samo kód.

BTW naučilo se už Hibernate alespoň používat multiple inserty?

 

reklama