a proč bys to neměl dělat v javě? Přece si kvůli tomu nebudu instalovat python, ruby, php, když už mám javu, v které dělám. Ne všichni mají nainstalovaný python, ne všichni pracují s pythonem a je to další komponenta, kterou musíš udržovat, aktualizovat a starat se o ní.
Živíš se javou, ale vývoj bys raději dělat v pythonu? Nejsou ty jazyky až příliš vzdálené od sebe, aby je bylo možné rozumně zaměnit?
Protože běžně uvaděný "fakt", že Python je pro začátečníky, má velmi omezenou platnost. Platí do té doby, než se posuneš od školních příkladů. Moji kolegové často ani nevědí jak vytvořít balík (co to je setup.py, setup.cfg, pyproject.toml). A když se koukneš po GitHubu, většina lidí, co s ním pracuje, také nemají tuto znalost. Relativní importy všude, dokumentace a typy nikde. V tomhle Java přesně vyniká: "Dělá se to tak a tak, nevymýšlej kolo pane vývojáři."
24. 3. 2022, 08:15 editováno autorem komentáře
To je podobný problém, jako s C v Arduino projektech. Tam, kde je příliš velká "bastlířská" komunita se člověk brzo dostane do stavu, kdy při hledání rady a pomoci mu radí často ještě větší looser, než je ten člověk sám. Aby se samouk naučil nějakou technologii dobře, potřebuje kvalitní zdroje a vzory. Jenže u Pythonu, stejně jako u Arduina, na internetu převládají "rady" amatérů, kteří pořádně nevědí co a proč dělají, nad radami odborníků...
Stačilo by, kdyby ti, co učí Python, naučily ostatní aspoň ten `setup.py` a `python -m venv .venv`. Stačí tři řádky! Bohužel většina projektů (např. Deep Learning) většinou po stažení začíná zdlouhavým pročítáním všech skriptů, aby to šlo vůbec spustit. Už sem na to sepsal celý návod pro kolegy. Ale opravdu stačí jen toto:
import setuptools as st
st.setup(
name="project_name",
version="0.1.0",
install_requires=[
"whatever",
]
)
py -3.10 -m venv --upgrade-deps .venv
.\.venv\Scripts\activate
pip install -U -e .
code .
Raketová věda!
Myslím, že problém bude v tom, že v té větě chybí ještě zvratné zájmeno: "Stačilo by, kdyby *se* ti, co učí Python, naučili" ;-).
VŠ nechci soudit, byť jsou také plné teoretiků bez praxe, ale na středních školách často učí nadšenci, kterým bohužel velmi často chybí adekvátní vzdělání a schopnost kontaktu s praxí. Učí své dojmy a pokusy, které si zkouší zároveň s dětmi, což je mimo jiné dáno i zoufale špatným poměrem mezi časem na přípravu a časem přímé výuky a naprostou absencí použitelných výukových materiálů (a když už, tak v angličtině, které spousta kantorů nerozumí).
(Současná reforma informatiky to ještě podporuje spolu s konzumistickým nakupováním zbytečných technologií, pro které se po koupi hledá možnost, jak to využít, místo aby se nakupovalo podle potřeby toho, co se bude reálně používat k něčemu užitečnému.)
A pak jsou tu profi školení, která nejsou akreditovaná v systému DVPP - dalšího vzdělávání pedagogů, takže je problém je zaplatit a naproti tomu akreditované DVPP kurzy, které třeba v JMK vede zpravidla jedna "odbornice na všechno" (jméno jistě dohledáte) od kurzů modelování z hlíny, přes dějepis, matematiku až po typografii nebo databáze. Jaká je úroveň takového kurzu jistě tušíte...
Na relativnich importech neni nic spatneho. Requests - nejpouzivanejsi pythonni balik. https://github.com/psf/requests/blob/main/requests/sessions.py pouziva relativni importy.
Kdybyste si radši přečetl ten JEP https://openjdk.java.net/jeps/408 Je to doslova nalinkované v článku a není to nijak dlouhé čtení. Váš příspěvek v tomto světle vyvolává rozporuplné pocity.
Já jsem ten JEP právě četl a stále mi není jasné proč by tohle mělo být zrovna součástí JDK. Je pravda, že jsem ten komentář napsal asi blbě a bez kontextu si to může někdo špatně vyložit (jak je asi s diskuze vidět, ale zase je to komentář ke zprávičce, kde je to snad jasné). Takže správně jsem měl napsat:
Zda někdo stojí o statický webový server s Java.
No nevím, jestli bych chtěl banku s Internet Bankingem postaveným na bastelní v Pythonu... To dneska už zavání stejným amatérismem jako školácké projekty v PHP. To raději slušné a výkonné bankovnictví v Javě...
Jinak doporučuju dostudovat si rozdíl mezi jednorázově spouštěnými skripty v jazycích jako Python nebo PHP a deployovanou Java aplikací do Tomcatu. Má to docela dost zásadní "architektonické" rozdíly.
Což ale nic neříká o Pythonu. Pokud chceš robustní řešení, tak architektura je to hlavní. Jazyk a nástroje můžou pomoci, ale nezachrání tě. Zkušený člověk zná limity vývoje v Pythonu a nedělá v nich molochy, které Java sice unese, ale popravdě, je to spíš z nouze ctnost. BTW: Pokud se prosadí GraalVM, myslím že těch projektů v Pythonu, Ruby v kombinaci s Javou může přibývat.
Jenže se vyjadřujete naprosto k něčemu úplně jinému. Kouknul jste se co ten JEP 408: Simple Web Server je? Je to jenom statický webový server to nikdo normální v produkci používat nebude.
Provide a command-line tool to start a minimal web server that serves static files only. No CGI or servlet-like functionality is available. This tool will be useful for prototyping, ad-hoc coding, and testing purposes, particularly in educational contexts.
Když už chcete někoho poučovat, tak byste se měl podívat, jak to je právě třeba s Python abyste tu nepsal nesmysly o deployování.
V době kdy jsem dělal v Javě a všude java nainstalovaná byla (což dnes zdaleka neplatí kvůli licenci od Oracle), tak bych tohle uvítal. Dnes všude převládá Python, takže na use case "potřebuji zobrazit tohle v prohlížeči" je to jedno a člověk sáhne po tom co je zrovna nainstalované. Mimochodem, jednoduchý web server dneska spustíte i v PowerShellu ;)