Per quali tipi di applicazioni Python è una scelta sbagliata? [chiuso]

21

Ho appena iniziato ad imparare Python e mi piacerebbe avere un po 'più di contesto sulla lingua.

Mi rendo conto che, in molti casi, Python è un linguaggio lento rispetto a C o C ++. Quindi, probabilmente Python non è la scelta migliore per le applicazioni che devono essere eseguite il più rapidamente possibile.

Al di fuori di questo, sembra che Python sia un ottimo linguaggio generico facile da leggere e scrivere. Le librerie disponibili danno una grande quantità di funzionalità. Al di fuori delle applicazioni critiche per le prestazioni, dov'è una cattiva scelta usare Python (e perché)?

    
posta Casey Patton 23.11.2011 - 09:42
fonte

7 risposte

22

Software destinato a target embedded con risorse limitate. La maggior parte dei processori su questo pianeta non è in grado di eseguire Python a causa di risorse insufficienti, o nessuno ha portato una versione a tale architettura. La maggior parte dei processori, anche adesso, ha meno di un megabyte di memoria.

    
risposta data 23.11.2011 - 10:05
fonte
14

I due luoghi che mi vengono in mente sono cose che richiedono molta concorrenza, per le quali userò Erlang. O calcolo numerico heavy duty, che probabilmente proverò ad usare Fortran.

    
risposta data 23.11.2011 - 09:51
fonte
8

Dato che Python è un linguaggio tipizzato dinamicamente, senza controllo in fase di compilazione, il refactoring di un progetto Python di grandi dimensioni che non prevede test di unità estesi sarà difficile.

Quindi se hai un grande progetto che deve essere mantenuto e modificato per un lungo periodo e il tuo team non si impegna a creare test automatici per tutto, allora potresti fare meglio a usare Java o C #.

    
risposta data 23.11.2011 - 10:46
fonte
2

Se l'obiettivo principale è lo sviluppo della GUI di Windows, allora raccomanderei CPython in quanto c'è carenza di buoni progettisti di moduli (rispetto all'uso di .Net).

Tuttavia, IronPython gira su .Net e ci sono due IDE con designer di Form tra cui scegliere: Visual Studio e SharpDevelop. Infatti Python Tools per Visual Studio può essere usato sia per CPython che per IronPython, il che è abbastanza semplice anche se non l'ho provato eppure ...

    
risposta data 23.11.2011 - 17:59
fonte
2

Dipende davvero da cosa intendi per "cattiva scelta".

Se intendi le applicazioni in cui l'uso di Python è molto difficile, ce ne sono relativamente poche: il principale che viene in mente e non è stato ancora menzionato è il codice che richiede alti livelli di correttezza in cui le lingue con sistemi di tipi sofisticati (Haskell, lingue tipizzate in modo dipendente) sono le opzioni migliori.

Se intendi applicazioni in cui Python è subottimale (cioè ci sono scelte migliori) allora ce ne sono altre ma sono anche più soggettive. Ad esempio, nella mia esperienza dichiaratamente limitata, lavorare su compilatori e interpreti è molto più semplice con tipi di dati algebrici, pattern matching e funzioni più funzionali di Python. Tuttavia, elencare esaurientemente applicazioni come questa è impossibile in quanto variano a persona.

    
risposta data 11.03.2012 - 01:06
fonte
2

È ideale per lo scripting di qualcosa in fretta a causa della sua capacità espressiva e di un'ampia varietà di librerie di supporto.

Il controllo dinamico dei tipi e la mancata dichiarazione esplicita delle variabili lo rendono una scelta sbagliata per progetti di grandi dimensioni che coinvolgono centinaia di migliaia o addirittura milioni di linee di codice. La stessa cosa vale per i sistemi mission critical o safety critical. In un sistema avionico, ad esempio, sarebbe completamente inaccettabile che un sistema fallisse a causa di un errore che potrebbe essere stato rilevato in fase di compilazione.

    
risposta data 12.02.2016 - 21:07
fonte
0

Bene, proprio come te, sto anche iniziando con Python. Ma per me nel contesto dell'apprendimento automatico e della scienza dei dati.

Inoltre ho appena acquisito tutte le nuove conoscenze in Java 8 e nelle sue nuove librerie orientate al flusso.

Ho adorato la sensazione fluida delle nuove librerie di stream di Java 8 e quanto mi è sembrato di dover utilizzare le librerie di scintille di Apache. Quando sono entrato in Python, mi aspettavo lo stesso e altro.

Ho visto di più. Ma molto meno. Pessima documentazione, anche se ce n'era in abbondanza; nessuna fluidità, e in effetti sono stato lasciato a indovinare se un metodo regnava un nuovo oggetto, o opera su questo; niente vicino a una mappa / ridurre ecc. Sono rimasto sorpreso di essere rimasto deluso.

Fin dall'inizio, tuttavia, non avevo grandi aspettative su quanto sarebbe stato facile imparare la lingua. Mi è sembrato giusto: incoerente, non intuitivo, difficile da imparare. Ma questa era solo la mia esperienza di essere abbastanza brava in tutto ciò che Java ha.

    
risposta data 15.02.2016 - 06:25
fonte

Leggi altre domande sui tag