Ease Your Journey of dynamic to statically typed language

Javascript being a functional and dynamic typed language provides a very big room for multiple design patterns that makes it a very powerful language for rapid development and wide unstoppable support of the developer’s community has made it grown beyond its capabilities. Prototypical inheritance builds the backbone to stand against strong typed and OOPs oriented language like Java and C++ but looking from a point of bigger scale its dynamic behavior reduces the bug discovery and code reliability capability of a developer. Typescript comes into the picture to rescue, but also increases the overhead of composing types for higher-order and composable functions that may not fulfill the desired code standards.

Go Initial release was in 2009 sound similar to release year of Node js (Javascript-run environment). Go seems to fill up all these gaps and provide a space for expandability in large scale applications. Backed by Google its library is pretty rich and helpful for the developer for not relying on any third-party library.

Eventually, Ryan Dhal who is the original author of Node js was interviewed in a podcast and shared his view over Go.

I think Node is not the best system to build a massive server web. I would use Go for that. And honestly, that’s the reason why I left Node. It was the realization that: oh, actually, this is not the best server-side system ever. — Ryan Dhal

This gives you one more reason to start picking up with Go. Go is the language for the cloud to increase productivity and the ultimate utilization of multicore systems. For an application that has Monorepo and a large codebase, Go seems to be a perfect fit.

Design principle

Go was developed out of frustration and to bring efficient compilation, efficient execution, and ease of programming for developers. Go has addressed the issues that make large-scale software development difficult. These issues include:

  • Slow builds
  • Uncontrolled dependencies
  • Each programmer using a different subset of the language
  • Poor program understanding (code hard to read, poorly documented, and so on)
  • Duplication of effort
  • Cost of updates
  • Version skew
  • The difficulty of writing automatic tools
  • Cross-language builds

#golang #go #google #javascript

A Guide for Javascript to Go
2.05 GEEK