> Yes, you can, but you cant maintain them
Well, i'd say it's more difficult but doable.(And i'm not a fan of javascript).
But tools are being created to help developpers maintain these "large apps".
Code analysis engines are the most important thing to work on in javascript land.I wish more people would work on that instead of framework MVC X or Y.
Something like TernJS ,while not perfect is actually doing interesting thing in term of understanding js code and auto completing it.
Now as I always say,dont like javascript? doesnt matter there are 100 languages you can use instead of it and still write for the web. The only thing that is important imho is wether that language can directly talk to the DOM or not,and invoke third party libraries.
that's why i'm not comfortable with Dart(but maybe it has changed).
I was trying alternative languages the other day and wrote this with one of them,the only thing i had to do to make it run in a browser is eval the transpiled version :
(define $taskList ($ "#tasks"))
(define $input ($ "input"))
(define $form ($ "form"))
;; add task
(define (addTask task)
(let ((t ($ "<li>" {"class" "task link"} )))
(t.on "click" (lambda (event)
(t.toggleClass "stroke")))
(t.text task)))
;;on submit
($form.on "submit" (lambda (event)
($taskList.append (addTask ($input.val)))
($input.val "")
(event.preventDefault)))
FYI this is the classic todo list with jQuery
There is no shame into writing for the web and not using javascript.At the end of the day,only the product matters.