Питон и Коллективный разум - PullRequest
3 голосов
/ 14 мая 2009

Я сейчас читаю замечательную книгу Тоби Сегарана «Программирование коллективного интеллекта» (которую я настоятельно рекомендую)

Все примеры кода написаны на Python, и, поскольку я уже изучил один новый язык в этом году (заканчивая VB.net до C #), я не стремлюсь перейти на другую кривую обучения.

Это оставляет мою проблему с переводом примеров Python на C #.

Вопрос: насколько критично, чтобы код оставался в python? Есть ли что-то в Python, что я не могу сделать в обычном управляемом статически типизированном языке?

Ответы [ 6 ]

19 голосов
/ 14 мая 2009

Одна из проблем, с которой вы столкнетесь, заключается в том, что в Python реализованы не только алгоритмы, но в книге широко используются такие библиотеки Python, как BeautifulSoup, Numpy, PIL и другие (см. Приложение A).

Я сомневаюсь, что есть какие-то особенности алгоритмов, которые вы не можете перенести на другой язык, но у вас будут проблемы с прохождением упражнений. Кроме того, чтобы перевести код, вам нужно хотя бы немного изучить Python, не так ли?

Я предлагаю вам просто погрузиться и изучить Python. Вы можете использовать IronPython, если у вас есть какие-либо сомнения относительно совместимости с вашими проектами на C #.

2 голосов
/ 12 июня 2009

Предлагаю перевести их на C #. Я портировал главу 2 «Рекомендации» на VB.Net. По пути я изучаю Python как побочный эффект. Тоби делает удивительные вещи со списками Python.

Работа с дополнительными библиотеками Python - другая история. Ndelicious близко соответствует pyDelicious, но в нем отсутствуют некоторые ключевые функции (популярные сообщения!).

2 голосов
/ 14 мая 2009

Вы можете делать одно и то же на всех языках, полных тьюринга. Вот пример для рендеринга фрактала Мандельброта в SQL. Пример показывает: даже если вы можете использовать любой язык, усилия будут другими.

Так что я предполагаю, что код станет намного длиннее, поскольку Python настолько гибок и открыт.

1 голос
/ 14 мая 2009

Книга посвящена алгоритмам, а не деталям программирования, и выбранный язык предназначен только для того, чтобы сделать примеры конкретными. Как говорит автор: «Примеры кода в этой книге написаны на Python ... но я даю объяснения всех алгоритмов, чтобы программисты других языков могли следовать». (стр. XV)

Python - отличный язык, и его легко выучить, но я подозреваю, что трудности при применении идей из книги будут заключаться не в переводе кода на другой язык или набор библиотек, а в понимании идей и модификации кода чтобы удовлетворить ваши потребности. Я думаю, что есть две основные причины остаться с языком, с которым вы знакомы: 1) когда ваш код не работает, если вы пишете на незнакомом языке, вы не будете знать, с чего начать искать ошибки, например если вы похожи на большинство людей, вы даже начнете задумываться, не связано ли это с ошибкой в ​​Python, которой не будет, но вы удивитесь, и это будет отвлекать. 2) Есть только естественные пределы того, сколько вы можете вспомнить за определенный промежуток времени; и одновременное изучение языка даст вам вдвое больше запоминания.

Это зависит от того, насколько хорошо вы знаете C # и что вы потеряете, оставив его.

1 голос
/ 14 мая 2009

Обязательный XKCD: http://xkcd.com/353/

Я знаю, что вы явно говорите, что не хотите изучать Python (в этом году), но перевод примеров Python на C # определенно будет намного круче. Просто нырните!

0 голосов
/ 14 мая 2009

Python, похоже, является программированием ИИ тем, чем LISP был на протяжении многих десятилетий. Знаменитая книга Рассела / Норвига AI: современный подход также содержит множество примеров в Python .

...