+++
date = "2017-02-16T23:29:45+01:00"
title = "Plugins in Go 1.8"
tags = [ "tech", "go", "go1.8", "golang", "plugins" ]
categories = [ "tech" ]

+++

This is a talk I gave at the Go 1.8 Release party at the [Golang Paris Meetup](https://www.meetup.com/fr-FR/Golang-Paris/events/236696058/). Source for the slides and the code is on Github (see below).

<iframe width='100%' height='600px' src='https://gitpitch.com/GildasCh/go-plugins-demo/master?grs=github&t=white' frameborder='0' allowfullscreen></iframe>

## Get the demo and check out the source code

On Github: https://github.com/GildasCh/go-plugins-demo

![plugins.gif](/plugins.gif)

## Interesting feedback and unanswered questions

- If plugins cannot be closed is there any confliting corner cases?
  - It turns out that yes, there can be. I got some "plugin already
    loaded" and "plugin already initialized" error when loading too
    plugins that were built with the same name... **TODO**: investigate
    more on this (results will be posted here).
  - ```plugin: plugin _/usr/src/pluginSrc/brightness already loaded
  fatal error: plugin: plugin already loaded```

- When are the plugins coming to Windows?
  - One of the promise of Go is that it runs the same of a large
    variety of OS and processors, plugins should therefore be ported
    to Windows. I did not found talks about this, if I do, I'll post
    it here.

<center><blockquote class="twitter-tweet" data-lang="en"><p lang="en" dir="ltr">.<a href="https://twitter.com/GildasChabot">@GildasChabot</a> explains the concept of plugins in <a href="https://twitter.com/hashtag/golang?src=hash">#golang</a> 1.8.<a href="https://twitter.com/hashtag/goreleaseparty?src=hash">#goreleaseparty</a>. First time the language supports dynamic linking. <a href="https://t.co/IIKbiTFiL5">pic.twitter.com/IIKbiTFiL5</a></p>&mdash; Mailjet Developers (@mailjetdev) <a href="https://twitter.com/mailjetdev/status/832298868884766720">February 16, 2017</a></blockquote></center>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
