it-swarm.it

Perché tale popolarità con Python?

A parte il fatto di essere infastidito dagli spazi bianchi come sintassi, non sono un odio, ma 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 di Python? Vedo annunci di lavoro e molti candidati con questo come premio e trofeo sui loro curriculum.


Immagino in realtà, sto cercando di vendermi personalmente su questo, non riesco proprio a trovare un motivo.

55
Jé Queue

Python è un linguaggio ben progettato con una sintassi ragionevolmente chiara, una libreria standard completa, eccellente documentazione inclusa e di terze parti, distribuzione diffusa e immediatezza di un linguaggio di stile "scripting" (cioè nessuna fase di compilazione esplicita).

61
Greg Hewgill

Ho trovato Python è il linguaggio di programmazione più naturale in cui abbia mai scritto il codice. Ho codificato in molti linguaggi prima e dopo Python, e in un maggiore o minore misura, devi combattere la lingua per farlo fare quello che vuoi. Python riduce questa lotta in modo massiccio. Eric S Raymond l'ha detto molto molto meglio che posso 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 il linguaggio principale le caratteristiche (vengono in mente i decoratori) vengono aggiunte continuamente, senza sentirsi brutti hack.

76
Chinmay Kanchi

Spero che ciò non sembri troppo cinico, ma IMO Python è così popolare per la stessa identica ragione per cui sono Java, C # e Objective-C. Non perché c'è qualcosa di spettacolare nelle lingue stesse, ma perché hanno ciascuno uno sponsor magacorporato in grado di produrre molta pubblicità, molta pubblicità, molte biblioteche e supporto per la loro lingua preferita.

26
Mason Wheeler

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

Non fraintendetemi, ci sono molto programmatori esperti C #/VB.net che sono molto orgogliosi del proprio lavoro e del proprio codice (i ragazzi StackOverflow sono un ottimo esempio), ma non diventare un programmatore python solo perché è quello che ti hanno insegnato a scuola; deve essere una tua decisione.

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

11
Ivo van der Wijk

Rispetto a Ruby, che è davvero fantastico e produce incredibili code-golf, Python ha questa filosofia fondamentale secondo cui "Dovrebbe esserci un modo - e preferibilmente solo uno - ovvio per fare [cose], "significa l'idiomatico Python. Ho trovato che questo è un enorme vantaggio rispetto a Ruby.

9
Dan Rosenstark

Ho iniziato ad amare Python per lo stesso motivo descritto da Eric S. Raymond: l'atto di scrivere programmi in Python è concettualmente molto simile a pensare l'atto di progettando codice nella mia testa.

Imparare ad essere un buon Python mi ha reso un programmatore C # molto migliore. Ha reso la comprensione LINQ molto più facile, per esempio. Non avrei mai potuto abbracciare un tipo come Dictionary<string, Func<T>> o ti sei sentito a tuo agio con yield return, se non avessi usato classi e generatori in Python. AOP è molto più facile da capire ora che ho usato Python. L'elenco continua.

8
Robert Rossney

Innanzitutto, insignificanti linguaggi come il rientro forzato in Python importa poco se il linguaggio stesso è fortemente espressivo e utile. Sono stato anche respinto all'inizio a causa di esso, ma presto ho imparato a guardarlo oltre e ora non lo sento nemmeno come un ostacolo, perché la lingua è molto più facile per me lavorare. È come sigilli nelle variabili in Perl, è una stranezza di linguaggio innocua e chiunque si trovi a proprio agio nella lingua non se ne preoccupa .

Per capire i motivi per cui così tante persone pensano Python è fantastico, basta provare e imparare la lingua. I motivi sono principalmente gli stessi del Perl. Trovo che mi piace la sintassi in Python (ad esempio la comprensione dell'elenco, OOP, ecc.), Ma è davvero soggettivo e la tua opinione potrebbe essere diversa. Preferisco Python per progetti più grandi, mentre uso ancora Perl per script più piccoli.

E that è la risposta alla tua domanda. Si confronta Python a 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 anche Perl diventa ingombrante se il codice diventa sufficientemente grande (il Perl ben scritto non lo è, ma il codice ben scritto è difficile da trovare in un grande progetto). IMHO Python differisce dagli altri linguaggi di "scripting" in quanto si adatta molto bene a progetti di grandi dimensioni e anche a piccoli script una tantum. Penso che Ruby ha anche la stessa qualità.

6
MAK

La filosofia secondo cui il Benevolent Dictator 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 van Rossum. Il suo pensiero funziona davvero bene per molti (la maggior parte?) Programmatori. Ma sembra che non rientri nel suo modello di come programmare.

Questo è il motivo per cui credo che il Perl sia un linguaggio superiore.

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

6
Paul Nathan

Dal 2004, ho usato Python per sviluppare:

  • GUI
  • Sceneggiatura del ray tracciante con collegamenti Python a C++
  • Sistemi di build automatizzati multipiattaforma
  • Script di test
  • Strumenti di uso generale per risolvere i problemi di tutti i giorni
  • Siti Web e app Web

Nel 2004, Python era la lingua preferita perché Python sono portatili su Windows, Linux e Mac con pochissime modifiche.

5
Thierry Lam

Penso che in qualche modo Python è 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, scientifico applicazioni, 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 in pratica. È un ottimo investimento strategico per una persona e un'azienda.

5
Peter Eisentraut

È elegante e davvero facile da imparare, e una volta che hai familiarità con i suoi tipi di base (in particolare gli elenchi) la tua produttività non ha limiti. È perfetto per gli algoritmi di prototipazione o per scriverli in un linguaggio simile allo pseudocodice che alla fine può essere messo direttamente su una macchina ed è davvero buono come linguaggio di scripting per fare lavori ripetitivi o eseguire fastidiose operazioni sui file. Lo uso come un linguaggio di colla per far comunicare tra loro i sottoprocessi: non potente come bash per alcuni compiti facili, ma MODO più semplice se devi fare più di una sola riga di codice.

E poi non fa distinzione tra funzioni e subroutine, capisci cosa intendo.

4
Lorenzo Stella

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

  • Sintassi pulita, molto semplicistica e di facile comprensione
  • Multi-paradigma, usalo come linguaggio imperativo? Sicuro. OOP? Nessun problema. Ha anche alcune caratteristiche linguistiche funzionali leggere, ad es. lambda, comprensione delle liste, ecc.
  • Per le esigenze informatiche di base, ha il supporto nativo per le strutture di dati essenziali, array, Tuple, dizionario (array associativo), set, ecc.
  • Altre caratteristiche possono rendere un programmatore molto produttivo, ad es. dattilografia, riflessione, meta-programmazione, decoratori, generatori, ecc.
  • Supporto per la libreria ricca
4
grokus

Molti Python che vedo sono appena passati dall'ambiente C e sono rimasti colpiti 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 i martiri come il fuoco in una foresta secca. E così la moda creata ora vive da sola.

3
mbq

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

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

  • Un supporto della comunità abbastanza forte significa che ci sono alcune librerie forti in atto e Python funziona come un sostituto decente per MATLAB e alcune delle altre lingue popolari in quel campo.
  • Gioca bene con C quando do hai bisogno di velocità, ma spesso la velocità non è poi così necessaria, quindi la natura interpretata da Python non è poi così importante.
  • Ho scoperto che è un linguaggio abbastanza accessibile senza un numero enorme di ciò che, per gli estranei, sembrano regole di sintassi stranamente arbitrarie. È piuttosto Swift per tradurre tra pseudo-codice e Python.
  • "Prendi o lascialo OOP". Molti progetti di programmazione scientifica non traggono molto beneficio dall'ampio OOP. Alcuni lo fanno. È bello avere una lingua che possa saltare facilmente tra i due.
  • Forte supporto multipiattaforma. Soprattutto perché ciò con cui lavoro raramente coinvolge le GUI, posso praticamente fare affidamento sul fatto di poter inviare un Python a qualcun altro senza preoccuparmi del sistema operativo in esecuzione.

Non è il fine, tutti i linguaggi di programmazione, ma è un discreto linguaggio "Sì, probabilmente ho uno strumento per risolvere qualsiasi problema si presenti", motivo per cui probabilmente sta godendo di popolarità in questo momento.

2
Fomite

Python è un linguaggio molto 'webby' sia nei framework disponibili (Django, Zope ecc.) Sia nelle librerie facilmente imponibili, che coprono ancora molte funzioni web.

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

Inoltre, Google non è Microsoft ....

1
Jon Hadley

Penso che uno dei motivi principali sia che il 90% di Google sia realizzato con Python.

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

L 'Python e la vasta libreria standard sono disponibili gratuitamente in formato sorgente o binario per tutte le principali piattaforme dal sito web Python, http: //www.python.org/ e può essere distribuito liberamente. Lo stesso sito contiene anche distribuzioni e puntatori a molti terzi gratuiti Python e altri documentazione.

L'interprete Python può essere facilmente esteso con nuove funzioni e tipi di dati implementati in C o C++ (o altri linguaggi richiamabili da C). Python è adatto anche come linguaggio di estensione per applicazioni personalizzabili.

0
blackhat