One of the biggest problems/design mistakes in JavaScript is that programming on the server and the client are so different. The built-in verbs are the same, date verbs, string verbs, but the data models are completely different. And the modules are different. How did that happen. Why couldn't require work in the client? If I had been in charge, there would have been a rule that if we're implementing something in the client that has already been done in the server, we must do it the same way, unless it really is impossible, and it has to be very impossible. And vice versa of course.#