I programmatori Python trovano il problema dello spazio bianco inopportuno? [chiuso]

11

Molti programmatori, incontrando inizialmente Python, sono immediatamente scoraggiati dal significato di spazi bianchi. Ho sentito una serie di motivi per cui questo è scomodo, ma non ho mai sentito un reclamo da parte di un programmatore Python.

Naturalmente, non ho incontrato molti programmatori Python, dato che ho trascorso la mia carriera nel mondo Java.

Quindi la mia domanda è per quelli di voi che hanno partecipato a un grande progetto Python (più di 3 mesi, con Python come lingua principale utilizzata): hai trovato il problema dello spazio bianco come inopportuno e continuamente fastidioso? O era un non-problema una volta entrato nel flusso?

Non sto facendo la domanda perché sono a favore o contro Python, o a favore o contro il suo uso di spazi bianchi. Mi è piaciuto Python, ma non l'ho mai usato per qualcosa di grande.

Per favore non fornire speculazioni se non hai esperienza in Python.

    
posta Eric Wilson 09.04.2011 - 23:02
fonte

10 risposte

14

C'è solo un caso in cui trovo che gli spazi bianchi siano fastidiosi, e cioè quando si modifica il codice esistente in modo che un blocco di codice debba diventare più o meno rientrato di prima (ad esempio, aggiungere o eliminare un if: prima del codice). Quando scrivi in una lingua come C, devi solo aggiungere if e una coppia di parentesi, e (in Emacs, o immagino qualsiasi buon editor) premi Tab per consentire all'editor di correggere automaticamente il rientro. In Python, devi farlo da solo. Naturalmente, ci sono scorciatoie di editor per farlo da soli, quindi non è così male, ma la perdita di ridondanza impone un leggero onere aggiuntivo al programmatore.

Nel complesso, è una vittoria, però, se non altro per evitare che metà del mio schermo venga riempita con righe come la seguente:

         }
      }
   }
}
    
risposta data 09.04.2011 - 23:24
fonte
50

Adoro gli spazi bianchi significativi di Python. Per me è l'esempio perfetto di ASCIUTTO a livello sintattico. Il modo leggibile dall'uomo per indicare dove inizia e termina un blocco di codice è il rientro. Se vuoi che il tuo codice sia leggibile, devi indentarlo indipendentemente dalla lingua. È sciocco fare in modo che il programmatore specifichi queste informazioni due volte, una volta per il compilatore / interprete e una volta per gli umani. Inoltre, l'indentazione nei linguaggi di tipo C è simile a un commento: ha lo scopo di migliorare la comprensibilità, ma il suo significato non è applicato dal compilatore / interprete e può sfuggire al significato reale (dove le parentesi sono) molto facilmente, offuscando invece di chiarire.

    
risposta data 09.04.2011 - 23:34
fonte
12

Lo spazio bianco significativo è conveniente per me. Mi fa digitare di meno. Formatta il codice ordinatamente e in modo univoco. A causa di ciò, rende il codice più leggibile.

(Mi piacciono anche gli spazi bianchi significativi in Haskell, per gli stessi motivi.)

    
risposta data 09.04.2011 - 23:33
fonte
8

Quando ho usato Python per la prima volta, la cosa dello spazio bianco era nuova e quindi una restrizione fastidiosa.

Ora non me ne accorgo nemmeno. Ho usato Python per 11 mesi.

    
risposta data 09.04.2011 - 23:10
fonte
5

Prima di tutto - i miei linguaggi di pane e burro sono Python, SQL e Java. Adoro gli spazi bianchi di Python - è meno sintassi e digitazione, e costringe le persone a scrivere codice leggibile e ben formattato. OTOH, odio la verbosità di Java - tanto che in realtà uso Python per generare tutto il boilerplate che devo scrivere in Java, cosa che impressiona tutti i miei colleghi Java che sono stupiti della mia produttività. / p>

L'unica avvertenza, però, è quando copia / incolla il codice dal web - spesso causa spazi e tabulazioni misti che richiedono un ulteriore passaggio per pulire, e di solito prendo solo dopo un'eccezione di runtime.

    
risposta data 12.07.2011 - 04:17
fonte
4

Se un programmatore è infastidito dal significato degli spazi bianchi, probabilmente non diventerà un programmatore python.

    
risposta data 09.04.2011 - 23:07
fonte
3

Scommetto che troveresti una considerevole sovrapposizione tra le persone che hanno un problema con spazi bianchi significativi e coloro che non hanno esperienza con un editor di testo di un buon programmatore, come Emacs, che gestisce la maggior parte delle indentazioni senza il loro coinvolgimento.

In ogni caso, una volta che hai interiorizzato Python, non è più un problema; infatti, la sua concisione e il piccolo spazio che occupa sullo schermo diventano un grande vantaggio per la leggibilità. Da quando utilizzo principalmente Python, trovo le lingue in cui c'è più ridondanza (ad es. Java e C #) difficili da disciplinare per scrivere. Mettendo bretelle attorno al codice la cui rientranza rende già chiara la struttura ai miei nervi.

    
risposta data 09.04.2011 - 23:50
fonte
3

Per la codifica attuale, non è affatto sconveniente, ma in realtà vantaggioso (vedi la risposta di dsimcha).

Può essere fastidioso quando si tratta di tecnologie di comunicazione che non rispettano gli spazi bianchi di punta (come molti forum Web non orientati alla programmazione e anche quando si incorpora il codice Python in una lingua diversa, come i linguaggi HTML di template), anche se visto che più di un difetto negli strumenti che tolgono lo spazio bianco a un difetto in Python, è vero che i linguaggi ridondanti che esprimono la struttura del codice due volte sono meglio equipaggiati per gestire tali ambienti distruttivi (dato che puoi incollare il codice in un editor e auto-reindent basato sui marcatori strutturali espliciti, o semplicemente non importa se il codice viene eseguito solo piuttosto che letto dagli umani).

    
risposta data 10.04.2011 - 08:40
fonte
2

Non trovo fastidioso lo spazio bianco. Trovo la mancanza o il rientro incoerente molto fastidioso in altre lingue. Capisco che questo problema è uno dei problemi che lo stile è destinato a risolvere.

Python non è una delle mie lingue principali.

Trovo che la gestione di tabulazioni e spazi in indentazione infastidisca occasionalmente. Ciò può causare problemi quando si cambia editor da una modifica a un'altra o quando si modifica un codice scritto da qualcun altro. Di solito è banale da risolvere.

    
risposta data 10.04.2011 - 01:55
fonte
1

Vengo da uno sfondo C # / Javascript / XBase in nessun ordine particolare, e nei miei dilemmi con Python non è affatto una considerazione per me. È come le parentesi graffe in altre lingue - è così che funziona, mette le cose dentro come dicono le regole, e asciuga i tuoi occhi è il mio atteggiamento.

    
risposta data 22.05.2012 - 15:14
fonte

Leggi altre domande sui tag