Co takhle zprávičkou, u které debatujete? :-D
Jinak celkově se webapps přesouvají hodně na klienta, takže "tradiční web jazyky" mají utrum a jejich podíl na web aplikacích klesá - to je důvod, proč je u Pythonu a Ruby "web" málo populární. (Backendy pro Web se do té statistiky asi nepočítají?) PHP je v tom webu mnohem víc "zadrátované" a nemá moc jiné použití, takže tam ten web stále figuruje.
Z Vasich minulych komentaru vim, ze delate v typescriptu. Delal jste nekdy s Djangem nebo Rails? Podle me hlavni feature tech frameworku je ORM, nad kterym jsou postavene, pro nodejs nic podobneho neznam, Delam v obojim, v nodejs typicky musite napsat mnohem vic kodu.
Navic Javascriptu chybi nektere syntakticke featury (pretezovani operatoru), aby bylo mozne vytvorit pekne ORM s DSL. Kvuli tomu nejde vytvorit ani naivne se tvarici bigint.
24. 5. 2022, 12:33 editováno autorem komentáře
Pointa mého příspěvku je právě v tom, že se aplikace z modelu Django / Rails / Wicket / ... přesouvají na klienta, kde přistupují k datům přes REST / GraphQL API. (Samozřejmě taková (klientská) aplikace ORM ani DSL nepotřebuje.)
Mimochodem ORM, to je taková ta věc, na kterou se tady v diskusi vždycky snese smršť zhnusených komentářů jak je to celé odporně pomalé, neefektivní a vlastně zcela nepoužitelné? ;-)
Psal jsem nějaké věci s ORM v Javě / Kotlinu a pak sever v TS, no zas takový rozdíl to pro jednoduché věci není. Cool začíná být ORM až v okamžiku, kdy chcete traverzovat po vazbách mezi objekty a ono vám automaticky dohrává potřebná data. Ale tady jsme pak u toho výkonu. V bance, co jsem dělal, sice měli v BE ORM (Hibernate, myslím), ale dotazy stejně dělali přes nativní query, právě kvůli výkonu.
A k čemu takový nativně se tvářící BigInt je? Osobně mám rád, když je z kódu jasně vidět, co se tam vlastně děje a to s přetěžováním operátorů moc nejde dohromady. Proto ho spíš nemám rád, i když u čistě numerických věcí jako je BigInt ho ještě uznávám. Když ho v JS / TS nemám, tak prostě píšu výrazy s BigIntem pomocí funkcí (a.add(b)). Pokud celý BE není jen o tom, tak se to dá snést.
> Podle me nemate moc predstavu co tento typ frameworku resi (API, uzivatelsky model ...), a neresi (nic ani vzdalene podobneho wicketu).
A na to jste přišel jak? Wicket jsem zmiňoval kvůli tomu, že se zde bavíme o použití pro web. API s ORM / DSL to téhle kategorie nespadá (minimálně z hlediska toho reportu), i když ho třeba v důsledku webová aplikace používá.
Nechápal jsem negativní postoj některých lidí k ORM do té doby, než jsem se setkal s ORM v PHP (Doctrine) a JS (TypeORM) a lehce zahlídl Javu (Hibernate). Musím říct, že to, co jsem, zvyklí na Django (a malinko SQLAlchemy) považoval za naprosto samozřejmé, v jiných ORM buď zcela chybí nebo je tak strašně přes ruku, že to opravdu moc nedává smysl.
Pro RESTové rozhraní nad DB u menšího až středně velkého projektu je pro Django jednoznačnou volbou. Jestli to autoři průzkumu považují za web vývoj nevím - pročetl jsem celý ten report a nijak to tam není vysvětleno.
V JS jsou lepsi ORM nez TypeORM, ktere je snad uz mrtve. Sequelize je pouzitelne, i kdyz ne moc moderni. Narozdil od TypeORM ho autori dotahli do pouzitelneho stavu.
Libi se mi Objection ORM, je postavene nad knex, coz je pouzitelny query builder.
Podle me rozsireni ORM-based frameworku v JS a zejmena TS brani lpeni na oddeleni DB entit a aplikacni logiky do oddelenych vrstev. Dogma, ktere pochazi asi z Java sveta.
Django a Rails tezi z navazanosti aplikacni logiky na DB modely, tzv fat-model pristup. V node byl tomuhle pristupu nejbliz asi mongoose a MERN stack. Sveho casu popularni.
Psal jsem nějaké věci s ORM v Javě / Kotlinu a pak sever v TS, no zas takový rozdíl to pro jednoduché věci není. Cool začíná být ORM až v okamžiku, kdy chcete traverzovat po vazbách mezi objekty a ono vám automaticky dohrává potřebná data. Ale tady jsme pak u toho výkonu. V bance, co jsem dělal, sice měli v BE ORM (Hibernate, myslím), ale dotazy stejně dělali přes nativní query, právě kvůli výkonu.
Problém je, že Hibernate málokdo rozumí a spousta lidí ani netuší, že je tam ještě nějaká cache. Tyhle lidi pak všude vysvětlují, jak je Hibernate špatný. Jasně s native query a využití všech funkcí databáze lze dosáhnout lepšího výkonu. Jenže to není hlavní cíl ORM, důležité je aby se s tím snadno dělalo a aby člověk pořád nemusel řešit, jak je to v té databázi provázané atp.
Hlavni ucel ORM je popis vztahu mezi entitami. Potom muzete psat veci jako
User.objects.filter(groups__permissions=p)
Coz vytvori join pres 4 tabulky, bez rucniho psani podminek joinu
Cache na urovni ORM jsem nikdy nepouzil.
Vetsinou chcete ziskat cely vysledek jedinym dotazem, jehoz vygenerovani muze ORM usnadnit, jinak nemuzete pouzit strankovani s generickym razenim.
25. 5. 2022, 12:41 editováno autorem komentáře
Podle mne je to dané transpozicí mezi anketou a tabulkou s výsledky. Dotaz v anketě byl „čím se zabýváte“, kde byl mimo jiné web. A pak ti lidé odpovídali, jak moc jsou oblíbené jazyky. Takže lidé, kteří primárně dělají web (JavaScript, React, Vue, HTML, CSS apod.) odpovídali, které jazyky jsou u nich neoblíbené – a vyplnili tam tyhle. Otázka je, proč je vyplnili – jestli v nich reálně něco dělají (třeba to používají při DevOps), nebo jestli to je jenom „mám na to silný názor z internetových diskusí, ale v životě jsem v tom nic nenapsal“.
C# sa nicim velmi nelisi od Javy. V kazdom pripade ma horsie kniznice a mensi vyber kniznic na prislusne domeny. V Jave su predpripravene kniznice a frameworky prakticky na vsetko. A jedna velka vyhoda je ze Javu mozete bezat na ovela vacsom mnozstve platforiem nez C# ktory bezi iba na Windows. Samozrejme s plnou podporou od vyrobcov.
Co takto opustit rok 2010 a aktualizovat si informacie o c#?
Horsie kniznice? Ani nahodou.
Menej kniznic? Asi hej, ale kvantita nie kvalita (pozdravujem npm).
C# beziaci na Windowse? Tiez to nie je pravda.
Navyse C# je objektivne lepsi jazyk, od ktoreho java uz desat rokov odpisuje. Navyse dotnet webovy ekosystem zvlada viac requestov a ma lepsiu performace ako taky Go.
Nie že nechce, ale hláška "otevřené novým zkušenostem" reálne neplatí pre zabehnutých programátorov. Je veľmi málo takých, ktorí by boli ochotný reálne prejsť z jedného jazyka/frameworku na iný, hlavne v enterprise prostredí.
A mladým prídu objektové typovo silné jazyky všeobecne príliš obmedzujúce a tak pozerajú po alternatívach ako Javascript, ktorý umožňuje písať výrazne rýchlejšie jednoduché veci, ktoré netreba do budúcna udržiavať
Core neobsahuje vsetko co je pre vyvoj aplikacii potrebne. Kniznice ktore som ja potreboval boli v pripade .Net abandonware alebo o major release pozadu.
Asi by ste si mal obcerstvit informacie o Jave. Nemyslim ze by nejako zaostavala nie ze by mi tam nieco od Java 8 chybalo. Vsetko je to v podstate nejaky syntakticky cukor. Zaujimave zmeny su mozno VectorAPI alebo virtualne thready.
Ked budete mat nieco ako Spring mozno to zacne niekto pouzivat.
Ved ja som pisal co ma Java a presne ako pisete preco by som mal teraz pouzivat .Net? Vsetko co pouzivame je napisane v Jave. Od Eclipse a IDEA, cez Kafku, Pulsar az po Hibernate, Spring, ... kde hladat ekvivalenty? V Jave si najdem do par minut inac ohnutu kniznicu ktora lepsie vyhovuje mojim potrebam. Ak mam pravdu povedat v poslednej dobe som nevidel novy projekt na .Net-e. Udrzuju sa stare .Net appky alebo nove sa robia v Jave.
Každý sa pohybujeme v inom prostredí a vy ste práve v prostredí Java vývoja, preto vidíte nové projekty v Jave. Sú firmy, ktoré fungujú aj v nových projektoch na .Net a stále vznikajú nové.
IDE je tu Visual Studio, prípadne Code, k Hibernate máte alternatívu v podobe Entity Framework, Spring nemá priamu alternatívu to uznávam, existujú ale možnosti ako MAUI (bývalý Xamarin Form) či písanie v QT/GTK. Ostatné Vám neviem povedať nakoľko daný typ knižních u nás nepoužívame
.NET core je kripleware nie framework. Preco by som to mal pouzivat ked mam Javu? Nasadit do firmy Java aplikaciu je znamy proces, nastavenia, logging, monitoring, zabezpecenie, ... pre beznu firmu vsetko zname a davno vyriesene problemy, nie je treba nic menit, kazdy to pozna. Teda aspon tam kde robime uz asi 20 rokov s Java aplikaciou nikdy nikto nemal ziadny problem. Dnes v case Dockera, Alpine linuxu ... je cloudovy beh Windows oproti Linuxu pain in ass.
:-D dajte mi dobry dovod, rad sa nieco nove naucim. AK si myslite ze v Jave sa nie je co nove ucit tak to asi fakt nesledujete. Ak si myslite ze nove je lepsie tak to tiez neplati. Ja casto nic 'lepsie' nevidim ani na novych verziach Javy ako som pisal, syntax sugar nie je pre mna 'lepsia' feature. Feature je pre mna paralelny garbage collector nie usetrenych 10 znakov na riadku. .Net nema absolutne nic lepsie nez Java.
A vy ste prilis mlady aby ste chapali suvislosti. Ked pridem do banky a poviem ze idem nasadit nejake WARko tak sa iba dohodneme ci mi daju nejaky ich server ktory maju prednastaveny a ponapichovany na vsetky ich interne nastroje a ja prakticky dodam iba to WARko. Ked poviem ze ideme nasadzovat na Linux nejaky .Net core tak sa prezehnaju a vypisu si dovolenkove listky na dni ked sa to ma spustat do produkcie.