re: Nope, it does not check anything.

Nil interface means everything so no need check.
If you use a concrete interface it will check I think(not sure).

I ever saw a one line code sample to check. like this:

anInterfaceVar = (* SomeStruct)()

It checked the eat method.

package main

import "fmt"

type Fruitable interface {
    eat()
}

type Fruit struct {
    Name string  
    Fruitable  
}

func (f Fruit) want() {
    fmt.Printf("I like ")
    f.eat() 
}

type Apple struct {}

func (a Apple) eat() {
    fmt.Println("eating apple")
}

type Banana struct {}

func (b Banana) eat() {
    fmt.Println("eating banana")
}

func main() {
    var f1 = Fruit{"Apple", Apple{}}
    var f2 = Fruit{"Banana", Banana{}}
    f1.want()
    f2.want()
}

Correct. As I said, Go is statically typed until it is not.

How much point of 10 will you give to GO?
I will give these languages 7/10 point. No perfect.

Elixir is good but has a long way to enter top 10.

Top 10 of what? Of most hyped languages? Of most PRed languages? Of the languages with the lowest entry threshold?

Elixir leverages ErlangVM. When there will be somewhat like WhatsApp built in Go (hint: never) I am to consider Go being a mature language.

How much point of 10 will you give to GO?

2/10.

Docker is built in Go. Every language has its pros and use case, IMHO.

Elixir maybe suitable for very large app.
But it cannot deployed as one file, type is another point.

Docker is built in Go.

With all due respect, I have created the docker-like container myself back in 1998 when there was a need. In pure c. Of course, docker now is more complicated by orders of magnitude, but still.

But it cannot deployed as one file

Eh? Sure it can. Nobody needs it though, that’s the thing.

code of conduct - report abuse