Upload
devday
View
581
Download
0
Embed Size (px)
Citation preview
Кто такой C?
Изобретён в 1969–1972 гг. byDennis Ritchie, Ken Thompson,Brian Kernighan в AT&T Bell Labs
Почему нельзя без C?
• Стандартный ABI• Вообще всё работает на C• Over 109000 библиотек
Почему не хочется C?
• Слабая типизация• Низкий уровень• Небезопасный• Легко накосячить• Долго отлаживать
Если не C, то кто?
Go
Кто такой Go?
Изобретён в 2009 г. by KenThompson, Rob Pike, RobertGriesemer в Google
Кто такой Go?
• Строгая типизация• Memory safe• Concurrency• Интерфейсы• Reflection• Инфраструктура и stdlib
Пример кода на Go
Пример кода на Go: import
C ⇔ Go
C ⇔ Go
$ go build
C ⇔ Go
C.CString(string) *C.charC.GoString(*C.char) stringC.GoStringN(*C.char, C.int) stringC.GoBytes(unsafe.Pointer, C.int) []byte
C ⇔ Go
– CPP только в комментах– Ручной контроль памяти
+ Доступно много библиотек+ которые приятно использовать
And...
Go ⇔ Erlang
Erlang-node
• Port Mapper Daemon (epmd)• Distribution Protocol• External Term Format• Node
Go-node
• github.com/goerlang/epmd• github.com/goerlang/dist• github.com/goerlang/etf• github.com/goerlang/node
github.com/goerlang/eclus
Go/OTP: gen_server
Go/OTP: process
Go/OTP: create node
Go/OTP: RPC
C ⇔ Go ⇔ Erlang
• http://golang.org• http://erlang.org• https://github.com/goerlang