Web Applications – Importance of Using the Same Language for Client and Server

client-sideserver-sideweb-applications

I have been evaluating architecture solutions for a mobile project that will have a web-service/app in addition to native apps and have been looking at various libraries, frameworks, and stacks like Meteor, this being a sort of "open stack package framework", is tightly bound with Node.js.

There is a lot of talk about the benefits of using the same language both client and server side, and I'm not getting it. I could understand if you want to mirror the entire state of a web application on both client and server but struggling to find other wins… Workflow efficiency?

I'm trying to understand why client/server language parity is considered to be a holy grail. Why does client/server language parity matter in software development?

Best Answer

On the PRO side:

  • If schemas and code can be reused by both sides, there is a lot of efficiency in implementing similar logic and data just once.

On the CON side:

  • The client may be primarily a view that is well suited for a mark up or script language, while the server may be primarily business logic that is better suited to a different language.

In web development, languages have proliferated, creating powerful tools for specific parts of the system as well as the need for many specialties to be learned by developers or teams of developers. In other areas like transaction processing or embedded systems that follow a systems of systems design approach, there may be savings from a common language.

New Javascript frameworks seem to come at us very fast, and some work is done to bundle APIs for the back end and tools for the front end. It might be smart to keep flexibility and separation of concerns between client and server side code so that you are free to float between them without being too stuck for too long with a particular tool.