Илья
и живет в проде, хотя я никуда не завозил
Daniel
nats лучше
Илья
но проблем с gc я там не наблюдал
Daniel
а их там и нет
Daniel
snip
Daniel
не падает
Andrei 🦉
и как оно? реально готовая альтернатива кафки или сыровато пока?
snip
А nsq падает? При каких условиях?
Sergei
не падает
лучше расскажи как себя ведет когда падает
Daniel
:)
Илья
как пример нагруженного, большого проекта, centrifugo
Daniel
я не знаю, на самом деле
Sergei
потому что пока не падают - они все котики
Daniel
мы его тестили, но в прод так и не взяли
Daniel
nsq у нас и на тестах падал, под нагрузкой
Илья
а то, что есть слабые разработчики, которые, зачем то, пилят на go круды, а не генерят код из сваггер доки, это не проблемы языка
Andrei 🦉
Andrei 🦉
простите, не удержался
Илья
я вам не друг, коллега, у вас вечно бомбит
Daniel
тааааак
Eugenii
сильные обычно сами столы носят
Daniel
коллеги, не надо развивать эту тему, пожалуйста
Co(n)stantine👨🔬
Biscuit is a monolithic, POSIX-subset operating system kernel in Go for x86-64 CPUs. It was written to study the performance trade-offs of using a high-level language with garbage collection to implement a kernel with a common style of architecture. You can find the research paper about Biscuit here: https://www.usenix.org/system/files/osdi18-cutler.pdf
https://github.com/mit-pdos/biscuit
Nikita
Roman
Мерль
Nikita
Мерль
Roman
Need a new kernel? Use a proper systems programming language: https://www.redox-os.org
писать OS kernel на языке без статической безопасности, GC и относительно слабой оптимизацией компилятором это блин просто маразм как по мне..
Daniel
коллега, это все досужие рассуждения
Daniel
люди взяли и запилили
Daniel
и выводы их позитивные
Nikita
если там все через unsage.Pointer, то го от си ничем не отличается)
Мерль
я вот читаю — судя по всему на бенчмарках они сравнивали по сути производительнсть ассемблерной части бисквита с ядром на C
и всё на unsafe.Pointer насколько я понимаю
ну такое
опять же, как гошный GC себя поведёт в долгом режиме работы — бабка надвое сказала
В общем-то подобные ядра пишут и писали на любом языке, вплоть до js и lua
к тому же они по сути сделали borrow checker а-ля руст для написания ядра
с другой стороны работа всё-таки интересная, правда код, судя по всему, увидеть нельзя
Roman
Nikita
Мерль
Мерль
про borrow checker там что нибудь написано?
Ну не совсем BC, но очень похоже на рустовские проверки
6.3
Static analysis to find s
We have developed a tool, M AX LIVE, that analyzes the
Biscuit source code and the Go packages Biscuit uses
to find s for each system call. The core challenge is
detecting statically when allocated memory can no longer
be live, since many system calls allocate memory for
transient uses. Other challenges include analyzing loops
with non-constant bounds, and determining reservations
for background kernel activities that are not associated
with a specific system call.
Roman
hmmm
Nikita
Roman
кстати мне сегодня во сне мысль пришла..
func Take(mutableInt int) {
/*...*/
}
func main() {
var immutableInt immut int = 42
Take(immutableInt) // Compile-time error
}
поумолчанию, следуя правилам, мы не можем принять immut int как mut int потому-что immut->mut casting нелегально
но... это-ж скалярный тип.. он же всё-равно копируется.. для него же можно сделать исключение и разрешить в данном случае данный cast. Т.е. разрешить casting скалярных иммут в мут (но только скалярных).
Daniel
Roman
Nikita
Roman
эднако это актуально только в случае mutability by default, в ином случае когда поумолчанию всё имутабельно такой проблемы быть не должно
Roman
workflow не сильно изменится, а вот O&B меняет workflow коллосально
Vadim
Результаты бенчмарков Go 1.0 c Go 1.11 от Дейва Чейни. 🧔💪
https://gist.github.com/davecheney/311169ef04e27fe469ca91859af9cdff
Vadim
Dmitri
Dmitri
Anonymous
на ios тоже
Илья
Взять любой роутер, например, chi
Roman
Go 2.0 не будет ещё очень долгое время, лет эдак 5
Roman
Go2 это лишь маркетинговое название Go 1.13 and beyond
Roman
хотя на самом деле, если они будут внедрять новые ключевые слова типа check тогда я думаю это нарушает обратную совмсетимость, однако это конечно спорный вопрос
Roman
потому-что сама спефицификация языка не ломается, но вот старый код может не скомпилиться по причине конфликтов имён символов с новыми ключевыми словами
Aleksandr
руками парсить r.Url.Path
Aleksandr
регулярка
Aleksandr
не мучай себя, если речь не идет о паре хэндлеров. возьми chi
Aleksandr
зачем?
Aleksandr
нормально. пиши в контекст, а не в r.Url.Path
Aleksandr
зачем?
Aleksandr
это запрос. запрос не надо менять.
Aleksandr
r.Url.Path - это урл запроса. Запрос менять не надо.
Veaceslav
Добрый вечер
Veaceslav
Мужики а что сейчас популярно из franework - ов на ГО ?
Roman
Veaceslav
По большей части для API нужен
Veaceslav
А кроме стандартных ?
Veaceslav
А что на счёт GIN или Echo ?
Great
gin ещё довольно неплох, но стандартная всё равно лучше
🎉
Да сам напиши, это не сложно.