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

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

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

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

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


person Andrew Harry    schedule 14.05.2009    source источник
comment
оба языка полны по Тьюрингу.   -  person SilentGhost    schedule 14.05.2009
comment
Моя любимая книга десятилетия! Кривая обучения Python меньше, чем вы думаете... но перевод на C# даст вам огромную оценку того, насколько лаконичен Python.   -  person Jim Carroll    schedule 14.05.2009
comment
Мне одному кажется, что код в этой книге отстой? Я не знаю, сколько раз я видел, если len(my_list): ... для проверки, является ли список пустым или нет. Код Python был уродливым и нечитаемым. В остальном очень интересное и доступное введение в машинное обучение.   -  person Buttons840    schedule 30.03.2012


Ответы (6)


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

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

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

person Joe Germuska    schedule 14.05.2009
comment
Точно. Для его перевода потребуется знание Python. Одна из причин, по которой люди используют Python, заключается в том, что доступно множество качественных библиотек. Перевод интересующего кода и библиотек будет бременем гораздо большим, чем просто изучение Python :-) - person Doug; 14.05.2009
comment
Вы рекомендуете IronPython? - person Andrew Harry; 15.05.2009
comment
Я не могу точно рекомендовать IronPython, потому что я не занимаюсь разработкой .NET, но на PyCon у меня возникло ощущение, что есть большая заинтересованность в поддержании паритета между различными реализациями Python... поэтому, если вам нужна интеграция с .NET , используйте IronPython. Если ваш Python будет работать автономно, вероятно, будет немного проще использовать C-Python (то есть наиболее распространенный Python), пока не будет иметь значение интеграция с .NET. - person Joe Germuska; 16.05.2009

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

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

person Aaron Digulla    schedule 14.05.2009

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

Работа с дополнительными библиотеками Python — это отдельная история. Ndelicious очень похож на pyDelicious, но ему не хватает нескольких ключевых функций (популярные посты!).

person Jamison    schedule 12.06.2009

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

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

person akent    schedule 14.05.2009
comment
C:\Python30›python -m антигравитация - person Jochen Ritzel; 14.05.2009

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

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

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

person tom10    schedule 14.05.2009

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

person wr.    schedule 14.05.2009