Питон и Коллективный разум

В настоящее время я читаю большую книгу Тоби Сегарана "Программирование коллективного интеллекта" (которую я очень рекомендую)

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

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

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

6 ответов

Решение

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

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

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

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

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам