Sunday, May 30, 2010

Go language

In the galaxy of languages, it is always hard to choose one ; we can take a widely spread general purpose language like Java for instance, or a domain specific language like SQL. We usually choose both in many cases.
Go language has been developped by Google to be a system oriented programming language, even if it has IMO the ability to be a general purpose programming language . The principles which have conducted to its elaboration are :
  • simplicity
  • efficiency
  • safety
  • quick compilation time
  • ubiquity
Each time we need very high efficiency, we need to go at lowest level as possible wrt to the time we have to develop the application. Very often, C or C++ are chosen for this purpose, even if they need very high skilled developpers to handle the complexity we have to face if we don't want to have serious problems later.
Go (golang) is one of the language which may replace C or C++ in a near future because of combining efficiency, safety and simplicity. It also introduces some very noticeable features like goroutines and channels which may highly simplify the multi-thread development task.
Up to now, Go lacks mainly of IDE and debugger to help writing very large scale applications. It lacks also the ability to load dynamic libraries but it is a question of time. But the language itself and its compiler(s) are very robust and already ready for developping mature software.
Here are some useful pointers for Go :
To conclude, the little I see and experienced with Go pleases me a lot ; I'm very confident in its future, and probably its adoption by me for specific low level tasks.

No comments: