I watched a Stanford University lecture with as guest speaker Rob Pike, who is a Principle Engineer at Google. He’s part of the team who developed the computer language Go!.
He made some interesting comments on why specific languages exists. First have a look at these statistics (source TIOBE index November 2011):
Types checked compile or runtime:
|Category||Ratings Nov 2011||Delta Nov 2010|
|Statically Typed Languages||63.4%||+0.5%|
|Dynamically Typed Languages||36.6%||-0.5%|
Statically type languages on top. Clear winners. There is some discussion going round which suggest the TIOBE index is biased towards languages which are hard to program in since people ask more questions about it (number of results returned by a search engine is one of the criteria of the index). This of course assumes a statically type languages is de facto difficult.
An interesting point Rob Pike makes is that most languages build as a reaction to these hard to program statically typed languages happen to be dynamically typed. He says ‘Perhaps as a result, non-expert programmers have confused “ease of use” with interpretation and dynamic typing.’
‘Statically typed’ and ‘hard to program’ are not necessarily linked. They are two separate issues.
If you start using Go! the first thing you notice is the super fast compile time. The type checking is clearly not an issue. Even big programs compile almost instantly.
The implicit variables declaration system is easy too:
var x, y, z int
var c, python, java = true, false, “no!”
or within functions
lala := “i am a string”
There are lots of other reasons why Go! is an interesting language, but not having to deal with the tiresome static vs dynamic type discussion is (for me) a very good reason to have a look at this new language.