Здравствуйте!
В последнее время относительно часто слышу (вижу) мануалы о том как "python" и "go" подружить. Все это делается через, назовем это "C-API".
Но, если честно, я не понимаю, зачем это делать. Просто "python" и "go" имеют смежные области применения (как я понимаю), а библиотеки (например, вычислительные) отдельные для "python" можно и на "C" писать, чтобы не городить API-монстров. В моем понимании в такой связке (python-C-go), питон можно вообще выкинуть, зачем в такой связки используется питон? т.е. "go" прибавляет скорости обработки соединений, "C" - пусть будет математика, а "python"? Что делает "python"?
Спасибо.
А зачем нам другие ЯП если всё можно на C написать ?)
А вообще для Питон разработчика проще освоить Go чем Cи и сравнительно быстро начать оптимизировать питон при помощи Golang -a. Я видел как люди большие проекты переписывают на Go путём вынесения тяжелых кусков в Go и со временем вообще уходят от питона.
Артем Кисленко: это не юзают в проектах которые наччинают писать заново. Это нужно для больших проектов которые не так то просто даже за 2 года переписать на другом ЯП.
OnYourLips: С далеко не самый простой. На изучение всег его тонкостей может уйти порядка 5 лет (и один х. вы все их знать не будете). Тот же пхп за 2 года выучить всю стандартную библиотек вполне реально и даже 90% фич.
Я видел как люди большие проекты переписывают на Go путём вынесения тяжелых кусков в Go и со временем вообще уходят от питона.
Что за проекты?
нет там никаких тонкостей, чтобы по 5 лет учить.
Если вы можете написать на языке всё что угодно, включая всё что уже написано на текущий момент и сделать это без шпаргалок то да, вы, видимо узнали все тонкости... за пару лет уложитесь? А то тут разработчиков сложно хороших найти, а отличных и подавно.
Oleg Shevelev: "что за проекты" Я прямо сейчас переписываю по немного на Go сервис для "пиара" в вк (накрутка лайков и т.д. ) Веб морда так и остаётся на питоне но а вот демон для обмена лайками и т.д. будет на Go
Владимир Грабко: про то что вы пишите и пишите много я в курсе, вы выразились так как буд-то у вас данные по другим компаниям или группам разработчиков. Что сильно разное.
разработка на python куда быстрей чем на Go, но производительность меньше
скрещивают чтоб компенсировать потерю производительности в особо узких местах, при этом не переписывая весь проект на Go
если не знаете где применить, вам пока оно не надо
я бы для коммерческих проектов часть модулей перенес на Go
даже не ради производительности, а ради того чтоб скомпилились в бинарь
расковырять логику работы библиотеки и переписать будет себе дороже
OnYourLips: он гений. За 4 месяца познал все тонкости го и уже за 10к написал соцсеть. С аудио, видео, апи, авторизация и вообще всё. Можно прям сейчас запустить его код на 1 сервере, и он заменит сотни серверов вк.
Владимир Грабко: сеть уровня вк - это не один десяток тысяч человекочасов. Не надо так себя возносить. Какую-то урезанную псевдокопию вк не стоит называть " уровня VK"
Питон все-же более высокоуровневый чем го, и писать на нем легче. Плюс большое кол-во библиотек скопилось.
А дальше можно подключить код на го как с lib, а в свою очередь в го можно вкомпилить код на с.
Как по мне это круто.
Если мыслить абстрактно тогда да - все хорошо. А если попробовать разобраться детальнее: беру за основу python, исходя из этого выбираю сетевой фреймворк, пусть будет торнадо и уже на этом этапе получается, что я шагнул в сторону низкой производительности питона, потому что все сетевые соединения будут обрабатываться питоном. А далее только латать дыры при помощи Go. Мне так видится.
Артем Кисленко: вот вы и ответили на вопрос. Если и поддерживать dual-stack то между сервисами на разных языках делать соединения rpс или делать внутреннее api.