2009-06-19 22 views
6

Estoy aprendiendo Python porque me atrae como matemático pero también tiene muchas bibliotecas útiles para informática científica, procesamiento de imágenes, aplicaciones web, etc. etc.Síntesis del lenguaje de programación general (Python) con lenguaje personalizado (PureData/MaxMSP/ChucK)

Me resulta frustrante que para algunos de mis intereses (música electrónica o arte de instalación) haya lenguajes de programación muy específicos que parecen más adecuados para estos fines, como Max/MSP, PureData y ChucK - todo bastante fascinante.

Mi pregunta es, ¿cómo debería uno acercarse a estos idiomas diferentes? ¿Debo simplemente aprender Python y administrar los demás mediante el uso de plugins y intérpretes de Python en ellos? ¿Hay buenas herramientas para integrar los idiomas, o es la forma correcta de aprenderlos a todos?

+0

Esta es una pregunta interesante. Me gustaría ver lo que otros tienen que decir sobre esto también. – BobbyShaftoe

Respuesta

8

Yo diría que las aprenda todas. Si bien es cierto que muchos idiomas pueden hacer muchas cosas, los idiomas especializados suelen ser más expresivos y fáciles de usar para una tarea en particular. El caso puntual es que, si bien la mayoría de los lenguajes permiten la interacción con el shell y el control del proceso, muy pocos son adecuados para la tarea como los scripts bash.

Los complementos y las bibliotecas pueden cerrar la brecha entre los lenguajes generales y especializados, pero en mi experiencia esto no siempre tiene inconvenientes, ya sean de velocidad, estabilidad o complejidad. No es raro tener que compilar bibliotecas adicionales o aplicar parches o usar módulos no confiables y con soporte deficiente. Tampoco es raro que la interfaz resultante sea aún más difícil de usar que el idioma original.

Conozco aproximadamente 15 idiomas y algunos de ellos muy bien. No uso mis idiomas preferidos cuando otro es más adecuado.

1

Es perfectamente posible construir buenas interfaces desde Python a tales lenguajes especializados: un ejemplo en el punto es RPy, que le permite manejar R (para estadísticas) desde Python (para todo tipo de cosas de propósito general).

Por supuesto, uno tiene que ser competente en ambos idiomas, y dichos puentes, lamentablemente, no existirán ya para cada par dado de un lenguaje de propósito general y uno especializado. "Aprendiendo todos", si quieres usa todos ellos, ¡sigue siendo el camino real!

1

Python sería un gran lenguaje para aprender, ya que funciona bien con muchos otros idiomas. Hace un gran lenguaje de propósito general, así como un lenguaje "pegamento". Dedica tiempo a aprender los idiomas que te interesan y mantén el conocimiento de Python por su flexibilidad y poder. No creo que recomiende tratar de aprenderlos a menos que realmente tengas tiempo.

Puede que le interese saber que PureData tiene un python extension.

4

Este hilo es un poco antiguo, pero quería señalar que la mayoría de los entornos maduros de desarrollo de audio, p. supercollider/max-msp/pure data se puede controlar a través de un control de sonido abierto. Puede buscar en Google una mejor descripción de OSC, pero basta con decir que le permite enviar datos de control a sintetizadores creados en estos entornos de forma similar a como funciona MIDI, pero mucho más extensos. Esto no resuelve el problema de construir sintetizadores en Python per se pero te permite "manejar" estos otros entornos sin tener que conocer los pormenores del lenguaje.

+0

Esto es crucial. Aún así, solo podrá 'controlar' uno de los idiomas especializados con Python. La mayor parte del trabajo (creación de generadores de unidades, que definen el flujo de señales) se realizará en el idioma. Recomiendo SuperCollider. – terrace

+0

Por ejemplo, vea mi respuesta sobre [controlar ChucK desde OSC] (http://stackoverflow.com/a/14403066/821287) y también este conjunto de [apéndices PyOSC para SuperCollider] (http://pypi.python.org /pypi/SC/0.2). – Curtis

Cuestiones relacionadas