Perché tanta popolarità con Python? [chiuso]

52

Oltre a essere infastidito dagli spazi bianchi come sintassi, non sono un odiatore, non ho il fascino di Python.

Apprezzo la poesia di Perl e ho programmato bellissimi servizi web in bash & korn e shebang gnuplot . Scrivo documenti in troff e non mi dispiace REXX. Non ho trovato tcl più utile anni fa, ma qual è la grande puzza su Python ? Vedo elenchi di lavoro e molti candidati con questo premio trofeo sui loro curriculum.

Credo che in realtà, sto cercando di vendermi personalmente, non riesco a trovare una ragione.

    
posta Xepoch 30.09.2015 - 02:56
fonte

16 risposte

60

Python è un linguaggio ben progettato con una sintassi ragionevolmente pulita, una libreria standard completa, un'eccellente documentazione inclusa e di terze parti, una diffusione capillare e l'immediatezza di un linguaggio di stile "scripting" (ad esempio, nessun passo di compilazione esplicito).

    
risposta data 20.09.2010 - 05:52
fonte
75

Ho trovato Python come il linguaggio di programmazione più naturale in cui abbia mai scritto codice. Ho codificato in molti linguaggi prima e dopo Python e, in misura maggiore o minore, devi combattere la lingua per farlo fare ciò che vuoi. Python riduce enormemente questa lotta. Eric S Raymond ha detto molto meglio di quanto possa io in Why Python?

Come punto correlato, Python mantiene la sua pulizia anche mentre si evolve rapidamente. Nella maggior parte delle lingue con cui ho lavorato, l'introduzione di nuove funzionalità linguistiche introduce molte rughe. Ma con Python, anche le principali funzionalità linguistiche (i decoratori vengono in mente) vengono aggiunte continuamente, senza sentirsi come brutti hack.

    
risposta data 20.09.2010 - 06:15
fonte
26

Spero che questo non sembri troppo cinico, ma IMO Python è così popolare per la stessa identica ragione per cui Java, C # e Objective-C lo sono. Non perché ci sia qualcosa di spettacolare nei linguaggi stessi, ma perché ognuno di loro ha uno sponsor magacorporato in grado di produrre molto hype, molta pubblicità, e molte librerie e supporto per la loro lingua preferita.

    
risposta data 20.09.2010 - 05:39
fonte
11

La mia esperienza è che le persone che trovano vera gioia nella programmazione spesso cercano un linguaggio che si adatti meglio di quello che hanno imparato a scuola o all'università. Fondamentalmente questo significa che passeranno dal PHP / Visual Basic / C ++ / Java / C # predefinito a qualcosa di più esotico (business / careerwise) come Python, Ruby, Haskell e perfino perl (a causa del suo enorme valore di hacking e oscurità).

Non fraintendetemi, ci sono molto programmatori C # / VB.net con esperienza che sono molto orgogliosi del loro lavoro e del loro codice (i ragazzi di StackOverflow sono un ottimo esempio), ma non diventi un programmatore di pitoni solo perché è quello che ti hanno insegnato a scuola; deve essere la tua decisione.

Penso che Jeff Atwoord abbia pubblicato un post su questo, ma non riesco a trovarlo. Se lo trovo, aggiornerò questo commento.

    
risposta data 20.09.2010 - 08:47
fonte
9

Rispetto a Ruby, che è davvero interessante e produce stupefacenti Code Golf-off, Python ha questa filosofia di base che "Ci dovrebbe essere uno - e preferibilmente solo uno - modo ovvio di fare [cose]", intendendo il modo idiomatico di Python . Ho trovato questo enorme vantaggio rispetto a Ruby.

    
risposta data 23.10.2010 - 01:26
fonte
8

Ho iniziato ad amare Python per la stessa ragione che descrive Eric S. Raymond: l'atto di scrivere programmi in Python è concettualmente molto simile a pensare all'atto di progettare il codice nella mia testa.

Imparare ad essere un buon programmatore Python mi ha fatto diventare un molto programmatore C # migliore. Ha reso la comprensione di LINQ molto più facile, per uno. Potrei non aver mai abbracciato un tipo come Dictionary<string, Func<T>> , o mi sono abituato a usare yield return , se non avessi usato classi e generatori in Python. AOP è molto più facile da capire ora che ho usato i decoratori Python. L'elenco continua.

    
risposta data 21.09.2010 - 01:40
fonte
6

In primo luogo, le stranezze linguistiche insignificanti come l'indentazione forzata in Python non contano molto se il linguaggio stesso è potentemente espressivo e utile. Dapprima sono stato anche respinto, ma presto ho imparato a guardare oltre e ora non lo sento nemmeno come un ostacolo, perché il linguaggio è molto più facile per me per lavorare. È come sigilli nelle variabili in Perl , è una stranezza del linguaggio innocuo e chiunque si senta a suo agio nella lingua non se ne preoccupa.

Per capire i motivi per cui così tante persone pensano che Python sia fantastico, prova e impara la lingua. Le ragioni sono per lo più le stesse del Perl. Trovo che mi piaccia la sintassi in Python (ad esempio, list comprehensions, sintassi OOP, ecc.), Ma questo è davvero soggettivo e la tua opinione potrebbe essere diversa. Preferisco Python per progetti più grandi, mentre continuo a usare Perl per script più piccoli.

E che è la risposta alla tua domanda. Confrontate Python in Perl, bash e tcl. Il fatto è che non è un confronto equo. Lingue come bash sono state progettate per scrivere piccoli script per automatizzare attività comuni. Alcune persone pensano che il Perl diventi ingombrante se il codice diventa sufficientemente grande (il Perl ben scritto non lo è, ma un codice ben scritto è difficile da trovare in un grande progetto). IMHO Python si differenzia da altri linguaggi 'scripting' in quanto è scalabile molto bene per progetti di grandi dimensioni e piccoli script one-off. Penso che anche Ruby abbia la stessa qualità.

    
risposta data 20.09.2010 - 11:59
fonte
5

Penso che in qualche modo Python sia l'unico linguaggio di programmazione di cui avrai mai bisogno, a meno che tu non voglia scrivere un kernel del sistema operativo. È adatto per l'uso interattivo, hack casuali, amministrazione di sistema, applicazioni scientifiche, strumenti del sistema operativo, applicazioni Web, applicazioni GUI, incorporamento, ecc. Ecc., È portatile, gratuito e ampiamente utilizzato. Nessun altro linguaggio di programmazione copre davvero tutti quei campi nella pratica. È un ottimo investimento strategico per una persona e un'azienda.

    
risposta data 23.09.2010 - 12:16
fonte
5

Dal 2004, ho usato Python per sviluppare:

  • GUI
  • Scripting scene di ray tracer con collegamenti da Python a C ++
  • Sistemi di build automatizzati multipiattaforma
  • Test script
  • Strumenti generici per risolvere i tuoi problemi quotidiani
  • Siti Web e app web

Nel 2004, Python era il linguaggio scelto perché gli script Python sono portatili su Windows, Linux e Mac con pochissime modifiche.

    
risposta data 22.10.2010 - 23:38
fonte
4

Per me Python è stato un caro amico. È un linguaggio decente di scripting e prototyping. Le cose principali che posso pensare sono:

  • Pulisci la sintassi, molto semplicistica e facile da capire
  • Multi-paradigma, usalo come linguaggio imperativo? Sicuro. OOP? Nessun problema. Ha anche alcune caratteristiche linguistiche funzionali leggere, ad es. lambda, list comprehensions, ecc.
  • Per esigenze di calcolo di base, ha il supporto nativo per le strutture dati essenziali, array, tuple, dizionario (array associativo), set, ecc.
  • Altre funzioni possono rendere molto produttivo un programmatore, ad es. dattilografia, riflessione, meta-programmazione, decoratori, generatori, ecc.
  • Supporto per librerie avanzate
risposta data 21.09.2010 - 01:45
fonte
4

È elegante e davvero facile da imparare e, una volta acquisita familiarità con i suoi tipi di base (in particolare le liste), la tua produttività non ha limiti. È perfetto per gli algoritmi di prototipazione o per la scrittura in un linguaggio simile a uno pseudocode che può eventualmente essere inserito direttamente su una macchina, ed è davvero buono come linguaggio di scripting per eseguire lavori ripetitivi o eseguire operazioni fastidiose sui file. Lo uso come linguaggio collante per far comunicare i processi secondari tra loro: non è tanto potente quanto bash per alcuni compiti facili, ma SEMPLICE più facile se devi fare più di una singola riga di codice.

E quindi non fa distinzioni tra funzioni e subroutine, sai cosa intendo.

    
risposta data 23.10.2010 - 01:16
fonte
4

La filosofia secondo cui il Dictator Benevolo dovrebbe far valere la sua idea di buon stile [1], la sua idea di buona programmazione, la sua idea di come programmare mi frustra regolarmente. Non penso come van Rossum. Tuttavia, il suo linguaggio resiste ai tentativi di esprimere pensieri non di van Rossum. Il suo modo di pensare funziona veramente bene per molti (la maggior parte?) Programmatori. Ma non mi sembra adatto al suo modello di programmazione.

Ecco perché credo che Perl sia un linguaggio superiore.

[1] Vedi il suo blog sulla rimozione di reduce .

    
risposta data 23.10.2010 - 02:00
fonte
3

Molti amanti di Python che vedo appena passati da C dintorni sono rimasti impressionati da cose come "Hello "+ "World" è "Hello World" . Quindi direi che questo è il primo linguaggio di scripting che non raccoglie tag esoterici / specifici e quindi si diffonde tra le persone martirizzate come il fuoco in una foresta secca. E la moda così creata ora vive da sola.

    
risposta data 20.09.2010 - 15:45
fonte
2

Riaccanto la domanda ora che sono un po 'meno stanco:

Python è un linguaggio che ho trovato particolarmente adatto per attività di programmazione scientifica, che è uno dei luoghi in cui la sua popolarità sta crescendo abbastanza strong. Alcuni motivi per cui:

  • Un supporto di comunità abbastanza strong significa che ci sono alcune librerie forti e Python funziona come sostituto decente per MATLAB e alcuni degli altri linguaggi popolari in quel campo.
  • Gioca bene con C quando do ha bisogno di velocità, ma spesso la velocità non è proprio quella necessaria, quindi la natura interpretata di Python non è un grande affare.
  • Ho trovato che è una lingua abbastanza accessibile senza un gran numero di cose che, per gli estranei, sembrano regole di sintassi stranamente arbitrarie. È piuttosto rapido tradurre tra pseudo-codice e Python.
  • "Prendi o lascia OOP". Molti progetti di programmazione scientifica non traggono grande vantaggio dall'ampio OOP. Alcuni lo fanno. È bello avere un linguaggio che possa saltare facilmente tra i due.
  • strong supporto multipiattaforma. Soprattutto perché ciò che utilizzo raramente coinvolge le GUI, posso fare affidamento sull'essere in grado di inviare un programma Python a qualcun altro senza preoccuparmi di quale sistema operativo sono in esecuzione.

Non è il fine-tutto, essere-tutti i linguaggi di programmazione, ma è un linguaggio decente "Sì, probabilmente ho uno strumento per risolvere qualunque problema", che è probabilmente il motivo per cui sta godendo di popolarità al momento.

    
risposta data 26.09.2011 - 02:35
fonte
1

Python è un linguaggio molto 'webby' in entrambi i framework disponibili (Django, Zope, ecc.) e nelle librerie facilmente importabili, che ricoprono ancora molte funzioni web.

Per gli sviluppatori web che passano da un HTML, uno skillset CSS + JS (aneddoticamente una grande fonte di nuovi programmatori negli ultimi anni), penso che ciò lo renda una proposta molto interessante (idem Ruby).

Inoltre, Google non è Microsoft ....

    
risposta data 20.09.2010 - 09:57
fonte
0

Penso che uno dei motivi principali sia il fatto che il 90% di google è prodotto da Python.

Tuttavia, Python è anche un linguaggio di programmazione potente e facile da imparare. Ha efficienti strutture di dati di alto livello e un approccio semplice ma efficace alla programmazione orientata agli oggetti. La sintassi elegante di Python e la digitazione dinamica, insieme alla sua natura interpretata, ne fanno un linguaggio ideale per lo scripting e lo sviluppo rapido di applicazioni in molte aree sulla maggior parte delle piattaforme.

L'interprete Python e l'ampia libreria standard sono liberamente disponibili in formato sorgente o binario per tutte le principali piattaforme dal sito Web Python, link , e può essere distribuito liberamente. Lo stesso sito contiene anche distribuzioni e riferimenti a molti moduli, programmi e strumenti Python di terze parti gratuiti e documentazione aggiuntiva.

L'interprete Python è facilmente estendibile con nuove funzioni e tipi di dati implementati in C o C ++ (o in altre lingue richiamabili da C). Python è adatto anche come linguaggio di estensione per applicazioni personalizzabili.

    
risposta data 26.09.2011 - 02:13
fonte

Leggi altre domande sui tag