Entries:
Comments:
Posts:

Loading User Information from Channel 9

Something went wrong getting user information from Channel 9

Latest Achievement:

Loading User Information from MSDN

Something went wrong getting user information from MSDN

Visual Studio Achievements

Latest Achievement:

Loading Visual Studio Achievements

Something went wrong getting the Visual Studio Achievements

E2E: Erik Meijer and Robert Griesemer - Going Go

Download

Right click “Save as…”

At Lang.NEXT 2012, several conversations happened in the "social room", which was right next to the room where sessions took place. Our dear friend, Erik Meijer, led many interesting conversations, some of which we are fortunate enough to have caught on camera for C9.

Here, Erik interviews Go language designer Robert Griesemer. Go is a concurrent, garbage-collected systems programming language with fast compilation. See Robert's Lang.NEXT 2012 Go presentation.

Topics in this E2E conversation include:

Is Go native? What is native, exactly? Why Go?

Tune in.

Thank you Robert and Erik for the fascinating conversation.

Tags:

Follow the Discussion

  • felix9felix9 the cat that walked by itself

    Very interesting ! Go Go Go

  • ZuraZura

    Thanks for the interesting talk!

    I have a question. Instead of using defer:

    f, _ := os.Open("somefile")
    defer f.Close()

    Why not just have special method, like C++'s destructor, which is fired automatically at the end of scope? You can still handle the plain memory in the GC, but the destructor will handle other resources. What is the principal difference between calling Close() in the destructor vs defer-ing Close()?

    Thanks,
    Zura

  • mvrakmvrak

    Zura: In Go, the file handle could have been passed a long a channel to somewhere else. Keeping the call of the "destructor" in a defer statement also increases clarity.

    There are many compromises between clarity, garbage collection, and general feature sets. Go is heavily biased towards clarity.

  • mvrakmvrak

    Note that SetFinalizer exists, which is essentially a destructor triggered by the Garbage Collector. http://golang.org/pkg/runtime/#SetFinalizer

  • BrechtBrecht

    Note that SetFinalizer is not guaranteed to run.

  • ZuraZura

    @mvrak:
    The finalizer is called by GC, i.e. it is nondeterministic, it might not be called until the end of program.
    The defer-ed function is called at the end of the function.

Remove this comment

Remove this thread

close

Comments Closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums,
or Contact Us and let us know.