Weitere ähnliche Inhalte
Ähnlich wie Взаимодействие Go и C-библиотек. Go и Erlang (20)
Взаимодействие Go и C-библиотек. Go и Erlang
- 1. C ⇔ Go ⇔ Erlang
Максим Трескин
mtreskin@metachord.com
@mtreskin
9 февраля, 2013
- 2. Кто такой C?
Изобретён в 1969–1972 гг. by
Dennis Ritchie, Ken Thompson,
Brian Kernighan в AT&T Bell Labs
- 3. Почему нельзя без C?
• Стандартный ABI
• Вообще всё работает на C
• Over 109000 библиотек
- 4. Почему не хочется C?
• Слабая типизация
• Низкий уровень
• Небезопасный
• Легко накосячить
• Долго отлаживать
- 7. Кто такой Go?
Изобретён в 2009 г. by Ken
Thompson, Rob Pike, Robert
Griesemer в Google
- 8. Кто такой Go?
• Строгая типизация
• Memory safe
• Concurrency
• Интерфейсы
• Reflection
• Инфраструктура и stdlib
- 13. C ⇔ Go
C.CString(string) *C.char
C.GoString(*C.char) string
C.GoStringN(*C.char, C.int) string
C.GoBytes(unsafe.Pointer, C.int) []byte
- 14. C ⇔ Go
– CPP только в комментах
– Ручной контроль памяти
+ Доступно много библиотек
+ которые приятно использовать
- 17. Erlang-node
• Port Mapper Daemon (epmd)
• Distribution Protocol
• External Term Format
• Node
- 18. Go-node
• github.com/goerlang/epmd
• github.com/goerlang/dist
• github.com/goerlang/etf
• github.com/goerlang/node
github.com/goerlang/eclus
- 23. C ⇔ Go ⇔ Erlang
• http://golang.org
• http://erlang.org
• https://github.com/goerlang
- 24. Вопросы?
C ⇔ Go ⇔ Erlang
Максим Трескин
mtreskin@metachord.com
@mtreskin
9 февраля, 2013