1. monkey patching. Nevidím problém v možnosti přidat nějakou metodu jako takové. Ale v tom, že bez varování mohu přepisovat existující, to mi přijde nešikovné.
2. jazyk je to strašně ukecanej, na to, že toho zase tolik neumí
3. žádná podpora pro zapouzdření. Zapouzdřenost ala Python by mi stačila.
4. nejednotnost - třeba jazyk Lua má pro "nic" jen jednu hodnotu. A můžeš na ni normálně "šahat", chybu ti vyhodí tepreve nil of nil. Javascript má undefined, null, '', 0, false. Vytváření objektu jde taky dělat na několik způsobů, včetně pravěkého "new".
5. absence foreach mě furt nutila přecházet do transpilerů
6. má typy ale nemá statické typování - prvé bez druhého podle mého nemá vůbec žádný smysl. Buď ať je to dynamický jazyk bez typů (příklad Lua, Erlang), nebo staticky typovaný.
1. Ide to. Object.defineProperty()
2. Nepodstatné
3. Isteže nemá, je postavený na inom princípe, zrovnávaš hrušky s jablkami.
4. Nepodstatné, stačí vedieť čo robíš.
5. Má foreach.
6. Len tvoj názor. Ide použiť tak ako je, to nie je praktický problém.
1. To je něco jiného.
2. Tvůj názor.
3. Ptal si se na problémy, toto je problém. Že je to jeho princip, to vím také.
4. Tvůj názor.
5. Nemá foreach.
Pokud si se ptal na to, zda jde Javascript použít, tak ano, jde použít. Ale tvá otázka vyzněla, že se ptáš na praktické problémy. Ony samozřejmě souvisí s principy, které javascript má.
Největší praktický problém který mám se všema netypovejma jazykama je ten, že něco napíšu, spustím, doklikám si někam a pak mi to chcípne někde uprostřed. A můžu to samé znova. To mě děsně vadí.
Pak mám samozřejmě vůči němu ještě další výhrady, ale ty už souvisí asi spíše použitím javascriptu v prohlížeči než v něm samém.