Python per un'applicazione desktop

1

Attualmente ho un'applicazione .NET che voglio convertire in una piattaforma multipla, poiché un numero crescente di utenti desidera una versione Mac. Dato che questo forum non sembra gradire domande che sono "quali lingue sono adatte a questi requisiti", focalizzerò questa domanda su Python come linguaggio di scelta. Python sarà adatto per i requisiti di seguito? Inconvenienti?

  • App desktop - molti dei miei utenti non hanno una connessione Internet in cui usano il software, quindi una app web non lo farà
  • Orientato agli oggetti
  • Memorizza i dati in un database relazionale e nei file di configurazione
  • Motore di report, preferibilmente utilizzando i modelli
  • Connettività di rete: alcuni utenti installano più workstation condividendo un singolo file di dati
  • Supporta le comunicazioni della porta seriale RS-232, leggi e scrivi
  • Supporta l'acquisizione video
  • Riproduci WAV e altri file audio
  • Installazione di app semplice: troppi utenti non sono molto esperti di computer, quindi l'installazione è la migliore.
  • Essere in grado di implementare una demo o un modello di licenza a tempo limitato

Ho preso in considerazione Java, ma sono titubante essendo in balia di Oracle e molte persone hanno avuto problemi di sicurezza riguardo alla JVM. Ho anche considerato il progetto Mono per mantenere l'app in .NET, ma la loro utility MoMA mostra migliaia di elementi non supportati. Preferisco davvero avere solo una base di codice da mantenere, invece di una per Windows e una per Mac. Python sembra essere quello a cui torno a tornare.

Per un po 'di esperienza su me stesso, la maggior parte della mia esperienza è stata con VB, VB.NET, C # e Java con qualche diletto in PHP / Javascript / HTML. Tutta la mia esperienza desktop è stata con Windows.

    
posta gpraceman 04.02.2014 - 21:20
fonte

1 risposta

4

Saresti sorpreso di quanto sia ricco di funzionalità l'ambiente python. Scendendo alla lista, proverò a dare un feedback su ciascuno dei punti.

  • App desktop - Sì. È possibile scrivere applicazioni che non richiedono alcuna connettività Internet per funzionare.
  • Orientato agli oggetti - Grande sì. Python supporta un sacco di cose divertenti con oggetti, come l'iniezione di metodi in singole istanze di classi. Puoi trovare alcune parti meno intuitive, come la mancanza di un ambito o interfacce.
  • Memorizza i dati in un database relazionale e in file di configurazione - Sì. È possibile utilizzare i database localmente o attraverso il web. Ecco un collegamento ad altre informazioni
  • Motore di report, preferibilmente utilizzando i modelli - Una semplice ricerca su google ha mostrato opzioni di varia complessità basate su di cosa hai bisogno
  • Connettività di rete - Sì, la rete è completamente supportata. Puoi scendere a creare socket, se lo desideri, o usare libararies completamente formati per fare il lifting per te.
  • Supporta le comunicazioni della porta seriale RS-232, leggi e scrivi - PySerial
  • Supporto acquisizione video - Le librerie video sono un'opzione
  • Riproduci WAV e altri file audio - PyAudio
  • Installazione semplice dell'app - Hai parlato di questo nei commenti, ma potresti anche esaminare le uova python come una forma di distribuzione, oppure .deb pacchetti se stai eseguendo debian
  • Essere in grado di implementare una demo o un modello di licenza a tempo limitato - Si tratta semplicemente di limitare il codice sorgente che gli viene fornito. Questo non è diverso da qualsiasi altra lingua a tale riguardo però.
risposta data 06.02.2014 - 19:05
fonte

Leggi altre domande sui tag