
Alexander
28.10.2016
21:10:24
с Python'а на Go нет смысла уходить, а вот С на Go очень даже..

Anton
28.10.2016
21:10:26
Мне не нравится
:= вот это вот всё

Oleg
28.10.2016
21:10:52
Аргументировано

Google

Anton
28.10.2016
21:10:58
звёздачки
Кто-то походу Кена Томсона поцеловал и он проснулся
От 30 летнего сна

Vladimir
28.10.2016
21:11:47
и на базе этого нафигачил еще bloom-filter based search index
все за 2*8 рабочих дня
или когда нужна строгая статическая типизация

Alexander
28.10.2016
21:12:31
ну вот есть PyPy
http://pypy.org/

Anton
28.10.2016
21:12:41
и когда хочется вспомнить что такое указатели

Alexander
28.10.2016
21:12:42
он довольно быстрый
не как Go, но быстрый

Vladimir
28.10.2016
21:13:09

Google

Vladimir
28.10.2016
21:13:30
И де-факто питон 2.7

Alexander
28.10.2016
21:14:26
там есть 3.3 совместимая версия,вроде

Vladimir
28.10.2016
21:14:30
Нету
3.3 частично

Александр
28.10.2016
21:19:10

Alexander
28.10.2016
21:19:16
ну, у питона тут плюс в чём - он хорошо интегрируется с С
а С быстрее всего, что только может быть
и если прямо вот очень сильно нужно иметь большую скорость работы приложения - можно по частям переписывать модули на С, не меняя питон на что-то другое
собственно, некоторые так и делают

Vladimir
28.10.2016
21:21:41

Anton
28.10.2016
21:21:48
> @lorddaedra
был бы я С-программистом, я бы ушёл на Go
Go - the best language for wannabe C programmers

Vladimir
28.10.2016
21:21:50
что не есть удобно

Alexander
28.10.2016
21:21:50
в итоге из проекта на питоне получится враппер над кодом на С

Vladimir
28.10.2016
21:22:07

Alexander
28.10.2016
21:22:31
ну, Go это нормальный ЯП)
я не критикую особо Go

Anton
28.10.2016
21:22:43
для 70-х

Alexander
28.10.2016
21:22:44
но лично мне он не оч нравится

Anton
28.10.2016
21:22:44
ага

Alexander
28.10.2016
21:23:11
в Go достаточно простой код и достаточно быстро работает, некий компромисс

Google

Alexander
28.10.2016
21:23:30
а Python + C это другой способ решения той же задачи, без компромиссов
сначала всё на Python'е (быстро делаем, медленно работает), потом наше API стабилизируется и это мы переписываем на С
в итоге оно работает быстро
а какая-то меняющаяся часть остаётся на Python'е
при этом мы можем всё менять мааааленькими частями, это вообще не наносит никакого вреда стабильности проекта

Vladimir
28.10.2016
21:27:02
Писать на Си сложнее и медленее.

Alexander
28.10.2016
21:27:14
с этим кодом на С можно взаимодействовать внешне так же, как раньше взаимодействовали с кодом на питоне, то есть мы можем переписывать не весь проект, а только те части, которые редко меняются и нужна именно высокая скорость

Vladimir
28.10.2016
21:27:19
поэтому получится что у тебя маленькая быстроменяющаяся часть

Alexander
28.10.2016
21:27:22
это, может, всего 2-3 вещи в проекте

Vladimir
28.10.2016
21:27:40
и много кода который никто не хочет трогать

Alexander
28.10.2016
21:28:29
ну, рано или поздно всё равно код делится на тот, который редко меняется и тот, который часто

Vladimir
28.10.2016
21:28:42
да, но при этом вопрос в причинах

Vladimir
28.10.2016
21:28:53
если никто не меняет код потому что боится - это одно

Alexander
28.10.2016
21:29:05
ну, пишутся тесты
можно взять 1 маленькую медленную функцию на питоне и переписать только её на С
и другой код на питоне будет дружить с ней, как будто она на питоне, никто ничего не заметит
ну и эту функцию, как и другие, мы тестируем, конечно

Vladimir
28.10.2016
21:30:31
но

Alexander
28.10.2016
21:31:16
таких узких мест обычно не так много бывает в проекте, достаточно именно их поправить, не обязательно весь проект на другой ЯП переписывать

Vladimir
28.10.2016
21:31:19
вызов функции дешевый, но не бесплатный

Google

Vladimir
28.10.2016
21:31:25
потому что тебе придется типы конвертировать и т.п.

Alexander
28.10.2016
21:31:47
ну, это будет медленнее, чем когда весь проект на С, но всё равно достаточно быстро
это будет сопоставимо с тем же Go

Vladimir
28.10.2016
21:32:25
только писать код медленее )

Alexander
28.10.2016
21:32:43
так не надо всё писать на С, только какие-нибудь узкие места, где важна скорость
несколько вот таких функций

Anton
28.10.2016
21:32:58

Vladimir
28.10.2016
21:33:00
так ты в этих узких местах получаешь полный менеджмент памяти и пр.
все "прелести" си

Alexander
28.10.2016
21:33:47
вот сейчас можно все проекты разбивать на микросервисы и каждый микросервис хоть на своём ЯП пиши, лишь бы API был

Admin
ERROR: S client not available

Alexander
28.10.2016
21:34:00
вот эта комбинация Python+C мне напоминает эту идею
во времена, когда разбивать проект на микросервисы ещё не было модным

Старый
28.10.2016
21:35:24

Alexander
28.10.2016
21:35:57
вот есть http://cython.org/ , например

Vladimir
28.10.2016
21:35:58

Старый
28.10.2016
21:36:53

Alexander
28.10.2016
21:36:53
я не умею программировать на С, поэтому какие-то технические особенности реализации этих вещей мне сложно обсуждать, но я знаю, что программисты это используют и всё норм работает

Vladimir
28.10.2016
21:37:22

Alexander
28.10.2016
21:37:44
то есть если питон тупит в каком-то месте, есть способы решить это, не переписывая проект с питона на что-нибудь другое

Google

Старый
28.10.2016
21:37:47
если бы было срать, то все писали бы менеджеры на пакетов на php

Vladimir
28.10.2016
21:37:58
их на питоне и перле и писали потому что всем срать

Старый
28.10.2016
21:38:20
джанги или 3 обычного питона?

Alexander
28.10.2016
21:38:24
пхп руби и питон примерно на равных по производительности

Vladimir
28.10.2016
21:38:31

Старый
28.10.2016
21:38:42
ну джангу тоже питоном называют

Vladimir
28.10.2016
21:39:02

Старый
28.10.2016
21:40:17
сейчас вон для мобильных и обычных игр стало можно вставки на ассемблере делать в код

Anton
28.10.2016
21:43:08
а раньше нельзя было?

Alexander
28.10.2016
21:47:35
можно хоть на всех ЯП сразу писать проект, если у нас есть уверенность, что в нашей команде будут люди, способные это развивать и поддерживать и это будет экономически целесообразно

Старый
28.10.2016
21:49:32
пишите лучше на ассемблере
круче всего будет

Alexander
28.10.2016
22:13:22
вот выше я привёл весьма неплохой способ ускорения кода на Python'е
http://cython.org/
и он достаточно простой, чтобы его использовать, С можно не знать (знать поверхностно)
https://habrahabr.ru/company/mailru/blog/242533/

Dmitry
28.10.2016
22:31:17
чуваки, а как заставить ядро писать полный cmdline при oom?
при /proc/sys/vm/oom_dump_tasks == 1 пишется просто имя бинаря

Anton
29.10.2016
06:01:07
На дворе был 2016 год, но суслики продолжали есть сишный кактус
for i := 0; i < n; n++ {
^^^
?

Aleksandr
29.10.2016
06:19:06
)))

Roman
29.10.2016
07:25:08