Различия между Go и [закрытым] Cython

Эти ПРЕОБРАЗОВЫВАЮТ () , функция может сделать это также, в зависимости от того, какой стиль Вы используете.

6
задан Martin Geisler 11 March 2012 в 18:03
поделиться

4 ответа

Cython на самом деле не является языком в общепринятом смысле этого слова. Это препроцессор для создания расширений Python, который использует синтаксис, подобный Python (на самом деле они стремятся к полной совместимости с Python) и создает код C (с использованием Python C API). При этом они могут включать некоторые оптимизации для особых случаев, но настоящие преимущества приходят, когда вы добавляете информацию статического типа, специфичную для Cython, которая включается в код C, минуя среду выполнения Python для этих операций и приводя к высокой скорости.

Go - это скомпилированный язык программирования. Первое, что можно сделать в Go, - это создать исполняемый файл, который не включает среду выполнения Python / запустить интерпретатор Python - в Cython это невозможно. (Может быть технически невозможно - но на самом деле нет смысла использовать Cython, если вы не работаете с Python). Поскольку Cython просто создает C, большинство ваших вопросов в комментарии на самом деле не применимы - вы можете использовать любой отладчик C (хотя тот факт, что расширение Python делает ситуацию немного сложнее).

9
ответ дан 8 December 2019 в 05:55
поделиться

GO представляет горутины и каналы. См. Язык FAQ

1
ответ дан 8 December 2019 в 05:55
поделиться

Отличия? Практически все!

  • Параллелизм и каналы.
  • Интерфейсы.
  • Статическая проверка типов.
  • ...
4
ответ дан 8 December 2019 в 05:55
поделиться

Моя основная причина попробовать go - это предполагаемая простота внедрения параллелизма в программы. Я думаю, что это будет «следующая большая вещь», поскольку скорость процессоров будет падать, и все больше будет доступно несколько ядер. Если вы хотите использовать многоядерные процессоры, вам нужно написать свою программу так, чтобы она могла запускать вещи одновременно.

Я ранее смотрел на Erlang, но, несмотря на то, что я использовал Prolog, я все еще нахожу его немного странным; он настолько отличается от вашего «среднего» языка программирования (из семейства C или Pascal). Но его функции параллелизма просты в использовании, как только вы освоите их. С очень небольшими усилиями мне удалось написать параллельный синтаксический анализатор, который не использует стек, но порождает новый «поток / процесс» каждый раз, когда было несколько вариантов.

Пока что все выглядит неплохо, несмотря на некоторые незначительные несоответствия. И это также быстро, что является преимуществом.

Так что, если Cython не упрощает параллелизм, я бы предпочел пойти ...

1
ответ дан 8 December 2019 в 05:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: