2009-06-19 11 views
6

Sto imparando Python perché mi attrae come matematico ma ha anche molte librerie utili per il calcolo scientifico, l'elaborazione delle immagini, le app web, ecc. ecc.Sintesi del linguaggio di programmazione generale (Python) con linguaggio personalizzato (PureData/MaxMSP/ChucK)

È frustrante per me che per alcuni dei miei interessi (musica elettronica o arte di installazione) ci sono linguaggi di programmazione molto specifici che sembrano più adatti a questi scopi, come Max/MSP, PureData e ChucK - tutto abbastanza affascinante.

La mia domanda è, come si dovrebbe avvicinarsi a queste lingue diverse? Dovrei semplicemente imparare Python e gestire gli altri usando plug-in e interpreti Python al loro interno? Esistono validi strumenti per l'integrazione delle lingue o è il modo giusto per apprenderle tutte?

+0

Questa è una domanda interessante. Mi piacerebbe vedere anche quello che gli altri hanno da dire su questo. – BobbyShaftoe

risposta

8

Direi di impararli tutti. Mentre è vero che molte lingue possono fare molte cose, le lingue specializzate sono di solito più espressive e più facili da usare per un particolare compito. Case-in-point è mentre la maggior parte dei linguaggi consente l'interazione della shell e il controllo del processo, mentre ben pochi sono adatti all'attività come script di bash.

I plugin e le librerie possono colmare il divario tra le lingue generali e specializzate, ma nella mia esperienza questo non è sempre privo di inconvenienti, siano essi velocità, stabilità o complessità. Non è raro dover compilare librerie aggiuntive o applicare patch o utilizzare moduli non attendibili e mal supportati. Inoltre, non è raro che l'interfaccia risultante sia ancora più difficile da usare rispetto alla lingua originale.

Conosco bene 15 lingue e alcune di queste molto bene. Non uso le mie lingue preferite quando un altro è più adatto.

1

È perfettamente possibile creare interfacce valide da Python a tali lingue specializzate: un esempio di questo è RPy, che consente di guidare R (per le statistiche) da Python (per tutti i tipi di cose generiche).

Naturalmente, uno deve essere competente in entrambe le lingue - e tali ponti, sfortunatamente, non esistono già per ogni coppia di una lingua generica e una specifica. "Apprendimento di tutti loro", se si desidera utilizzare tutti, rimane la strada reale!

1

Python sarebbe un ottimo linguaggio da imparare, poiché funziona bene con molte altre lingue. È un ottimo linguaggio generico e un linguaggio "colla". Trascorri del tempo imparando le lingue che ti interessano e mantieni la conoscenza di Python per la sua flessibilità e potenza. Non penso che consiglierei di provare a impararli tutti a meno che tu non abbia il tempo.

Potrebbe interessarti sapere che PureData ha un python extension.

4

Questa discussione è un po 'vecchia, ma volevo sottolineare che la maggior parte degli ambienti di sviluppo audio maturi, ad es. supercollider/max-msp/dati puri possono essere controllati tramite il controllo del suono aperto. Puoi migliorare la descrizione di OSC su google, ma basti dire che ti permette di inviare i dati di controllo ai synth costruiti in questi ambienti in modo simile a come funziona il MIDI, ma in modo molto più esteso. Questo non risolve il problema della creazione di synth in Python di per sé ma consente di "guidare" questi altri ambienti senza dover conoscere i dettagli del linguaggio.

+0

Questo è fondamentale. Tuttavia, sarai ancora in grado di 'controllare' uno dei linguaggi specializzati con Python. La maggior parte del lavoro (creazione di generatori di unità, definizione del flusso del segnale) verrà effettuata nella lingua. Raccomando SuperCollider. – terrace

+0

Per esempio, vedere la mia risposta su [controllare ChucK da OSC] (http://stackoverflow.com/a/14403066/821287) e anche questo insieme di [stubs PyOSC per SuperCollider] (http://pypi.python.org /pypi/SC/0.2). – Curtis

Problemi correlati