In general see two main complaints against JS. The first is that people insist on thinking in terms of an OO abstraction model, when it isn’t. And the second is that they fail to recognize that JS is designed to be a “scripting” language and not a general purpose one. (NOTE: Yeah I know prototype based is a special case of OO, but that just confuses too many people).
Yes. Very many and they all worked out just fine.
There are two major reasons for unmanageable codebases. The first is wrong choice of major paradigm and the second is bad design. Of these two “bad design” is by far the bigger of the two problems. If one doesn’t understand the given language(s) one is writting in, then the design will invetitably be “bad”. WRT: “OO is a necessity”. Not at all. It is not well suited to a wide range of problems. There is no one paradigm that address all problems. IMHO multi-paradigm languages haven’t been a big success at large projects. This is not to say that languages like Ocaml are not useful…just pretty much everyone ignore the OO functionality. And if meta languages were the solution then we would have stopped at LISP variants. It’s quite rare for any large project for me to be happy with a single paradigm, static vs. dynamic typing, etc. This is why I’d love to have a good multi-paradigm high level IR with good inter language-OP support. Choose the best tool to attack the given sub-task.
SEE: Is a scripting language. I certainly wouldn’t open up access to raw concurrency related functionality in any wide target audience scripting language that I’d design. With the exception of coop-task switching hints in an actor like framework. If the embedded app wants to provide this kind of functionality…it can.
Well I’m far from clueless and I think that if one was creating a user-extendible single player game engine, then it would be difficult to beat embedding V8 in a native application.
Unless it’s a learning exercise I’d suggest not bothering. If you want actors in Java, just use kilim.
If the author of kilim (as well as some external people) are to be believed, then kilim outperforms Erlang.
SEE: Is not an OO language. (OK, OK…class-based OO)
This is a true statement about the both abstraction models of both OO and prototype based. The only difference is where the data is stored.
I find the “this is more OO than that” argument silly. But it’s hard to argue that there is a more “OO” language than SmallTalk. JS is closer to SmallTalk than Java is.
Maybe that’s what the author of JS was intending to say with the choice of names.
Not really.