- комментарий 0:
From: David Rabkin
Date: 2021-03-19 18:15:07Z
Пытались мы засунуть Гоу в IoT устройство на работе, Arm7, 4 кора,
памяти гигабайт — должно работать. Проблема оказалась там, где не
ждали: футпринт у Гоу в десятки раз больше, чем у Си. А нас
ограничения жесткие на размер флеша, несколько мегабайт. Гоу не влез
даже в одном процессе. А что бы было, если задизайнить несколько
процессов с гошной-то статической линковкой? Рынок IoT всегда будет с
ограничениями, потому что экономят каждый цент, а продают миллионами.
Гоу пока не годится для этого. Почему так?
- комментарий 1:
From: Sergey Matveev
Date: 2021-03-19 18:20:04Z
*** David Rabkin [2021-03-19 20:12]:
>Пытались мы засунуть Гоу в IoT устройство на работе
>Гоу пока не годится для этого. Почему так?
Простота, эффективность (в смысле статической линковки), скорость
загрузки/компиляции, ещё раз простота. Почему должно быть по другому :-)?
Могло быть, но оно не так. Можно много чего хотеть и ожидать от
языка/платформы и пытаться всех удовлетворить, но можно нигде не
преуспеть. Go пускай для IoT не годится, зато на полноценных компьютерах
отличен. Сейчас несколько сот мегабайт флеш-памяти может и дороги -- а
завтра меньше просто уже не будут делать.
- комментарий 2:
From: David Rabkin
Date: 2021-03-19 18:30:10Z
>Сейчас несколько сот мегабайт флеш-памяти может и дороги -- а завтра меньше просто уже не будут делать.
Точно! Это то, что случилось с гигагерцами и рамом, но пока не
случилось с флешем.
Я как раз адвокат Гоу. Пытался разнообразить текущую работу, не
получилось, мы на Си/Си++ пишем.
- комментарий 3:
From: kmeaw
Date: 2021-03-19 23:08:39Z
> футпринт у Гоу в десятки раз больше, чем у Си. А нас
> ограничения жесткие на размер флеша, несколько мегабайт. Гоу не влез
> даже в одном процессе.
> а завтра меньше просто уже не будут делать.
> Точно! Это то, что случилось с … рамом
А не пробовали пожать upx'ом?
Или собрать с помощью gccgo? Когда у меня была похожая задача (надо было
запустить клиента оверлейной сети на mipsel-роутере с 8M flash), gccgo
делал бинари сильно меньшего размера.
- комментарий 4:
From: David Rabkin
Date: 2021-03-21 13:48:01Z
>А не пробовали пожать upx'ом? gccgo?
Не пробовал, я тот еще специалист в Гоу :-) upx, вроде, только в два раза:
https://jmrobles.medium.com/gos-best-friend-upx-the-executable-compressor-e4f4872f1d8a
gccgo выглядит круто, посмотрю.
У нас как раз 8M flash. Мы новый проект начинали, интуитивно только
могли оценить, как он разрастется, и какие еще библиотеки понадобятся.
Сошлись на Си. Плюсы отвергли как зло.