The client speaks one language (JavaScript), the server speaks another (usually not JavaScript). To cross the boundary between the client and the server, the code must be translated into a different language.
What does that even mean? Javascript is a programming language, not a data format. To communicate with the server, all the client-side Javascript needs to do is exchange information with the server in a data format (e.g. JSON, XML) that both the client and server can parse.
I can't imagine any architecture that would not require devices to communicate with each other using a common data format.
It means that as you move functionality (not data) between the server and the client, you need to rewrite your code. For example if you do input validation, you need to write the same code twice: once in {Java, Python, Ruby} or whatever the server side language is, and the second time in JavaScript so you can alert the user that the data in some fields doesn't pass the checks.
This is not a problem if you are using GWT, or if you do serverside programming in JavaScript.
Okay, that makes more sense - but this still isn't as big a problem as you suggest. There are already plenty of options to generate client-side javascript via the server-side web application framework.
What does that even mean? Javascript is a programming language, not a data format. To communicate with the server, all the client-side Javascript needs to do is exchange information with the server in a data format (e.g. JSON, XML) that both the client and server can parse.
I can't imagine any architecture that would not require devices to communicate with each other using a common data format.