Odkaz 1) Java - chybí rozumně udělaná kompozice (tj. vícenásobná dědičnost). Autoři Javy to samozřejmě ví a snaží se "tunit" interfacy, ale dokud v něm nebude interní field a protected metoda, je to pořád napůl.
Maven - máme projekt s 10tis. tříd a pom.xml jen několik. Je každého věc, jak si projekt rozseká do modulů. Ano, pluginy do mavenu jsou špatně kvůli verzování, ale nakonec nikdo jej nenutí, aby používal zrovna maven.
Odkaz 2) Bylo to tu diskutované nedávno, autor píše v JS a s Javou nemá větší praktické zkušenosti, to je vidět. FP rozhodně není řešením jím uváděných problémů.
Odkaz 3) Chyby OOP ukazuje na špatných modelech dědičnosti (např. obr.
https://miro.medium.com/max/500/1*o-Mdcrd9B5hTrrQKhcP8yA.png ) . Opět dochází k tomu, že chybí (de)kompozice, což chybí.
Pevně věřím, že se rozhraní v javě postupně změní na variantu traitu. Již to tak pár let od zavedení defaultních metod používáme, ale citelně chybí fieldy a protected default metody, aby se nenafukovalo API.