Tam je u webovek strašný poser s tím, že tam neběží web stránka nějakým způsobem ve svém vlastním kontejneru, ve kterém by se mohly vytvořit javascriptové služby s obecnou platností. Protože to neexistuje, musí se znásilnit index.html a udělat ten root aplikace v něm. Jenže tím se přeruší standardní usecase pro HTML stránky, mezi kterými se pěkně proklikává a naviguje pomocí Zpět a Vpřed, protože překlikávání mezi HTML se nahradí javascriptovým nahrazováním obsahu na single page stránce. už tady ten fakt dává vzniku frameworkům, které nevyhnutelně mordujou standardní HTML.
Přitom by to bylo řešitelně přes Cookies, do kterých by si stránka ukládala datové struktury s globální platností napříč překlikaváním po HTML stránkách. To by pak způsobilo, že by mohly existovat service s globální platností. Proč se však dali cestou single page narovnáváků na ohýbáky, to nevím.
Jak já to vidím - a já vím, že do toho moc nevidím - tak by byl i na frontendu velice dobře uplatnitelný stejně jednoduchý framework, jako existuje třeba u Spring MVC. Mám view napsaný v JSP a do něj propaguju model. Všehovšudy k tomu potřebuju ve Springu vytvořit jen 3 soubory:
1. JSP view
2. @Controller s jedinou metodou
3. OOP model pro ten View
Je to velice přímočaré, dodržuje to standardní zaběhnutý systém HTML stránek, dají se tam používat standardní JS knihovny jako je Bootstrap atp., bez úprav. Místo toho to, co jde vidět v Angularu, připomíná spíše období Springu nekdy před rokem 2009, než byl Componentscan a Autowire. Dokonce bych řekl, že je to ještě horší a spiše to ukecaností připomíná nějakou starou Javu EE. A ještě se do toho přimíchal Node.js.
Zajímavě to vyřešil React.js, jenže neřekl bych, že líp. Ten zase totiž úplně zpřetrhal návaznost na klasické HTML a vytvořil tím totální atyp, ve kterém nejdou používat klasické JS komponenty aniž by měly svou (mnohdy nezdařenou) portaci do Reactu.
Takže zatímco v C#i v Javě se krásně přešlo na Anotace a všechno se stalo víc lightweight, tak frontend je těmi frameworky tak o 10 a více let pozadu.